shithub: blake2

Download patch

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: ;
   }
 
--