chiark / gitweb /
Update some copyright notices.
[userv.git] / parser.c
index a5b5fb5fd66de0b10d504a7238c6883efae7190c..1bdf56d3441188e25a958b715100685fcfd6a860 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -591,9 +591,7 @@ int pcf_range(int ctoken, char *const *pv, int *rtrue) {
   char *ep;
   unsigned long v;
 
-  r= pa_mwsp(); if (r) return r;
   mintoken= pa_numberdollar(&min); if (mintoken == tokv_error) return mintoken;
-  r= pa_mwsp(); if (r) return r;
   maxtoken= pa_numberdollar(&max); if (maxtoken == tokv_error) return maxtoken;
   r= pa_mnl(); if (r) return r;
   for (pp= pv; *pp; pp++) {
@@ -997,7 +995,7 @@ int df_includedirectory(int dtoken) {
     return parseerrprint("unable to open directory `%s': %s",cpget,strerror(errno));
   cp= xstrsave(cpget);
   cpl= strlen(cp);
-  while ((de= readdir(d))) {
+  while ((errno=0, de= readdir(d))) {
     tel= strlen(de->d_name);
     if (!tel) continue;
     p= de->d_name;
@@ -1016,6 +1014,12 @@ int df_includedirectory(int dtoken) {
       goto x_err;
     }
   }
+  if (errno) {
+    parseerrprint("error reading directory `%s': %s",cp,strerror(errno));
+    closedir(d);
+    free(cp);
+    return tokv_error;
+  }
   if (closedir(d)) {
     parseerrprint("error closing directory `%s': %s",cp,strerror(errno));
     free(cp);