Home | History | Annotate | Download | only in patches
      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