Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/BLAKE2/BLAKE2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtem Chudinov <arzeth0@gmail.com>2015-10-30 15:11:18 +0300
committerArtem Chudinov <arzeth0@gmail.com>2015-10-30 15:44:18 +0300
commit625392b921bc28e78fe5b6deda0a39fcc16d8379 (patch)
treea9866c1301b28e63b032f38876f14504602878d7
parent56fe64a06cc288bfa10a1fef04219d1b46de09f6 (diff)
b2sum: Support reading from stdin
-rw-r--r--b2sum/b2sum.c11
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: ;
}