public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Corinna Vinschen <corinna-cygwin@cygwin.com>
To: cygwin@cygwin.com
Subject: Re: textmode for stdout, what is "correct" now?
Date: Fri, 15 Feb 2019 10:28:00 -0000	[thread overview]
Message-ID: <20190215102251.GA2702@calimero.vinschen.de> (raw)
In-Reply-To: <6aa280c2-4769-0772-91d9-c73a3a3d9680@ssi-schaefer.com>

[-- Attachment #1: Type: text/plain, Size: 2167 bytes --]

On Feb 15 08:56, Michael Haubenwallner wrote:
> On 2/14/19 5:20 PM, Corinna Vinschen wrote:
> > On Feb 14 16:23, Michael Haubenwallner wrote:
> >> Hi,
> >>
> >> so I find myself struggling with textmode versus binmode for stdio again.
> >>
> >> Running the openssl command (from within the apps/ build directory here) does
> >> yield different results regarding carriage return depending on the version:
> >>
> >> $ ./apps/openssl version
> >> OpenSSL 1.0.2p  14 Aug 2018
> >> $ ./apps/openssl x509 -hash -noout -in /etc/pki/tls/cert.pem | xxd
> >> 00000000: 6139 3464 3039 6535 0a                   a94d09e5.
> >>
> >>
> >> $ ./apps/openssl version
> >> OpenSSL 1.1.0j  20 Nov 2018
> >> $ ./apps/openssl x509 -hash -noout -in /etc/pki/tls/cert.pem | xxd
> >> 00000000: 6139 3464 3039 6535 0d0a                 a94d09e5..
> >>
> >> Some subsequent shell script does create wrong symlink filenames
> >> (with embedded CR) when used with openssl-1.1.x.
> >>
> >> The commit that changed this behaviour in openssl-1.1 is:
> >> https://github.com/openssl/openssl/commit/bdd58d98467e9f0f6635c1628e1eae304383afb1
> >>
> >> >From an openssl developer's point of view, I can understand to set
> >> textmode when the intent is to output some text, and to set
> >> binmode when the intent is to output some binary data.
> > 
> > How do you create \r\n in this case?  The upstream patch never
> > adds the explicit 't' flag.  It only adds 'b' or nothing.  So
> > the output should be \n only unless you write to a file on a
> > text mode mount.  What am I missing?
> 
> Down the line in their BIO module they do use setmode(fd, O_TEXT),
> which is the one that does introduce the \r, as far as I know.

This one is not so nice.  Somebody should tell upstream we only
want explicit O_BINARY these days, but no explicit O_TEXT.

> The backtrace in openssl-1.1.1a in this use case is:
> [...]
> >> Question now is: These days, what is the correct way to handle this?

Telling upstream not to use O_TEXT on Cygwin in the first place, I think.

For scripting, d2u should help.


Corinna

-- 
Corinna Vinschen
Cygwin Maintainer

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2019-02-15 10:22 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-14 16:05 Michael Haubenwallner
2019-02-14 18:51 ` Corinna Vinschen
2019-02-15  9:31   ` Michael Haubenwallner
2019-02-15 10:28     ` Corinna Vinschen [this message]
2019-02-15 12:48       ` Michael Haubenwallner
2019-02-15 12:49         ` Corinna Vinschen
2019-02-15 18:25           ` Michael Haubenwallner
2019-02-15 20:35             ` Corinna Vinschen
2019-02-16  9:39               ` Michael Haubenwallner
2019-02-16  9:40                 ` Corinna Vinschen
2019-02-16 17:40                   ` Michael Haubenwallner
2019-02-17  0:11                     ` Corinna Vinschen
2019-02-18 10:01                       ` Michael Haubenwallner
2019-02-18 10:43                         ` Corinna Vinschen
2019-02-18 12:15                           ` Michael Haubenwallner
2019-02-18 13:39                             ` Corinna Vinschen
2019-02-18 15:13                               ` Michael Haubenwallner
2019-02-18 16:04                                 ` Corinna Vinschen
2019-02-15 14:20         ` Andrey Repin
2019-02-15 18:50           ` portable use of dos2unix WAS: " Michael Haubenwallner
2019-02-15 19:14             ` Andrey Repin
2019-02-15 19:43               ` Michael Haubenwallner
2019-02-15 20:50                 ` Andrey Repin
2019-02-15 21:21                 ` Corinna Vinschen
2019-02-18 10:09                   ` Michael Haubenwallner
2019-02-18 10:26                     ` Corinna Vinschen
2019-02-18 13:07                     ` Jeffrey Walton
2019-02-15 21:32                 ` Brian Inglis
2019-02-16  6:09 ` Jeffrey Walton
2019-02-16  9:45   ` Corinna Vinschen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190215102251.GA2702@calimero.vinschen.de \
    --to=corinna-cygwin@cygwin.com \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).