devhelp r1265 - in trunk: . src



Author: rhult
Date: Thu Feb 19 10:02:43 2009
New Revision: 1265
URL: http://svn.gnome.org/viewvc/devhelp?rev=1265&view=rev

Log:
2009-02-19  Enrico TrÃge  <enrico troeger uvena de>

	* src/dh-assistant-view.c: (assistant_view_set_link):
	* src/dh-book-tree.c: (book_tree_find_uri_foreach):
	* src/dh-link.c: (link_free), (dh_link_new):
	* src/dh-link.h: Use file: URIs instead of local paths, fixes use
	with more recent webkit versions.


Modified:
   trunk/ChangeLog
   trunk/src/dh-assistant-view.c
   trunk/src/dh-book-tree.c
   trunk/src/dh-link.c
   trunk/src/dh-link.h

Modified: trunk/src/dh-assistant-view.c
==============================================================================
--- trunk/src/dh-assistant-view.c	(original)
+++ trunk/src/dh-assistant-view.c	Thu Feb 19 10:02:43 2009
@@ -169,6 +169,7 @@
         gsize                length;
         gchar               *key;
         gsize                key_length;
+        gsize                offset = 0;
         const gchar         *start;
         const gchar         *end;
 
@@ -203,7 +204,10 @@
                 return;
         }
 
-        file = g_mapped_file_new (filename, FALSE, NULL);
+        if (g_str_has_prefix (filename, "file://"))
+            offset = 7;
+        
+        file = g_mapped_file_new (filename + offset, FALSE, NULL);
         if (!file) {
                 g_free (filename);
                 return;
@@ -326,7 +330,7 @@
                  * anchor links are handled internally in webkit.
                  */
                 tmp = g_path_get_dirname (filename);
-                base = g_strconcat ("file://", tmp, "/fake", NULL);
+                base = g_strconcat (tmp, "/fake", NULL);
                 g_free (tmp);
 
                 webkit_web_view_load_html_string (

Modified: trunk/src/dh-book-tree.c
==============================================================================
--- trunk/src/dh-book-tree.c	(original)
+++ trunk/src/dh-book-tree.c	Thu Feb 19 10:02:43 2009
@@ -245,22 +245,14 @@
 			    FindURIData  *data)
 {
 	DhLink      *link;
-	const gchar *uri;
         gchar       *link_uri;
 
 	gtk_tree_model_get (model, iter,
 			    COL_LINK, &link,
 			    -1);
 
-	/* A bit hackish, could be made more generic. */
-	if (g_str_has_prefix (data->uri, "file://")) {
-		uri = data->uri + 7;
-	} else {
-		uri = data->uri;
-	}
-
         link_uri = dh_link_get_uri (link);
-	if (g_str_has_prefix (uri, link_uri)) {
+	if (g_str_has_prefix (data->uri, link_uri)) {
 		data->found = TRUE;
 		data->iter = *iter;
 		data->path = gtk_tree_path_copy (path);

Modified: trunk/src/dh-link.c
==============================================================================
--- trunk/src/dh-link.c	(original)
+++ trunk/src/dh-link.c	Thu Feb 19 10:02:43 2009
@@ -33,7 +33,7 @@
         gchar       *base;
 
         gchar       *name;
-        gchar       *uri;
+        gchar       *filename;
 
         DhLink      *book;
         DhLink      *page;
@@ -64,7 +64,7 @@
 	g_free (link->base);
 	g_free (link->id);
 	g_free (link->name);
-	g_free (link->uri);
+	g_free (link->filename);
 
         if (link->book) {
                 dh_link_unref (link->book);
@@ -83,12 +83,12 @@
 	     const gchar *name,
 	     DhLink      *book,
 	     DhLink      *page,
-	     const gchar *uri)
+	     const gchar *filename)
 {
 	DhLink *link;
 
 	g_return_val_if_fail (name != NULL, NULL);
-	g_return_val_if_fail (uri != NULL, NULL);
+	g_return_val_if_fail (filename != NULL, NULL);
 
         if (type == DH_LINK_TYPE_BOOK) {
                 g_return_val_if_fail (base != NULL, NULL);
@@ -110,7 +110,7 @@
         }
 
 	link->name = g_strdup (name);
-	link->uri = g_strdup (uri);
+	link->filename = g_strdup (filename);
 
 	if (book) {
                 link->book = dh_link_ref (book);
@@ -205,11 +205,16 @@
 gchar *
 dh_link_get_uri (DhLink *link)
 {
-        if (link->type == DH_LINK_TYPE_BOOK) {
-                return g_strconcat (link->base, "/", link->uri, NULL);
-        }
+	gchar *base, *uri;
+
+        if (link->type == DH_LINK_TYPE_BOOK)
+                base = link->base;
+        else
+                base = link->book->base;
+
+	uri = g_strconcat ("file://", base, "/", link->filename, NULL, NULL);
 
-        return g_strconcat (link->book->base, "/", link->uri, NULL);
+	return uri;
 }
 
 DhLinkType

Modified: trunk/src/dh-link.h
==============================================================================
--- trunk/src/dh-link.h	(original)
+++ trunk/src/dh-link.h	Thu Feb 19 10:02:43 2009
@@ -51,7 +51,7 @@
 					 const gchar   *name,
                                          DhLink        *book,
                                          DhLink        *page,
-					 const gchar   *uri);
+					 const gchar   *filename);
 void         dh_link_free               (DhLink        *link);
 gint         dh_link_compare            (gconstpointer  a,
 					 gconstpointer  b);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]