X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/c65df27983057ec76ed0e72bb370f9a5ae7dad28..2a7c52031aa0096b4f20ec1dd72e5f6e08a19aa9:/hashsum.c diff --git a/hashsum.c b/hashsum.c index c9bb3ec..9721410 100644 --- a/hashsum.c +++ b/hashsum.c @@ -7,7 +7,7 @@ * (c) 2000 Straylight/Edgeware */ -/*----- Licensing notice --------------------------------------------------* +/*----- Licensing notice --------------------------------------------------* * * This file is part of Catacomb. * @@ -15,12 +15,12 @@ * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. - * + * * Catacomb is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. - * + * * You should have received a copy of the GNU Library General Public * License along with Catacomb; if not, write to the Free * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, @@ -94,7 +94,7 @@ static size_t gethex(const char *p, octet *q, size_t sz, char **pp) } if (pp) *pp = (char *)p; - return (i); + return (i); } /* --- Base64 encoding --- */ @@ -211,7 +211,7 @@ static int fhash(const char *file, unsigned f, const gchash *gch, void *buf) ghash *h; int e; - if (!file) + if (!file || strcmp(file, "-") == 0) fp = stdin; else if ((fp = fopen(file, f & f_binary ? "rb" : "r")) == 0) return (-1); @@ -441,7 +441,7 @@ static int checkhash(const char *file, unsigned f, unsigned long n = 0, nfail = 0; octet *buf = xmalloc(2 * gch->hashsz); - if (!file) + if (!file || strcmp(file, "-") == 0) fp = stdin; else if ((fp = fopen(file, f & f_raw ? "r" : "rb")) == 0) { moan("couldn't open `%s': %s", file, strerror(errno)); @@ -571,7 +571,7 @@ static int hashfiles(const char *file, unsigned f, int rc = 0; int rrc; - if (!file) + if (!file || strcmp(file, "-") == 0) fp = stdin; else if ((fp = fopen(file, f & f_raw ? "r" : "rb")) == 0) { moan("couldn't open `%s': %s", file, strerror(errno)); @@ -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;