18 if (fp == NULL) fp = stderr;
21 fprintf(fp,
"===================================== %s\n", msg);
24 for (av = argv; *av; av++)
25 fprintf(fp,
"%s\n", *av);
45 for (av = argv; *av; av++)
63 if (argi && argi->
nvals > 0)
72 while (argv[argc] != NULL)
84 int argvCmp(
const void * a,
const void * b)
90 return strcmp(astr, bstr);
97 qsort(argv,
argvCount(argv),
sizeof(*argv), compar);
102 int (*compar)(
const void *,
const void *))
108 return bsearch(&val, argv,
argvCount(argv),
sizeof(*argv), compar);
118 *argip =
xcalloc(1,
sizeof(**argip));
122 if (ix >= argi->
nvals) {
125 (ix - argi->
nvals) *
sizeof(*argi->
vals));
126 argi->
nvals = ix + 1;
141 *argvp =
xrealloc(*argvp, (argc + 1 + 1) *
sizeof(**argvp));
156 argv =
xrealloc(argv, (argc + ac + 1) *
sizeof(*argv));
157 for (i = 0; i < ac; i++)
158 argv[argc + i] =
xstrdup(av[i]);
159 argv[argc + ac] = NULL;
166 static char whitespace[] =
" \f\n\r\t\v";
167 char * dest =
xmalloc(strlen(str) + 1);
177 for (argc = 1, s = str, t = dest; (c = *s); s++, t++) {
178 if (strchr(seps, c)) {
186 argv =
xmalloc( (argc + 1) *
sizeof(*argv));
188 for (c = 0, s = dest; s < t; s+= strlen(s) + 1) {
207 for (argc = 0; argv[argc] != NULL; argc++) {
210 nb += strlen(argv[argc]);
216 for (argc = 0; argv[argc] != NULL; argc++) {
219 te =
stpcpy(te, argv[argc]);
227 FILE * fp = (fd ?
fdGetFILE(fd) : stdin);
235 while (!rc && (b = fgets(buf,
sizeof(buf), fp)) != NULL) {
236 buf[
sizeof(buf)-1] =
'\0';
237 be = b + strlen(buf);
239 while (strchr(
"\r\n", *be) != NULL)
247 rc = (feof(fp) ? 0 : 1);