/**
copy a string list
*/
-_PUBLIC_ char **str_list_copy(TALLOC_CTX *mem_ctx, const char **list);
+_PUBLIC_ char **str_list_copy(TALLOC_CTX *mem_ctx, const char * const *list);
/**
Return true if all the elements of the list match exactly.
/**
add an entry to a string list
*/
-_PUBLIC_ const char **str_list_add(const char **list, const char *s);
+_PUBLIC_ char **str_list_add(char **list, const char *s);
+
+/**
+ add an entry to a string list (if not already in there)
+*/
+_PUBLIC_ char **str_list_add_unique(char **list, const char *s);
/**
remove an entry from a string list
return true if a string is in a list, case insensitively
*/
_PUBLIC_ bool str_list_check_ci(const char **list, const char *s);
+/**
+ append one list to another - expanding list1
+*/
+_PUBLIC_ char **str_list_append(char **list1, const char * const *list2);
/* The following definitions come from lib/util/util_file.c */