ref: 625392b921bc28e78fe5b6deda0a39fcc16d8379
parent: 56fe64a06cc288bfa10a1fef04219d1b46de09f6
author: Artem Chudinov <arzeth0@gmail.com>
date: Fri Oct 30 13:11:18 EDT 2015
b2sum: Support reading from stdin
--- a/b2sum/b2sum.c
+++ b/b2sum/b2sum.c
@@ -232,6 +232,7 @@
{
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 @@
}
}
+ 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 @@
printf( " %s\n", argv[i] );
end1:
- fclose( f );
+ if( f != stdin ) fclose( f );
end0: ;
}
--
⑨