From db35c5f457c413bd50cd79b0170cb295abb614d2 Mon Sep 17 00:00:00 2001 From: Phil Burk Date: Sun, 26 May 2019 07:06:03 -0700 Subject: [PATCH] history: document ANSI escape sequences used --- fth/history.fth | 3 +-- fth/termio.fth | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/fth/history.fth b/fth/history.fth index a61caaa..42c2696 100644 --- a/fth/history.fth +++ b/fth/history.fth @@ -51,7 +51,7 @@ KH-HISTORY kh_history_size erase \ The most recent entry is put at the beginning, \ older entries are shifted up. -4 constant KH_LINE_EXTRA_SIZE ( 2 count bytes plus 2 size bytes ) +4 constant KH_LINE_EXTRA_SIZE ( 2 count bytes plus 2 line_number bytes ) : KH-END ( -- addr , end of history buffer ) kh-history kh_history_size + @@ -345,7 +345,6 @@ variable KH-INSIDE ( true if we are scrolling inside the history buffer ) ENDCASE ; - : KH.SPECIAL.KEY ( char -- true | false , handle fkeys or arrows, true if handled ) true >r CASE diff --git a/fth/termio.fth b/fth/termio.fth index ab8cc17..fa9682e 100644 --- a/fth/termio.fth +++ b/fth/termio.fth @@ -21,7 +21,18 @@ $ 01 constant ASCII_CTRL_A $ 05 constant ASCII_CTRL_E $ 18 constant ASCII_CTRL_X -\ ANSI Terminal Control +\ ANSI arrow key sequences +\ ESC [ 0x41 is UP +\ ESC [ 0x42 is DOWN +\ ESC [ 0x43 is RIGHT +\ ESC [ 0x44 is LEFT + +\ ANSI terminal control +\ ESC [ 2J is clear screen +\ ESC [ {n} D is move left +\ ESC [ {n} C is move right +\ ESC [ K is erase to end of line + : ESC[ ( send ESCAPE and [ ) ASCII_ESCAPE emit ascii [ emit @@ -52,7 +63,6 @@ $ 18 constant ASCII_CTRL_X ascii K emit ; - : BELL ( -- , ring the terminal bell ) 7 emit ; -- 2.20.1