diff options
author | JP Rosevear <jpr@helixcode.com> | 2000-09-21 00:38:16 +0800 |
---|---|---|
committer | JP Rosevear <jpr@src.gnome.org> | 2000-09-21 00:38:16 +0800 |
commit | e6c1d16b60384de66e05598967c11647e3a31ad0 (patch) | |
tree | 5c07e88e9777c1f48621dcf92b3868f135c19a3c | |
parent | 30392b4e49833a64ae612f3b55c6e220cbe24bd2 (diff) | |
download | gsoc2013-evolution-e6c1d16b60384de66e05598967c11647e3a31ad0.tar.gz gsoc2013-evolution-e6c1d16b60384de66e05598967c11647e3a31ad0.tar.zst gsoc2013-evolution-e6c1d16b60384de66e05598967c11647e3a31ad0.zip |
Use a local sax handler.
2000-09-20 JP Rosevear <jpr@helixcode.com>
* pcs/cal-backend.c (cal_backend_get_log_entries): Use a local
sax handler.
* conduits/todo/todo-conduit.c (pre_sync): Use xmlSAXParseFile
(map_sax_parse): Delete
svn path=/trunk/; revision=5524
-rw-r--r-- | calendar/ChangeLog | 8 | ||||
-rw-r--r-- | calendar/conduits/todo/todo-conduit.c | 35 | ||||
-rw-r--r-- | calendar/pcs/cal-backend.c | 33 |
3 files changed, 15 insertions, 61 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 2374ce7a5b..0ed078db56 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,5 +1,13 @@ 2000-09-20 JP Rosevear <jpr@helixcode.com> + * pcs/cal-backend.c (cal_backend_get_log_entries): Use a local + sax handler. + + * conduits/todo/todo-conduit.c (pre_sync): Use xmlSAXParseFile + (map_sax_parse): Delete + +2000-09-20 JP Rosevear <jpr@helixcode.com> + * pcs/cal-backend.c (cal_backend_log_sax_start_element): Properly assign the CalObjChange type. (cal_backend_log_sax_parse): Delete diff --git a/calendar/conduits/todo/todo-conduit.c b/calendar/conduits/todo/todo-conduit.c index 6b9659f70f..f456b6e81d 100644 --- a/calendar/conduits/todo/todo-conduit.c +++ b/calendar/conduits/todo/todo-conduit.c @@ -186,36 +186,6 @@ map_sax_start_element (void *data, const xmlChar *name, } } -static int -map_sax_parse (xmlSAXHandler *handler, EToDoConduitContext *ctxt, const char *filename) -{ - int ret = 0; - xmlParserCtxtPtr xc; - - if (!g_file_exists (filename)) - return 0; - - xc = xmlCreateFileParserCtxt (filename); - if (xc == NULL) - return -1; - - xc->sax = handler; - xc->userData = (void *)ctxt; - - xmlParseDocument (xc); - - if (xc->wellFormed) - ret = 0; - else - ret = -1; - - if (handler != NULL) - xc->sax = NULL; - xmlFreeParserCtxt(xc); - - return ret; -} - static void map_write_foreach (gpointer key, gpointer value, gpointer data) { @@ -615,9 +585,8 @@ pre_sync (GnomePilotConduit *conduit, handler.startElement = map_sax_start_element; filename = map_name (ctxt); - ret = map_sax_parse (&handler, ctxt, filename); - if (ret < 0) - return ret; + if (xmlSAXUserParseFile (&logSAXParser, ctxt, filename) < 0) + return -1; g_free (filename); diff --git a/calendar/pcs/cal-backend.c b/calendar/pcs/cal-backend.c index 106fab28f8..350c53a78d 100644 --- a/calendar/pcs/cal-backend.c +++ b/calendar/pcs/cal-backend.c @@ -637,36 +637,10 @@ cal_backend_log_sax_end_element (CalBackendParseState *state, const CHAR *name) } } -static xmlSAXHandler logSAXParser = { - 0, /* internalSubset */ - 0, /* isStandalone */ - 0, /* hasInternalSubset */ - 0, /* hasExternalSubset */ - 0, /* resolveEntity */ - 0, /* getEntity */ - 0, /* entityDecl */ - 0, /* notationDecl */ - 0, /* attributeDecl */ - 0, /* elementDecl */ - 0, /* unparsedEntityDecl */ - 0, /* setDocumentLocator */ - 0, /* startDocument */ - 0, /* endDocument */ - (startElementSAXFunc)cal_backend_log_sax_start_element, /* startElement */ - (endElementSAXFunc)cal_backend_log_sax_end_element, /* endElement */ - 0, /* reference */ - 0, /* characters */ - 0, /* ignorableWhitespace */ - 0, /* processingInstruction */ - 0, /* comment */ - 0, /* warning */ - 0, /* error */ - 0, /* fatalError */ -}; - static GHashTable * cal_backend_get_log_entries (CalBackend *backend, CalObjType type, time_t since) { + xmlSAXHandler handler; CalBackendParseState state; GHashTable *hash; char *filename; @@ -678,7 +652,9 @@ cal_backend_get_log_entries (CalBackend *backend, CalObjType type, time_t since) if (!cal_backend_log_sync (backend)) return NULL; - filename = cal_backend_log_name (backend->uri); + memset (&handler, 0, sizeof (xmlSAXHandler)); + handler.startElement = (startElementSAXFunc)cal_backend_log_sax_start_element; + handler.endElement = (endElementSAXFunc)cal_backend_log_sax_end_element; hash = g_hash_table_new (g_str_hash, g_str_equal); @@ -687,6 +663,7 @@ cal_backend_get_log_entries (CalBackend *backend, CalObjType type, time_t since) state.in_valid_timestamp = FALSE; state.hash = hash; + filename = cal_backend_log_name (backend->uri); if (xmlSAXUserParseFile (&logSAXParser, &state, filename) < 0) return NULL; |