3 typedef struct List List;
4 typedef struct Strlist Strlist;
6 // List of integers (and also generic list with next pointer at beginning)
19 extern int _inclass(Rune c, Rune* cl);
20 extern int _listlen(List* l);
21 extern List* _newlist(int val, List* rest);
22 extern Rune* _newstr(int n);
23 extern int _prefix(Rune* pre, Rune* s);
24 extern List* _revlist(List* l);
25 extern void _splitl(Rune* s, int n, Rune* cl, Rune** p1, int* n1, Rune** p2, int* n2);
26 extern void _splitr(Rune* s, int n, Rune* cl, Rune** p1, int* n1, Rune** p2, int* n2);
27 extern int _splitall(Rune* s, int n, Rune* cl, Rune** strarr, int* lenarr, int alen);
28 extern Rune* _Stradd(Rune*s1, Rune* s2, int n);
29 extern Rune* _Strclass(Rune* s, Rune* cl);
30 extern int _Strcmp(Rune* s1, Rune* s2);
31 extern Rune* _Strdup(Rune* s);
32 extern Rune* _Strdup2(Rune* s, Rune* t);
33 extern int _Streqn(Rune* s1, int n1, Rune* s2);
34 extern int _Strlen(Rune* s);
35 extern Rune* _Strnclass(Rune* s, Rune* cl, int n);
36 extern int _Strncmpci(Rune* s1, int n1, Rune* s2);
37 extern Rune* _Strndup(Rune* s, int n);
38 extern Rune* _Strnrclass(Rune* s, Rune* cl, int n);
39 extern Rune* _Strrclass(Rune* s, Rune* cl);
40 extern Rune* _Strsubstr(Rune* s, int start, int stop);
41 extern long _Strtol(Rune* s, Rune** eptr, int base);
42 extern void _trimwhite(Rune* s, int n, Rune** pans, int* panslen);
44 extern Rune* notwhitespace;
45 extern Rune* whitespace;
48 typedef struct StringInt StringInt;
50 // Element of String-Int table (used for keyword lookup)
57 extern int _lookup(StringInt* t, int n, Rune* key, int keylen, int* pans);
58 extern StringInt* _makestrinttab(Rune** a, int n);
59 extern Rune* _revlookup(StringInt* t, int n, int val);
61 // Colors, in html format, not Plan 9 format. (RGB values in bottom 3 bytes)
70 // HTML 4.0 tags (plus blink, nobr)
71 // sorted in lexical order; used as array indices
75 Ta, Tabbr, Tacronym, Taddress, Tapplet, Tarea,
76 Tb, Tbase, Tbasefont, Tbdo, Tbig, Tblink,
77 Tblockquote, Tbody, Tbq, Tbr, Tbutton,
78 Tcaption, Tcenter, Tcite, Tcode, Tcol, Tcolgroup,
79 Tdd, Tdel, Tdfn, Tdir, Tdiv, Tdl, Tdt,
81 Tfieldset, Tfont, Tform, Tframe, Tframeset,
82 Th1, Th2, Th3, Th4, Th5, Th6,
84 Ti, Tiframe, Timg, Tinput, Tins, Tisindex,
86 Tlabel, Tlegend, Tli, Tlink,
88 Tnobr, Tnoframes, Tnoscript,
89 Tobject, Tol, Toptgroup, Toption,
92 Ts, Tsamp, Tscript, Tselect, Tsmall,
93 Tspan, Tstrike, Tstrong, Tstyle, Tsub, Tsup,
94 Ttable, Ttbody, Ttd, Ttextarea, Ttfoot,
95 Tth, Tthead, Ttitle, Ttr, Ttt,
103 // HTML 4.0 tag attributes
104 // Keep sorted in lexical order
106 Aabbr, Aaccept_charset, Aaccess_key, Aaction,
107 Aalign, Aalink, Aalt, Aarchive, Aaxis,
108 Abackground, Abgcolor, Aborder,
109 Acellpadding, Acellspacing, Achar, Acharoff,
110 Acharset, Achecked, Acite, Aclass, Aclassid,
111 Aclear, Acode, Acodebase, Acodetype, Acolor,
112 Acols, Acolspan, Acompact, Acontent, Acoords,
113 Adata, Adatetime, Adeclare, Adefer, Adir, Adisabled,
115 Aface, Afor, Aframe, Aframeborder,
116 Aheaders, Aheight, Ahref, Ahreflang, Ahspace, Ahttp_equiv,
118 Alabel, Alang, Alink, Alongdesc,
119 Amarginheight, Amarginwidth, Amaxlength,
120 Amedia, Amethod, Amultiple,
121 Aname, Anohref, Anoresize, Anoshade, Anowrap,
122 Aobject, Aonblur, Aonchange, Aonclick, Aondblclick,
123 Aonfocus, Aonkeypress, Aonkeyup, Aonload,
124 Aonmousedown, Aonmousemove, Aonmouseout,
125 Aonmouseover, Aonmouseup, Aonreset, Aonselect,
126 Aonsubmit, Aonunload,
128 Areadonly, Arel, Arev, Arows, Arowspan, Arules,
129 Ascheme, Ascope, Ascrolling, Aselected, Ashape,
130 Asize, Aspan, Asrc, Astandby, Astart, Astyle, Asummary,
131 Atabindex, Atarget, Atext, Atitle, Atype,
133 Avalign, Avalue, Avaluetype, Aversion, Avlink, Avspace,
140 Attr* next; // in list of attrs for a token
141 int attid; // Aabbr, etc.
148 Rune* text; // text in Data, attribute text in tag
149 Attr* attr; // list of Attrs
150 int starti; // index into source buffer of token start
153 extern Rune* tagnames[];
154 extern Rune* attrnames[];
156 extern void _freetokens(Token* tarray, int n);
157 extern Token* _gettoks(uchar* data, int datalen, int chset, int mtype, int* plen);
158 extern int _tokaval(Token* t, int attid, Rune** pans, int xfer);
160 #pragma varargck type "T" Token*