pspp-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [datasets 01/18] gui: Always convert file names to UTF-8 for use in


From: John Darrington
Subject: Re: [datasets 01/18] gui: Always convert file names to UTF-8 for use in syntax.
Date: Sun, 1 May 2011 11:11:57 +0000
User-agent: Mutt/1.5.18 (2008-05-17)

Messing with this has always caused a lot of problems in the past.
I'd like to see a fair bit of testing on different OSes and with 
different locales - using non-ascii filenames of course.
On Sat, Apr 30, 2011 at 10:36:29PM -0700, Ben Pfaff wrote:
     Syntax as understood by the lexer is always in UTF-8, so file names
     have to be in UTF-8 too.  (The PSPP code that opens files based on
     strings from syntax should already be using utf8_to_filename() to
     convert them properly before opening.)
     ---
      src/ui/gui/psppire-data-window.c |   26 ++++++++++++--------------
      1 files changed, 12 insertions(+), 14 deletions(-)
     
     diff --git a/src/ui/gui/psppire-data-window.c 
b/src/ui/gui/psppire-data-window.c
     index 9a3470a..72f8abb 100644
     --- a/src/ui/gui/psppire-data-window.c
     +++ b/src/ui/gui/psppire-data-window.c
     @@ -351,19 +351,18 @@ dump_rm (GtkRecentManager *rm)
      static gboolean
      load_file (PsppireWindow *de, const gchar *file_name)
      {
     -  gchar *native_file_name;
     +  gchar *utf8_file_name;
        struct string filename;
        gchar *syntax;
        bool ok;
      
        ds_init_empty (&filename);
      
     -  native_file_name =
     -    convert_glib_filename_to_system_filename (file_name, NULL);
     +  utf8_file_name = g_filename_to_utf8 (file_name, -1, NULL, NULL, NULL);
      
     -  syntax_gen_string (&filename, ss_cstr (native_file_name));
     +  syntax_gen_string (&filename, ss_cstr (utf8_file_name));
      
     -  g_free (native_file_name);
     +  g_free (utf8_file_name);
      
        syntax = g_strdup_printf ("GET FILE=%s.", ds_cstr (&filename));
        ds_destroy (&filename);
     @@ -496,7 +495,7 @@ name_has_suffix (const gchar *name)
      static void
      save_file (PsppireWindow *w)
      {
     -  gchar *native_file_name = NULL;
     +  gchar *utf8_file_name = NULL;
        gchar *file_name = NULL;
        GString *fnx;
        struct string filename ;
     @@ -517,13 +516,12 @@ save_file (PsppireWindow *w)
      
        ds_init_empty (&filename);
      
     -  native_file_name =
     -    convert_glib_filename_to_system_filename (fnx->str, NULL);
     +  utf8_file_name = g_filename_to_utf8 (fnx->str, -1, NULL, NULL, NULL);
      
        g_string_free (fnx, TRUE);
      
     -  syntax_gen_string (&filename, ss_cstr (native_file_name));
     -  g_free (native_file_name);
     +  syntax_gen_string (&filename, ss_cstr (utf8_file_name));
     +  g_free (utf8_file_name);
      
        syntax = g_strdup_printf ("%s OUTFILE=%s.",
                                  de->save_as_portable ? "EXPORT" : "SAVE",
     @@ -565,16 +563,16 @@ sysfile_info (PsppireDataWindow *de)
            gchar *file_name =
        gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
      
     -      gchar *native_file_name =
     -  convert_glib_filename_to_system_filename (file_name, NULL);
     +      gchar *utf8_file_name = g_filename_to_utf8 (file_name, -1, NULL, 
NULL,
     +                                                  NULL);
      
            gchar *syntax;
      
            ds_init_empty (&filename);
      
     -      syntax_gen_string (&filename, ss_cstr (native_file_name));
     +      syntax_gen_string (&filename, ss_cstr (utf8_file_name));
      
     -      g_free (native_file_name);
     +      g_free (utf8_file_name);
      
            syntax = g_strdup_printf ("SYSFILE INFO %s.", ds_cstr (&filename));
            g_free (execute_syntax_string (syntax));
     -- 
     1.7.2.5
     
     
     _______________________________________________
     pspp-dev mailing list
     address@hidden
     https://lists.gnu.org/mailman/listinfo/pspp-dev

-- 
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://pgp.mit.edu or any PGP keyserver for public key.

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]