diff options
author | Ross Burton <rburton@src.gnome.org> | 2005-02-22 19:17:01 +0000 |
---|---|---|
committer | Ross Burton <rburton@src.gnome.org> | 2005-02-22 19:17:01 +0000 |
commit | d8c4e434c01f05348cf58fc35b570f82cc71980e (patch) | |
tree | a498be3f586730a7bb23ac9fad6c9ebe8df664e2 /src | |
parent | a9e94540129ee12e30c200ac7f1c64b0e73de16d (diff) | |
download | yelp-d8c4e434c01f05348cf58fc35b570f82cc71980e.tar.gz |
Correctly handle XHTML documents
Diffstat (limited to 'src')
-rw-r--r-- | src/test-uri.c | 3 | ||||
-rw-r--r-- | src/yelp-utils.c | 2 | ||||
-rw-r--r-- | src/yelp-utils.h | 1 | ||||
-rw-r--r-- | src/yelp-window.c | 13 |
4 files changed, 18 insertions, 1 deletions
diff --git a/src/test-uri.c b/src/test-uri.c index 093908df..98b01b91 100644 --- a/src/test-uri.c +++ b/src/test-uri.c @@ -48,6 +48,9 @@ print_doc_info (YelpDocInfo *doc) case YELP_DOC_TYPE_HTML: type = "YELP_DOC_TYPE_HTML"; break; + case YELP_DOC_TYPE_XHTML: + type = "YELP_DOC_TYPE_XHTML"; + break; case YELP_DOC_TYPE_MAN: type = "YELP_DOC_TYPE_MAN"; break; diff --git a/src/yelp-utils.c b/src/yelp-utils.c index 793101ea..00a85758 100644 --- a/src/yelp-utils.c +++ b/src/yelp-utils.c @@ -521,6 +521,8 @@ get_doc_type (gchar *uri) type = YELP_DOC_TYPE_DOCBOOK_SGML; else if (g_str_equal (mime_type, "text/html")) type = YELP_DOC_TYPE_HTML; + else if (g_str_equal (mime_type, "application/xhtml+xml")) + type = YELP_DOC_TYPE_XHTML; else type = YELP_DOC_TYPE_EXTERNAL; diff --git a/src/yelp-utils.h b/src/yelp-utils.h index be3f4137..ae406ed5 100644 --- a/src/yelp-utils.h +++ b/src/yelp-utils.h @@ -33,6 +33,7 @@ typedef enum { YELP_DOC_TYPE_DOCBOOK_XML, YELP_DOC_TYPE_DOCBOOK_SGML, YELP_DOC_TYPE_HTML, + YELP_DOC_TYPE_XHTML, YELP_DOC_TYPE_MAN, YELP_DOC_TYPE_INFO, YELP_DOC_TYPE_TOC, diff --git a/src/yelp-window.c b/src/yelp-window.c index ad10ad65..8eb7141c 100644 --- a/src/yelp-window.c +++ b/src/yelp-window.c @@ -807,6 +807,7 @@ window_do_load (YelpWindow *window, "the author of the document to convert to XML.")); break; case YELP_DOC_TYPE_HTML: + case YELP_DOC_TYPE_XHTML: handled = window_do_load_html (window, doc_info, frag_id); break; case YELP_DOC_TYPE_EXTERNAL: @@ -1309,7 +1310,17 @@ window_do_load_html (YelpWindow *window, } yelp_html_set_base_uri (priv->html_view, uri); - yelp_html_open_stream (priv->html_view, "text/html"); + + switch (yelp_doc_info_get_type (doc_info)) { + case YELP_DOC_TYPE_HTML: + yelp_html_open_stream (priv->html_view, "text/html"); + break; + case YELP_DOC_TYPE_XHTML: + yelp_html_open_stream (priv->html_view, "application/xhtml+xml"); + break; + default: + g_assert_not_reached (); + } while ((result = gnome_vfs_read (handle, buffer, BUFFER_SIZE, &n)) == GNOME_VFS_OK) { |