to be deleted.  Preserve the order of the items that are
        retained.
  
- `string_list_longest_prefix`::
- 
-       Return the longest string within a string_list that is a
-       prefix (in the sense of prefixcmp()) of the specified string,
-       or NULL if no such prefix exists.  This function does not
-       require the string_list to be sorted (it does a linear
-       search).
- 
 +`string_list_remove_empty_items`::
 +
 +      Remove any empty strings from the list.  If free_util is true,
 +      call free() on the util members of any items that have to be
 +      deleted.  Preserve the order of the items that are retained.
 +
  `print_string_list`::
  
        Dump a string_list to stdout, useful mainly for debugging purposes. It
 
        list->nr = dst;
  }
  
- char *string_list_longest_prefix(const struct string_list *prefixes,
-                                const char *string)
- {
-       int i, max_len = -1;
-       char *retval = NULL;
- 
-       for (i = 0; i < prefixes->nr; i++) {
-               char *prefix = prefixes->items[i].string;
-               if (!prefixcmp(string, prefix)) {
-                       int len = strlen(prefix);
-                       if (len > max_len) {
-                               retval = prefix;
-                               max_len = len;
-                       }
-               }
-       }
- 
-       return retval;
- }
- 
 +static int item_is_not_empty(struct string_list_item *item, void *unused)
 +{
 +      return *item->string != '\0';
 +}
 +
 +void string_list_remove_empty_items(struct string_list *list, int free_util) {
 +      filter_string_list(list, free_util, item_is_not_empty, NULL);
 +}
 +
  void string_list_clear(struct string_list *list, int free_util)
  {
        if (list->items) {
 
  void filter_string_list(struct string_list *list, int free_util,
                        string_list_each_func_t want, void *cb_data);
  
 +/*
 + * Remove any empty strings from the list.  If free_util is true, call
 + * free() on the util members of any items that have to be deleted.
 + * Preserve the order of the items that are retained.
 + */
 +void string_list_remove_empty_items(struct string_list *list, int free_util);
  
- /*
-  * Return the longest string in prefixes that is a prefix (in the
-  * sense of prefixcmp()) of string, or NULL if no such prefix exists.
-  * This function does not require the string_list to be sorted (it
-  * does a linear search).
-  */
- char *string_list_longest_prefix(const struct string_list *prefixes, const char *string);
- 
- 
  /* Use these functions only on sorted lists: */
  int string_list_has_string(const struct string_list *list, const char *string);
  int string_list_find_insert_index(const struct string_list *list, const char *string,