Browse Source

Use xs_glob() in follower_list().

default 2 years ago
parent
commit
365b27ffb2
1 changed files with 13 additions and 17 deletions
  1. 13 17
      data.c

+ 13 - 17
data.c

@@ -256,34 +256,30 @@ int follower_check(snac *snac, char *actor)
 d_char *follower_list(snac *snac)
 /* returns the list of followers */
 {
-    d_char *list;
-    xs *spec;
-    glob_t globbuf;
-
-    list = xs_list_new();
-    spec = xs_fmt("%s/followers/" "*.json", snac->basedir);
+    xs *spec = xs_fmt("%s/followers/" "*.json", snac->basedir);
+    xs *glist = xs_glob(spec, 0, 0);
+    char *p, *v;
+    d_char *list = xs_list_new();
 
-    if (glob(spec, 0, NULL, &globbuf) == 0) {
-        int n;
-        char *fn;
+    /* iterate the list of files */
+    p = glist;
+    while (xs_list_iter(&p, &v)) {
+        FILE *f;
 
-        for (n = 0; (fn = globbuf.gl_pathv[n]) != NULL; n++) {
-            FILE *f;
+        /* load the follower data */
+        if ((f = fopen(v, "r")) != NULL) {
+            xs *j = xs_readall(f);
+            fclose(f);
 
-            if ((f = fopen(fn, "r")) != NULL) {
-                xs *j = xs_readall(f);
+            if (j != NULL) {
                 xs *o = xs_json_loads(j);
 
                 if (o != NULL)
                     list = xs_list_append(list, o);
-
-                fclose(f);
             }
         }
     }
 
-    globfree(&globbuf);
-
     return list;
 }