X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=plugins%2Fmenu%2Ffifo_menu.c;fp=plugins%2Fmenu%2Ffifo_menu.c;h=c096a9d3ac7975143d180e20f415c1051c82eef3;hb=1045079482453424f8320de99639390e3020eb72;hp=cb35579e549ef156710bcb59714be2aad5635264;hpb=9ea78a4eb0255e8cca6258e5ceb4bfd3e9e9d59e;p=chaz%2Fopenbox 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);