summaryrefslogtreecommitdiff
path: root/plugins/menu
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-08-12 19:18:21 +0000
committerDana Jansens <danakj@orodu.net>2003-08-12 19:18:21 +0000
commit1045079482453424f8320de99639390e3020eb72 (patch)
treeb15a4e7f21b4f21f668beb780127226f216d3e56 /plugins/menu
parent9ea78a4eb0255e8cca6258e5ceb4bfd3e9e9d59e (diff)
adjust for changes to the parsing api.
split the menu into its own file.
Diffstat (limited to 'plugins/menu')
-rw-r--r--plugins/menu/fifo_menu.c18
-rw-r--r--plugins/menu/include_menu.c2
-rw-r--r--plugins/menu/timed_menu.c26
3 files changed, 23 insertions, 23 deletions
diff --git a/plugins/menu/fifo_menu.c b/plugins/menu/fifo_menu.c
index cb35579e..c096a9d3 100644
--- a/plugins/menu/fifo_menu.c
+++ b/plugins/menu/fifo_menu.c
@@ -101,6 +101,7 @@ void fifo_menu_handler(int fd, void *d) {
num_realloc);
if (num_read == 0) { /* eof */
+ ObParseInst *i;
xmlDocPtr doc;
xmlNodePtr node;
@@ -109,16 +110,15 @@ void fifo_menu_handler(int fd, void *d) {
FIFO_MENU_DATA(menu)->buf[FIFO_MENU_DATA(menu)->buflen] = '\0';
- doc = xmlParseMemory(FIFO_MENU_DATA(menu)->buf,
- FIFO_MENU_DATA(menu)->buflen);
+ i = parse_startup();
+
+ if (parse_load_mem(FIFO_MENU_DATA(menu)->buf,
+ FIFO_MENU_DATA(menu)->buflen,
+ "fifo_menu", &doc, &node))
+ parse_menu_full(i, doc, node, menu, FALSE);
+
+ parse_shutdown(i);
- node = xmlDocGetRootElement(doc);
-
- if (node &&
- !xmlStrcasecmp(node->name, (const xmlChar*) "fifo_menu")) {
- parse_menu_full(doc, node, menu, FALSE);
- }
-
fifo_menu_clean_up(menu);
event_remove_fd(FIFO_MENU_DATA(menu)->handler->fd);
diff --git a/plugins/menu/include_menu.c b/plugins/menu/include_menu.c
index 2335f9e0..2133e9d2 100644
--- a/plugins/menu/include_menu.c
+++ b/plugins/menu/include_menu.c
@@ -46,7 +46,7 @@ void *plugin_create(PluginMenuCreateData *data)
if (doc) {
xmlNodePtr node = xmlDocGetRootElement(doc);
if (node) {
- parse_menu_full(doc, node, m, FALSE);
+ parse_menu_full(data->parse_inst, doc, node, m, FALSE);
}
xmlFreeDoc(doc);
}
diff --git a/plugins/menu/timed_menu.c b/plugins/menu/timed_menu.c
index 38a20edc..83ae5aa8 100644
--- a/plugins/menu/timed_menu.c
+++ b/plugins/menu/timed_menu.c
@@ -125,6 +125,7 @@ void timed_menu_read_pipe(int fd, void *d)
TIMED_MENU_DATA(menu)->buf + TIMED_MENU_DATA(menu)->buflen,
num_realloc);
if (num_read == 0) {
+ ObParseInst *i;
xmlDocPtr doc;
xmlNodePtr node;
@@ -133,15 +134,14 @@ void timed_menu_read_pipe(int fd, void *d)
TIMED_MENU_DATA(menu)->buf[TIMED_MENU_DATA(menu)->buflen] = '\0';
- doc = xmlParseMemory(TIMED_MENU_DATA(menu)->buf,
- TIMED_MENU_DATA(menu)->buflen);
+ i = parse_startup();
- node = xmlDocGetRootElement(doc);
+ if (parse_load_mem(TIMED_MENU_DATA(menu)->buf,
+ TIMED_MENU_DATA(menu)->buflen,
+ "timed_menu", &doc, &node))
+ parse_menu_full(i, doc, node, menu, FALSE);
- if (node &&
- !xmlStrcasecmp(node->name, (const xmlChar*) "timed_menu")) {
- parse_menu_full(doc, node, menu, FALSE);
- }
+ parse_shutdown(i);
timed_menu_clean_up(menu);
} else if (num_read > 0) {
@@ -205,6 +205,7 @@ void timed_menu_timeout_handler(ObTimer *t, void *d)
}
if (stat_buf.st_mtime > TIMED_MENU_DATA(data)->mtime) {
+ ObParseInst *i;
xmlDocPtr doc;
xmlNodePtr node;
@@ -214,14 +215,13 @@ void timed_menu_timeout_handler(ObTimer *t, void *d)
data->invalid = TRUE;
menu_clear(data);
- doc = xmlParseFile(TIMED_MENU_DATA(data)->command);
+ i = parse_startup();
- node = xmlDocGetRootElement(doc);
+ if (parse_load(TIMED_MENU_DATA(data)->command,
+ "timed_menu", &doc, &node))
+ parse_menu_full(i, doc, node, data, FALSE);
- if (node &&
- !xmlStrcasecmp(node->name, (const xmlChar*) "timed_menu")) {
- parse_menu_full(doc, node, data, FALSE);
- }
+ parse_shutdown(i);
timed_menu_clean_up(data);
}