This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Running texconfig breaks backspace in Bash/MinTTY

On 3/17/2016 7:40 AM, Ken Brown wrote:
> On 3/16/2016 6:11 PM, Thomas Wolff wrote:
>> Am 16.03.2016 um 16:07 schrieb Ken Brown:
>>> On 3/16/2016 10:00 AM, Adam Dinwoodie wrote:
>>>> On Wed, Mar 16, 2016 at 08:34:45AM -0400, Ken Brown wrote:
>>>>> On 3/16/2016 7:45 AM, Adam Dinwoodie wrote:
>>>>>> Here's an interesting bug: normally in a Bash session in MinTTY,
>>>>>> backspace and Ctrl+H both delete the previous character, as expected.
>>>>>> However, after running texconfig and returning to the shell, both the
>>>>>> backspace key and Ctrl+H appear to just print "^H" to the terminal.
>>>>>> It looks like this is genuinely the terminal trying to render a
>>>>>> backspace character, rather than just backspacing, given the
>>>>>> following:
>>>>>>      $ printf ^H | xxd
>>>>>>      00000000: 08                                       .
>>>>>> (To get that, I typed "printf {backspace} | xxd".)
>>>>>> It's not clear to me whether this is Bash, MinTTY or texconfig that's
>>>>>> misbehaving.  Ctrl+W to delete a word, Ctrl+R to get (for me) fzf's
>>>>>> history search, and using the up and down arrows to navigate
>>>>>> history all
>>>>>> work.  Running Vim, opening a new Bash shell from within the duff 
>>>>>> one,
>>>>>> or SSHing to another box has Ctrl+H working just fine within that
>>>>>> process, but the bugged behaviour resumes when I return to the
>>>>>> original
>>>>>> Bash shell.
>>>>> I can't reproduce this on my system.  I tried 'texconfig --help' and
>>>>> 'texconfig conf'.  What's the precise texconfig command that you
>>>>> used?
>>>> I'm just running `texconfig`, with no arguments.  There's a warning
>>>> prompt, that you press Enter to clear, then there's an interactive menu
>>>> that appears -- I'm assuming it's something about that interactive menu
>>>> that's causing the problem.
>>> In the interactive case, texconfig calls texconfig-dialog, which calls
>>> dialog.
>>>> Turns out, after some digging, MinTTY's "Keys" > "Backspace sends ^H"
>>>> setting is critical here -- my .minttyrc has `BackspaceSendsBS=yes`, 
>>>> but
>>>> if I remove that line and restart MinTTY, everything works fine.  If I
>>>> add that setting to a fresh Cygwin install that contains only the Base
>>>> packages, texlive-collection-basic, and their dependencies, I can
>>>> reproduce the issue.
>>>> That probably explains why you can't reproduce it, but it still seems
>>>> like a bug -- I wouldn't expect backspace behaviour to change in that
>>>> fashion regardless of that bit of configuration.
>>> So it appears to be a MinTTY/dialog issue.
>> Checking stty -a before and after texconfig reveals that texconfig
>> mangles the stty erase setting and does not restore it.
>> That is clearly a bug of texconfig.
> I'm not sure how you ruled out dialog as the culprit, but in fact you're 
> right. texconfig-dialog calls 'reset' and 'stty sane' at various places, 
> and that seems to be the problem. I'll report this upstream.

I've done this in, where you can also see responses by two of the TeX Live developers.

The best long-term solution is to get rid of the need for texconfig by making tlmgr work on Cygwin[*].  In the meantime, upstream TeX Live will consider patches that make texconfig stop messing with terminal settings.  [If it turns out that dialog also messes with terminal settings, then we'll have to find a different workaround.]

Here's one possibility:

--- /usr/share/texmf-dist/scripts/texlive/      2015-10-08 16:04:18.000000000 -0400
+++ /usr/share/texmf-dist/scripts/texlive/   2016-03-18 07:26:50.708149300 -0400
@@ -43,7 +43,7 @@
   $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \
     && { cd / && rm -rf "$tmpdir"; }
-  termCtl reset
+  termCtl clear
   (exit $rc); exit $rc

Adam, please give this a try and let me know if it solves the problem without creating new ones.


[*] tlmgr is currently incompatible with the Cygwin packaging of TeX Live.  I'll look into fixing this for TeX Live 2016.  I should be able to simply disable some features of tlmgr, while retaining those that replace the functionality of texconfig.

Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]