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=a65764f4487d239c8b3bb76694be16a4e3795ab9;hpb=8af88c0b7ea2fe75df7e45497988ed0371006a86;p=pspp-builds.git diff --git a/src/ui/gui/helper.c b/src/ui/gui/helper.c index a65764f4..9ac9fde6 100644 --- a/src/ui/gui/helper.c +++ b/src/ui/gui/helper.c @@ -160,6 +160,38 @@ pspp_locale_to_utf8 (const gchar *text, gssize len, GError **err) return recode_string (CONV_PSPP_TO_UTF8, text, len); } +gchar * +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 @@ -201,7 +233,7 @@ connect_help (GtkBuilder *xml) if ( 0 == strcmp ("help_button", s)) { - g_signal_connect (GTK_WIDGET (o), "clicked", give_help, 0); + g_signal_connect (o, "clicked", give_help, 0); } } } @@ -214,10 +246,14 @@ void reference_manual (GtkMenuItem *menu, gpointer data) { GError *err = NULL; - if ( ! g_spawn_command_line_async ("yelp info:pspp", &err) ) + gchar *cmd = g_strdup_printf ("yelp file://%s", relocate (DOCDIR "/pspp.xml")); + + if ( ! g_spawn_command_line_async (cmd, &err) ) { msg (ME, _("Cannot open reference manual: %s"), err->message); } + + g_free (cmd); g_clear_error (&err); }