On Fri, Mar 18, 2016 at 07:34:12AM -0400, Ken Brown wrote:
> 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 http://tug.org/pipermail/tex-live/2016-March/037852.html, 
> 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/texconfig-dialog.sh.orig      
> 2015-10-08 16:04:18.000000000 -0400
> +++ /usr/share/texmf-dist/scripts/texlive/texconfig-dialog.sh   2016-03-18 
> 07:26:50.708149300 -0400
> @@ -43,7 +43,7 @@
>    rc=$1
>    $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.
> 
> Ken
> 
> [*] 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.

Just tested it, and it fixes my problem and hasn't obviously broken
anything else.  Thank you!

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to