4 * 16. Conditional acceptance of input.
7 * c - condition letter (o, e, t, n)
14 * \{xxx\} can be used for newline in bodies
28 while((c = getrune()) == ' ' || c == '\t')
39 for(cc=0; (c = getrune()) >= 0; cc=c){
40 if(c == '\n' && nbrace <= 0)
42 if(cc == '\\' && c == '{')
44 if(cc == '\\' && c == '}')
53 Rune line[MaxLine], *p, *e, *q;
56 while((c = getnext()) == ' ' || c == '\t')
64 if('0' <= c && c <= '9'){
67 c = (eval(a)>0) ^ neg;
77 case 'o': /* odd page */
79 case 'h': /* htmlroff */
80 while((c = getrune()) != ' ' && c != '\t' && c != '\n' && c >= 0)
84 case 'e': /* even page */
85 while((c = getnext()) != ' ' && c != '\t' && c != '\n' && c >= 0)
90 /* string comparison 'string1'string2' */
95 while((cc=getnext()) >= 0 && cc != '\n' && p<e){
111 return (q-line == p-(q+1)
112 && memcmp(line, q+1, (q-line)*sizeof(Rune))==0) ^ neg;
121 if(runestrcmp(name, L("ie")) == 0){
122 if(niftrue >= nelem(iftrue))
123 sysfatal("%Cie overflow", dot);
124 iftrue[niftrue++] = n;
138 warn("%Cel underflow", dot);
141 if(iftrue[--niftrue])
150 addraw(L("if"), r_if);
151 addraw(L("ie"), r_if);
152 addraw(L("el"), r_el);
154 addesc('{', e_nop, HtmlMode|ArgMode);
155 addesc('}', e_nop, HtmlMode|ArgMode);