LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File rarian-help-bundle.patch of Package rarian (Project openSUSE:Factory)

diff -aurp rarian-0.7.1/librarian/rarian-omf.cpp rarian-0.7.1-patched/librarian/rarian-omf.cpp
--- rarian-0.7.1/librarian/rarian-omf.cpp	2008-01-07 23:21:51.000000000 +0100
+++ rarian-0.7.1-patched/librarian/rarian-omf.cpp	2008-05-07 13:31:07.910658000 +0200
@@ -186,6 +186,33 @@ rrn_omf_parse_file (char *path)
       return NULL;
     }
 
+    if (reg->uri && strncmp (reg->uri, "file://", strlen ("file://")) == 0) {
+      char *path;
+      path = reg->uri + strlen ("file://");
+      if (access (path, R_OK) != 0) {
+        if (strncmp (path, "/usr/share/gnome/help/", strlen ("/usr/share/gnome/help/")) == 0) {
+          char *new_uri;
+
+          new_uri = (char *) malloc (sizeof(char) * (strlen (reg->uri) + strlen ("-bundle") + 1));
+          sprintf (new_uri, "file:///usr/share/gnome/help-bundle/%s", path + strlen ("/usr/share/gnome/help/"));
+          free (reg->uri);
+          reg->uri = NULL;
+          path = new_uri + strlen ("file://");
+
+          if (access (path, R_OK) == 0) {
+            reg->uri = new_uri;
+          } else {
+            free (new_uri);
+          }
+        }
+      }
+    }
+
+    if (!reg->uri) {
+      rrn_reg_free (reg);
+      return NULL;
+    }
+
     if (!reg->identifier) {
       reg->identifier = (char *) malloc (sizeof(char) * 35);
       sprintf (reg->identifier, "org.scrollkeeper.unknown%d", rand());