Lines Matching refs:fp

47  * fp is a canonicalized ppfile pointer
70 ppmultiple(register struct ppfile* fp, register struct ppsymbol* test)
74 status = fp->guard;
75 message((-3, "search: %s: status=%s%s test=%s", fp->name, status == INC_CLEAR ? "[CLEAR]" : status == INC_TEST ? "[ONCE]" : status == INC_IGNORE ? "[IGNORE]" : status->name, (pp.mode & HOSTED) ? "[HOSTED]" : "", test == INC_CLEAR ? "[CLEAR]" : test == INC_TEST ? "[TEST]" : test->name));
78 message((-2, "%s: ignored [%s]", fp->name, pp.ignore));
88 fp->guard = INC_IGNORE;
90 error(1, "%s: ignored -- already included", fp->name);
92 message((-3, "%s: ignored -- already included", fp->name));
102 fp->guard = test;
111 search(register struct ppfile* fp, register struct ppdirs* dp, int type, int flags)
125 else if ((prefix = strrchr(fp->name, '/')) && prefix > fp->name)
128 t = ppsetfile(fp->name)->name;
133 fp->name,
141 (fp->flags & INC_SELF) ? "SELF|" : "",
142 (fp->flags & INC_EXISTS) ? "EXISTS|" : "",
143 (fp->flags & INC_BOUND(INC_PREFIX)) ? "PREFIX|" : "",
144 (fp->flags & INC_BOUND(INC_LOCAL)) ? "LOCAL|" : "",
145 (fp->flags & INC_BOUND(INC_VENDOR)) ? "VENDOR|" : "",
146 (fp->flags & INC_BOUND(INC_STANDARD)) ? "STANDARD|" : "",
149 !(fp->flags & INC_MEMBER(INC_PREFIX)) && fp->bound[INC_PREFIX] ? fp->bound[INC_PREFIX]->name : NiL,
150 !(fp->flags & INC_MEMBER(INC_LOCAL)) && fp->bound[INC_LOCAL] ? fp->bound[INC_LOCAL]->name : NiL,
151 !(fp->flags & INC_MEMBER(INC_VENDOR)) && fp->bound[INC_VENDOR] ? fp->bound[INC_VENDOR]->name : NiL,
152 !(fp->flags & INC_MEMBER(INC_STANDARD)) && (xp = fp->bound[INC_STANDARD]) ? xp->name : NiL,
164 message((-3, "search: fp=%s need=%02x index=%d dp=%s type=%02x index=%d", fp->name, need, index, dp->name, dp->type, dp->index));
327 if (streq(fp->name, "."))
329 if (prefix && *fp->name != '/' && dp->index != INC_PREFIX)
361 if (index >= 0 && !(fp->flags & INC_MEMBER(index)))
362 fp->flags |= INC_BOUND(index);
364 if (fp->flags & INC_BOUND(index))
366 xp = fp->bound[index];
369 if (*fp->name == '/' || !*dp->name)
370 strcpy(pp.path, fp->name);
372 sfsprintf(pp.path, PATH_MAX - 1, "%s/%s", dp->name, fp->name);
376 fp->bound[index] = xp = ppsetfile(pp.path);
397 message((-3, "search: omit %s/%s", dp->name, fp->name));
415 if (!(fp->flags & INC_BOUND(index)) || (flags & SEARCH_NEXT))
417 if (*fp->name == '/' || !*dp->name)
418 strcpy(pp.path, fp->name);
420 sfsprintf(pp.path, PATH_MAX - 1, "%s/%s", dp->name, fp->name);
461 else if (*fp->name == '/')
466 message((-3, "search: file=%s path=%s", fp->name, pp.path));
468 if (pp.test & 0x0040) error(1, "SEARCH#%d dir=%s%s%s%s%s file=%s%s path=%s index=%d", __LINE__, dp->name, (dp->type & TYPE_ARCHIVE) ? " ARCHIVE" : "", (dp->type & TYPE_BUFFER) ? " BUFFER" : "", (dp->type & TYPE_CHECKPOINT) ? " CHECKPOINT" : "", (dp->type & TYPE_DIRECTORY) ? " DIRECTORY" : "", fp->name, (fp->flags & INC_MEMBER(index)) ? " MEMBER" : "", pp.path, index);
469 if ((fp->flags & INC_MEMBER(index)) && ((struct ppmember*)fp->bound[index])->archive == dp)
472 pp.member = (struct ppmember*)fp->bound[index];
473 if (pp.test & 0x0010) error(1, "SEARCH#%d file=%s path=%s index=%d data=<%lu,%lu>", __LINE__, fp->name, pp.path, index, pp.member->offset, pp.member->size);
509 message((-2, "search: %s -> %s%s%s", fp->name, pp.path, (pp.mode & MARKC) ? " [C]" : "", (pp.mode & MARKHOSTED) ? " [hosted]" : ""));
514 fp->flags |= INC_BOUND(index);
515 fp->bound[index] = xp;
516 if ((index == INC_STANDARD || index == INC_VENDOR) && type != T_HEADER && !(fp->flags & INC_BOUND(INC_LOCAL)))
518 fp->flags |= INC_BOUND(INC_LOCAL);
519 fp->bound[INC_LOCAL] = xp;
539 xp->guard = fp->guard = INC_IGNORE;
570 error(3, "%s: too many open files", fp->name);
573 if (*fp->name == '/')
576 strcpy(pp.path, fp->name);
577 message((-2, "search: %s%s not found", (flags & SEARCH_NEXT) ? "next " : "", fp->name));
597 register struct ppfile* fp;
640 fp = ppsetfile(file);
641 while ((fp->flags & INC_MAPALL) || (fp->flags & INC_MAPHOSTED) && (pp.mode & HOSTED) || (fp->flags & INC_MAPNOHOSTED) && !(pp.mode & HOSTED))
643 if (!(xp = fp->bound[type == T_HEADER ? INC_STANDARD : INC_LOCAL]) || xp == fp)
645 message((-1, "map: %s -> %s", fp->name, xp->name));
646 fp = xp;
648 if ((fp->flags & INC_MAPNOLOCAL) && (pp.mode & HOSTED))
652 pp.original = fp;
653 if (type == T_HEADER && strneq(fp->name, "...", 3) && (!fp->name[3] || fp->name[3] == '/'))
655 if (fp->name[3] == '/')
661 m = strlen(fp->name + 4);
662 if (n < m || !streq(fp->name + 4, error_info.file + n - m))
664 if ((fd = ppsearch(fp->name + 4, type, flags|SEARCH_TEST)) < 0)
670 fd = ppsearch(fp->name + 4, type, flags|SEARCH_NEXT);
685 fp = ppsetfile(name);
686 if ((fd = ppsearch(fp->name, type, flags)) >= 0)
690 fp = ppsetfile(file);
691 return ppsearch(fp->name, type, flags);
693 else if ((flags & SEARCH_INCLUDE) && fp->guard == INC_IGNORE)
695 strcpy(pp.path, fp->name);
696 message((-2, "%s: ignored", fp->name));
728 if (*fp->name != '/')
730 if ((s = strchr(fp->name, '/')) && (fp->name[0]
731 != '.' || fp->name[1] != '.' || fp->name[2] != '/'))
734 if (!streq(fp->name, pp.in->prefix))
743 sfsprintf(name, sizeof(name) - 1, "%s/%s", pp.in->prefix, fp->name);
753 if ((fd = search(fp, dp, type, flags)) < 0)