implement wl_cons(), wl_append_word() and wl_chop_rest()
This commit is contained in:
parent
8defa56cf6
commit
d9ddaec784
|
|
@ -25,6 +25,11 @@ wordlist * wl_nthelem(int i, wordlist *wl);
|
||||||
void wl_sort(wordlist *wl);
|
void wl_sort(wordlist *wl);
|
||||||
wordlist * wl_range(wordlist *wl, int low, int up);
|
wordlist * wl_range(wordlist *wl, int low, int up);
|
||||||
|
|
||||||
|
wordlist *wl_cons(char *word, wordlist *tail);
|
||||||
|
void wl_append_word(wordlist **first, wordlist **last, char *word);
|
||||||
|
|
||||||
|
wordlist *wl_chop_rest(wordlist *wlist);
|
||||||
|
|
||||||
|
|
||||||
/* For quoting individual characters. '' strings are all quoted, but
|
/* For quoting individual characters. '' strings are all quoted, but
|
||||||
* `` and "" strings are maintained as single words with the quotes
|
* `` and "" strings are maintained as single words with the quotes
|
||||||
|
|
|
||||||
|
|
@ -294,3 +294,45 @@ wl_range(wordlist *wl, int low, int up)
|
||||||
return (wl);
|
return (wl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
wordlist *
|
||||||
|
wl_cons(char *word, wordlist *tail)
|
||||||
|
{
|
||||||
|
wordlist *w = alloc(struct wordlist);
|
||||||
|
w->wl_next = tail;
|
||||||
|
w->wl_prev = NULL;
|
||||||
|
w->wl_word = word;
|
||||||
|
|
||||||
|
if (tail)
|
||||||
|
tail->wl_prev = w;
|
||||||
|
|
||||||
|
return w;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
wl_append_word(wordlist **first, wordlist **last, char *word)
|
||||||
|
{
|
||||||
|
wordlist *w = alloc(struct wordlist);
|
||||||
|
w->wl_next = NULL;
|
||||||
|
w->wl_prev = (*last);
|
||||||
|
w->wl_word = word;
|
||||||
|
|
||||||
|
if (*last)
|
||||||
|
(*last)->wl_next = w;
|
||||||
|
else
|
||||||
|
(*first) = w;
|
||||||
|
|
||||||
|
(*last) = w;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
wordlist *
|
||||||
|
wl_chop_rest(wordlist *wl)
|
||||||
|
{
|
||||||
|
wordlist *rest = wl->wl_next;
|
||||||
|
wl->wl_next = NULL;
|
||||||
|
if(rest)
|
||||||
|
rest->wl_prev = NULL;
|
||||||
|
return rest;
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue