summaryrefslogtreecommitdiff
path: root/xml.h
diff options
context:
space:
mode:
authorHiltjo Posthuma <hiltjo@codemadness.org>2013-05-20 19:25:51 +0200
committerHiltjo Posthuma <hiltjo@codemadness.org>2013-05-20 19:25:51 +0200
commit1519f5c5f209f3c213d7f18e60ef68b103b389ac (patch)
treee0c58a93a734e60b6b6faede4751f4469c99b588 /xml.h
parent1b4ca40c918664752bde2fa6d06f76a7585a4ecd (diff)
update xml parser, many optimizations and dos to unix newlines, much cleanup todo though
Signed-off-by: Hiltjo Posthuma <hiltjo@codemadness.org>
Diffstat (limited to 'xml.h')
-rw-r--r--xml.h73
1 files changed, 37 insertions, 36 deletions
diff --git a/xml.h b/xml.h
index fa535db..fae8992 100644
--- a/xml.h
+++ b/xml.h
@@ -1,36 +1,37 @@
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-typedef struct xmlparser {
- /* handlers */
- void (*xmltagstart)(struct xmlparser *p, const char *tag, size_t taglen);
- void (*xmltagstartparsed)(struct xmlparser *p, const char *tag, size_t taglen, int isshort);
- void (*xmltagend)(struct xmlparser *p, const char *tag, size_t taglen, int isshort);
- void (*xmldatastart)(struct xmlparser *p);
- void (*xmldata)(struct xmlparser *p, const char *data, size_t datalen);
- void (*xmldataend)(struct xmlparser *p);
- void (*xmldataentity)(struct xmlparser *p, const char *data, size_t datalen);
- void (*xmlattrstart)(struct xmlparser *p, const char *tag, size_t taglen, const char *name, size_t namelen);
- void (*xmlattr)(struct xmlparser *p, const char *tag, size_t taglen, const char *name, size_t namelen, const char *value, size_t valuelen);
- void (*xmlattrend)(struct xmlparser *p, const char *tag, size_t taglen, const char *name, size_t namelen);
- void (*xmlattrentity)(struct xmlparser *p, const char *tag, size_t taglen, const char *name, size_t namelen, const char *value, size_t valuelen);
- void (*xmlcdatastart)(struct xmlparser *p);
- void (*xmlcdata)(struct xmlparser *p, const char *data, size_t datalen);
- void (*xmlcdataend)(struct xmlparser *p);
- void (*xmlcommentstart)(struct xmlparser *p);
- void (*xmlcomment)(struct xmlparser *p, const char *comment, size_t commentlen);
- void (*xmlcommentend)(struct xmlparser *p);
-
- FILE *fp; /* stream to read from */
- /* private; internal state */
- char tag[1024]; /* current tag */
- size_t taglen;
- char data[BUFSIZ]; /* data buffer used for tag and attribute data */
- size_t readoffset;
- size_t readlastbytes;
- unsigned char readbuf[BUFSIZ]; /* read buffer used by xmlparser_getnext() */
-} XMLParser;
-
-void xmlparser_init(XMLParser *x);
-void xmlparser_parse(XMLParser *x);
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+typedef struct xmlparser {
+ /* handlers */
+ void (*xmltagstart)(struct xmlparser *p, const char *tag, size_t taglen);
+ void (*xmltagstartparsed)(struct xmlparser *p, const char *tag, size_t taglen, int isshort);
+ void (*xmltagend)(struct xmlparser *p, const char *tag, size_t taglen, int isshort);
+ void (*xmldatastart)(struct xmlparser *p);
+ void (*xmldata)(struct xmlparser *p, const char *data, size_t datalen);
+ void (*xmldataend)(struct xmlparser *p);
+ void (*xmldataentity)(struct xmlparser *p, const char *data, size_t datalen);
+ void (*xmlattrstart)(struct xmlparser *p, const char *tag, size_t taglen, const char *name, size_t namelen);
+ void (*xmlattr)(struct xmlparser *p, const char *tag, size_t taglen, const char *name, size_t namelen, const char *value, size_t valuelen);
+ void (*xmlattrend)(struct xmlparser *p, const char *tag, size_t taglen, const char *name, size_t namelen);
+ void (*xmlattrentity)(struct xmlparser *p, const char *tag, size_t taglen, const char *name, size_t namelen, const char *value, size_t valuelen);
+ void (*xmlcdatastart)(struct xmlparser *p);
+ void (*xmlcdata)(struct xmlparser *p, const char *data, size_t datalen);
+ void (*xmlcdataend)(struct xmlparser *p);
+ void (*xmlcommentstart)(struct xmlparser *p);
+ void (*xmlcomment)(struct xmlparser *p, const char *comment, size_t commentlen);
+ void (*xmlcommentend)(struct xmlparser *p);
+
+ FILE *fp; /* stream to read from */
+ /* private; internal state */
+ char tag[1024]; /* current tag */
+ size_t taglen;
+ char name[256]; /* current attribute name */
+ char data[BUFSIZ]; /* data buffer used for tag and attribute data */
+ size_t readoffset;
+ size_t readlastbytes;
+ unsigned char readbuf[BUFSIZ]; /* read buffer used by xmlparser_getnext() */
+} XMLParser;
+
+void xmlparser_init(XMLParser *x);
+void xmlparser_parse(XMLParser *x);