Merge branch 'master' into browser
[projects/chimara/chimara.git] / babel / ifiction.h
diff --git a/babel/ifiction.h b/babel/ifiction.h
new file mode 100644 (file)
index 0000000..75ae946
--- /dev/null
@@ -0,0 +1,45 @@
+/* ifiction.h  declarations for the babel ifiction API\r
+ * (c) 2006 By L. Ross Raszewski\r
+ *\r
+ * This code is freely usable for all purposes.\r
+ *\r
+ * This work is licensed under the Creative Commons Attribution2.5 License.\r
+ * To view a copy of this license, visit\r
+ * http://creativecommons.org/licenses/by/2.5/ or send a letter to\r
+ * Creative Commons,\r
+ * 543 Howard Street, 5th Floor,\r
+ * San Francisco, California, 94105, USA.\r
+ *\r
+ */\r
+\r
+#ifndef IFICTION_H\r
+#define IFICTION_H\r
+\r
+#include "treaty.h"\r
+\r
+/* Babel's notion of an XML tag */\r
+struct XMLTag\r
+{\r
+ int32 beginl;                  /* Beginning line number */\r
+ char tag[256];                 /* name of the tag */\r
+ char fulltag[256];             /* Full text of the opening tag */\r
+ char *begin;                   /* Points to the beginning of the tag's content */\r
+ char *end;                     /* Points to the end of the tag's content.\r
+                                   setting *end=0 will turn begin into a string\r
+                                   containing the tag's content (But if you do this, you\r
+                                   should restore the original value of *end before\r
+                                   allowing control to return to the ifiction parser) */\r
+ char occurences[256];          /* Tables used internally to find missing required tags */\r
+ char rocurrences[256];\r
+ struct XMLTag *next;           /* The tag's parent */\r
+\r
+};\r
+\r
+typedef void (*IFCloseTag)(struct XMLTag *, void *);\r
+typedef void (*IFErrorHandler)(char *, void *);\r
+\r
+\r
+void ifiction_parse(char *md, IFCloseTag close_tag, void *close_ctx, IFErrorHandler error_handler, void *error_ctx);\r
+int32 ifiction_get_IFID(char *metadata, char *output, int32 output_extent);\r
+char *ifiction_get_tag(char *md, char *p, char *t, char *from);\r
+#endif\r