digitalmars.D.learn - stdin.readln line editing and recall with up arrow
- Daren Scot Wilson (3/3) Feb 24 2023 stdin.readln() works fine until I, out of habit, use the up arrow
- Richard (Rikki) Andrew Cattermole (3/6) Feb 24 2023 Not with that module.
- Daren Scot Wilson (5/12) Feb 25 2023 I went with readline. Left/right arrows work, but up arrow still
- Richard (Rikki) Andrew Cattermole (2/5) Feb 25 2023 https://tiswww.case.edu/php/chet/readline/readline.html#Basic-Behavior
- Daren Scot Wilson (21/26) Feb 28 2023 Hmm... the add_history(), or maybe it's rl_add_history(),
- bachmeier (4/18) Feb 25 2023 If you start your program with rlwrap, for example `rlwrap cmd`,
stdin.readln() works fine until I, out of habit, use the up arrow to recall an earlier input and the left/right to move around and change a character. How do I get that to work?
Feb 24 2023
On 25/02/2023 6:36 PM, Daren Scot Wilson wrote:stdin.readln() works fine until I, out of habit, use the up arrow to recall an earlier input and the left/right to move around and change a character. How do I get that to work?Not with that module. You can either use GNU readline itself, or Adam's version within arsd.
Feb 24 2023
On Saturday, 25 February 2023 at 05:41:48 UTC, Richard (Rikki) Andrew Cattermole wrote:On 25/02/2023 6:36 PM, Daren Scot Wilson wrote:I went with readline. Left/right arrows work, but up arrow still does not recall earlier commands. Maybe I need also a separate input history thing?stdin.readln() works fine until I, out of habit, use the up arrow to recall an earlier input and the left/right to move around and change a character. How do I get that to work?Not with that module. You can either use GNU readline itself, or Adam's version within arsd.
Feb 25 2023
On 25/02/2023 9:45 PM, Daren Scot Wilson wrote:I went with readline. Left/right arrows work, but up arrow still does not recall earlier commands. Maybe I need also a separate input history thing?https://tiswww.case.edu/php/chet/readline/readline.html#Basic-Behavior
Feb 25 2023
On Saturday, 25 February 2023 at 08:47:42 UTC, Richard (Rikki) Andrew Cattermole wrote:On 25/02/2023 9:45 PM, Daren Scot Wilson wrote:Hmm... the add_history(), or maybe it's rl_add_history(), function seems to have been in ancient readline versions but at some point all line history code was taken out to be its own library. https://tiswww.case.edu/php/chet/readline/rltop.html https://tiswww.case.edu/php/chet/readline/history.html Arch Linux drags in both readline.so and history.so in its readline package. No one notices! Trying import gnu.history; fails since there's no distinct 'history' package (yet) and Dub doesn't drag it in along with readline. D can call C and link to anything in /usr/lib easily. Done. It works! How does D know to link to the libhistory.so library? I didn't say "history" anywhere. But it works. extern (C) { void add_history(const char*); } I'm tempted to make a history package and submit it to DUB. Maybe. After dinner...I went with readline. Left/right arrows work, but up arrow still does not recall earlier commands. Maybe I need also a separate input history thing?https://tiswww.case.edu/php/chet/readline/readline.html#Basic-Behavior
Feb 28 2023
On Saturday, 25 February 2023 at 08:45:27 UTC, Daren Scot Wilson wrote:On Saturday, 25 February 2023 at 05:41:48 UTC, Richard (Rikki) Andrew Cattermole wrote:If you start your program with rlwrap, for example `rlwrap cmd`, you'll get that for free.On 25/02/2023 6:36 PM, Daren Scot Wilson wrote:I went with readline. Left/right arrows work, but up arrow still does not recall earlier commands. Maybe I need also a separate input history thing?stdin.readln() works fine until I, out of habit, use the up arrow to recall an earlier input and the left/right to move around and change a character. How do I get that to work?Not with that module. You can either use GNU readline itself, or Adam's version within arsd.
Feb 25 2023