commit a9c7d16cde03812aebecc990d50b3864f2ac787a
Author: FRIGN <[email protected]>
Date:   Fri Jan 30 12:43:55 2015 +0100

    Properly report return value in rmdir(1)

diff --git a/rmdir.c b/rmdir.c
index 743db34..e6c3cdd 100644
--- a/rmdir.c
+++ b/rmdir.c
@@ -16,7 +16,7 @@ usage(void)
 int
 main(int argc, char *argv[])
 {
-       int   pflag = 0;
+       int   pflag = 0, ret = 0;
        char *d;
 
        ARGBEGIN {
@@ -33,10 +33,9 @@ main(int argc, char *argv[])
        for (; argc > 0; argc--, argv++) {
                if (rmdir(argv[0]) < 0) {
                        weprintf("rmdir %s:", argv[0]);
-                       if (pflag)
-                               return 1;
+                       ret = 1;
                }
-               if (pflag) {
+               if (pflag && !ret) {
                        d = dirname(argv[0]);
                        for (; strcmp(d, "/") && strcmp(d, ".") ;) {
                                if (rmdir(d) < 0)
@@ -45,5 +44,5 @@ main(int argc, char *argv[])
                        }
                }
        }
-       return 0;
+       return ret;
 }

Reply via email to