summaryrefslogtreecommitdiff
path: root/src/yelp-toc-pager.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/yelp-toc-pager.c')
-rw-r--r--src/yelp-toc-pager.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/yelp-toc-pager.c b/src/yelp-toc-pager.c
index c1fafd0e..72587779 100644
--- a/src/yelp-toc-pager.c
+++ b/src/yelp-toc-pager.c
@@ -463,7 +463,7 @@ toc_process_pending (YelpTocPager *pager)
YelpTocPagerPriv *priv = pager->priv;
static ProcessFunction process_funcs[] = {
process_read_menu,
- process_omf_pending,
+ /*process_omf_pending,*/
#ifdef ENABLE_MAN
process_mandir_pending,
#endif
@@ -1799,13 +1799,20 @@ process_info_pending (YelpTocPager *pager)
#endif /* ENABLE_INFO */
static int
-SpoonPrint( void *reg, void * data)
+spoon_add_document (void *reg, void * user_data)
{
+ xmlNodePtr node = (xmlNodePtr) user_data;
SpoonReg *r = (SpoonReg *) reg;
-
- g_print ("Name: %s\n", r->name);
+ xmlNodePtr new;
+ gchar tmp[10];
- return TRUE;
+ new = xmlNewChild (node, NULL, BAD_CAST "doc", NULL);
+ xmlNewNsProp (new, NULL, BAD_CAST "href", BAD_CAST r->uri);
+ xmlNewTextChild (new, NULL, BAD_CAST "title", BAD_CAST r->name);
+ xmlNewTextChild (new, NULL, BAD_CAST "description", BAD_CAST r->comment);
+ g_sprintf (&tmp, "%d", r->weight);
+ xmlNewNsProp (new, NULL, BAD_CAST "weight", BAD_CAST tmp);
+ return FALSE;
}
static gboolean
@@ -1818,9 +1825,7 @@ process_read_menu (YelpTocPager *pager)
gint i, ret;
YelpTocPagerPriv *priv = pager->priv;
- g_print ("for_eaching\n");
- spoon_for_each (SpoonPrint, NULL);
- g_print ("Ended\n");
+
priv->toc_doc = xmlCtxtReadFile (priv->parser, DATADIR "/yelp/toc.xml", NULL,
XML_PARSE_NOBLANKS | XML_PARSE_NOCDATA |
XML_PARSE_NOENT | XML_PARSE_NOERROR |
@@ -1922,9 +1927,12 @@ process_read_menu (YelpTocPager *pager)
BAD_CAST "subject")) {
xmlChar *cat = xmlTextReaderGetAttribute (reader,
BAD_CAST "category");
- g_hash_table_insert (priv->category_hash,
+ /*g_hash_table_insert (priv->category_hash,
g_strdup ((gchar *) cat),
- node);
+ node);*/
+ spoon_for_each_in_category (spoon_add_document,
+ (char *) cat,
+ (void *) node);
xmlFree (cat);
}
else if (!xmlStrcmp (xmlTextReaderConstLocalName (reader),