Re: [Gambas-devel] BUG: Recent changes to TerminalView stop you from responding to certain prompts
Brought to you by:
gambas
|
From: Tony M. <tmo...@aj...> - 2017-08-29 13:13:50
|
Another approach would be to use termios to detect whether the terminal is in raw or canonical mode and then translate CR to LF appropriately. On 2017-08-29 12:48 AM, Tony Morehen wrote: > I did some more research into this issue and it seems related to what > mode the tty is in. There is canonical mode, which is the standard > mode using readline ie with line editing and, it seems, CR to NL > translation. The other mode is raw mode, where keyboard input is sent > directly to the application. The read command uses raw mode. > > So I tried experimenting with stty. stty raw gave me the step effect > on output but the enter keypress appeared to behave normally ie. stty > -raw fixed the step effect but then I found that enter now worked in > the full screen cli text editors, read, and password prompts! A > work-around for this issue. > > It turns out that stty raw is not symmetric. Further experimenting > showed that sending stty icrnl to the terminal on initialization fixes > the enter bug. > > This suggests that adding a property such as EnableCRtoNL to > Process.term could be a good approach for a long-term fix. > EnableCRtoNL would toggle a flag in the termios structure related to > Process.term. > > > On 2017-08-28 11:50 AM, Tony Morehen wrote: >> Mea Culpa. >> >> We need to revert this change. >> >> While the fix I proposed did fix read and git's username/password >> prompts, it broke several terminal-based text editors: nano, joe and >> micro were the one's I tested. For the editors, you now need to >> press ctrl-M to get a new line. Emacs though works fine. >> >> As far as read and git are concerned, you can press ctrl-J to get a >> new line. As well "read -e" will accept ctrl-M as new line. >> >> Obviously, there is no simple fix. TerminalView needs to detect >> whether the application is expecting keyboard input and so will work >> only with ctrl-M or file-type input (ctrl-J). I'll follow up on this. >> >> Sorry for the mess. >> Tony >> >> >> On 2017-08-25 05:10 PM, Benoît Minisini wrote: >>> Le 25/08/2017 à 22:32, Tony Morehen a écrit : >>>> When using terminalview in a terminal program, you cannot respond >>>> to prompts such as git's requests for username and password. Bash's >>>> built-in read command also doesn't work properly. You can type in >>>> text ok, but when you press enter, all you see is "^M" and nothing >>>> happens. All you can do is press control-C to abort. >>>> >>>> To duplicate: >>>> 1) run FTerminalView in gb.form.terminal >>>> 2) enter "read -p '>' >>>> 3) type some text, press enter >>>> 4) all you see is your text + ^M >>>> >>>> Potential fix: >>>> >>>> line 673 in TerminalFilter_VT100, change the False action of the >>>> IIf from "\r" to "\n" >>>> >>>> gb.form.terminal must be driving you guys nuts. >>>> >>>> Cheers, >>>> Tony >>>> >>> >>> OK, fixed. >>> >> >> >> >> ------------------------------------------------------------------------------ >> >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> _______________________________________________ >> Gambas-devel mailing list >> Gam...@li... >> https://lists.sourceforge.net/lists/listinfo/gambas-devel > > > > ------------------------------------------------------------------------------ > > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Gambas-devel mailing list > Gam...@li... > https://lists.sourceforge.net/lists/listinfo/gambas-devel |