Re: Aubit4GL prompt command bug

Øyvind Gjerstad <[email protected]>
Newsgroups gmane.comp.lang.4gl.aubit.general
Message-ID <[email protected]>
Can you try (assuming your program is called 'foo' in current directory):

echo MyName | ./foo 2>&1 | od -bc

This will show which escape sequences are sent to the terminal emulator. 
On my Fedora this produces:

0000000 033 133 077 061 060 064 071 150 033 133 061 073 062 064 162 033
         033   [   ?   1   0   4   9   h 033   [   1   ; 2   4   r 033
0000020 050 102 033 133 155 033 133 064 154 033 133 077 067 150 033 133
           (   B 033   [   m 033   [   4   l 033   [   ? 7   h 033   [
0000040 063 071 073 064 071 155 033 133 063 071 073 064 071 155 033 133
           3   9   ;   4   9   m 033   [   3   9   ;   4 9   m 033   [
0000060 063 067 155 033 133 064 060 155 033 133 110 033 133 062 112 033
           3   7   m 033   [   4   0   m 033   [   H 033 [   2   J 033
0000100 133 077 061 150 033 075 033 133 063 071 073 064 071 155 033 050
           [   ?   1   h 033   = 033   [   3   9   ;   4 9   m 033   (
0000120 102 033 133 155 033 133 112 033 133 110 033 133 062 112 033 133
           B 033   [   m 033   [   J 033   [   H 033   [ 2   J 033   [
0000140 077 061 150 033 075 033 133 061 073 063 064 110 015 105 156 164
           ?   1   h 033   = 033   [   1   ;   3   4   H \r   E   n   t
0000160 145 162 040 171 157 165 162 040 156 141 155 145 040 072 015 033
           e   r       y   o   u   r       n   a   m e       :  \r 033
0000200 133 061 073 061 070 110 033 133 077 061 150 033 075 115 033 133
           [   1   ;   1   8   H 033   [   ?   1   h 033 =   M 033   [
0000220 077 061 150 033 075 171 033 133 077 061 150 033 075 116 033 133
           ?   1   h 033   =   y 033   [   ?   1   h 033 =   N 033   [
0000240 077 061 150 033 075 141 033 133 077 061 150 033 075 155 033 133
           ?   1   h 033   =   a 033   [   ?   1   h 033 =   m 033   [
0000260 077 061 150 033 075 145 033 133 077 061 150 033 075 015 033 133
           ?   1   h 033   =   e 033   [   ?   1   h 033 =  \r 033   [
0000300 112 033 133 061 073 061 070 110 033 133 077 061 060 064 071 154
           J 033   [   1   ;   1   8   H 033   [   ?   1 0   4   9   l
0000320 033 133 110 033 133 062 112 012 033 133 062 064 073 061 110 015
         033   [   H 033   [   2   J  \n 033   [   2   4 ;   1   H  \r
0000340 033 133 077 061 154 033 076 110 145 154 154 157 040 115 171 116
         033   [   ?   1   l 033   >   H   e   l   l o       M   y   N
0000360 141 155 145 012
           a   m   e  \n
0000364

Maybe it will be possible then to figure out which escape seqence turns 
off echo in your terminal?


On 2016-05-12 13:50, John O'Gorman wrote:
> Thanks for the replies.
>
> To answer Mike's questions:
>
> I get the same behaviour on all the terminal emulation options I've 
> tried:
> 1. lxterminal (TERM=xterm-256color)
> 2. gnome-terminal (TERM=xterm)
> 3. konsole (TERM=linux) via CTRL ALT F1
>
> I am running an installed Aubit4GL binary.
> So I am beginning to think that the binary created on Ubuntu is no 
> longer compatible with the SUSE family.
>
> As a further attempt to isolate the problem I reduced the example test 
> program to:
> --------------------
> main
> define a char(40)
>     prompt "Enter your name :" for a
>                    display "Hello ",a clipped
>                    sleep 1
> end main
> --------------------------------------------------
> The screen blanks when the prompt executes then displays the entered 
> value.
>
> This I think is the relevant C code which performs the PROMPT command:
>
> Can anyone see something in there to explain the behaviour I am getting.
>
>  /* CMD : E_CMD_PROMPT_CMD Line 10 E_MET_MAIN_DEFINITION */
>    A4GLSTK_setCurrentLine(_module_name,10);
>    aclfgli_clr_err_flg();
>    {
>       int _attr_prompt=-1;
>       int _attr_field=-1;
>       char _style[256]="";
>       char _sio_2[72];int _fld_dr= -9999;int _exec_block= 0;char 
> *_sio_kw_2="s_prompt";int _acl_prompt_timeout=0;
>       static struct aclfgl_event_list _sio_evt[]={
>        {0}};
>       memset(_sio_2,0,sizeof(_sio_2));
>       A4GL_push_char("Enter your name :");
>       int _dtype_hint=0;
>       _dtype_hint=2621440;
>       if 
> (A4GL_start_prompt(&_sio_2,_attr_prompt,0,0,_attr_field,"",_style,_dtype_hint)) 
> {
>          while (1) {
>             CONTINUE_BLOCK_1: ;
>             if (GET_AS_INT("s_prompt",_sio_2,"mode")==2) break;
> _exec_block=A4GL_prompt_loop_v2(&_sio_2,_acl_prompt_timeout,_sio_evt);
>          }
>
>          A4GL_pop_var2(&a,0,40);
>       }
>    }
>    END_BLOCK_1: ;
>       ERR_CHK_ERROR  { A4GL_chk_err(10,_module_name); }
>    A4GL_clr_ignore_error_list();
> ------------------------------------------------------------------------------------------------------------- 
>
>
> I would be grateful for any advice.
> Otherwise I suspect my only resource is to recompile Aubit4GL from 
> source.
>
> Regards
> John O'Gorman
>
> On 11/05/16 20:02, Øyvind Gjerstad wrote:
>> This is working fine for me on RHEL and Fedora 23 as well, both on 
>> xterm and xterm-256color. My terminfo on Fedora is identical to the 
>> OP's.
>>
>> Tested with both gnome-terminal and putty from my Fedora.
>>
>>
>> On 2016-05-11 09:24, Mike Aubury wrote:
>>> Are you running via a terminal emulator, or directly on a console ?
>>> When I run via putty - I have TERM=xterm and it works.
>>> Working from the console - I have TERM=linux - and it works..
>>>
>>> (dont know enough about termcap/terminfo to see what might be up with
>>> that definition)
>>>
>>> On 11 May 2016 at 08:16, John O'Gorman <[email protected]> wrote:
>>>> This is the output from the command:
>>>> infocmp -I xterm-256color
>>>>
>>>> on my tumblewee system:
>>>>
>>>> -------------------------------------------------------------------------------------- 
>>>>
>>>> #       Reconstructed via infocmp from file:
>>>> /usr/share/terminfo/x/xterm-256color
>>>> xterm-256color|xterm with 256 colors,
>>>>           am, bce, ccc, xenl, km, mir, msgr, npc, mc5i,
>>>>           cols#80, it#8, lines#24, colors#256, pairs#32767,
>>>> acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
>>>>           cbt=\E[Z, bel=^G, cr=^M, csr=\E[%i%p1%d;%p2%dr, tbc=\E[3g,
>>>>           clear=\E[H\E[2J, el1=\E[1K, el=\E[K, ed=\E[J,
>>>>           hpa=\E[%i%p1%dG, cup=\E[%i%p1%d;%p2%dH, cud1=^J,
>>>>           home=\E[H, civis=\E[?25l, cub1=^H, cnorm=\E[?12l\E[?25h,
>>>>           cuf1=\E[C, cuu1=\E[A, cvvis=\E[?12;25h, dch1=\E[P,
>>>>           dl1=\E[M, smacs=\E(0, smam=\E[?7h, blink=\E[5m, bold=\E[1m,
>>>>           smcup=\E[?1049h, dim=\E[2m, smir=\E[4h, sitm=\E[3m,
>>>>           rev=\E[7m, invis=\E[8m, smso=\E[7m, smul=\E[4m,
>>>>           ech=\E[%p1%dX, rmacs=\E(B, rmam=\E[?7l, sgr0=\E(B\E[m,
>>>>           rmcup=\E[?1049l, rmir=\E[4l, ritm=\E[23m, rmso=\E[27m,
>>>>           rmul=\E[24m, flash=\E[?5h$<100/>\E[?5l,
>>>>           is2=\E[!p\E[?3;4l\E[4l\E>,
>>>> initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\, 
>>>>
>>>>           il1=\E[L, kb2=\EOE, kbs=\177, kcbt=\E[Z, kdch1=\E[3~,
>>>>           kcud1=\EOB, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~,
>>>>           kf11=\E[23~, kf12=\E[24~, kf13=\E[1;2P, kf14=\E[1;2Q,
>>>>           kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~,
>>>>           kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
>>>>           kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~,
>>>>           kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R, kf28=\E[1;5S,
>>>>           kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~,
>>>>           kf32=\E[19;5~, kf33=\E[20;5~, kf34=\E[21;5~,
>>>>           kf35=\E[23;5~, kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q,
>>>>           kf39=\E[1;6R, kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~,
>>>>           kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
>>>>           kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
>>>>           kf48=\E[24;6~, kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q,
>>>>           kf51=\E[1;3R, kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
>>>>           kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
>>>>           kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
>>>>           kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
>>>>           kf8=\E[19~, kf9=\E[20~, khome=\EOH, kich1=\E[2~,
>>>>           kcub1=\EOD, kmous=\E[M, knp=\E[6~, kpp=\E[5~, kcuf1=\EOC,
>>>>           kDC=\E[3;2~, kEND=\E[1;2F, kind=\E[1;2B, kHOM=\E[1;2H,
>>>>           kIC=\E[2;2~, kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~,
>>>>           kri=\E[1;2A, kRIT=\E[1;2C, kcuu1=\EOA, rmkx=\E[?1l\E>,
>>>>           smkx=\E[?1h\E=, meml=\El, memu=\Em, rmm=\E[?1034l,
>>>>           smm=\E[?1034h, op=\E[39;49m, dch=\E[%p1%dP, dl=\E[%p1%dM,
>>>>           cud=\E[%p1%dB, ich=\E[%p1%d@, indn=\E[%p1%dS,
>>>>           il=\E[%p1%dL, cub=\E[%p1%dD, cuf=\E[%p1%dC,
>>>>           rin=\E[%p1%dT, cuu=\E[%p1%dA, mc0=\E[i, mc4=\E[4i,
>>>>           mc5=\E[5i, rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, rc=\E8,
>>>>           vpa=\E[%i%p1%dd, sc=\E7, ind=^J, ri=\EM,
>>>> setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, 
>>>>
>>>> setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
>>>> sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m, 
>>>>
>>>>           hts=\EH, ht=^I, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c,
>>>>           u9=\E[c,
>>>> ---------------------------------------------------------------------------------------------------------------------- 
>>>>
>>>> Anything wrong or missing here?
>>>>
>>>> John O'Gorman
>>>>
>>>> On 11/05/16 18:35, Mike Aubury wrote:
>>>>> Works fine for me on putty/ubuntu
>>>>> So - probably a termcap/terminfo issue ?
>>>>>
>>>>>
>>>>> On 11 May 2016 at 04:11, John O'Gorman <[email protected]> wrote:
>>>>>> Hi everyone
>>>>>>
>>>>>> I seem to have encountered a bug in the prompt command:
>>>>>>     1. It places the cursor at the end of the prompt line (as set 
>>>>>> in the
>>>>>> options statement)
>>>>>>     2. It does not echo as you type in
>>>>>>     3. But it does assign the typed in value correctly.
>>>>>> Example:
>>>>>> ===================================================
>>>>>> main
>>>>>>
>>>>>> define a char(40) #altering the size of a does not affect the 
>>>>>> behaviour
>>>>>>
>>>>>> options message line last,
>>>>>>            prompt line last-1,
>>>>>>            form line 3
>>>>>>
>>>>>>            menu "Prompt test"
>>>>>>
>>>>>>            command "Prompt" "Prompt for user name"
>>>>>>                    prompt "Enter your name :" for a
>>>>>>                    display "Hello ",a clipped
>>>>>>                    sleep 1
>>>>>>
>>>>>>            command "Exit"
>>>>>>                    error "Exit"
>>>>>>
>>>>>>                    exit menu
>>>>>>            end menu
>>>>>>
>>>>>>            message "Exiting.."
>>>>>> end main
>>>>>> ------------------------------------------------------------------------------------------------------------------------------- 
>>>>>>
>>>>>> OS= openSUSE 20160417 tumbleweed (but same symptoms with openSUSE 
>>>>>> 12.3
>>>>>> Dartmouth)
>>>>>> Aubit4GL version 1.2 build 39 (but same symptons occur with build 
>>>>>> 14)
>>>>>> TERM=xterm-256color (but the same symptoms occur with TERM=xterm)
>>>>>> LINES=24
>>>>>> COLUMNS=80  (But same symptoms with 38 x 127)
>>>>>> ncurses = v5 and/or v6
>>>>>>
>>>>>> Is this a bug in Aubit4GL or my terminfo or termcap?
>>>>>>
>>>>>> Regards
>>>>>> John O'Gorman
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------------------------ 
>>>>>>
>>>>>> Mobile security can be enabling, not merely restricting. 
>>>>>> Employees who
>>>>>> bring their own devices (BYOD) to work are irked by the 
>>>>>> imposition of MDM
>>>>>> restrictions. Mobile Device Manager Plus allows you to control 
>>>>>> only the
>>>>>> apps on BYO-devices by containerizing them, leaving personal data 
>>>>>> untouched!
>>>>>> https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
>>>>>> _______________________________________________
>>>>>> Aubit4gl-discuss mailing list
>>>>>> [email protected]
>>>>>> https://lists.sourceforge.net/lists/listinfo/aubit4gl-discuss
>>>>
>>>> ------------------------------------------------------------------------------ 
>>>>
>>>> Mobile security can be enabling, not merely restricting. Employees who
>>>> bring their own devices (BYOD) to work are irked by the imposition 
>>>> of MDM
>>>> restrictions. Mobile Device Manager Plus allows you to control only 
>>>> the
>>>> apps on BYO-devices by containerizing them, leaving personal data 
>>>> untouched!
>>>> https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
>>>> _______________________________________________
>>>> Aubit4gl-discuss mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/aubit4gl-discuss
>>> ------------------------------------------------------------------------------ 
>>>
>>> Mobile security can be enabling, not merely restricting. Employees who
>>> bring their own devices (BYOD) to work are irked by the imposition 
>>> of MDM
>>> restrictions. Mobile Device Manager Plus allows you to control only the
>>> apps on BYO-devices by containerizing them, leaving personal data 
>>> untouched!
>>> https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
>>> _______________________________________________
>>> Aubit4gl-discuss mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/aubit4gl-discuss
>>
>


------------------------------------------------------------------------------
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.