Cygwin doesn't handle SIGWINCH properly in Windows Terminal
Thomas Wolff
towo@towo.net
Tue Feb 16 10:26:38 GMT 2021
Am 16.02.2021 um 07:20 schrieb Brian Inglis:
> On 2021-02-15 22:48, Marco Atzeri via Cygwin wrote:
>> On 16.02.2021 03:17, L A Walsh wrote:
>>> On 2021/02/14 16:05, Takashi Yano wrote:
>>>> On Sun, 14 Feb 2021 12:44:32 -0800
>>>> L A Walsh wrote:
>>>>> showsize () {\
>>>>> declare s=$(stty size); s="(${s// /x})" ;\
>>>>> printf "%s" "$s${s//?/$'\b'}" ;\
>>>>> }; export -f showsize
>>>>>
>>>>> trap showsize SIGWINCH
I have a similar trap in my .bashrc and it's being triggered when
running bash from either cmd (conhost) or Windows Terminal and resizing
them. Did I miss something in this issue?
>
>>>> What do you mean by "reset LINES/COLUMNS"? I am not sure what
>>>> is the behaviour diffrence in Linux and cygwin you mentioned.
>
>>> Actually not sure I can reproduce this now. The only
>>> thing I am noticing is that if bash is attached to /dev/pts3
>>> (as in mintty), it works, but if attached to /dev/cons0 (as in
>>> cmd.exe), nothing works as no signal is propagated from
>>> the window resize to running program.
>>>
>>> AFAIK, though, that's always been one of multiple probs in
>>> using windows cmd with a bash shell.
>
>> maybe this is waht you are looking for:
>>
>> # This causes bash to check the terminal size after every command
>> # and adjusts $LINES and $COLUMNS to the correct values.
>> shopt -s checkwinsize
>
> Newer bash man pages say this is the default; set in my .bashrc so I
> can't tell; bash man pages also say COLUNS and LINES are set on
> SIGWINCH if interactive:
>
> $ man bash | egrep -A1 'COLUMNS|LINES|checkwinsize'
> COLUMNS
> Used by the select compound command to determine the terminal
> width when
> printing selection lists. Automatically set if the checkwinsize
> option
> is enabled or in an interactive shell upon receipt of a SIGWINCH.
> --
> LINES Used by the select compound command to determine the column
> length for
> printing selection lists. Automatically set if the checkwinsize
> option
> is enabled or in an interactive shell upon receipt of a SIGWINCH.
> --
> checkwinsize
> If set, bash checks the window size after each command and, if
> necessary, updates the values of LINES and COLUMNS.
>
More information about the Cygwin
mailing list