pkgsrc-wip/easytag-gtk2/patches/patch-ac
2005-04-16 14:49:00 +00:00

81 lines
2.6 KiB
Text

$NetBSD: patch-ac,v 1.1 2005/04/16 14:49:00 thomasklausner Exp $
--- src/et_core.c.orig 2004-11-29 22:32:56.000000000 +0100
+++ src/et_core.c
@@ -3463,8 +3463,10 @@ gboolean ET_Manage_Changes_Of_File_Data
*/
gboolean ET_Detect_Changes_Of_File_Name (File_Name *FileName1, File_Name *FileName2)
{
- gchar *basename1;
- gchar *basename2;
+ gchar *filename1_utf8;
+ gchar *filename2_utf8;
+ gchar *basename1_utf8;
+ gchar *basename2_utf8;
if ( (!FileName1 && !FileName2)
|| (!FileName1->value && !FileName2->value) )
@@ -3478,18 +3480,22 @@ gboolean ET_Detect_Changes_Of_File_Name
/* Filename changed ? */
- basename1 = g_path_get_basename(FileName1->value);
- basename2 = g_path_get_basename(FileName2->value);
+ // Convert to UTF-8 as FileName->value contains raw data
+ filename1_utf8 = filename_to_display(FileName1->value);
+ filename2_utf8 = filename_to_display(FileName2->value);
+
+ basename1_utf8 = g_path_get_basename(filename1_utf8);
+ basename2_utf8 = g_path_get_basename(filename2_utf8);
- if ( g_utf8_collate(basename1,basename2) != 0 )
+ if ( g_utf8_collate(basename1_utf8,basename2_utf8) != 0 )
{
- g_free(basename1);
- g_free(basename2);
+ g_free(basename1_utf8);
+ g_free(basename2_utf8);
return TRUE;
} else
{
- g_free(basename1);
- g_free(basename2);
+ g_free(basename1_utf8);
+ g_free(basename2_utf8);
return FALSE; /* No changes */
}
}
@@ -4129,23 +4135,28 @@ gboolean ET_File_Name_Convert_Character
/*
* Returns the number of file in the directory of the selected file.
+ * Parameter "path" should be in UTF-8
*/
-guint ET_Get_Number_Of_Files_In_Directory (gchar *path)
+guint ET_Get_Number_Of_Files_In_Directory (gchar *path_utf8)
{
GList *etfilelist;
guint count = 0;
- if (!path) return count;
+ if (!path_utf8) return count;
etfilelist = g_list_first(ETCore->ETFileList);
while (etfilelist)
{
ET_File *ETFile = (ET_File *)etfilelist->data;
gchar *cur_filename = ((File_Name *)((GList *)ETFile->FileNameCur)->data)->value;
- gchar *dirname = g_path_get_dirname(cur_filename);
- if (g_utf8_collate(dirname,path) == 0)
+ gchar *cur_filename_utf8 = filename_to_display(cur_filename);
+ gchar *dirname_utf8 = g_path_get_dirname(cur_filename_utf8);
+
+ if (g_utf8_collate(dirname_utf8 ,path_utf8) == 0)
count++;
- g_free(dirname);
+
+ g_free(cur_filename_utf8);
+ g_free(dirname_utf8 );
etfilelist = etfilelist->next;
}