aboutsummaryrefslogtreecommitdiffstats
path: root/g10
diff options
context:
space:
mode:
Diffstat (limited to 'g10')
-rw-r--r--g10/ChangeLog6
-rw-r--r--g10/encode.c37
-rw-r--r--g10/g10.c5
-rw-r--r--g10/main.h2
4 files changed, 37 insertions, 13 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 872791703..c4ff17743 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,5 +1,11 @@
2001-01-09 Timo Schulz <[email protected]>
+ * encode.c (encode_crypt_files): Now it behaves like verify_files.
+ * g10.c (main): We don't need to check argc for encode_crypt_files
+ any longer.
+
+2001-01-09 Timo Schulz <[email protected]>
+
* exec.c: Include windows.h for dosish systems.
2002-01-08 Timo Schulz <[email protected]>
diff --git a/g10/encode.c b/g10/encode.c
index 3a90c3712..d2dba0fd0 100644
--- a/g10/encode.c
+++ b/g10/encode.c
@@ -566,16 +566,35 @@ write_pubkey_enc_from_list( PK_LIST pk_list, DEK *dek, IOBUF out )
}
void
-encode_crypt_files(int argc, char **argv, STRLIST remusr)
+encode_crypt_files(int nfiles, char **files, STRLIST remusr)
{
int rc = 0;
-
- while (argc--) {
- print_file_status(STATUS_FILE_START, *argv, 2);
- if ( (rc = encode_crypt(*argv, remusr)) )
- log_error("%s: encryption failed: %s\n", print_fname_stdin(*argv),
- g10_errstr(rc) );
- write_status( STATUS_FILE_DONE );
- argv++;
+
+ if (!nfiles) {
+ char line[2048];
+ unsigned int lno = 0;
+ while ( fgets(line, DIM(line), stdin) ) {
+ lno++;
+ if (!*line || line[strlen(line)-1] != '\n') {
+ log_error("input line %u too long or missing LF\n", lno);
+ return;
+ }
+ line[strlen(line)-1] = '\0';
+ print_file_status(STATUS_FILE_START, line, 2);
+ if ( (rc = encode_crypt(line, remusr)) )
+ log_error("%s: encryption failed: %s\n", print_fname_stdin(line),
+ g10_errstr(rc) );
+ write_status( STATUS_FILE_DONE );
+ }
+ }
+ else {
+ while (nfiles--) {
+ print_file_status(STATUS_FILE_START, *files, 2);
+ if ( (rc = encode_crypt(*files, remusr)) )
+ log_error("%s: encryption failed: %s\n", print_fname_stdin(*files),
+ g10_errstr(rc) );
+ write_status( STATUS_FILE_DONE );
+ files++;
+ }
}
}
diff --git a/g10/g10.c b/g10/g10.c
index 0fc15d25e..ac685fd73 100644
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -816,7 +816,7 @@ main( int argc, char **argv )
opt.homedir = buf;
}
#endif
-
+ #undef USE_SHM_COPROCESSING
#ifdef USE_SHM_COPROCESSING
if( opt.shm_coprocess ) {
init_shm_coprocessing(requested_shm_size, 1 );
@@ -1541,9 +1541,8 @@ main( int argc, char **argv )
break;
case aEncrFiles: /* encrypt the given files */
- if (argc)
encode_crypt_files(argc, argv, remusr);
- break;
+ break;
case aSign: /* sign the given file */
sl = NULL;
diff --git a/g10/main.h b/g10/main.h
index 772e1c432..b262056b0 100644
--- a/g10/main.h
+++ b/g10/main.h
@@ -76,7 +76,7 @@ void display_online_help( const char *keyword );
int encode_symmetric( const char *filename );
int encode_store( const char *filename );
int encode_crypt( const char *filename, STRLIST remusr );
-void encode_crypt_files(int argc, char **argv, STRLIST remusr);
+void encode_crypt_files(int nfiles, char **files, STRLIST remusr);
int encrypt_filter( void *opaque, int control,
IOBUF a, byte *buf, size_t *ret_len);