Hi, of course, if you start an external program (via )HOST) then you cannot expect that the editing and/or input functions of that external program still work as if the program was started from a shell. What I meant by multi-line input is input to APL (via ⎕ and ⍞) that spans more than one line due to its length. So you can, for example enter 90 times X with ⎕PW←80 and then backspace (or cursor left) to the previous line. /// Jürgen On 02/04/2017 05:39 PM, enz...@gmx.com
wrote:
On Sat, 4 Feb 2017 14:12:08 +0100 Juergen Sauermann <juergen.sauerm...@t-online.de> wrote:Hi, as I said, the cursor is not moved down by the clear screen but by the interpreter <-- this is what i have been saying for days and should not happen requesting input. If you place your cursor anywhere on the screen in APL2 and then enter something, then the cursor will jump down to the bottom of the screen. <- this should not happenmultiline editing with ⎕pw 80 )host /usr/local/mariadb/bin/mysql --verbose --user=root --socket=/tmp/mysql.sock -p comes back asking for password if you have mariadb - just hit ^c and then up arrow to get back the line to edit - your multiline editor fails you said this was the reason you activate the allocate_height code and moved cursor to end of page the line is uneditable as i said is the cursor to end of page behaviro in the allocate_height? with you current fix to the scripting -- behavior i am getting my code done with scripting but the apl workspace/calculator mode is what made apl to begin with --- NO computer language doesn't respect a comment character ---It might be that this was different in 1.3, but then I suppose editing lines that were longer than ⎕PW did not properly work at that time. <----- still doesn't work 2. reg. ⍝ ∇ again, compatibility with APL2. You may not like the way APL2 works, but for me IBM compatibility is an important feature. Not because it is better than other APLs, but because it simply saves me a lot of documentation work. And - after entering the first ∇ you have entered the function editor and no longer inside the APL interpreter. The comment of the APL interpreter means nothing to the editor, but ∇ does. In other words, ∇ is an editor command while ⍝ is just an ordinary character like every other. If I enter ⍝ in vi or emacs (both are APL-aware) and then :x in vi or ^X in emacs, then both editors will exit despite of the ⍝ . And the statement "all other lagnuages..." is obviously incorrect. It should maybe read "all other computer languages execpt IBM APL2" Regarding multi-line editing, it works fine on my machine. Not sure what you mean by uneditable. Of course, after pressing ENTER, you need to scroll up in the history (cursor up key) to recall the previous line(s) and then you can edit it. /// Jürgen On 02/04/2017 01:40 AM, enz...@gmx.com wrote: Hi I'm replying to you and not the full list on this on a few things that are of concern for me 1. clear screen i am using the apl in an xterm and have output that i have at the initiation of the apl workspace session - to have the screen scroll up with everynew line - is really not good in 1.3 when i developed my code the cursor started at the top of xterm - as i called /usr/bin/clear right before starting apl i don't see why doing a clear screen should move the cursot back to the screen bottom CSI←(⎕UCS 27),'[' ⍞←CSI,'10;10HHello'◊ ⎕DL 10 i have tested what you said that you do this for long line wraps - when i tested this it failed - the line was uneditable after enter etc --- 2. ⍝ ∇ the way you have it is contrary to the way EVERY other computer language handles a comment nothing after the comment should be parsed or used by the interpreter the following of apl2 to me is a mistake - i have used EVERY apl in existance except dyalog and apl2 they had to many things i didn't like in them --- thanks for the work on the compiler empty string problem - it was fun to follow along with your problem solving methods On Tue, 31 Jan 2017 21:13:59 +0100 Juergen Sauermann <juergen.sauerm...@t-online.de> wrote: Hi, it stays there as long as you let it: CSI←(⎕UCS 27),'[' ⍞←CSI,'10;10HHello'◊ ⎕DL 10 The positioning of the cursor at the bottom happens for the following reason. In APL2 there is a somewhat unfortunate behavior of the following combination of ⍞ for input and output: PROMPT←"Please enter data: " ⍞←PROMPT ◊ INPUT←⍞ The above prints PROMPT and collects the input from the user. Unfortunately, in IBM APL2 the prompt is overridable. That is normally you enter data after the prompt: PROMPT←"Please enter data: " ⍞←PROMPT ◊ INPUT←⍞ Please enter data: 1 2 3 INPUT 1 2 3 However, you can backspace right at the start of your input and override the the prompt: T ◊ INPUT←⍞ Please enter1 2 3 INPUT 1 2 3 There is also a system variable ⎕PR (prompt replacement that complicated things even more. The above behavior is difficult enough to achieve and it requires that ⍞←PROMPT is performed in the input area, i.e. at the bottom of the screen. This is because ⍞ cannot know whether it is followed by a ⍞ input or not (the ⍞-input and the-⍞ output can even be in different APL functions. So all this is for compatibility with APL2. And, BTW, APL2 also moves the cursor to the bottom line for ⍞-input, no matter where the cursor sits. /// Jürgen On 01/31/2017 03:07 PM, enz...@gmx.com wrote: and does the cursor stay there? it shouldn't move back to the bottom of the screen On Tue, 31 Jan 2017 13:24:28 +0100 Juergen Sauermann <juergen.sauerm...@t-online.de> 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. Try e.g. CSI←(⎕UCS 27),'[' ⍞←CSI,'10;10HHello' which prints Hello at row 10/column 10 of my xterm. /// Jürgen On 01/30/2017 06:43 PM, enz...@gmx.com 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 <juergen.sauerm...@t-online.de> 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, enz...@gmx.com 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 <juergen.sauerm...@t-online.de> 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, enz...@gmx.com 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 <juergen.sauerm...@t-online.de> 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, enz...@gmx.com 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 |
- Re: [Bug-apl] location of cursor on new apl session enztec
- Re: [Bug-apl] location of cursor on new apl sessi... Juergen Sauermann
- Re: [Bug-apl] location of cursor on new apl s... enztec
- Re: [Bug-apl] location of cursor on new a... Juergen Sauermann
- Re: [Bug-apl] location of cursor on n... enztec
- Re: [Bug-apl] location of cursor... Juergen Sauermann
- Re: [Bug-apl] location of cursor... enztec
- Re: [Bug-apl] location of cursor... enztec
- Re: [Bug-apl] location of cursor... Juergen Sauermann
- Re: [Bug-apl] location of cursor... enztec
- Re: [Bug-apl] location of cursor... Juergen Sauermann
- Re: [Bug-apl] location of cursor... enztec
- Re: [Bug-apl] location of cursor... Juergen Sauermann
- Re: [Bug-apl] location of cursor... enztec
- Re: [Bug-apl] location of cursor... Juergen Sauermann
- Re: [Bug-apl] location of cursor... enztec
- Re: [Bug-apl] location of cursor... Juergen Sauermann
- Re: [Bug-apl] location of cursor... enztec
- Re: [Bug-apl] location of cursor... Juergen Sauermann
- Re: [Bug-apl] location of cursor... Alexey Veretennikov
- Re: [Bug-apl] location of cursor... Blake McBride