--- gforth/ekey.fs 2000/12/28 11:33:02 1.4 +++ gforth/ekey.fs 2002/06/02 10:31:28 1.6 @@ -58,20 +58,20 @@ keycode k9 keycode k10 keycode k11 \ not in pfe keycode k12 \ not in pfe -\ shifted function/keypad keys have the same key sequences (in xterm) -\ and pfe gives the same keycodes; so what are these keycodes good for? -\ keycode s-k1 -\ keycode s-k2 -\ keycode s-k3 -\ keycode s-k4 -\ keycode s-k5 -\ keycode s-k6 -\ keycode s-k7 -\ keycode s-k8 -\ keycode s-k9 -\ keycode s-k10 -\ keycode s-k11 \ not in pfe -\ keycode s-k12 \ not in pfe +\ shifted fuinction keys (don't work in xterm (same as unshifted, but +\ s-k1..s-k8 work in the Linux console) +keycode s-k1 +keycode s-k2 +keycode s-k3 +keycode s-k4 +keycode s-k5 +keycode s-k6 +keycode s-k7 +keycode s-k8 +keycode s-k9 +keycode s-k10 +keycode s-k11 \ not in pfe +keycode s-k12 \ not in pfe \ helper word \ print a key sequence: @@ -120,13 +120,14 @@ create ekey-buffer 8 chars allot 27 constant #esc : esc-prefix ( -- u ) - key ekey-buffered char-append-buffer - ekey-buffered 2@ esc-sequences search-wordlist - if - execute exit - else - ekey-buffered 2@ unkeys #esc - then ; + key? if + key ekey-buffered char-append-buffer + ekey-buffered 2@ esc-sequences search-wordlist + if + execute exit + endif + endif + ekey-buffered 2@ unkeys #esc ; : esc-sequence ( xt addr u -- ; name execution: -- u ) recursive \ define key "name" and all prefixes @@ -185,6 +186,15 @@ get-current esc-sequences set-current ' k-home s" [1~" esc-sequence ' k-end s" [4~" esc-sequence +' s-k1 s" [25~" esc-sequence +' s-k2 s" [26~" esc-sequence +' s-k3 s" [28~" esc-sequence +' s-k4 s" [29~" esc-sequence +' s-k5 s" [31~" esc-sequence +' s-k6 s" [32~" esc-sequence +' s-k7 s" [33~" esc-sequence +' s-k8 s" [34~" esc-sequence + set-current [ENDIF]