diff options
author | danw <danw@pkgsrc.org> | 2001-09-24 23:47:36 +0000 |
---|---|---|
committer | danw <danw@pkgsrc.org> | 2001-09-24 23:47:36 +0000 |
commit | cf517e09b7bf841db6bed74405bdd38083e4e133 (patch) | |
tree | dfdc0d4687a64bc0b4b20635f5128a64aab20d8f /x11 | |
parent | df9853474a53f4628b94b664d2a7656e6e0af9a2 (diff) | |
download | pkgsrc-cf517e09b7bf841db6bed74405bdd38083e4e133.tar.gz |
Patch gnome_url_show() to fall back to the default handler if the
one specified by gnome_config doesn't work. In particular, if a help file
can't be viewed with gnome-help-browser (eg, because gnome-core isn't
installed), fall back to the user's web browser rather than silently
losing.
Diffstat (limited to 'x11')
-rw-r--r-- | x11/gnome-libs/Makefile | 3 | ||||
-rw-r--r-- | x11/gnome-libs/distinfo | 3 | ||||
-rw-r--r-- | x11/gnome-libs/patches/patch-ay | 71 |
3 files changed, 75 insertions, 2 deletions
diff --git a/x11/gnome-libs/Makefile b/x11/gnome-libs/Makefile index 3c2d729dbf0..64179e85d43 100644 --- a/x11/gnome-libs/Makefile +++ b/x11/gnome-libs/Makefile @@ -1,6 +1,7 @@ -# $NetBSD: Makefile,v 1.68 2001/08/29 22:41:28 jlam Exp $ +# $NetBSD: Makefile,v 1.69 2001/09/24 23:47:36 danw Exp $ DISTNAME= gnome-libs-1.2.13 +PKGNAME= gnome-libs-1.2.13nb1 CATEGORIES= x11 gnome MASTER_SITES= ${MASTER_SITE_GNOME:=stable/sources/gnome-libs/} diff --git a/x11/gnome-libs/distinfo b/x11/gnome-libs/distinfo index 62cf05eb6a1..60ed9a18468 100644 --- a/x11/gnome-libs/distinfo +++ b/x11/gnome-libs/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.4 2001/09/22 03:39:02 jlam Exp $ +$NetBSD: distinfo,v 1.5 2001/09/24 23:47:36 danw Exp $ SHA1 (gnome-libs-1.2.13.tar.gz) = 21142d1afc826b7bca54be91a398c6f896d81696 Size (gnome-libs-1.2.13.tar.gz) = 3387481 bytes @@ -20,3 +20,4 @@ SHA1 (patch-au) = d694b7105570fbe8ad8ce5a5079678db2cd2fc8e SHA1 (patch-av) = 7dfccc25c7f764106b61f62f11f92bed0161b4b8 SHA1 (patch-aw) = 03cf4cbeeaeb0f852c072dfb97bbd47c3d627a7c SHA1 (patch-ax) = 62ed2e13f8bbd6853d73b3b94bd20dc5690eeba5 +SHA1 (patch-ay) = be04dce8fdd2f553555cca428f386379c53773ad diff --git a/x11/gnome-libs/patches/patch-ay b/x11/gnome-libs/patches/patch-ay new file mode 100644 index 00000000000..edd7b93f908 --- /dev/null +++ b/x11/gnome-libs/patches/patch-ay @@ -0,0 +1,71 @@ +$NetBSD: patch-ay,v 1.1 2001/09/24 23:47:37 danw Exp $ + +--- libgnome/gnome-url.c.orig Fri Mar 16 14:44:42 2001 ++++ libgnome/gnome-url.c Mon Sep 24 18:36:21 2001 +@@ -72,6 +72,8 @@ + return default_handler; + } + ++static int gnome_url_show_with_handler (const gchar *url, const gchar *template); ++ + /** + * gnome_url_show + * @url: URL to show +@@ -97,11 +99,9 @@ + void + gnome_url_show(const gchar *url) + { +- gint i; + gchar *pos, *template; + gboolean free_template = FALSE; +- int argc; +- char **argv; ++ int status; + + g_return_if_fail (url != NULL); + pos = strchr (url, ':'); +@@ -127,12 +127,26 @@ + } else /* no : ? -- this shouldn't happen. Use default handler */ + template = gnome_url_default_handler (); + ++ status = gnome_url_show_with_handler (url, template); ++ if (status == -1 && free_template) ++ gnome_url_show_with_handler (url, gnome_url_default_handler ()); ++ ++ if (free_template) ++ g_free (template); ++} ++ ++static int ++gnome_url_show_with_handler (const gchar *url, const gchar *template) ++{ ++ int argc, i, status; ++ char **argv; ++ + /* we use a popt function as it does exactly what we want to do and + gnome already uses popt */ + if(poptParseArgvString(template, &argc, &argv) != 0) { + /* can't parse */ + g_warning("Parse error of '%s'", template); +- return; ++ return -1; + } + + /* we can just replace the entry in the array since the +@@ -146,13 +160,12 @@ + + /* use execute async, and not the shell, shell is evil and a + * security hole */ +- gnome_execute_async (NULL, argc, argv); +- +- if (free_template) +- g_free (template); ++ status = gnome_execute_async (NULL, argc, argv); + + /* the way the poptParseArgvString works is that the entire thing + * is allocated as one buffer, so just free will suffice, also + * it must be free and not g_free */ + free(argv); ++ ++ return status; + } |