From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2130.outbound.protection.outlook.com [40.107.236.130]) by sourceware.org (Postfix) with ESMTPS id A661038618B8 for ; Thu, 18 Feb 2021 21:24:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A661038618B8 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CVG2B+vBqqRLst8NnpvNrtrL55fOEu47tp6yctPsJ61/jw2xRKybme8plMxq0fc2Pg7OAftWTk0DctJwGNx6vIfJUFUA0tdokK3+6pWbHjQLO7A7PYFnzub6bEVj//CiqWcqpIdEDNbERR5OMJrz9nHOiQS7PJB5EmZflS1fHUDXG6l+DOAoHy48C2dYwlivk1m0kOpRvtb+7nW0BFKgTW9MZzgtPBn/oTyf447DkmS+5W1IX8MhClDJxEHHC7TcMH4RGaRambySRirgnOFldNh+gudLkpvzIabV+18HSVXgNpyu3fdj4CcbVXNMkF/1orQt8NUHgQgbM9bhmLFsbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WA7DzvNLEheiOwAzgFW/Ttny9W3Go7mjJYzemiB5rbQ=; b=KP3mCSjC6pPuATZnzomZ3cLpABStRBkjHpx4dcMVVXCEYkmFDEjvOtHbonsb/noRL+9hAtH6HQnpoFqLONnHKOw88UiIivIbq1KjI+mW/7OgWyjJXDDMc17vSbxtOxx23utEaDqLiWL6aUr63r9dB1cM63Qht+nge6eLCT0mrwYQveCrze9TjbZ2jGjIMfOF3KkhBSkae4e7TQqdtNtmlNaZ6WTgQkbOxhsURHQRbZj6qReAZYx7OhdTJiC/CU7zHmMbijFub4XPOdCHY4JSJbkfBQsWLsL8ud8oB2BMneRYzVomaQ6KMaRjozeth5Xcnc4P6EBc/g9ko5/k2l47tw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cornell.edu; dmarc=pass action=none header.from=cornell.edu; dkim=pass header.d=cornell.edu; arc=none Received: from BN7PR04MB4388.namprd04.prod.outlook.com (2603:10b6:406:f8::19) by BN7PR04MB4052.namprd04.prod.outlook.com (2603:10b6:406:c0::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3846.31; Thu, 18 Feb 2021 21:24:14 +0000 Received: from BN7PR04MB4388.namprd04.prod.outlook.com ([fe80::f071:e174:ef12:375c]) by BN7PR04MB4388.namprd04.prod.outlook.com ([fe80::f071:e174:ef12:375c%6]) with mapi id 15.20.3846.038; Thu, 18 Feb 2021 21:24:14 +0000 Subject: Re: set_open_status To: cygwin-developers@cygwin.com References: <562a95df-6685-c6cf-d57d-dfd292925b23@cornell.edu> From: Ken Brown Message-ID: <827688d5-b3d0-ba02-a81d-9dac62af5c98@cornell.edu> Date: Thu, 18 Feb 2021 16:23:29 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [24.194.34.31] X-ClientProxiedBy: MN2PR16CA0019.namprd16.prod.outlook.com (2603:10b6:208:134::32) To BN7PR04MB4388.namprd04.prod.outlook.com (2603:10b6:406:f8::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.0.17] (24.194.34.31) by MN2PR16CA0019.namprd16.prod.outlook.com (2603:10b6:208:134::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3868.27 via Frontend Transport; Thu, 18 Feb 2021 21:24:14 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d3d842f3-ca03-4da4-e75a-08d8d4538a79 X-MS-TrafficTypeDiagnostic: BN7PR04MB4052: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: w9C2FwPL7FdrlYwfACBwkoldzEr/X9hvURN6MM4QAxPvRcmQsBcrGUbCN4sVq+79pNS9ZlUNeW4GxCW7FwjCB1T07gMxbMW71OjwaJFEtXZjLN04sgoLhzqzGLHXiiSVoUj0L+GI10Eghhiprh7PQXQl7s7BbeckVE9feU6Vv9qDgJGK84ED+dKRQKTSk8l1VYRElSuZDXXF/zQGbs4ScRmDt9+YY15EXOcK8sg++nMO3CATP8JjfQk/UUDheGy26CxfDOIpo+JyTEAMH5wIOlJOL4J56MpLuLuxM2Xc29/QEeCdUPAW2JrsZHmzp7kZHXem7O5i8Tib9VD18GfzQuN70tXfhqWrUwdjQjfIEzSAR9JFiAtObNZN9D4L/F8v0zvydH7xKG62XQLxxQDKpjDq8aonsJu8vDo5BEK26+QVzVSpQeV3LQPg21Ouyv2/hmaQbesMcapGdPkHZ5oPdsXmTNgTa6R22+EG+5bOXBFZu3+yXl51UhxzTwloCCOOmNmMVzDPk3UQFs4rR9kIqYUmhRAREVZ+D+Izbpw8RmGPa+P2j0CXspbG6viLgiF6n3HfFu5wr45QdBCIkVVQxRPeSc4ZTLNW5xn2o+KMTsk= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN7PR04MB4388.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(136003)(376002)(346002)(396003)(39860400002)(7116003)(66476007)(86362001)(31686004)(316002)(6916009)(16526019)(786003)(53546011)(52116002)(186003)(31696002)(36756003)(83380400001)(6666004)(5660300002)(16576012)(26005)(956004)(66946007)(2906002)(6486002)(2616005)(478600001)(66556008)(8936002)(75432002)(8676002)(43740500002)(45980500001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?Windows-1252?Q?KgbhXMFCSNHTLIgmuFWftV/Kit4oDPswef1baNi27G6zIiSujqHuSIZK?= =?Windows-1252?Q?M/jtBUHv0z0Sj8DT/+jNgFXH4A0LWaGlf6biypOgj/z0+LLZ9FVmgYnc?= =?Windows-1252?Q?WIWzlweZqzcSw1cfp8qxLRUfaptU8BEQvKb3PWJvImRmpQn5aekuwU8R?= =?Windows-1252?Q?5w8wMljjTi5FGhKwS2WBD27GJ1uq+tnH57jer+vfT/tFrFLGc/jI/S8Z?= =?Windows-1252?Q?guXRJl9f75lUo0v81eGh5k6CwSSW1OlFg1jdNdFVaTU2WaD0UtWqwuPx?= =?Windows-1252?Q?FT+8QF+zFaIDcJ/kKOP5x9YxTLnFxoGmf8MjStQ4nFmZDTaM+3RwiCOk?= =?Windows-1252?Q?PuZPkz2fBeZh/LE2l/Cm0NarL6OKmQUTkxNXDr238bYtOyhhVk5h/FEj?= =?Windows-1252?Q?34tYVrDNlcHka3arNf0+xTg+5yt4YsjpN+IPma9r9wOYOc/+gGw/5Qce?= =?Windows-1252?Q?M4vNT+ZPMKi2hxHBtyVHD9bJBmWiAO0s7ZyvDwBnvRBd4M7+QZ9tQlPw?= =?Windows-1252?Q?7QeTVlfXCx9e+gG8lkVPRQToDVYWxh4QkpYXqPCN5P2Pp7T9pujRr9Yw?= =?Windows-1252?Q?O49t75vt4lGx4yXyuenLVKBIL7EB198fkOKTx4tOqJdR4dq7IDh/A+bD?= =?Windows-1252?Q?ZB/5UWJVysWK2Fo38X/Y4tplnfO05oTKZ0nTyfNPZOuXdjxhsonVXh8V?= =?Windows-1252?Q?/FcxS+/pcQX63/W3xoNsy7k7rzmoj+ZlePR/hy+7xS99do21IfFBXoh4?= =?Windows-1252?Q?HjsPMyRU4jen+AvCAGUpkKr4laOBZF4ASwYBmgs9sNT6qErmcUGnQs3P?= =?Windows-1252?Q?0LlOEDKM8W5t5F+0oklWzLYX+7qegyIIQHTnLcsBpCl0D+xfpo1kdoji?= =?Windows-1252?Q?AA/mNZfijtKEt2RfnKRHEiwkojUJQR+6PlYsVVhkVN/hvRTjRSuznGtB?= =?Windows-1252?Q?JhfgTD2Dl7R6zYz9ujo80YImoXYgWtWTREOiXjL0vEhoFWPrH9idMLj6?= =?Windows-1252?Q?DWWcFawVcBcGlk6nseOHmItmT26LYK/KOBowKTcRYg7rzKP3QbSAIUJy?= =?Windows-1252?Q?Ttu4F+WZW3eXn+OfccXed9SyDWM79Brzw7w9Sb0HrX/qPI5AuY4P8czi?= =?Windows-1252?Q?Le24XjVjY0AXaX6VAVU3lvEshr0t59tB44j2838uISqC4hzZZ7dBzLt2?= =?Windows-1252?Q?G1HnllczBQmi3F/Kl7VJlp+pMR0fAvZzYFdEId8CAVTQut9pNl29XoSP?= =?Windows-1252?Q?htAOnu2p0N0RXMWlpLFi2aYI7fHrWrEtwK7eBvbmin/ApUhHOloPVIfU?= =?Windows-1252?Q?LDuw8RIRXYTLCJisRGs9Aghievp5/z5Lx//o0gbNmXva20SExpNsFens?= =?Windows-1252?Q?EXP1vklPqUDTuohxAlBGq4I4poDFL71LF6W0essTF4DT/Zp87AYb+A+t?= X-OriginatorOrg: cornell.edu X-MS-Exchange-CrossTenant-Network-Message-Id: d3d842f3-ca03-4da4-e75a-08d8d4538a79 X-MS-Exchange-CrossTenant-AuthSource: BN7PR04MB4388.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2021 21:24:14.5562 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5d7e4366-1b9b-45cf-8e79-b14b27df46e1 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: COOkk6NAZ6YTNjuNTse9qKk8abGs7eb7ZABsf8MOHuOLR0T1WTu7ylYTZVzGGG3+aNXrCbCTqta5IM5thgOICw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR04MB4052 X-Spam-Status: No, score=-10.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: cygwin-developers@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component developers mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Feb 2021 21:24:18 -0000 On 2/18/2021 8:07 AM, Corinna Vinschen via Cygwin-developers wrote: > On Feb 18 10:07, Corinna Vinschen via Cygwin-developers wrote: >> On Feb 17 16:35, Ken Brown via Cygwin-developers wrote: >>> Most fhandlers call set_open_status in their 'open' method before a >>> successful return. I just noticed that fhandler_fifo::open doesn't do this. >>> I thought at first that it was an oversight on my part from when I >>> overhauled the FIFO implementation, but I just checked fhandler_fifo.cc as >>> of cygwin 2.9.0, and I don't see it there either. >>> >>> Is there some reason this would be wrong for FIFOs? >> >> I guess this was just an oversight. It's certainly not fatal, given how >> open_status is used exclusively by fhandler_base::reset_to_open_binmode() >> in turn *only* called from setmode(fd, 0). This is quite a bordercase. >> Combined with FIFOs supporting only O_BINARY mode anyway... >> >> It won't hurt to add the set_open_mode call to FIFOs but it won't change >> anything, except avoiding to report O_TEXT mode after a call to >> setmode(fd, 0). >> >> Maybe it would be better to change fhandler_base::reset_to_open_binmode >> instead. Right now, if open_status hasn't been initialized, it prefers >> O_TEXT over O_BINARY. That's unfortunate, because it forces us to call >> set_open_mode everywhere to make sure the mode is stored correctly for >> this single, and seldom, invocation of setmode(fd, 0). It would be nice >> if set_open_mode would only be necessary on fhandlers supporting O_TEXT >> at all. > > On second thought, this should do the trick: > > diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h > index e457e2785e9b..ac9ee7c9e787 100644 > --- a/winsup/cygwin/fhandler.h > +++ b/winsup/cygwin/fhandler.h > @@ -274,7 +274,8 @@ class fhandler_base > void reset_to_open_binmode () > { > set_flags ((get_flags () & ~(O_TEXT | O_BINARY)) > - | ((open_status.wbinary || open_status.rbinary) > + | (((open_status.wbinset ? open_status.wbinary : 1) > + || (open_status.rbinset ? open_status.rbinary : 1)) > ? O_BINARY : O_TEXT)); > } Yes, this looks right. Ken