From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7868) id 2852F3858005; Sun, 31 Jul 2022 08:57:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2852F3858005 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Takashi Yano To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: pty: Treat *.bat and *.cmd as a non-cygwin console app. X-Act-Checkin: newlib-cygwin X-Git-Author: Takashi Yano X-Git-Refname: refs/heads/master X-Git-Oldrev: 8d564b62b711bc93850c1b6a8632196abc4768cf X-Git-Newrev: d5229f821160c9e9875c4b662f5be097b7cf6d18 Message-Id: <20220731085708.2852F3858005@sourceware.org> Date: Sun, 31 Jul 2022 08:57:08 +0000 (GMT) X-BeenThere: cygwin-cvs@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component git logs List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 Jul 2022 08:57:08 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dnewlib-cygwin.git;h=3Dd5229f82116= 0c9e9875c4b662f5be097b7cf6d18 commit d5229f821160c9e9875c4b662f5be097b7cf6d18 Author: Takashi Yano Date: Sun Jul 31 17:42:00 2022 +0900 Cygwin: pty: Treat *.bat and *.cmd as a non-cygwin console app. =20 - If *.bat or *.cmd is executed directly from cygwin shell, pty failed to switch I/O pipe to that for native apps. This patch fixes the issue. Diff: --- winsup/cygwin/release/3.3.6 | 5 +++++ winsup/cygwin/spawn.cc | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/release/3.3.6 b/winsup/cygwin/release/3.3.6 index 44a7bcf9d..5fb59bf7d 100644 --- a/winsup/cygwin/release/3.3.6 +++ b/winsup/cygwin/release/3.3.6 @@ -26,3 +26,8 @@ Bug Fixes - Fix a console problem that the text longer than 1024 bytes cannot be pasted correctly. Addresses: https://cygwin.com/pipermail/cygwin/2022-June/251764.html + +- Fix a pty problem that pty failed to switch I/O pipe to that for + native apps if *.bat or *.cmd is executed directly from cygwin + shell. + Addresses: https://cygwin.com/pipermail/cygwin/2022-July/251993.html diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc index 2f745e14a..7de96827c 100644 --- a/winsup/cygwin/spawn.cc +++ b/winsup/cygwin/spawn.cc @@ -227,7 +227,12 @@ is_console_app (WCHAR *filename) if (p && p + id_offset <=3D buf + n) return p[id_offset] =3D=3D '\003'; /* 02: GUI, 03: console */ else - return false; + { + wchar_t *e =3D wcsrchr (filename, L'.'); + if (e && (wcscasecmp (e, L".bat") =3D=3D 0 || wcscasecmp (e, L".cmd"= ) =3D=3D 0)) + return true; + } + return false; } =20 int