(set_binary): New.
authorWerner Koch <wk@gnupg.org>
Wed, 22 Dec 2004 17:55:28 +0000 (17:55 +0000)
committerWerner Koch <wk@gnupg.org>
Wed, 22 Dec 2004 17:55:28 +0000 (17:55 +0000)
(main, open_read, open_fwrite): Use it.

ChangeLog
NEWS
configure.ac
sm/ChangeLog
sm/gpgsm.c

index 1ca430c..ac27843 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2004-12-22  Werner Koch  <wk@g10code.com>
+
+       Released 1.9.14.
+
 2004-12-20  Werner Koch  <wk@g10code.com>
 
        * configure.ac: Add PATHSEP_C and PATHSEP_S. For W32 let all
diff --git a/NEWS b/NEWS
index 525fdbe..2b43e6d 100644 (file)
--- 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)
index 7eb3a6b..54a1372 100644 (file)
 
 # 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.
index 7a16cb5..df16700 100644 (file)
@@ -1,3 +1,8 @@
+2004-12-22  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (set_binary): New.
+       (main, open_read, open_fwrite): Use it.
+
 2004-12-21  Werner Koch  <wk@g10code.com>
 
        * gpgsm.c (main): Use default_homedir().
index 074027b..ff404dc 100644 (file)
 #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");