> > A later patch shows
> > how useful this will be.
>
> Instead of all of the above, how about being more direct, i.e. e.g.
ok.
> Conceptually, this allows string_list_clear() to be implemented in
> terms of this function, i.e.
>
> string_list_clear(struct string_list *list, int free_util)
> {
> while (list->nr)
> string_list_pop(list, free_util);
> free(list->items);
> list->items = NULL;
> list->nr = list->alloc = 0;
> }
>
> It is unfortunate that string_list has become such a kitchen-sink in
> that a string list whose util field is used in such a way that
> string_list_clear_func() needs to be used to clear the list cannot
> be used as a stack. Ideally each of these "features" (like
> "sorted/unsorted", "owning/borrowing util", "owning/borrowing
> string", etc.) ought to be orthogonal, but they are not.
Oh, another neat string list feature I overlooked. :/