diff options
Diffstat (limited to 'include/samus')
-rw-r--r-- | include/samus/xml.h | 22 | ||||
-rw-r--r-- | include/samus/zip.h | 28 |
2 files changed, 50 insertions, 0 deletions
diff --git a/include/samus/xml.h b/include/samus/xml.h new file mode 100644 index 00000000..04308b66 --- /dev/null +++ b/include/samus/xml.h @@ -0,0 +1,22 @@ +/* + * XML mini-dom based on Inferno's XML parser API. + * This one uses expat and in-memory objects though... :( + */ + +typedef struct sa_xmlnode_s sa_xmlnode; + +fz_error *sa_parsexml(sa_xmlnode **nodep, fz_file *file, int ns); +void sa_debugxml(sa_xmlnode *node, int level); +void sa_dropxml(sa_xmlnode *node); + +sa_xmlnode *sa_xmlup(sa_xmlnode *node); +sa_xmlnode *sa_xmlnext(sa_xmlnode *node); +sa_xmlnode *sa_xmldown(sa_xmlnode *node); + +int sa_isxmltext(sa_xmlnode *node); +int sa_isxmltag(sa_xmlnode *node); + +char *sa_getxmlname(sa_xmlnode *node); +char *sa_getxmlatt(sa_xmlnode *node, char *att); +char *sa_getxmltext(sa_xmlnode *node); + diff --git a/include/samus/zip.h b/include/samus/zip.h new file mode 100644 index 00000000..656fc731 --- /dev/null +++ b/include/samus/zip.h @@ -0,0 +1,28 @@ +/* + * ZIP archive + */ + +typedef struct sa_zip_s sa_zip; +typedef struct sa_zipent_s sa_zipent; + +struct sa_zipent_s +{ + unsigned offset; + unsigned csize; + unsigned usize; + char *name; +}; + +struct sa_zip_s +{ + fz_file *file; + int len; + sa_zipent *table; +}; + +fz_error *sa_openzip(sa_zip **zipp, char *filename); +void sa_debugzip(sa_zip *zip); +void sa_closezip(sa_zip *zip); +fz_error *sa_openzipstream(sa_zip *zip, char *name); +void sa_closezipstream(sa_zip *zip); + |