bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-apl] location of cursor on new apl session


From: enztec
Subject: Re: [Bug-apl] location of cursor on new apl session
Date: Tue, 31 Jan 2017 07:36:45 -0700

> On Tue, 31 Jan 2017 13:24:28 +0100
> Juergen Sauermann <address@hidden> wrote:
> 
> > Hi,
> > 
> > I believe your ESCape sequence is wrong (it clears to end of screen from the
> > current cursor position but does not move the cursor.

⍞←(⎕UCS 27), '[2J'
it clears the screen from the top of the screen (not clears to end of screen 
from the current cursor position)    but does move the cursor

⍞←(⎕UCS 27), '[H'
should move the cursor to the home position - it does but then cause of the 
allocate_height code it moves back to the bottom

in pascal
write(#27,'[2J'); // clear screen from top of screen
write(#27,'[H'); // go to home     and stays there after 'enter'

> > 
> > Try e.g.
> > 
> >       CSI←(⎕UCS 27),'['
> >       ⍞←CSI,'10;10HHello'
> > 
> > which prints Hello at row 10/column 10 of my xterm.

and does the cursor stay there? it shouldn't move back to the bottom of the 
screen

> > 
> > /// Jürgen
> > 
> > 
> > On 01/30/2017 06:43 PM, address@hidden wrote:
> > 
> > Hi,
> > 
> > In src/LineInput.cc   i changed 
> > allocated_height = 42;   and played with rows =    and even set   
> > allocated_height = 42000 and nothing changed??
> > putting in shortcut returns  also didn't do anything ?
> > 
> > you have some tight code there ;)
> > 
> > the problem also affects    
> > ⍞←(⎕UCS 27), '[2J'
> > which should clear the screen and go to top of screen  but goes to the 
> > bottom of the screen like on startup
> > 
> > thanks
> > 
> > 
> > 
> > 
> > 
> > On Mon, 30 Jan 2017 11:37:22 +0100
> > Juergen Sauermann <address@hidden> wrote:
> > 
> > Hi,
> > 
> > yes. but there is a reason for it. It is very difficult to figure, in a 
> > portable way, at which line
> > your cursor sits when entering some input. I tried with curses, but that 
> > did not work well.
> > The cursor position is needed when an input wraps around at the right end 
> > of the screen
> > (for backspacing over the wrapping point).
> > 
> > For this reason, he GNU APL model is that your input area are the last 
> > allocated_height lines
> > counting from the bottom of the screen. allocated_height is initially 1, 
> > but increases
> > when input lines are wrapping around.
> > src/LineInput.cc
> > If you move the input are up (as you wish) then line editing of inputs 
> > longer
> > than the screen width stops working properly.
> > 
> > If you set the initial allocated_height to 24, then your input will start 
> > at the top of the
> > screen, but, trust me, this is asking for trouble.
> > 
> > /// Jürgen
> > 
> > 
> > On 01/30/2017 03:37 AM, address@hidden wrote:
> > Hi
> > 
> > I don't think
> > LineEditContext::adjust_allocated_height()
> > affects where the cursor is places after 'apl'
> > i commented out tons of lines and nothing was effected
> > 
> > i'd like to have the cursor just indented when apl starts in an xterm and 
> > no lines entered - i can see the cursor in the xterm right after apl starts 
> > but then it moves to last line
> > 
> > 
> > 
> > 
> > On Sat, 28 Jan 2017 18:53:38 +0100
> > Juergen Sauermann <address@hidden> wrote:
> > 
> > Hi,
> > 
> > I suppose it is somewhere around LineEditContext::adjust_allocated_height().
> > 
> > I wrote my own readline() because the official one caused too many problems 
> > on some platforms.
> > 
> > If I remember correctly then LineEditContext::adjust_allocated_height() 
> > makes sure that there
> > are enough empty lines at the bottom of the screen for entering some 
> > (line-wrapped) multi-line input.
> > 
> > I am not sure what you are after - if it is only not clearing the screen 
> > then you can change the
> > CLEAR-EOS-SEQUENCE setting in your preferences file accordingly.
> > 
> > /// Jürgen
> > 
> > 
> > On 01/28/2017 05:59 PM, address@hidden wrote:
> > 
> > with the banner disabled - i don't see apl clearing the xterm screen - if i 
> > invoke apl after using 20 lines (in a 28 line xterm) then apl just starts 
> > at the bottom of the screen - (8 lines below) - i have to clear the screen 
> > (/usr/bin/clear) myself before invoking apl
> > 
> > when i start apl after 'i clear the screen' i can see the cursor at the top 
> > of the xterm (while the apl loads) and then it moves to the bottom
> > 
> > Could you give me an idea if you have it on the top of your head where the 
> > code for this is in your code...  i will try to find it myself in the 
> > meantime :(  
> > 
> > (i've always been amazed at the complex code you have in your apl just so 
> > my simple apl code will run)   </enztec wipes his brown nose>
> > 
> > 
> > On Sat, 28 Jan 2017 12:57:49 +0100
> > Juergen Sauermann <address@hidden> wrote:
> > 
> > Hi,
> > 
> > what you see is the intended behavior.
> > 
> > When you start GNU APL then the terminal is being reset (clear screen) so 
> > that we can print the
> > welcome banner. After that all user input is entered at the bottom of the 
> > screen.
> > 
> > This is more portable than grabbing the input at the middle of the screen 
> > because you can do it
> > without ESCape sequences for cursor positioning. Everything is based on the 
> > ASCII characters
> > CR, LF, and Backspace, wehich are more portable than ESC sequences.
> >  It also works better in scripts and pipes, eg. for web interfaces, and 
> > with virtual terminals like xterm.
> > 
> > /// Jürgen
> > 
> > 
> > On 01/27/2017 11:56 PM, address@hidden wrote:
> > In all my previous apl installations the cursor in an xterm was at the top 
> > of the xterm -  it stays there for 1.3  but with 1.6 and now 863  i can see 
> > it start at the top when first opened but then goes to the bottom and 
> > indents - any ideas?
> > 
> > I have 1.3 1.6 and 863 all installed on same computer
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]