[Gambas-devel] BUG: Recent changes to TerminalView stop you from responding to certain prompts

Tony Morehen tmorehen at ...755...
Tue Aug 29 15:13:17 CEST 2017


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
>> Gambas-devel at lists.sourceforge.net
>> 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
> Gambas-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-devel






More information about the Devel mailing list