Fix using wrong encoding for document filename when doing a
directory diff. Replace find_by_filename() with p_document->find_by_filename() (now it does the same job). git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2638 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
parent
50b0a10654
commit
4d3ba6e7a2
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
* src/build.c, src/dialogs.c, src/document.c, src/document.h,
|
* src/build.c, src/dialogs.c, src/document.c, src/document.h,
|
||||||
src/msgwindow.c, src/navqueue.c, src/plugindata.h, src/plugins.c,
|
src/msgwindow.c, src/navqueue.c, src/plugindata.h, src/plugins.c,
|
||||||
src/symbols.c, src/win32.c, plugins/vcdiff.c:
|
src/symbols.c, src/win32.c:
|
||||||
Note: this breaks the plugin API for plugins using
|
Note: this breaks the plugin API for plugins using
|
||||||
document_find_by_filename().
|
document_find_by_filename().
|
||||||
Make document_find_by_filename() take only a utf8_filename argument,
|
Make document_find_by_filename() take only a utf8_filename argument,
|
||||||
@ -12,6 +12,11 @@
|
|||||||
Add filename argument for document_save_file_as().
|
Add filename argument for document_save_file_as().
|
||||||
Add GeanyDocument::real_path field, which if non-NULL indicates the
|
Add GeanyDocument::real_path field, which if non-NULL indicates the
|
||||||
file once existed on disk (not just as an unsaved document filename).
|
file once existed on disk (not just as an unsaved document filename).
|
||||||
|
* plugins/vcdiff.c:
|
||||||
|
Fix using wrong encoding for document filename when doing a
|
||||||
|
directory diff.
|
||||||
|
Replace find_by_filename() with p_document->find_by_filename() (now
|
||||||
|
it does the same job).
|
||||||
|
|
||||||
|
|
||||||
2008-06-03 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
|
2008-06-03 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
|
||||||
|
|||||||
@ -248,22 +248,8 @@ static void* get_cmd_env(gint cmd_type, gboolean cmd, const gchar* filename, int
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int find_by_filename(const gchar* filename)
|
/* utf8_name_prefix can have a path. */
|
||||||
{
|
static void show_output(const gchar *std_output, const gchar *utf8_name_prefix,
|
||||||
guint i;
|
|
||||||
|
|
||||||
for (i = 0; i < documents_array->len; i++)
|
|
||||||
{
|
|
||||||
if (documents[i]->is_valid && documents[i]->file_name &&
|
|
||||||
strcmp(documents[i]->file_name, filename) == 0)
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* name_prefix should be in UTF-8, and can have a path. */
|
|
||||||
static void show_output(const gchar *std_output, const gchar *name_prefix,
|
|
||||||
const gchar *force_encoding)
|
const gchar *force_encoding)
|
||||||
{
|
{
|
||||||
gchar *text, *detect_enc = NULL;
|
gchar *text, *detect_enc = NULL;
|
||||||
@ -271,7 +257,7 @@ static void show_output(const gchar *std_output, const gchar *name_prefix,
|
|||||||
GtkNotebook *book;
|
GtkNotebook *book;
|
||||||
gchar *filename;
|
gchar *filename;
|
||||||
|
|
||||||
filename = g_path_get_basename(name_prefix);
|
filename = g_path_get_basename(utf8_name_prefix);
|
||||||
setptr(filename, g_strconcat(filename, ".vc.diff", NULL));
|
setptr(filename, g_strconcat(filename, ".vc.diff", NULL));
|
||||||
|
|
||||||
/* need to convert input text from the encoding of the original file into
|
/* need to convert input text from the encoding of the original file into
|
||||||
@ -287,7 +273,7 @@ static void show_output(const gchar *std_output, const gchar *name_prefix,
|
|||||||
}
|
}
|
||||||
if (text)
|
if (text)
|
||||||
{
|
{
|
||||||
idx = find_by_filename(filename);
|
idx = p_document->find_by_filename(filename);
|
||||||
if ( idx == -1)
|
if ( idx == -1)
|
||||||
{
|
{
|
||||||
GeanyFiletype *ft = p_filetypes->lookup_by_name("Diff");
|
GeanyFiletype *ft = p_filetypes->lookup_by_name("Diff");
|
||||||
@ -416,6 +402,7 @@ static void vcdirectory_activated(GtkMenuItem *menuitem, gpointer gdata)
|
|||||||
text = make_diff(base_name, VC_COMMAND_DIFF_DIR);
|
text = make_diff(base_name, VC_COMMAND_DIFF_DIR);
|
||||||
if (text)
|
if (text)
|
||||||
{
|
{
|
||||||
|
setptr(base_name, p_utils->get_utf8_from_locale(base_name));
|
||||||
show_output(text, base_name, NULL);
|
show_output(text, base_name, NULL);
|
||||||
g_free(text);
|
g_free(text);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user