X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=db.c;h=8b06672606e50009004bd9dcf89625425295035b;hp=a1cc1aebc09e18c01d2685919bd6c407447d4c8b;hb=60216e4058f4ecc24467df577e51cb2bd66508b0;hpb=3e514007f72825597eaf68ff33339a8eb0ad420b diff --git a/db.c b/db.c index a1cc1aeb..8b066726 100644 --- a/db.c +++ b/db.c @@ -28,28 +28,6 @@ #include "error.h" #include "string.h" -/* - * return 1 if name matches any supported audio format - */ -static int match_audio_file_name(char *name) -{ - int i, len = strlen(name); - const char *pattern[] = {SUPPORTED_AUDIO_FORMATS_ARRAY}; - - for (i = 0; pattern[i]; i++) { - const char *p = pattern[i]; - int plen = strlen(p); - if (len < plen + 1) - continue; - if (name[len - plen - 1] != '.') - continue; - if (strcasecmp(name + len - plen, p)) - continue; - return 1; - } - return 0; -} - /** * traverse the given directory recursively * @@ -97,14 +75,15 @@ int find_audio_files(const char *dirname, int (*f)(const char *, const char *)) continue; ret = -E_LSTAT; if (lstat(entry->d_name, &s) == -1) - goto out; + continue; m = s.st_mode; if (!S_ISREG(m) && !S_ISDIR(m)) /* skip links, sockets, ... */ continue; if (S_ISREG(m)) { /* regular file */ - if (!match_audio_file_name(entry->d_name)) + if (guess_audio_format(entry->d_name) < 0) continue; - if (f(dirname, entry->d_name) < 0) + ret = f(dirname, entry->d_name); + if (ret < 0) goto out; continue; } @@ -123,6 +102,6 @@ out: ret = -E_CHDIR; close(cwd_fd); if (ret < 0) - PARA_ERROR_LOG("ret = %x\n", -ret); + PARA_ERROR_LOG("%s\n", PARA_STRERROR(-ret)); return ret; }