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/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
|
||||
document_find_by_filename().
|
||||
Make document_find_by_filename() take only a utf8_filename argument,
|
||||
@ -12,6 +12,11 @@
|
||||
Add filename argument for document_save_file_as().
|
||||
Add GeanyDocument::real_path field, which if non-NULL indicates the
|
||||
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>
|
||||
|
||||
@ -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)
|
||||
{
|
||||
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,
|
||||
/* utf8_name_prefix can have a path. */
|
||||
static void show_output(const gchar *std_output, const gchar *utf8_name_prefix,
|
||||
const gchar *force_encoding)
|
||||
{
|
||||
gchar *text, *detect_enc = NULL;
|
||||
@ -271,7 +257,7 @@ static void show_output(const gchar *std_output, const gchar *name_prefix,
|
||||
GtkNotebook *book;
|
||||
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));
|
||||
|
||||
/* 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)
|
||||
{
|
||||
idx = find_by_filename(filename);
|
||||
idx = p_document->find_by_filename(filename);
|
||||
if ( idx == -1)
|
||||
{
|
||||
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);
|
||||
if (text)
|
||||
{
|
||||
setptr(base_name, p_utils->get_utf8_from_locale(base_name));
|
||||
show_output(text, base_name, NULL);
|
||||
g_free(text);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user