Xinqi Bao's Git

Add Michael Buch to LICENSE
[slstatus.git] / components / num_files.c
index c471400..9179037 100644 (file)
@@ -1,5 +1,6 @@
 /* See LICENSE file for copyright and license details. */
 #include <dirent.h>
+#include <errno.h>
 #include <stdio.h>
 #include <string.h>
 
@@ -10,16 +11,18 @@ num_files(const char *dir)
 {
        struct dirent *dp;
        DIR *fd;
-       int num = 0;
+       int num;
 
-       if ((fd = opendir(dir)) == NULL) {
-               fprintf(stderr, "Failed to get number of files in directory %s", dir);
+       if (!(fd = opendir(dir))) {
+               warn("opendir '%s':", dir);
                return NULL;
        }
 
-       while ((dp = readdir(fd)) != NULL) {
-               if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, ".."))
+       num = 0;
+       while ((dp = readdir(fd))) {
+               if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..")) {
                        continue; /* skip self and parent */
+               }
                num++;
        }