int pathinclude(const char *dir) { register Dir_t *dp; if (dir && *dir && !streq(dir, ".")) { if (!(dp = oldof(0, Dir_t, 1, strlen(dir)))) return -1; strcpy(dp->dir, dir); if (state.tail) state.tail = state.tail->next = dp; else state.head = state.tail = dp; } return 0; }
extern int regexec(const regex_t* p, const char* s, size_t nmatch, oldregmatch_t* oldmatch, regflags_t flags) { if (oldmatch) { regmatch_t* match; size_t i; int r; if (!(match = oldof(0, regmatch_t, nmatch, 0))) return -1; if (!(r = regexec_20120528(p, s, nmatch, match, flags))) for (i = 0; i < nmatch; i++) { oldmatch[i].rm_so = match[i].rm_so; oldmatch[i].rm_eo = match[i].rm_eo; } free(match); return r; } return regexec_20120528(p, s, 0, NiL, flags); }
int pathinclude(const char* dir) { register Dir_t* dp; struct stat st; if (dir && *dir && !streq(dir, ".") && directory(dir, &st)) { for (dp = state.head; dp; dp = dp->next) if (streq(dir, dp->dir)) return 0; if (!(dp = oldof(0, Dir_t, 1, strlen(dir)))) return -1; strcpy(dp->dir, dir); dp->next = 0; if (state.tail) state.tail = state.tail->next = dp; else state.head = state.tail = dp; } return 0; }