]> thyrsus.com Git - comparator.git/commitdiff
Exit with message on chdir() failure.
authorEric S. Raymond <esr@thyrsus.com>
Tue, 19 Oct 2010 07:44:34 +0000 (03:44 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Tue, 19 Oct 2010 07:44:34 +0000 (03:44 -0400)
main.c

diff --git a/main.c b/main.c
index 15869defdedde5563eeb46448cd07419ba3b7346..d1bb91f8dd863ae10611c4e4d848458cf3648a2b 100644 (file)
--- a/main.c
+++ b/main.c
@@ -528,7 +528,11 @@ main(int argc, char *argv[])
     {
        if (dir)
        {
-           (void)chdir(dir);
+           if (chdir(dir) != 0)
+           {
+               fprintf(stderr, "comparator: cd failed!\n");
+               exit(1);
+           }
        }
        write_scf(argv[optind], redirect(outfile));
        exit(0);
@@ -563,11 +567,20 @@ main(int argc, char *argv[])
            if (dir)
            {
                olddir = getcwd(NULL, PATH_MAX);
-               (void)chdir(dir);
+               if (chdir(dir) != 0)
+               {
+                   fprintf(stderr, "comparator: cd failed!\n");
+                   exit(1);
+               }
            }
            write_scf(source, ofp);
-           if (dir)
-               (void)chdir(olddir);
+           if (dir) {
+               if (chdir(dir) != 0)
+               {
+                   fprintf(stderr, "comparator: cd failed!\n");
+                   exit(1);
+               }
+           }
            fclose(ofp);
        }
        else
@@ -575,12 +588,22 @@ main(int argc, char *argv[])
            if (dir)
            {
                olddir = getcwd(NULL, PATH_MAX);
-               (void)chdir(dir);
+               if (chdir(dir) != 0)
+               {
+                   fprintf(stderr, "comparator: cd failed!\n");
+                   exit(1);
+               }
            }
            init_scf(source, scf, 0);
            scf->totallines = merge_tree(source);
            if (dir)
-               (void)chdir(olddir);
+           {
+               if (chdir(dir) != 0)
+               {
+                   fprintf(stderr, "comparator: cd failed!\n");
+                   exit(1);
+               }
+           }
        }
     }