From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7868) id 32E123852752; Sun, 31 Jul 2022 08:57:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 32E123852752 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-3_3-branch] 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/cygwin-3_3-branch X-Git-Oldrev: 69ec3976d609cfebe9acbca34015ece6b6bd4995 X-Git-Newrev: 2b4f986e499f040966be72516dae5b01ef721d24 Message-Id: <20220731085728.32E123852752@sourceware.org> Date: Sun, 31 Jul 2022 08:57:28 +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:28 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dnewlib-cygwin.git;h=3D2b4f986e499= f040966be72516dae5b01ef721d24 commit 2b4f986e499f040966be72516dae5b01ef721d24 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 e0f1247e1..4ec6a8789 100644 --- a/winsup/cygwin/spawn.cc +++ b/winsup/cygwin/spawn.cc @@ -210,7 +210,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