diff options
author | Werner Koch <[email protected]> | 2017-03-08 16:23:31 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2017-03-08 16:25:27 +0000 |
commit | 5c83759364272b19ceafbef46d057f0430a12698 (patch) | |
tree | 1e9bfbb91b6d61d27ce86737e51c0318e4ea6329 | |
parent | build: Use macOS' compatibility macros to enable all features. (diff) | |
download | gnupg-5c83759364272b19ceafbef46d057f0430a12698.tar.gz gnupg-5c83759364272b19ceafbef46d057f0430a12698.zip |
wks: Put stdout into binary mode for Windows.
* tools/send-mail.c (send_mail_to_file): Call es_set_binary.
--
Without that, output to stdout via --send is mangled: The "\r\n" is
translated to "\r\r\n" which is bad because other
software (e.g. Thunderbird) translates this again to "\n\n" and thus
put all mail header liens after the first into the body.
Signed-off-by: Werner Koch <[email protected]>
-rw-r--r-- | tools/send-mail.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/tools/send-mail.c b/tools/send-mail.c index 34d47c16d..fb1a9d0c9 100644 --- a/tools/send-mail.c +++ b/tools/send-mail.c @@ -71,13 +71,23 @@ send_mail_to_file (estream_t fp, const char *fname) if (!buffer) return gpg_error_from_syserror (); - outfp = !strcmp (fname,"-")? es_stdout : es_fopen (fname, "wb"); - if (!outfp) + + if (!strcmp (fname,"-")) { - err = gpg_error_from_syserror (); - log_error ("error creating '%s': %s\n", fname, gpg_strerror (err)); - goto leave; + outfp = es_stdout; + es_set_binary (es_stdout); } + else + { + outfp = es_fopen (fname, "wb"); + if (!outfp) + { + err = gpg_error_from_syserror (); + log_error ("error creating '%s': %s\n", fname, gpg_strerror (err)); + goto leave; + } + } + for (;;) { if (es_read (fp, buffer, sizeof buffer, &nbytes)) |