X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fhelper.c;h=9ac9fde6ec43b65ab79765859fb5ccfe9f5ec6ec;hb=5dd7174d3acde86cfd7e929dabcafe71894a2a3f;hp=83319c453eebb41a0bb219b565bca7bc58bd3b19;hpb=299e0bad13a78f0ede0ce6aad5f6b66bbb1deffd;p=pspp-builds.git diff --git a/src/ui/gui/helper.c b/src/ui/gui/helper.c index 83319c45..9ac9fde6 100644 --- a/src/ui/gui/helper.c +++ b/src/ui/gui/helper.c @@ -166,6 +166,31 @@ utf8_to_pspp_locale (const gchar *text, gssize len, GError **err) return recode_string (CONV_UTF8_TO_PSPP, text, len); } +/* This function must be used whenever a filename generated by glib, + (eg, from gtk_file_chooser_get_filename) and passed to the C library, + (eg through a pspp syntax string). +*/ +gchar * +convert_glib_filename_to_system_filename (const gchar *fname, GError **err) +{ + gchar *output_name; + +#ifdef G_OS_WIN32 + const gchar *target_encoding; + gchar *utf8_name = NULL; + + g_get_charset (&target_encoding); + + output_name = g_convert (fname, -1, target_encoding, + "UTF-8", NULL, NULL, err); +#else + output_name = strdup (fname); +#endif + + return output_name; +} + + #define _(msgid) gettext (msgid) #define N_(msgid) msgid