1 --- dia-0.96.1/app/diagram.c.orig 2008-12-16 13:22:56.280030000 +0900 2 +++ dia-0.96.1/app/diagram.c 2008-12-16 13:25:01.214645000 +0900 3 @@ -1363,7 +1363,7 @@ diagram_update_for_filename(Diagram *dia 4 GSList *l; 5 DDisplay *ddisp; 6 char *title; 7 - char *filename = dia->filename; 8 + char *filename = g_filename_from_utf8 (dia->filename, -1, NULL, NULL, NULL); 9 10 title = diagram_get_name(dia); 11 12 --- dia-0.96.1/app/filedlg.c.orig 2008-12-16 12:45:12.265157000 +0900 13 +++ dia-0.96.1/app/filedlg.c 2008-12-16 17:59:26.595524000 +0900 14 @@ -424,7 +424,7 @@ file_save_as_callback(gpointer data, gui 15 if (filename != NULL) { 16 char* fnabs = dia_get_absolute_filename (filename); 17 if (fnabs) { 18 - gchar *base = g_path_get_basename(fnabs); 19 + gchar *base = g_path_get_basename(dia->filename); 20 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(savedlg), fnabs); 21 /* FileChooser api insist on exiting files for set_filename */ 22 gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(savedlg), base); 23 @@ -495,9 +495,10 @@ export_adapt_extension (const gchar* nam 24 const gchar* ext = NULL; 25 DiaExportFilter *efilter = efilter_by_index (index, &ext); 26 gchar *basename = g_path_get_basename (name); 27 + gchar *utf8_name = NULL; 28 29 if (!efilter || !ext) 30 - gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(exportdlg), basename); 31 + utf8_name = g_filename_to_utf8 (basename, -1, NULL, NULL, NULL); 32 else { 33 const gchar *last_dot = strrchr(basename, '.'); 34 GString *s = g_string_new(basename); 35 @@ -505,9 +506,11 @@ export_adapt_extension (const gchar* nam 36 g_string_truncate(s, last_dot-basename); 37 g_string_append(s, "."); 38 g_string_append(s, ext); 39 - gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(exportdlg), s->str); 40 + utf8_name = g_filename_to_utf8 (s->str, -1, NULL, NULL, NULL); 41 g_string_free (s, TRUE); 42 } 43 + gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(exportdlg), utf8_name); 44 + g_free (utf8_name); 45 g_free (basename); 46 } 47 static void 48 --- dia-0.96.1/plug-ins/cairo/diacairo.c.orig 2008-12-16 17:51:58.011745000 +0900 49 +++ dia-0.96.1/plug-ins/cairo/diacairo.c 2008-12-16 17:55:24.862039000 +0900 50 @@ -963,26 +963,19 @@ typedef enum OutputKind 51 52 /* dia export funtion */ 53 static void 54 -export_data(DiagramData *data, const gchar *filename_utf8, 55 +export_data(DiagramData *data, const gchar *filename, 56 const gchar *diafilename, void* user_data) 57 { 58 DiaCairoRenderer *renderer; 59 FILE *file; 60 real width, height; 61 OutputKind kind = (OutputKind)user_data; 62 - gchar* filename = g_locale_from_utf8 (filename_utf8, -1, NULL, NULL, NULL); 63 64 - if (!filename) { 65 - message_error(_("Can't convert output filename '%s' to locale encoding.\n" 66 - "Please choose a different name to save with cairo.\n"), 67 - dia_message_filename(filename_utf8), strerror(errno)); 68 - return; 69 - } 70 file = fopen(filename, "wb"); /* "wb" for binary! */ 71 72 if (file == NULL) { 73 message_error(_("Can't open output file %s: %s\n"), 74 - dia_message_filename(filename_utf8), strerror(errno)); 75 + dia_message_filename(filename), strerror(errno)); 76 return; 77 } 78 fclose (file); 79