summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDon Scorgie <dscorgie@git.gnome.org>2009-04-28 19:55:47 +0100
committerDon Scorgie <dscorgie@git.gnome.org>2009-04-28 19:55:47 +0100
commitafc19355f7f53ded779fe3c6f54ba32a7f58514e (patch)
treea67471ef9de9ca7bd162a0ba0eb7625d4f64e306
parent2706bdeba952bb8af7a6ea551ab1c2868a7b2406 (diff)
downloadyelp-afc19355f7f53ded779fe3c6f54ba32a7f58514e.tar.gz
* src/yelp-info-parser.c:
* src/yelp-utils.c: Fix uncompressed info page accesses (bug #578350 - patch from parthasarathi susarla)
-rw-r--r--ChangeLog7
-rw-r--r--src/yelp-info-parser.c8
-rw-r--r--src/yelp-utils.c7
3 files changed, 19 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index e4b8ce50..2c48fe87 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2009-04-28 Don Scorgie <dscorgie@svn.gnome.org>
+ * src/yelp-info-parser.c:
+ * src/yelp-utils.c:
+ Fix uncompressed info page accesses
+ (bug #578350 - patch from parthasarathi susarla)
+
+2009-04-28 Don Scorgie <dscorgie@svn.gnome.org>
+
* src/yelp-window.c:
* src/yelp-settings.c:
* src/yelp-bookmarks.c:
diff --git a/src/yelp-info-parser.c b/src/yelp-info-parser.c
index f7731f66..2d06798d 100644
--- a/src/yelp-info-parser.c
+++ b/src/yelp-info-parser.c
@@ -137,7 +137,7 @@ find_info_part (gchar *part_name, gchar *base)
*/
gchar *path;
gchar *tmp;
- gchar *bzfname, *gzfname, *lzfd;
+ gchar *bzfname, *gzfname, *lzfd, *fname;
gchar *uri = NULL;
tmp = g_strrstr (base, "/");
path = g_strndup (base, tmp-base);
@@ -145,17 +145,21 @@ find_info_part (gchar *part_name, gchar *base)
bzfname = g_strconcat (path, "/", part_name, ".bz2", NULL);
gzfname = g_strconcat (path, "/", part_name, ".gz", NULL);
lzfd = g_strconcat (path, "/", part_name, ".lzma", NULL);
-
+ fname = g_strconcat (path, "/", part_name, NULL);
+
if (g_file_test (bzfname, G_FILE_TEST_EXISTS))
uri = g_strdup (bzfname);
else if (g_file_test (gzfname, G_FILE_TEST_EXISTS))
uri = g_strdup (gzfname);
else if (g_file_test (lzfd, G_FILE_TEST_EXISTS))
uri = g_strdup (lzfd);
+ else if (g_file_test (fname, G_FILE_TEST_EXISTS))
+ uri = g_strdup (fname);
g_free (bzfname);
g_free (gzfname);
g_free (lzfd);
+ g_free (fname);
g_free (path);
return uri;
diff --git a/src/yelp-utils.c b/src/yelp-utils.c
index 567593f4..bea048a4 100644
--- a/src/yelp-utils.c
+++ b/src/yelp-utils.c
@@ -197,7 +197,12 @@ resolve_full_file (const gchar *path)
} else if (resolve_is_man_path (path, "lzma")) {
type = YELP_RRN_TYPE_MAN;
}
-
+ } else if (g_str_equal (mime_type, "application/octet-stream")) {
+ if (g_str_has_suffix (path, ".info")) {
+ type = YELP_RRN_TYPE_INFO;
+ } else if (resolve_is_man_path (path, NULL)) {
+ type = YELP_RRN_TYPE_MAN;
+ }
} else if (g_str_equal (mime_type, "text/plain")) {
if (g_str_has_suffix (path, ".info")) {
type = YELP_RRN_TYPE_INFO;