From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 99176 invoked by alias); 16 Feb 2019 09:39:01 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 99155 invoked by uid 89); 16 Feb 2019 09:39:00 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-100.9 required=5.0 tests=BAYES_00,GOOD_FROM_CORINNA_CYGWIN,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 spammy=family X-HELO: mout.kundenserver.de Received: from mout.kundenserver.de (HELO mout.kundenserver.de) (212.227.17.24) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 16 Feb 2019 09:38:59 +0000 Received: from calimero.vinschen.de ([24.134.7.25]) by mrelayeu.kundenserver.de (mreue108 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MrQR7-1hNhKh36ud-00oUrO for ; Sat, 16 Feb 2019 10:38:56 +0100 Received: by calimero.vinschen.de (Postfix, from userid 500) id E8011A807B5; Sat, 16 Feb 2019 10:38:55 +0100 (CET) Date: Sat, 16 Feb 2019 09:40:00 -0000 From: Corinna Vinschen To: cygwin@cygwin.com Subject: Re: textmode for stdout, what is "correct" now? Message-ID: <20190216093855.GR2702@calimero.vinschen.de> Reply-To: cygwin@cygwin.com Mail-Followup-To: cygwin@cygwin.com References: <739ed5ce-6902-d702-e152-65dc2c1da667@ssi-schaefer.com> <20190214162002.GA4950@calimero.vinschen.de> <6aa280c2-4769-0772-91d9-c73a3a3d9680@ssi-schaefer.com> <20190215102251.GA2702@calimero.vinschen.de> <20190215124844.GE2702@calimero.vinschen.de> <6d02258d-115d-135c-1404-1b02eec34045@ssi-schaefer.com> <20190215203108.GN2702@calimero.vinschen.de> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="ggdAeHltlv4tpqCr" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-SW-Source: 2019-02/txt/msg00222.txt.bz2 --ggdAeHltlv4tpqCr Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-length: 2105 On Feb 16 09:19, Michael Haubenwallner wrote: > On 2/15/19 9:31 PM, Corinna Vinschen wrote: > > On Feb 15 19:07, Michael Haubenwallner wrote: > >> On 2/15/19 1:48 PM, Corinna Vinschen wrote: > >>> On Feb 15 13:03, Michael Haubenwallner wrote: > >>>> On 2/15/19 11:22 AM, Corinna Vinschen wrote: > >>>>> 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, > >>>>>>>> [SNIP] > >>>>>> 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. > >> > >> To me it sounds strange to use the one but not the other: > >> > >> If we don't want O_TEXT at all, isn't O_BINARY obsolete as well, > >> so the advise should be to use neither - just like real *nix? > >=20 > > No, on text mode mounts O_BINARY makes sure that the result is > > actually a binary file. > >=20 > >> A consequence then might be to deprecate (or even remove) them > >> from the public API header files. > >=20 > > As long as we have text mode mounts, no. >=20 > Ah... So this feels like a semantic confusion around setmode(O_TEXT): >=20 > For the fopen() API family, POSIX says that conforming platforms should > accept (and eventually ignore) the 'b' character in the mode argument. > But note that there is no 't' character specified here. >=20 > So with the fopen() API family, application developers are able to > enable or disable binary mode, but are _not_ able to explicitly > enable or disable text mode. >=20 > Unfortunately, the setmode() API is semantically different, because it > does not allow to disable binary mode, but to "enable text mode" instead. >=20 > So with the setmode() API, when application developers want to disable > binary mode, their only option is to "enable text mode". setmode(fd, O_BINARY) works on Cygwin. Corinna --=20 Corinna Vinschen Cygwin Maintainer --ggdAeHltlv4tpqCr Content-Type: application/pgp-signature; name="signature.asc" Content-length: 833 -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEoVYPmneWZnwT6kwF9TYGna5ET6AFAlxn2i8ACgkQ9TYGna5E T6B1pxAAjk7b4D6204CC2fXY0Omxs2/ETbBHgvrGan8Avk97Xzy/nZD/2Id1ks9f eve1fH7DMduljd1qa248nuRgsUpQu2WiFwxBYww8ZRTkNuq1X0FFuycgwkUbBMLO xGqNiKTyFo9L4pIa7lkP3a/nPKG+6PZXIknEe5eqmDim891U2j+2rvWd7O25Cvd/ cnDkHLitehG1IajYHHLAnONw+nFQ7wtXnbNpkvuiBqJrcqBXECiu0lrIMFPJSfMU nO88mUm1ZOOAoHqFhyE1GfJNdzF1/T3d/lRbU0VcAxzDpBkTdOgnaMMuLWCaFQqn wcfh9f0yEygUoZNQAHD7b12apUVZO7dwrNzoGQ418J0ylqbtG8kfpL68osr+T3yQ /MSnG7grKNzYgh0jKIrEHbQXuAxadq+c6+r9LBaoNqm86XJCNyLXjLktBv0/fIsO OrBmClLrAVJrLBs7zCGxJkgMDzIqmeCqOokKfZcLJrejC+UMjjNfOGbrjvUxrqeu rcIsg+VW9lDQ7xVqBigG80r96ctYk5SvePzcTWWKkVdNuFf5G9ovx6h9yEj2NeF6 zc3IR3iJLn2IjU3zN4Hv3kgaKel3pHmXGuYVwHk8fY6FmMkE6iqSKrs+ohgwvhU5 dQdE9E/EuyzVuJF78HJfFJUuwky2zJyh5VwpkUiMyCECoFRsg/I= =AlDJ -----END PGP SIGNATURE----- --ggdAeHltlv4tpqCr--