From de6f6d2015cc02833d10b06f6507a97a89fceed6 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 22 Dec 2004 17:55:28 +0000 Subject: [PATCH] (set_binary): New. (main, open_read, open_fwrite): Use it. --- ChangeLog | 4 ++++ NEWS | 6 ++++-- configure.ac | 4 ++-- sm/ChangeLog | 5 +++++ sm/gpgsm.c | 40 ++++++++++++++++++++++++++++++++++++---- 5 files changed, 51 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1ca430c63..ac2784365 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2004-12-22 Werner Koch + + Released 1.9.14. + 2004-12-20 Werner Koch * configure.ac: Add PATHSEP_C and PATHSEP_S. For W32 let all diff --git a/NEWS b/NEWS index 525fdbe72..2b43e6dd1 100644 --- a/NEWS +++ b/NEWS @@ -1,11 +1,13 @@ -Noteworthy changes in version 1.9.14 +Noteworthy changes in version 1.9.14 (2004-12-22) ------------------------------------------------- * [gpg-agent] New option --use-standard-socket to allow the use of a fixed socket. gpgsm falls back to this socket if GPG_AGENT_INFO has not been set. - * Ported to MS Windows. + * Ported to MS Windows with some functional limitations. + + * New tool gpg-preset-passphrase. Noteworthy changes in version 1.9.13 (2004-12-03) diff --git a/configure.ac b/configure.ac index 7eb3a6b71..54a1372bd 100644 --- a/configure.ac +++ b/configure.ac @@ -20,11 +20,11 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.52) -min_automake_version="1.7.9" +min_automake_version="1.9.3" # Version number: Remember to change it immediately *after* a release. # Add a "-cvs" prefix for non-released code. -AC_INIT(gnupg, 1.9.14-cvs, gnupg-devel@gnupg.org) +AC_INIT(gnupg, 1.9.14, gnupg-devel@gnupg.org) # Set development_version to yes if the minor number is odd or you # feel that the default check for a development version is not # sufficient. diff --git a/sm/ChangeLog b/sm/ChangeLog index 7a16cb570..df1670082 100644 --- a/sm/ChangeLog +++ b/sm/ChangeLog @@ -1,3 +1,8 @@ +2004-12-22 Werner Koch + + * gpgsm.c (set_binary): New. + (main, open_read, open_fwrite): Use it. + 2004-12-21 Werner Koch * gpgsm.c (main): Use default_homedir(). diff --git a/sm/gpgsm.c b/sm/gpgsm.c index 074027bf2..ff404dc69 100644 --- a/sm/gpgsm.c +++ b/sm/gpgsm.c @@ -39,6 +39,11 @@ #include "keydb.h" #include "sysutils.h" + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + enum cmd_and_opt_values { aNull = 0, oArmor = 'a', @@ -562,6 +567,17 @@ build_list (const char *text, const char * (*mapf)(int), int (*chkf)(int)) } +/* Set the file pointer into binary mode if required. */ +static void +set_binary (FILE *fp) +{ +#ifdef HAVE_DOSISH_SYSTEM + setmode (fileno (fp), O_BINARY); +#endif +} + + + static void i18n_init(void) { @@ -758,7 +774,7 @@ main ( int argc, char **argv) opt.homedir = default_homedir (); #ifdef HAVE_W32_SYSTEM - opt.no_crl_checks = 1; + opt.no_crl_check = 1; #endif /* First check whether we have a config file on the commandline */ @@ -1374,6 +1390,8 @@ main ( int argc, char **argv) break; case aEncr: /* encrypt the given file */ + set_binary (stdin); + set_binary (stdout); if (!argc) gpgsm_encrypt (&ctrl, recplist, 0, stdout); /* from stdin */ else if (argc == 1) @@ -1386,6 +1404,8 @@ main ( int argc, char **argv) /* FIXME: We don't handle --output yet. We should also allow to concatenate multiple files for signing because that is what gpg does.*/ + set_binary (stdin); + set_binary (stdout); if (!argc) gpgsm_sign (&ctrl, signerlist, 0, detached_sig, stdout); /* create from stdin */ @@ -1408,6 +1428,7 @@ main ( int argc, char **argv) { FILE *fp = NULL; + set_binary (stdin); if (argc == 2 && opt.outfile) log_info ("option --output ignored for a detached signature\n"); else if (opt.outfile) @@ -1432,6 +1453,8 @@ main ( int argc, char **argv) break; case aDecrypt: + set_binary (stdin); + set_binary (stdout); if (!argc) gpgsm_decrypt (&ctrl, 0, stdout); /* from stdin */ else if (argc == 1) @@ -1502,6 +1525,7 @@ main ( int argc, char **argv) break; case aExport: + set_binary (stdout); for (sl=NULL; argc; argc--, argv++) add_to_strlist (&sl, *argv); gpgsm_export (&ctrl, sl, stdout); @@ -1509,6 +1533,7 @@ main ( int argc, char **argv) break; case aExportSecretKeyP12: + set_binary (stdout); if (argc == 1) gpgsm_p12_export (&ctrl, *argv, stdout); else @@ -1644,11 +1669,14 @@ open_read (const char *filename) int fd; if (filename[0] == '-' && !filename[1]) - return 0; /* stdin */ + { + set_binary (stdin); + return 0; /* stdin */ + } fd = check_special_filename (filename); if (fd != -1) return fd; - fd = open (filename, O_RDONLY); + fd = open (filename, O_RDONLY | O_BINARY); if (fd == -1) { log_error (_("can't open `%s': %s\n"), filename, strerror (errno)); @@ -1668,7 +1696,10 @@ open_fwrite (const char *filename) FILE *fp; if (filename[0] == '-' && !filename[1]) - return stdout; + { + set_binary (stdout); + return stdout; + } fd = check_special_filename (filename); if (fd != -1) @@ -1679,6 +1710,7 @@ open_fwrite (const char *filename) log_error ("fdopen(%d) failed: %s\n", fd, strerror (errno)); gpgsm_exit (2); } + set_binary (fp); return fp; } fp = fopen (filename, "wb");