Intial commit
[profile/ivi/w3m.git] / parsetagx.h
1 /* $Id: parsetagx.h,v 1.4 2001/11/24 02:01:26 ukai Exp $ */
2 #ifndef PARSETAGX_H
3 #define PARSETAGX_H
4
5 #include "html.h"
6 #include "Str.h"
7
8 /* Parsed Tag structure */
9
10 struct parsed_tag {
11     unsigned char tagid;
12     unsigned char *attrid;
13     char **value;
14     unsigned char *map;
15     char need_reconstruct;
16 };
17
18 #define parsedtag_accepts(tag, id) ((tag)->map&&(tag)->map[id]!=MAX_TAGATTR)
19 #define parsedtag_exists(tag, id)  (parsedtag_accepts(tag,id)&&((tag)->attrid[(tag)->map[id]]!=ATTR_UNKNOWN))
20 #define parsedtag_delete(tag, id)  (parsedtag_accepts(tag,id)&&((tag)->attrid[(tag)->map[id]]=ATTR_UNKNOWN))
21 #define parsedtag_need_reconstruct(tag) ((tag)->need_reconstruct)
22 #define parsedtag_attname(tag, i) (AttrMAP[(tag)->attrid[i]].name)
23
24 extern struct parsed_tag *parse_tag(char **s, int internal);
25 extern int parsedtag_get_value(struct parsed_tag *tag, int id, void *value);
26 extern int parsedtag_set_value(struct parsed_tag *tag, int id, char *value);
27 extern Str parsedtag2str(struct parsed_tag *tag);
28 #endif