On 12/09/18 00:49, Stefan Beller wrote: > Add a few functions to allow a string-list to be used as a stack: > > - string_list_last() lets a caller peek the string_list_item at the > end of the string list. The caller needs to be aware that it is > borrowing a pointer, which can become invalid if/when the > string_list is resized. > > - string_list_pop() removes the string_list_item at the end of > the string list. > > - _pop usually has a friend _push. This role is taken by > string_list_append already, as they are not symmetrical > in our code base: _append returns the pointer, such that > adding a util is easy, but _pop doesn't return such a pointer. > > You can use them in this pattern: > > while (list.nr) { > struct string_list_item *item = string_list_last(&list); > > work_on(item); > string_list_pop(&list); string_list_pop() takes a second int parameter (free_util). ATB, Ramsay Jones