diff --git a/src/misc/wlist.c b/src/misc/wlist.c index acc21d1e0..d600c9cae 100644 --- a/src/misc/wlist.c +++ b/src/misc/wlist.c @@ -25,28 +25,26 @@ wl_length(const wordlist *wl) /* Free the storage used by a word list. */ void -wl_free(wordlist *wlist) +wl_free(wordlist *wl) { - wordlist *wl, *nw; - - for (wl = wlist; wl; wl = nw) { - nw = wl->wl_next; + while (wl) { + wordlist *next = wl->wl_next; tfree(wl->wl_word); tfree(wl); + wl = next; } } /* Copy a wordlist and the words. */ wordlist * -wl_copy(wordlist *wlist) +wl_copy(wordlist *wl) { - wordlist *wl, *nwl = NULL, *w = NULL; + wordlist *first = NULL, *last = NULL; - for (wl = wlist; wl; wl = wl->wl_next) { - wl_append_word(&nwl, &w, copy(wl->wl_word)); - } - return (nwl); + for (; wl; wl = wl->wl_next) + wl_append_word(&first, &last, copy(wl->wl_word)); + return (first); } @@ -77,11 +75,9 @@ wl_splice(wordlist *elt, wordlist *list) static void printword(char *string, FILE *fp) { - char *s; - if (string) - for (s = string; *s; s++) - putc((strip(*s)), fp); + while (*string) + putc(strip(*string++), fp); } @@ -101,30 +97,28 @@ wl_print(const wordlist *wl, FILE *fp) wordlist * wl_build(char **v) { - wordlist *wlist = NULL; - wordlist *wl = NULL; + wordlist *first = NULL; + wordlist *last = NULL; - while (*v) { - wl_append_word(&wlist, &wl, copy(*v)); - v++; - } - return (wlist); + while (*v) + wl_append_word(&first, &last, copy(*v++)); + return (first); } char ** wl_mkvec(wordlist *wl) { - int len, i; - char **v; + int len = wl_length(wl); + char **vec = TMALLOC(char *, len + 1); + + int i; - len = wl_length(wl); - v = TMALLOC(char *, len + 1); for (i = 0; i < len; i++) { - v[i] = copy(wl->wl_word); + vec[i] = copy(wl->wl_word); wl = wl->wl_next; } - v[i] = NULL; - return (v); + vec[i] = NULL; + return (vec); } @@ -165,22 +159,21 @@ wl_reverse(wordlist *wl) /* Convert a wordlist into a string. */ char * -wl_flatten(wordlist *wl) +wl_flatten(wordlist *wlist) { char *buf; - wordlist *tw; - size_t i = 0; + wordlist *wl; + size_t len = 0; - for (tw = wl; tw; tw = tw->wl_next) - i += strlen(tw->wl_word) + 1; - buf = TMALLOC(char, i + 1); + for (wl = wlist; wl; wl = wl->wl_next) + len += strlen(wl->wl_word) + 1; + buf = TMALLOC(char, len + 1); *buf = '\0'; - while (wl != NULL) { + for (wl = wlist; wl; wl = wl->wl_next) { (void) strcat(buf, wl->wl_word); if (wl->wl_next) (void) strcat(buf, " "); - wl = wl->wl_next; } return (buf); } @@ -191,11 +184,9 @@ wl_flatten(wordlist *wl) wordlist * wl_nthelem(int i, wordlist *wl) { - wordlist *ww = wl; - - while ((i-- > 0) && ww->wl_next) - ww = ww->wl_next; - return (ww); + while ((i-- > 0) && wl->wl_next) + wl = wl->wl_next; + return (wl); }