diff options
author | Artem Chudinov <arzeth0@gmail.com> | 2015-10-30 15:11:18 +0300 |
---|---|---|
committer | Artem Chudinov <arzeth0@gmail.com> | 2015-10-30 15:44:18 +0300 |
commit | 625392b921bc28e78fe5b6deda0a39fcc16d8379 (patch) | |
tree | a9866c1301b28e63b032f38876f14504602878d7 | |
parent | 56fe64a06cc288bfa10a1fef04219d1b46de09f6 (diff) |
b2sum: Support reading from stdin
-rw-r--r-- | b2sum/b2sum.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/b2sum/b2sum.c b/b2sum/b2sum.c index 2d7df35..073b60f 100644 --- a/b2sum/b2sum.c +++ b/b2sum/b2sum.c @@ -232,6 +232,7 @@ static void usage( char **argv ) { fprintf( stderr, "Usage: %s [-a HASH] [FILE]...\n", argv[0] ); fprintf( stderr, "\tHASH in blake2b blake2s blake2bp blake2sp\n" ); + fprintf( stderr, "\tWith no FILE, or when FILE is -, read standard input.\n" ); exit( 111 ); } @@ -281,10 +282,16 @@ int main( int argc, char **argv ) } } + if( optind == argc ) + argv[argc++] = (char *) "-"; + for( int i = optind; i < argc; ++i ) { FILE *f = NULL; - f = fopen( argv[i], "rb" ); + if( argv[i][0] == '-' && argv[i][1] == '\0' ) + f = stdin; + else + f = fopen( argv[i], "rb" ); if( !f ) { @@ -303,7 +310,7 @@ int main( int argc, char **argv ) printf( " %s\n", argv[i] ); end1: - fclose( f ); + if( f != stdin ) fclose( f ); end0: ; } |