diff options
author | Shaun McCance <shaunm@gnome.org> | 2010-04-27 14:11:03 -0500 |
---|---|---|
committer | Shaun McCance <shaunm@gnome.org> | 2010-04-27 14:11:03 -0500 |
commit | 7ac0dfbc56a86a23db41181b19ccb60981377a0c (patch) | |
tree | 2f6218b87d0a734d56cd76dd96baf1827cce4c49 /libyelp/yelp-info-parser.c | |
parent | e692616ad3ce74cd12c35e1d65609f8eedabd129 (diff) | |
download | yelp-7ac0dfbc56a86a23db41181b19ccb60981377a0c.tar.gz |
[info2html] Link trails in info documents
Diffstat (limited to 'libyelp/yelp-info-parser.c')
-rw-r--r-- | libyelp/yelp-info-parser.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/libyelp/yelp-info-parser.c b/libyelp/yelp-info-parser.c index e6f58df7..cbca0e47 100644 --- a/libyelp/yelp-info-parser.c +++ b/libyelp/yelp-info-parser.c @@ -567,7 +567,7 @@ process_page (GtkTreeStore *tree, GHashTable *nodes2offsets, } /* by this point our parent and older sibling should be processed */ - if (!up || !g_ascii_strcasecmp (up, "(dir)") || !strcmp (up, "Top")) + if (!up || !g_ascii_strcasecmp (up, "(dir)")) { debug_print (DB_DEBUG, "\t> no parent\n"); if (!prev || !g_ascii_strcasecmp (prev, "(dir)")) @@ -817,7 +817,7 @@ GtkTreeStore static void parse_tree_level (GtkTreeStore *tree, xmlNodePtr *node, GtkTreeIter iter) { - GtkTreeIter children; + GtkTreeIter children, parent; xmlNodePtr newnode; char *page_no = NULL; @@ -857,6 +857,15 @@ parse_tree_level (GtkTreeStore *tree, xmlNodePtr *node, GtkTreeIter iter) g_free (page_content); page_content = NULL; + if (gtk_tree_model_iter_parent (GTK_TREE_MODEL (tree), &parent, &iter)) { + gchar *parent_id; + gtk_tree_model_get (GTK_TREE_MODEL (tree), &parent, + INFO_PARSER_COLUMN_PAGE_NO, &parent_id, + -1); + xmlNewProp (newnode, BAD_CAST "up", BAD_CAST parent_id); + g_free (parent_id); + } + xmlNewProp (newnode, BAD_CAST "id", BAD_CAST page_no); xmlNewProp (newnode, BAD_CAST "name", |