Lines Matching refs:pp

33 #define REFONE	(pp.truncate?(Hash_table_t*)0:pp.symtab)
34 #define REFALL (pp.truncate?pp.dirtab:pp.symtab)
48 r = p == &pp.state ? &pp.ro_state : p == &pp.mode ? &pp.ro_mode : &pp.ro_option; in set()
49 if (!(pp.mode & INIT) || !(pp.in->type == IN_FILE) || !(*r & op)) in set()
51 if (!pp.initialized && !(pp.mode & INIT)) in set()
58 …g((-7, "set(%s)=%s", p == &pp.state ? "state" : p == &pp.mode ? "mode" : "option", p == &pp.state … in set()
119 old_state = pp.state; in ppmapinclude()
131 s = t = strcopy(pp.tmpbuf, error_info.file); in ppmapinclude()
135 if (s <= pp.tmpbuf || *s == '/') in ppmapinclude()
145 file = pp.tmpbuf; in ppmapinclude()
154 pp.state |= (COMPILE|FILEPOP|HEADER|JOINING|STRIP|NOSPACE|PASSEOF); in ppmapinclude()
156 pp.state |= (COMPILE|FILEPOP|HEADER|STRIP|NOSPACE|PASSEOF); in ppmapinclude()
158 pp.level++; in ppmapinclude()
171 for (dp = pp.firstdir->next; dp; dp = dp->next) in ppmapinclude()
180 pathcanon(pp.token, 0); in ppmapinclude()
181 fp = ppsetfile(pp.token); in ppmapinclude()
203 if (streq(pp.token, "all")) in ppmapinclude()
208 else if (streq(pp.token, "hosted")) in ppmapinclude()
213 else if (streq(pp.token, "nohosted")) in ppmapinclude()
220 error(3, "%s unexpected in %s map list", pptokstr(pp.token, 0), dirname(INCLUDE)); in ppmapinclude()
225 pp.level--; in ppmapinclude()
227 pp.state = old_state; in ppmapinclude()
252 return !strchr(b, ' ') && !strneq(b, "__STD", 5) ? strncmp(a, b, pp.truncate) : strcmp(a, b); in trunccomp()
266 …return memhash(a, (n = strlen(a)) > pp.truncate && !strchr(a, ' ') && !strneq(a, "__STD", 5) ? pp.… in trunchash()
281 if (error_info.trace <= -10 && pp.state != state) in context()
283 state = pp.state; in context()
284 sfprintf(sp, " %s", ppstatestr(pp.state)); in context()
359 if (pp.initialized) in ppop()
363 if (pp.lastop) in ppop()
364 pp.lastop = (pp.lastop->next = newof(0, struct oplist, 1, 0)); in ppop()
366 pp.firstop = pp.lastop = newof(0, struct oplist, 1, 0); in ppop()
367 pp.lastop->op = op; in ppop()
368 pp.lastop->value = p; in ppop()
372 pp.builtin = va_arg(ap, PPBUILTIN); in ppop()
377 pp.cdir.path = 0; in ppop()
379 pp.c = c; in ppop()
382 pp.c = c; in ppop()
383 for (dp = pp.firstdir; dp; dp = dp->next) in ppop()
386 else if (!pp.c) in ppop()
389 pp.c = c; in ppop()
392 for (dp = pp.firstdir; dp; dp = dp->next) in ppop()
394 if (!pp.c && (dp->c || dp->name && SAMEID(&dp->id, &st))) in ppop()
395 pp.c = 1; in ppop()
396 dp->c = pp.c == 1; in ppop()
398 if (!pp.c) in ppop()
400 pp.cdir.path = p; in ppop()
401 SAVEID(&pp.cdir.id, &st); in ppop()
426 xp->next = pp.chop; in ppop()
427 pp.chop = xp; in ppop()
431 if (pp.comment = va_arg(ap, PPCOMMENT)) in ppop()
432 pp.flags |= PP_comment; in ppop()
434 pp.flags &= ~PP_comment; in ppop()
437 set(&pp.state, COMPATIBILITY, va_arg(ap, int)); in ppop()
439 if (pp.initialized) in ppop()
442 if (pp.state & COMPATIBILITY) in ppop()
445 if (pp.state & COMPATIBILITY) in ppop()
446 pp.flags |= PP_compatibility; in ppop()
448 pp.flags &= ~PP_compatibility; in ppop()
451 if (pp.initialized) in ppop()
453 pp.state |= COMPILE; in ppop()
454 if (!pp.symtab) in ppop()
455 pp.symtab = hashalloc(NiL, HASH_name, "symbols", 0); in ppop()
467 if (!(pp.option & PLUSPLUS)) in ppop()
474 if (key = ppkeyset(pp.symtab, s)) in ppop()
487 if (pp.ppdefault) in ppop()
488 free(pp.ppdefault); in ppop()
489 pp.ppdefault = p; in ppop()
493 if (pp.mode & DUMP) in ppop()
496 if (pp.mode & FILEDEPS) in ppop()
498 sfputc(pp.filedeps.sp, '\n'); in ppop()
499 if (pp.filedeps.sp == sfstdout) in ppop()
500 sfsync(pp.filedeps.sp); in ppop()
502 sfclose(pp.filedeps.sp); in ppop()
504 if (pp.state & STANDALONE) in ppop()
506 if ((pp.state & (NOTEXT|HIDDEN)) == HIDDEN && pplastout() != '\n') in ppop()
513 set(&pp.mode, DUMP, va_arg(ap, int)); in ppop()
515 if (pp.mode & DUMP) in ppop()
521 pp.filedeps.flags |= n; in ppop()
523 pp.filedeps.flags = 0; in ppop()
529 if (!(pp.mode & INIT)) in ppop()
530 pp.ro_mode |= HOSTED; in ppop()
531 else if (pp.ro_mode & HOSTED) in ppop()
533 pp.ro_mode |= INIT; in ppop()
536 pp.hostdir.path = 0; in ppop()
538 pp.hosted = c; in ppop()
541 if (pp.initialized) in ppop()
542 set(&pp.mode, HOSTED, c); in ppop()
545 pp.hosted = c ? 1 : 2; in ppop()
546 for (dp = pp.firstdir; dp; dp = dp->next) in ppop()
547 if (pp.hosted == 1) in ppop()
553 else if (!pp.hosted) in ppop()
556 pp.hosted = 1; in ppop()
559 for (dp = pp.firstdir; dp; dp = dp->next) in ppop()
561 if (!pp.hosted && ((dp->type & TYPE_HOSTED) || dp->name && SAMEID(&dp->id, &st))) in ppop()
562 pp.hosted = 1; in ppop()
563 if (pp.hosted == 1) in ppop()
568 if (!pp.hosted) in ppop()
570 pp.hostdir.path = p; in ppop()
571 SAVEID(&pp.hostdir.id, &st); in ppop()
591 if (pp.initialized) in ppop()
593 pp.ignore = va_arg(ap, char*); in ppop()
601 for (dp = pp.stddirs; dp = dp->next;) in ppop()
604 if (pp.cdir.path && SAMEID(&pp.cdir.id, &st)) in ppop()
606 pp.cdir.path = 0; in ppop()
607 pp.c = 1; in ppop()
609 if (pp.hostdir.path && SAMEID(&pp.hostdir.id, &st)) in ppop()
611 pp.hostdir.path = 0; in ppop()
612 pp.hosted = 1; in ppop()
614 if ((pp.mode & INIT) && !(pp.ro_mode & INIT)) in ppop()
615 pp.hosted = 1; in ppop()
616 c = dp && dp->c || pp.c == 1; in ppop()
617 n = dp && (dp->type & TYPE_HOSTED) || pp.hosted == 1; in ppop()
618 if (!dp || dp == pp.lastdir->next) in ppop()
629 dp->index = INC_LOCAL + pp.ignoresrc != 0; in ppop()
630 dp->next = pp.lastdir->next; in ppop()
631 pp.lastdir = pp.lastdir->next = dp; in ppop()
641 pp.incref = va_arg(ap, PPINCREF); in ppop()
644 pp.reset.on = 1; in ppop()
647 if (pp.initialized) in ppop()
670 error_info.version = (char*)pp.version; in ppop()
686 pp.macp = newof(0, struct ppmacstk, DEFMACSTACK, 0); in ppop()
687 pp.macp->next = pp.macp + 1; in ppop()
688 pp.maxmac = (char*)pp.macp + DEFMACSTACK; in ppop()
695 pp.control = newof(0, long, pp.constack, 0); in ppop()
696 pp.maxcon = pp.control + pp.constack - 1; in ppop()
703 switch (pp.arg_mode) in ppop()
739 if (!(pp.state & WARN) && !(pp.arg_style & STYLE_gnu)) in ppop()
741 if (pp.state & PASSTHROUGH) in ppop()
743 if (pp.state & COMPILE) in ppop()
745 pp.state &= ~PASSTHROUGH; in ppop()
753 set(&pp.state, DISABLE, va_arg(ap, int)); in ppop()
761 if (!pp.symtab) in ppop()
762 pp.symtab = hashalloc(NiL, HASH_name, "symbols", 0); in ppop()
763 if (!pp.dirtab) in ppop()
765 pp.dirtab = hashalloc(REFONE, HASH_name, "directives", 0); in ppop()
766 inithash(pp.dirtab, directives); in ppop()
768 if (!pp.filtab) in ppop()
769 pp.filtab = hashalloc(REFALL, HASH_name, "files", 0); in ppop()
770 if (!pp.prdtab) in ppop()
771 pp.prdtab = hashalloc(REFALL, HASH_name, "predicates", 0); in ppop()
772 if (!pp.strtab) in ppop()
774 pp.strtab = hashalloc(REFALL, HASH_name, "strings", 0); in ppop()
775 inithash(pp.strtab, options); in ppop()
776 inithash(pp.strtab, predicates); in ppop()
777 inithash(pp.strtab, variables); in ppop()
779 pp.optflags[X_PROTOTYPED] = OPT_GLOBAL; in ppop()
780 pp.optflags[X_SYSTEM_HEADER] = OPT_GLOBAL|OPT_PASS; in ppop()
797 hashset(pp.dirtab, HASH_ALLOCATE); in ppop()
798 hashset(pp.filtab, HASH_ALLOCATE); in ppop()
799 hashset(pp.prdtab, HASH_ALLOCATE); in ppop()
800 hashset(pp.strtab, HASH_ALLOCATE); in ppop()
801 hashset(pp.symtab, HASH_ALLOCATE); in ppop()
802 if (pp.test & TEST_nonoise) in ppop()
808 if (!(pp.test & TEST_noinit)) in ppop()
824 pp.pass, in ppop()
828 pp.pass, in ppop()
831 if (pp.ppdefault && *pp.ppdefault) in ppop()
833 if (pp.probe) in ppop()
835 c = pp.lastdir->next->type; in ppop()
836 pp.lastdir->next->type = 0; in ppop()
838 if (ppsearch(pp.ppdefault, T_STRING, SEARCH_EXISTS) < 0) in ppop()
840 free(pp.ppdefault); in ppop()
841 if (!(pp.ppdefault = pathprobe(pp.path, NiL, "C", pp.pass, pp.probe ? pp.probe : PPPROBE, 0))) in ppop()
842 error(1, "cannot determine default definitions for %s", pp.probe ? pp.probe : PPPROBE); in ppop()
844 if (pp.probe) in ppop()
845 pp.lastdir->next->type = c; in ppop()
847 while (pp.firstop) in ppop()
849 switch (pp.firstop->op) in ppop()
852 sfprintf(sp, "#%s #%s\n", dirname(DEFINE), pp.firstop->value); in ppop()
855 if (*pp.firstop->value == '#') in ppop()
856 sfprintf(sp, "#%s %s\n", dirname(DEFINE), pp.firstop->value); in ppop()
859 if (s = strchr(pp.firstop->value, '=')) in ppop()
860 … sfprintf(sp, "#%s %-.*s %s\n", dirname(DEFINE), s - pp.firstop->value, pp.firstop->value, s + 1); in ppop()
862 sfprintf(sp, "#%s %s 1\n", dirname(DEFINE), pp.firstop->value); in ppop()
866 sfprintf(sp, "#%s\n", pp.firstop->value); in ppop()
869 if (s = strchr(pp.firstop->value, '=')) in ppop()
870 …sfprintf(sp, "#%s %s:%-.*s %s\n", dirname(PRAGMA), pp.pass, s - pp.firstop->value, pp.firstop->val… in ppop()
872 sfprintf(sp, "#%s %s:%s\n", dirname(PRAGMA), pp.pass, pp.firstop->value); in ppop()
875 sfprintf(sp, "#%s \"%s\"\n", dirname(INCLUDE), pp.firstop->value); in ppop()
878 sfprintf(sp, "#%s %s\n", dirname(UNDEF), pp.firstop->value); in ppop()
881 pp.lastop = pp.firstop; in ppop()
882 pp.firstop = pp.firstop->next; in ppop()
883 free(pp.lastop); in ppop()
893 , pp.pass in ppop()
896 , pp.pass in ppop()
920 , pp.pass in ppop()
923 , pp.pass in ppop()
944 , pp.pass in ppop()
947 if (!pp.truncate) in ppop()
967 , pp.pass in ppop()
970 , pp.pass in ppop()
973 if (pp.ppdefault && *pp.ppdefault) in ppop()
974 sfprintf(sp, "#%s \"%s\"\n", dirname(INCLUDE), pp.ppdefault); in ppop()
987 ppcomment = pp.comment; in ppop()
988 pp.comment = 0; in ppop()
989 pplinesync = pp.linesync; in ppop()
990 pp.linesync = 0; in ppop()
991 PUSH_INIT(pp.pass, t); in ppop()
992 pp.mode |= INIT; in ppop()
994 pp.mode &= ~INIT; in ppop()
995 pp.comment = ppcomment; in ppop()
996 pp.linesync = pplinesync; in ppop()
997 pp.prefix = 0; in ppop()
1000 for (dp = pp.firstdir; dp; dp = dp->next) in ppop()
1004 if (pp.test & TEST_nonoise) in ppop()
1016 if ((preroot = (struct pplist*)hashget(pp.prdtab, "preroot"))) in ppop()
1020 if (pp.ignoresrc) in ppop()
1022 if (pp.ignoresrc > 1 && pp.stddirs != pp.firstdir) in ppop()
1023 …error(1, "directories up to and including %s are for \"...\" include files only", pp.stddirs->name… in ppop()
1024 pp.lcldirs = pp.lcldirs->next; in ppop()
1026 if (pp.ignore) in ppop()
1028 if (*pp.ignore) in ppop()
1029 ppmapinclude(pp.ignore, NiL); in ppop()
1031 pp.ignore = 0; in ppop()
1033 if (pp.standalone) in ppop()
1034 pp.state |= STANDALONE; in ppop()
1039 pp.initialized = 1; in ppop()
1040 if (pp.reset.on) in ppop()
1042 pp.reset.symtab = pp.symtab; in ppop()
1043 pp.symtab = 0; in ppop()
1044 pp.reset.ro_state = pp.ro_state; in ppop()
1045 pp.reset.ro_mode = pp.ro_mode; in ppop()
1046 pp.reset.ro_option = pp.ro_option; in ppop()
1049 if (pp.reset.on) in ppop()
1051 if (pp.symtab) in ppop()
1053 hashwalk(pp.filtab, 0, unguard, NiL); in ppop()
1054 hashfree(pp.symtab); in ppop()
1056pp.symtab = hashalloc(NiL, HASH_name, "symbols", HASH_free, undefine, HASH_set, HASH_ALLOCATE|HASH… in ppop()
1057 hashview(pp.symtab, pp.reset.symtab); in ppop()
1058 pp.ro_state = pp.reset.ro_state; in ppop()
1059 pp.ro_mode = pp.reset.ro_mode; in ppop()
1060 pp.ro_option = pp.reset.ro_option; in ppop()
1063 if (pp.mode & DUMP) in ppop()
1065 if (!pp.pragma) in ppop()
1067 (*pp.pragma)(dirname(PRAGMA), pp.pass, keyname(X_CHECKPOINT), pp.checkpoint, 1); in ppop()
1070 if (n = pp.filedeps.flags) in ppop()
1074 pp.state |= NOTEXT; in ppop()
1075 pp.option |= KEEPNOTEXT; in ppop()
1076 pp.linesync = 0; in ppop()
1079 pp.mode |= GENDEPS; in ppop()
1081 pp.mode &= ~HEADERDEPS; in ppop()
1082 else if (!(pp.mode & FILEDEPS)) in ppop()
1083 pp.mode |= HEADERDEPS; in ppop()
1084 pp.mode |= FILEDEPS; in ppop()
1091 if (pp.firstdir->type & TYPE_HOSTED) in ppop()
1092 pp.mode |= MARKHOSTED; in ppop()
1094 pp.mode &= ~MARKHOSTED; in ppop()
1096 if (!(pp.mode & DUMP)) in ppop()
1112 if (pp.mode & FILEDEPS) in ppop()
1120 s = strcpy(pp.tmpbuf, s); in ppop()
1136 if (pp.state & NOTEXT) in ppop()
1137 pp.filedeps.sp = sfstdout; in ppop()
1141 if (!(pp.filedeps.sp = sfopen(NiL, s, "w"))) in ppop()
1145 pp.column = sfprintf(pp.filedeps.sp, "%s :", s); in ppop()
1147 pp.column += sfprintf(pp.filedeps.sp, " %s", error_info.file); in ppop()
1149 if (xp = pp.firsttx) in ppop()
1165 if (!(pp.mode & DUMP) || pp.pool.input) in ppop()
1168 if (!(pp.mode & DUMP)) in ppop()
1171 if (pp.pool.input) in ppop()
1184 set(&pp.mode, CATLITERAL, 0); in ppop()
1191 if (pp.initialized) in ppop()
1195 if (pp.lasttx) in ppop()
1196 pp.lasttx = pp.lasttx->next = newof(0, struct oplist, 1, 0); in ppop()
1198 pp.firsttx = pp.lasttx = newof(0, struct oplist, 1, 0); in ppop()
1199 pp.lasttx->op = op; in ppop()
1200 pp.lasttx->value = p; in ppop()
1204 if (pp.initialized) in ppop()
1206 set(&pp.option, KEYARGS, va_arg(ap, int)); in ppop()
1207 if (pp.option & KEYARGS) in ppop()
1209 set(&pp.mode, CATLITERAL, 1); in ppop()
1215 pp.linesync = va_arg(ap, PPLINESYNC); in ppop()
1219 pp.flags |= PP_linebase; in ppop()
1221 pp.flags &= ~PP_linebase; in ppop()
1225 pp.flags |= PP_linefile; in ppop()
1227 pp.flags &= ~PP_linefile; in ppop()
1231 pp.lineid = ""; in ppop()
1233 pp.lineid = strdup(p); in ppop()
1235 pp.option |= IGNORELINE; in ppop()
1239 pp.flags |= PP_linetype; in ppop()
1241 pp.flags &= ~PP_linetype; in ppop()
1243 pp.flags |= PP_linehosted; in ppop()
1245 pp.flags &= ~PP_linehosted; in ppop()
1248 if (pp.initialized) in ppop()
1250 pp.ignoresrc++; in ppop()
1251 pp.stddirs = pp.lastdir; in ppop()
1252 if (!(pp.ro_option & PREFIX)) in ppop()
1253 pp.option &= ~PREFIX; in ppop()
1256 pp.macref = va_arg(ap, PPMACREF); in ppop()
1259 set(&pp.mode, ALLMULTIPLE, va_arg(ap, int)); in ppop()
1262 set(&pp.option, NOHASH, va_arg(ap, int)); in ppop()
1266 set(&pp.option, NOISE, op); in ppop()
1267 set(&pp.option, NOISEFILTER, op < 0); in ppop()
1270 pp.optarg = va_arg(ap, PPOPTARG); in ppop()
1273 pp.outfile = va_arg(ap, char*); in ppop()
1274 if (identical(pp.outfile, 0)) in ppop()
1275 error(3, "%s: identical to input", pp.outfile); in ppop()
1277 …if (open(pp.outfile, O_WRONLY|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) !=… in ppop()
1278 error(ERROR_SYSTEM|3, "%s: cannot create", pp.outfile); in ppop()
1281 if (!(pp.state & COMPILE)) in ppop()
1282 set(&pp.state, PASSTHROUGH, va_arg(ap, int)); in ppop()
1285 set(&pp.mode, PEDANTIC, va_arg(ap, int)); in ppop()
1288 set(&pp.option, PLUSCOMMENT, va_arg(ap, int)); in ppop()
1289 if (pp.initialized) in ppop()
1293 set(&pp.option, PLUSPLUS, va_arg(ap, int)); in ppop()
1294 set(&pp.option, PLUSCOMMENT, va_arg(ap, int)); in ppop()
1295 if (pp.initialized) in ppop()
1299 if (pp.initialized) in ppop()
1304 pp.pool.input = dup(0); in ppop()
1305 pp.pool.output = dup(1); in ppop()
1319 pp.pragma = va_arg(ap, PPPRAGMA); in ppop()
1329 if ((c = (int)hashref(pp.strtab, p)) > 0 && c <= X_last_option) in ppop()
1330 pp.optflags[c] = n; in ppop()
1334 pp.probe = va_arg(ap, char*); in ppop()
1343 set(&pp.option, REGUARD, va_arg(ap, int)); in ppop()
1346 if ((pp.state & COMPILE) && (p = va_arg(ap, char*))) in ppop()
1363 op = ((key = ppkeyref(pp.symtab, s)) && (key->sym.flags & SYM_LEX)) ? key->lex : T_NOISE; in ppop()
1364 if (pp.test & 0x0400) in ppop()
1368 if (!(key = ppkeyget(pp.symtab, p))) in ppop()
1369 key = ppkeyset(pp.symtab, NiL); in ppop()
1375 hashlook(pp.symtab, p, HASH_DELETE, NiL); in ppop()
1376 key = ppkeyset(pp.symtab, NiL); in ppop()
1386 if (pp.test & 0x0400) in ppop()
1393 set(&pp.state, SPACEOUT, va_arg(ap, int)); in ppop()
1396 if (pp.initialized) in ppop()
1398 pp.standalone = 1; in ppop()
1401 if ((pp.lastdir->next->name = ((p = va_arg(ap, char*)) && *p) ? p : NiL) && !stat(p, &st)) in ppop()
1402 SAVEID(&pp.lastdir->next->id, &st); in ppop()
1403 for (dp = pp.firstdir; dp; dp = dp->next) in ppop()
1405 for (hp = pp.firstdir; hp != dp; hp = hp->next) in ppop()
1416 set(&pp.state, TRANSITION, 0); in ppop()
1417 pp.flags &= ~PP_transition; in ppop()
1418 set(&pp.state, STRICT, va_arg(ap, int)); in ppop()
1419 if (pp.state & STRICT) in ppop()
1420 pp.flags |= PP_strict; in ppop()
1422 pp.flags &= ~PP_strict; in ppop()
1472 pp.test |= n; in ppop()
1474 pp.test &= ~n; in ppop()
1476 debug((-4, "test = 0%o", pp.test)); in ppop()
1480 set(&pp.state, STRICT, 0); in ppop()
1481 pp.flags &= ~PP_strict; in ppop()
1482 set(&pp.state, TRANSITION, va_arg(ap, int)); in ppop()
1483 if (pp.state & TRANSITION) in ppop()
1484 pp.flags |= PP_transition; in ppop()
1486 pp.flags &= ~PP_transition; in ppop()
1489 if (pp.initialized) in ppop()
1493 set(&pp.option, TRUNCATE, op); in ppop()
1494 if (pp.option & TRUNCATE) in ppop()
1501 pp.truncate = op; in ppop()
1502 tab = pp.symtab; in ppop()
1503pp.symtab = hashalloc(NiL, HASH_set, tab ? HASH_ALLOCATE : 0, HASH_compare, trunccomp, HASH_hash, … in ppop()
1510 hashlook(pp.symtab, (char*)p, HASH_BUCKET|HASH_INSTALL, NiL); in ppop()
1516 pp.truncate = 0; in ppop()
1522 for (dp = pp.firstdir; dp; dp = dp->next) in ppop()
1526 for (dp = pp.firstdir; dp; dp = dp->next) in ppop()
1535 for (dp = pp.firstdir; dp; dp = dp->next) in ppop()
1547 set(&pp.state, WARN, va_arg(ap, int)); in ppop()