X-Git-Url: https://git.distorted.org.uk/~mdw/runlisp/blobdiff_plain/6445760568e196c3239cdd08ec5432f96628f4cf..0b17bcece9c062d9cc010ff995d5fa0d02c0adbf:/lib.c diff --git a/lib.c b/lib.c index edb6e33..a73f0d0 100644 --- a/lib.c +++ b/lib.c @@ -51,7 +51,7 @@ void set_progname(const char *prog) const char *p; p = strrchr(prog, '/'); - progname = p ? p + 1 : progname; + progname = p ? p + 1 : prog; } /* Report an error or warning in Unix style, given a captured argument @@ -267,7 +267,7 @@ void argv_ensure(struct argv *av, size_t n) if (need <= av->sz) return; newsz = av->sz ? 2*av->sz : 8; while (newsz < need) newsz *= 2; - av->v = xrealloc(av->v - av->o, newsz*sizeof(char *)) + av->o; + av->v = xrealloc(av->v - av->o, newsz*sizeof(char *)); av->v += av->o; av->sz = newsz; } @@ -932,7 +932,7 @@ static void set_config_section_parents(struct config *conf, * to have, so we can allocate the `parents' vector and fill it in. */ sect->nparents = av.n/2; - sect->parents = xmalloc(sect->nparents*sizeof(sect->parents)); + sect->parents = xmalloc(sect->nparents*sizeof(*sect->parents)); for (i = 0; i < av.n; i += 2) { n = av.v[i + 1] - av.v[i]; parent = config_find_section_n(conf, 0, av.v[i], n); @@ -1379,7 +1379,11 @@ static const char *subst(const char *p, const char *l, size_t n; /* It would be best if we could process literal text at high speed. To - * this end, + * this end, we have a table, indexed by the low-order bits of F, to tell + * us which special characters we need to stop at. This way, we can use + * `strcspn' to skip over literal text and stop at the next character which + * needs special handling. Entries in this table with a null pointer + * correspond to impossible flag settings. */ static const char *const delimtab[] = {