File libgnome-help-bundles.patch of Package libgnome

diff -upr libgnome-2.19.1-pre/libgnome/gnome-help.c libgnome-2.19.1-post/libgnome/gnome-help.c
--- libgnome-2.19.1-pre/libgnome/gnome-help.c	2007-06-19 16:04:29.000000000 -0500
+++ libgnome-2.19.1-post/libgnome/gnome-help.c	2007-09-14 12:27:12.000000000 -0500
@@ -126,9 +126,11 @@ gnome_help_display_with_doc_id_and_env (
 {
 	gchar *local_help_path;
 	gchar *global_help_path;
+	gchar *bundle_help_path;
 	gchar *file;
 	struct stat local_help_st;
 	struct stat global_help_st;
+	struct stat bundle_help_st;
 	gchar *uri;
 	gchar *free_doc_id = NULL;
 	gboolean retval;
@@ -184,6 +186,14 @@ gnome_help_display_with_doc_id_and_env (
 		goto out;
 	}
 
+	/* Compute the bundle help path */
+
+	bundle_help_path = gnome_program_locate_file (program,
+						      GNOME_FILE_DOMAIN_HELP_BUNDLE,
+						      doc_id,
+						      FALSE /* only_if_exists */,
+						      NULL /* ret_locations */);
+
 	/* Try to access the help paths, first the app-specific help path
 	 * and then falling back to the global help path if the first one fails.
 	 */
@@ -213,6 +223,16 @@ gnome_help_display_with_doc_id_and_env (
 					     global_help_path);
 				goto out;
 			}
+		} else if (bundle_help_path && g_stat (bundle_help_path, &bundle_help_st) == 0) {
+			if (!S_ISDIR (bundle_help_st.st_mode)) {
+				g_set_error (error,
+					     GNOME_HELP_ERROR,
+					     GNOME_HELP_ERROR_NOT_FOUND,
+					     _("Unable to show help as %s is not a directory.  "
+					       "Please check your installation."),
+					     bundle_help_path);
+				goto out;
+			}
 		} else {
 			g_set_error (error,
 				     GNOME_HELP_ERROR,
@@ -227,6 +247,9 @@ gnome_help_display_with_doc_id_and_env (
 		if (!(local_help_st.st_dev == global_help_st.st_dev
 		      && local_help_st.st_ino == global_help_st.st_ino))
 			file = locate_help_file (global_help_path, file_name);
+
+		if (!file && bundle_help_path)
+			file = locate_help_file (bundle_help_path, file_name);
 	}
 
 	if (file == NULL) {
@@ -329,6 +352,7 @@ gnome_help_display_desktop_with_env (Gno
 				     GError       **error)
 {
 	GSList *ret_locations, *li;
+	GSList *ret_locations_2;
 	char *file;
 	gboolean retval;
 	char *url;
@@ -346,6 +370,15 @@ gnome_help_display_desktop_with_env (Gno
 				   FALSE /* only_if_exists */,
 				   &ret_locations);
 
+	ret_locations_2 = NULL;
+	gnome_program_locate_file (program,
+				   GNOME_FILE_DOMAIN_HELP_BUNDLE,
+				   doc_id,
+				   FALSE /* only_if_exists */,
+				   &ret_locations_2);
+
+	ret_locations = g_slist_concat (ret_locations, ret_locations_2);
+
 	if (ret_locations == NULL) {
 		g_set_error (error,
 			     GNOME_HELP_ERROR,
diff -upr libgnome-2.19.1-pre/libgnome/gnome-program.c libgnome-2.19.1-post/libgnome/gnome-program.c
--- libgnome-2.19.1-pre/libgnome/gnome-program.c	2007-09-14 11:41:34.000000000 -0500
+++ libgnome-2.19.1-post/libgnome/gnome-program.c	2007-09-14 11:45:48.000000000 -0500
@@ -994,6 +994,11 @@ gnome_program_locate_file (GnomeProgram 
 	attr_rel = "/gnome/help";
 	search_path = FALSE;
 	break;
+    case GNOME_FILE_DOMAIN_HELP_BUNDLE:
+	prefix_rel = "/share/gnome/help-bundle";
+	attr_name = GNOME_PARAM_GNOME_DATADIR;
+	attr_rel = "/gnome/help-bundle";
+	break;
     default:
 	g_warning (G_STRLOC ": unknown file domain %u", domain);
 	return NULL;
diff -upr libgnome-2.19.1-pre/libgnome/gnome-program.h libgnome-2.19.1-post/libgnome/gnome-program.h
--- libgnome-2.19.1-pre/libgnome/gnome-program.h	2007-09-14 11:41:34.000000000 -0500
+++ libgnome-2.19.1-post/libgnome/gnome-program.h	2007-09-14 11:46:22.000000000 -0500
@@ -70,7 +70,9 @@ typedef enum {
     GNOME_FILE_DOMAIN_APP_SOUND,
     GNOME_FILE_DOMAIN_APP_PIXMAP,
     GNOME_FILE_DOMAIN_APP_CONFIG,
-    GNOME_FILE_DOMAIN_APP_HELP
+    GNOME_FILE_DOMAIN_APP_HELP,
+
+    GNOME_FILE_DOMAIN_HELP_BUNDLE
 } GnomeFileDomain;
 
 struct _GnomeProgram
diff -upr libgnome-2.19.1-pre/libgnome/libgnometypebuiltins.c libgnome-2.19.1-post/libgnome/libgnometypebuiltins.c
--- libgnome-2.19.1-pre/libgnome/libgnometypebuiltins.c	2007-07-30 10:13:43.000000000 -0500
+++ libgnome-2.19.1-post/libgnome/libgnometypebuiltins.c	2007-09-14 11:47:03.000000000 -0500
@@ -42,6 +42,7 @@ static const GEnumValue _gnome_file_doma
   { GNOME_FILE_DOMAIN_APP_PIXMAP, "GNOME_FILE_DOMAIN_APP_PIXMAP", "app-pixmap" },
   { GNOME_FILE_DOMAIN_APP_CONFIG, "GNOME_FILE_DOMAIN_APP_CONFIG", "app-config" },
   { GNOME_FILE_DOMAIN_APP_HELP, "GNOME_FILE_DOMAIN_APP_HELP", "app-help" },
+  { GNOME_FILE_DOMAIN_HELP_BUNDLE, "GNOME_FILE_DOMAIN_HELP_BUNDLE", "help-bundle" },
   { 0, NULL, NULL }
 };
 
openSUSE Build Service is sponsored by