Merge branch 'jn/warn-on-inaccessible-loosen'
[gitweb.git] / test-string-list.c
index 702276c1fc268759bf791b87fcb8dd25a1c14e6e..00ce6c9a129674c1922e0c388366592c5ae7c8c7 100644 (file)
@@ -7,7 +7,7 @@
  * list (as opposed to "", which indicates a string list containing a
  * single empty string).  list->strdup_strings must be set.
  */
-void parse_string_list(struct string_list *list, const char *arg)
+static void parse_string_list(struct string_list *list, const char *arg)
 {
        if (!strcmp(arg, "-"))
                return;
@@ -15,14 +15,14 @@ void parse_string_list(struct string_list *list, const char *arg)
        (void)string_list_split(list, arg, ':', -1);
 }
 
-void write_list(const struct string_list *list)
+static void write_list(const struct string_list *list)
 {
        int i;
        for (i = 0; i < list->nr; i++)
                printf("[%d]: \"%s\"\n", i, list->items[i].string);
 }
 
-void write_list_compact(const struct string_list *list)
+static void write_list_compact(const struct string_list *list)
 {
        int i;
        if (!list->nr)
@@ -35,7 +35,7 @@ void write_list_compact(const struct string_list *list)
        }
 }
 
-int prefix_cb(struct string_list_item *item, void *cb_data)
+static int prefix_cb(struct string_list_item *item, void *cb_data)
 {
        const char *prefix = (const char *)cb_data;
        return !prefixcmp(item->string, prefix);
@@ -87,6 +87,16 @@ int main(int argc, char **argv)
                return 0;
        }
 
+       if (argc == 3 && !strcmp(argv[1], "remove_duplicates")) {
+               struct string_list list = STRING_LIST_INIT_DUP;
+
+               parse_string_list(&list, argv[2]);
+               string_list_remove_duplicates(&list, 0);
+               write_list_compact(&list);
+               string_list_clear(&list, 0);
+               return 0;
+       }
+
        fprintf(stderr, "%s: unknown function name: %s\n", argv[0],
                argv[1] ? argv[1] : "(there was none)");
        return 1;