aboutsummaryrefslogtreecommitdiffstats
path: root/parsetagx.h
diff options
context:
space:
mode:
authorAkinori Ito <aito@eie.yz.yamagata-u.ac.jp>2001-11-08 05:14:08 +0000
committerAkinori Ito <aito@eie.yz.yamagata-u.ac.jp>2001-11-08 05:14:08 +0000
commit68a07bf03b7624c9924065cce9ffa45497225834 (patch)
treec2adb06a909a8594445e4a3f8587c4bad46e3ecd /parsetagx.h
downloadw3m-68a07bf03b7624c9924065cce9ffa45497225834.tar.gz
w3m-68a07bf03b7624c9924065cce9ffa45497225834.zip
Initial revision
Diffstat (limited to 'parsetagx.h')
-rw-r--r--parsetagx.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/parsetagx.h b/parsetagx.h
new file mode 100644
index 0000000..6014784
--- /dev/null
+++ b/parsetagx.h
@@ -0,0 +1,28 @@
+#ifndef PARSETAGX_H
+#define PARSETAGX_H
+
+#include "html.h"
+#include "Str.h"
+
+/* Parsed Tag structure */
+
+struct parsed_tag {
+ unsigned char tagid;
+ char *tagname;
+ unsigned char *attrid;
+ char **value;
+ unsigned char *map;
+ char need_reconstruct;
+};
+
+#define parsedtag_accepts(tag, id) ((tag)->map&&(tag)->map[id]!=MAX_TAGATTR)
+#define parsedtag_exists(tag, id) (parsedtag_accepts(tag,id)&&((tag)->attrid[(tag)->map[id]]!=ATTR_UNKNOWN))
+#define parsedtag_delete(tag, id) (parsedtag_accepts(tag,id)&&((tag)->attrid[(tag)->map[id]]=ATTR_UNKNOWN))
+#define parsedtag_need_reconstruct(tag) ((tag)->need_reconstruct)
+#define parsedtag_attname(tag, i) (AttrMAP[(tag)->attrid[i]].name)
+
+extern struct parsed_tag *parse_tag(char **s, int internal);
+extern int parsedtag_get_value(struct parsed_tag *tag, int id, void *value);
+extern int parsedtag_set_value(struct parsed_tag *tag, int id, char *value);
+extern Str parsedtag2str(struct parsed_tag *tag);
+#endif