diff options
Diffstat (limited to 'parsetagx.h')
-rw-r--r-- | parsetagx.h | 28 |
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 |