hashsum: Write directives when hashing a list of files from stdin.
authorMark Wooding <mdw@distorted.org.uk>
Thu, 31 Jan 2008 12:01:00 +0000 (12:01 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Thu, 31 Jan 2008 12:07:57 +0000 (12:07 +0000)
Otherwise the list can't be verified properly.

hashsum.c

index b9afe70..9721410 100644 (file)
--- a/hashsum.c
+++ b/hashsum.c
@@ -753,6 +753,11 @@ int main(int argc, char *argv[])
 
   /* --- Generate output --- */
 
+  if (!(f & f_check) && (argc || (f & f_files))) {
+    if (f & f_oddhash) printf("#hash %s\n", gch->name);
+    if (f & f_oddenc) printf("#encoding %s\n", e->name);
+    if (f & f_escape) fputs("#escape\n", stdout);
+  }
   if (!argc)
     rc = hashsum(0, f, gch, e);
   else {
@@ -760,11 +765,6 @@ int main(int argc, char *argv[])
     int rrc;
 
     rc = 0;
-    if (!(f & f_check)) {
-      if (f & f_oddhash) printf("#hash %s\n", gch->name);
-      if (f & f_oddenc) printf("#encoding %s\n", e->name);
-      if (f & f_escape) fputs("#escape\n", stdout);
-    }
     for (i = 0; i < argc; i++) {
       if ((rrc = hashsum(argv[i], f, gch, e)) != 0)
        rc = rrc;