diff options
Diffstat (limited to 'src/yelp-utils.c')
-rw-r--r-- | src/yelp-utils.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/yelp-utils.c b/src/yelp-utils.c index 7bf3559b..166482e3 100644 --- a/src/yelp-utils.c +++ b/src/yelp-utils.c @@ -1142,10 +1142,10 @@ resolve_full_file (const gchar *path) if (!g_file_test (path, G_FILE_TEST_EXISTS)) { return YELP_RRN_TYPE_ERROR; } - mime_type = gnome_vfs_get_mime_type (path); - if (mime_type == NULL) + if (mime_type == NULL) { return YELP_RRN_TYPE_ERROR; + } if (g_str_equal (mime_type, "text/xml") || g_str_equal (mime_type, "application/docbook+xml") || g_str_equal (mime_type, "application/xml")) type = YELP_RRN_TYPE_DOC; @@ -1352,7 +1352,10 @@ yelp_uri_resolve (gchar *uri, gchar **result, gchar **section) g_free (info_sect); } } else if (!strncmp (uri, "file:", 5)) { - ret = resolve_full_file (&intern_uri[5]); + int file_cut = 5; + while (uri[file_cut+1] == '/') + file_cut++; + ret = resolve_full_file (&intern_uri[file_cut]); if (ret == YELP_RRN_TYPE_EXTERNAL) { *section = NULL; *result = g_strdup (uri); @@ -1361,7 +1364,7 @@ yelp_uri_resolve (gchar *uri, gchar **result, gchar **section) *section = NULL; *result = NULL; } else { - *result = g_strdup (&intern_uri[5]); + *result = g_strdup (&intern_uri[file_cut]); *section = intern_section; } /* full file path. Ensure file exists and determine type */ |