Fix exit status on failure.
authorMatt Kraai <kraai@debian.org>
Wed, 6 Dec 2000 15:55:23 +0000 (15:55 -0000)
committerMatt Kraai <kraai@debian.org>
Wed, 6 Dec 2000 15:55:23 +0000 (15:55 -0000)
coreutils/df.c
coreutils/du.c
df.c
du.c
mount.c
umount.c
util-linux/mount.c
util-linux/umount.c

index aefffc771ab840a77fcc0db1bbf50f33be87921e..969a5b982b6a1d01ccf5c0c79415d9468f394c96 100644 (file)
@@ -36,7 +36,7 @@ static int df(char *device, const char *mountPoint)
        long blocks_percent_used;
 
        if (statfs(mountPoint, &s) != 0) {
-               perror(mountPoint);
+               perrorMsg("%s", mountPoint);
                return FALSE;
        }
 
@@ -63,12 +63,13 @@ static int df(char *device, const char *mountPoint)
 
 extern int df_main(int argc, char **argv)
 {
+       int status = EXIT_SUCCESS;
+
        printf("%-20s %-14s %s %s %s %s\n", "Filesystem",
                   "1k-blocks", "Used", "Available", "Use%", "Mounted on");
 
        if (argc > 1) {
                struct mntent *mountEntry;
-               int status;
 
                if (**(argv + 1) == '-') {
                        usage(df_usage);
@@ -76,32 +77,30 @@ extern int df_main(int argc, char **argv)
                while (argc > 1) {
                        if ((mountEntry = findMountPoint(argv[1], mtab_file)) == 0) {
                                errorMsg("%s: can't find mount point.\n", argv[1]);
-                               exit(FALSE);
-                       }
-                       status = df(mountEntry->mnt_fsname, mountEntry->mnt_dir);
-                       if (status != TRUE)
-                               return EXIT_FAILURE;
+                               status = EXIT_FAILURE;
+                       } else if (!df(mountEntry->mnt_fsname, mountEntry->mnt_dir))
+                               status = EXIT_FAILURE;
                        argc--;
                        argv++;
                }
-               return EXIT_SUCCESS;
        } else {
                FILE *mountTable;
                struct mntent *mountEntry;
 
                mountTable = setmntent(mtab_file, "r");
                if (mountTable == 0) {
-                       perror(mtab_file);
+                       perrorMsg("%s", mtab_file);
                        return EXIT_FAILURE;
                }
 
                while ((mountEntry = getmntent(mountTable))) {
-                       df(mountEntry->mnt_fsname, mountEntry->mnt_dir);
+                       if (!df(mountEntry->mnt_fsname, mountEntry->mnt_dir))
+                               status = EXIT_FAILURE;
                }
                endmntent(mountTable);
        }
 
-       return EXIT_FAILURE;
+       return status;
 }
 
 /*
index a0f1606fe8dc2c5cc497f90143e53da8cb427ea3..23bb141da7391512275e8be84fee1ff0953b96b9 100644 (file)
@@ -125,6 +125,7 @@ static long du(char *filename)
 
 int du_main(int argc, char **argv)
 {
+       int status = EXIT_SUCCESS;
        int i;
        int c;
 
@@ -147,12 +148,14 @@ int du_main(int argc, char **argv)
 
        /* go through remaining args (if any) */
        if (optind >= argc) {
-               du(".");
+               if (du(".") == 0)
+                       status = EXIT_FAILURE;
        } else {
                long sum;
 
                for (i=optind; i < argc; i++) {
-                       sum = du(argv[i]);
+                       if (du(argv[i]) == 0)
+                               status = EXIT_FAILURE;
                        if (sum && isDirectory(argv[i], FALSE, NULL)) {
                                print_normal(sum, argv[i]);
                        }
@@ -160,10 +163,10 @@ int du_main(int argc, char **argv)
                }
        }
 
-       return EXIT_SUCCESS;
+       return status;
 }
 
-/* $Id: du.c,v 1.26 2000/12/01 02:55:13 kraai Exp $ */
+/* $Id: du.c,v 1.27 2000/12/06 15:55:23 kraai Exp $ */
 /*
 Local Variables:
 c-file-style: "linux"
diff --git a/df.c b/df.c
index aefffc771ab840a77fcc0db1bbf50f33be87921e..969a5b982b6a1d01ccf5c0c79415d9468f394c96 100644 (file)
--- a/df.c
+++ b/df.c
@@ -36,7 +36,7 @@ static int df(char *device, const char *mountPoint)
        long blocks_percent_used;
 
        if (statfs(mountPoint, &s) != 0) {
-               perror(mountPoint);
+               perrorMsg("%s", mountPoint);
                return FALSE;
        }
 
@@ -63,12 +63,13 @@ static int df(char *device, const char *mountPoint)
 
 extern int df_main(int argc, char **argv)
 {
+       int status = EXIT_SUCCESS;
+
        printf("%-20s %-14s %s %s %s %s\n", "Filesystem",
                   "1k-blocks", "Used", "Available", "Use%", "Mounted on");
 
        if (argc > 1) {
                struct mntent *mountEntry;
-               int status;
 
                if (**(argv + 1) == '-') {
                        usage(df_usage);
@@ -76,32 +77,30 @@ extern int df_main(int argc, char **argv)
                while (argc > 1) {
                        if ((mountEntry = findMountPoint(argv[1], mtab_file)) == 0) {
                                errorMsg("%s: can't find mount point.\n", argv[1]);
-                               exit(FALSE);
-                       }
-                       status = df(mountEntry->mnt_fsname, mountEntry->mnt_dir);
-                       if (status != TRUE)
-                               return EXIT_FAILURE;
+                               status = EXIT_FAILURE;
+                       } else if (!df(mountEntry->mnt_fsname, mountEntry->mnt_dir))
+                               status = EXIT_FAILURE;
                        argc--;
                        argv++;
                }
-               return EXIT_SUCCESS;
        } else {
                FILE *mountTable;
                struct mntent *mountEntry;
 
                mountTable = setmntent(mtab_file, "r");
                if (mountTable == 0) {
-                       perror(mtab_file);
+                       perrorMsg("%s", mtab_file);
                        return EXIT_FAILURE;
                }
 
                while ((mountEntry = getmntent(mountTable))) {
-                       df(mountEntry->mnt_fsname, mountEntry->mnt_dir);
+                       if (!df(mountEntry->mnt_fsname, mountEntry->mnt_dir))
+                               status = EXIT_FAILURE;
                }
                endmntent(mountTable);
        }
 
-       return EXIT_FAILURE;
+       return status;
 }
 
 /*
diff --git a/du.c b/du.c
index a0f1606fe8dc2c5cc497f90143e53da8cb427ea3..23bb141da7391512275e8be84fee1ff0953b96b9 100644 (file)
--- a/du.c
+++ b/du.c
@@ -125,6 +125,7 @@ static long du(char *filename)
 
 int du_main(int argc, char **argv)
 {
+       int status = EXIT_SUCCESS;
        int i;
        int c;
 
@@ -147,12 +148,14 @@ int du_main(int argc, char **argv)
 
        /* go through remaining args (if any) */
        if (optind >= argc) {
-               du(".");
+               if (du(".") == 0)
+                       status = EXIT_FAILURE;
        } else {
                long sum;
 
                for (i=optind; i < argc; i++) {
-                       sum = du(argv[i]);
+                       if (du(argv[i]) == 0)
+                               status = EXIT_FAILURE;
                        if (sum && isDirectory(argv[i], FALSE, NULL)) {
                                print_normal(sum, argv[i]);
                        }
@@ -160,10 +163,10 @@ int du_main(int argc, char **argv)
                }
        }
 
-       return EXIT_SUCCESS;
+       return status;
 }
 
-/* $Id: du.c,v 1.26 2000/12/01 02:55:13 kraai Exp $ */
+/* $Id: du.c,v 1.27 2000/12/06 15:55:23 kraai Exp $ */
 /*
 Local Variables:
 c-file-style: "linux"
diff --git a/mount.c b/mount.c
index 34dbb5eee474a12bdc1dc4d1828e5f68c1482532..ff8aef3799814cc8d176d870c8968fe66c082934 100644 (file)
--- a/mount.c
+++ b/mount.c
@@ -493,8 +493,9 @@ singlemount:
                                }
                        }
 #endif
-                       rc = mount_one(device, directory, filesystemType, flags,
-                               string_flags, useMtab, fakeIt, extra_opts, TRUE);
+                       if (!mount_one(device, directory, filesystemType, flags,
+                                       string_flags, useMtab, fakeIt, extra_opts, TRUE))
+                               rc = EXIT_FAILURE;
                                
                        if (all == FALSE)
                                break;
index 5f3e59caf68d83a0634cb2baaea045a9e84d92c4..eff080463abc8ba323da50bba82b1b7ac9963edf 100644 (file)
--- a/umount.c
+++ b/umount.c
@@ -278,7 +278,7 @@ extern int umount_main(int argc, char **argv)
                else
                        return EXIT_FAILURE;
        }
-       if (do_umount(*argv, useMtab) == 0)
+       if (do_umount(*argv, useMtab) == TRUE)
                return EXIT_SUCCESS;
        perror("umount");
        return EXIT_FAILURE;
index 34dbb5eee474a12bdc1dc4d1828e5f68c1482532..ff8aef3799814cc8d176d870c8968fe66c082934 100644 (file)
@@ -493,8 +493,9 @@ singlemount:
                                }
                        }
 #endif
-                       rc = mount_one(device, directory, filesystemType, flags,
-                               string_flags, useMtab, fakeIt, extra_opts, TRUE);
+                       if (!mount_one(device, directory, filesystemType, flags,
+                                       string_flags, useMtab, fakeIt, extra_opts, TRUE))
+                               rc = EXIT_FAILURE;
                                
                        if (all == FALSE)
                                break;
index 5f3e59caf68d83a0634cb2baaea045a9e84d92c4..eff080463abc8ba323da50bba82b1b7ac9963edf 100644 (file)
@@ -278,7 +278,7 @@ extern int umount_main(int argc, char **argv)
                else
                        return EXIT_FAILURE;
        }
-       if (do_umount(*argv, useMtab) == 0)
+       if (do_umount(*argv, useMtab) == TRUE)
                return EXIT_SUCCESS;
        perror("umount");
        return EXIT_FAILURE;