X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fhelp-menu.c;h=9d1ccf8246297243ef4a58c210dadbf1e086f22f;hb=refs%2Fbuilds%2F20120213030503%2Fpspp;hp=58a19bb7f2584233c8a28c7227211504cddac886;hpb=fea925912b94d356a579598031abe54a191903fc;p=pspp diff --git a/src/ui/gui/help-menu.c b/src/ui/gui/help-menu.c index 58a19bb7f2..9d1ccf8246 100644 --- a/src/ui/gui/help-menu.c +++ b/src/ui/gui/help-menu.c @@ -1,5 +1,5 @@ /* PSPPIRE - a graphical user interface for PSPP. - Copyright (C) 2006, 2007, 2010 Free Software Foundation + Copyright (C) 2006, 2007, 2010, 2011, 2012 Free Software Foundation This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -85,14 +85,23 @@ about_new (GtkMenuItem *m, GtkWindow *parent) gtk_widget_hide (about); } - -static void -reference_manual (GtkMenuItem *menu, gpointer data) +/* Open the manual at PAGE */ +void +online_help (const char *page) { GError *err = NULL; - gchar *cmd = g_strdup_printf ("yelp file://%s", relocate (DOCDIR "/pspp.xml")); + gchar *cmd = NULL; - if ( ! g_spawn_command_line_async (cmd, &err) ) + gchar *argv[3] = { "yelp", 0, 0}; + + if (page == NULL) + argv[1] = g_strdup_printf ("file://%s", relocate (DOCDIR "/pspp.xml")); + else + argv[1] = g_strdup_printf ("file://%s#%s", relocate (DOCDIR "/pspp.xml"), page); + + if (! g_spawn_async (NULL, argv, + NULL, G_SPAWN_SEARCH_PATH, + NULL, NULL, NULL, &err)) { msg (ME, _("Cannot open reference manual: %s. The PSPP user manual is " "also available at %s"), @@ -104,6 +113,14 @@ reference_manual (GtkMenuItem *menu, gpointer data) g_clear_error (&err); } +static void +reference_manual (GtkMenuItem *menu, gpointer data) +{ + online_help (NULL); +} + + + void merge_help_menu (GtkUIManager *uim) {