Browse Source

We have so many special cases for smartlists of strings, why not add a sort function?

svn:r5014
Nick Mathewson 19 years ago
parent
commit
2689cb081b
2 changed files with 13 additions and 0 deletions
  1. 12 0
      src/common/container.c
  2. 1 0
      src/common/container.h

+ 12 - 0
src/common/container.c

@@ -419,6 +419,18 @@ smartlist_bsearch(smartlist_t *sl, const void *key,
   return r ? *r : NULL;
 }
 
+static int
+_compare_string_ptrs(void **_a, void **_b)
+{
+  return strcmp((char*)*_a, (char*)*_b);
+}
+
+void
+smartlist_sort_strings(smartlist_t *sl)
+{
+  smartlist_sort(sl, _compare_string_ptrs);
+}
+
 /* Splay-tree implementation of string-to-void* map
  */
 typedef struct strmap_entry_t {

+ 1 - 0
src/common/container.h

@@ -52,6 +52,7 @@ void smartlist_del_keeporder(smartlist_t *sl, int idx);
 void smartlist_insert(smartlist_t *sl, int idx, void *val);
 void smartlist_sort(smartlist_t *sl,
                     int (*compare)(const void **a, const void **b));
+void smartlist_sort_strings(smartlist_t *sl);
 void *smartlist_bsearch(smartlist_t *sl, const void *key,
                         int (*compare)(const void *key, const void **member));