Limit latest tags to only those three characters or longer
authorChip Black <bytex64@bytex64.net>
Mon, 7 Feb 2011 10:11:15 +0000 (04:11 -0600)
committerChip Black <bytex64@bytex64.net>
Mon, 7 Feb 2011 10:11:53 +0000 (04:11 -0600)
tools/blerglatest.c

index 727eb18..ed30419 100644 (file)
@@ -70,7 +70,7 @@ void things_sort(struct things *things) {
        qsort(things->arr, things->len, sizeof(struct thing), thing_compare);
 }
 
-struct things * latest_things(const char *path, const char *file) {
+struct things * latest_things(const char *path, const char *file, int minlen) {
        DIR* d;
        struct dirent *f;
        struct things * things = things_alloc();
@@ -81,6 +81,7 @@ struct things * latest_things(const char *path, const char *file) {
        d = opendir(path);
        while (f = readdir(d)) {
                if (f->d_name[0] == '.') continue;
+               if (minlen > 0 && strlen(f->d_name) < minlen) continue;
                if (file) {
                        snprintf(filename, 512, "%s/%s/%s", path, f->d_name, file);
                } else {
@@ -98,7 +99,7 @@ struct things * latest_things(const char *path, const char *file) {
 
 void latest_tags(yajl_gen g) {
        int i;
-       struct things * things = latest_things(HASH_TAGS_PATH, NULL);
+       struct things * things = latest_things(HASH_TAGS_PATH, NULL, 3);
 
        unsigned int count = (things->len >= 50 ? 50 : things->len);
        yajl_gen_array_open(g);
@@ -112,7 +113,7 @@ void latest_tags(yajl_gen g) {
 
 void latest_records(yajl_gen g) {
        int i;
-       struct things * things = latest_things(DATA_PATH, "meta");
+       struct things * things = latest_things(DATA_PATH, "meta", 0);
 
        unsigned int count = (things->len >= 50 ? 50 : things->len);
        yajl_gen_array_open(g);