[gforth] / gforth / ekey.fs  

gforth: gforth/ekey.fs

Diff for /gforth/ekey.fs between version 1.8 and 1.12

version 1.8, Sun Mar 9 15:16:47 2003 UTC version 1.12, Sun Oct 2 11:30:32 2005 UTC
Line 1 
Line 1 
 \ ekey etc.  \ ekey etc.
   
 \ Copyright (C) 1999,2002 Free Software Foundation, Inc.  \ Copyright (C) 1999,2002,2003,2004 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 35 
Line 35 
 : keycode ( "name" -- ; name execution: -- u )  : keycode ( "name" -- ; name execution: -- u )
     create ;      create ;
   
 keycode k-left  \ most of the keys are also in pfe, except:
 keycode k-right  \ k-insert, k-delete, k11, k12, s-k11, s-k12
 keycode k-up  
 keycode k-down  keycode k-left   ( -- u ) \ gforth
 keycode k-home  keycode k-right  ( -- u ) \ gforth
 keycode k-end  keycode k-up     ( -- u ) \ gforth
 keycode k-prior \ note: captured by xterm  keycode k-down   ( -- u ) \ gforth
 keycode k-next \ note: captured by xterm  keycode k-home   ( -- u ) \ gforth
 keycode k-insert \ not in pfe  \G aka Pos1
 127 constant k-delete \ not an escape sequence on my xterm, so use ASCII code  keycode k-end    ( -- u ) \ gforth
   keycode k-prior  ( -- u ) \ gforth
   \G aka PgUp
   keycode k-next   ( -- u ) \ gforth
   \G aka PgDn
   keycode k-insert ( -- u ) \ gforth
   127 constant k-delete ( -- u ) \ gforth
   \ not an escape sequence on my xterm, so use ASCII code
   
 \ function/keypad keys  \ function/keypad keys
 keycode k1  keycode k1  ( -- u ) \ gforth
 keycode k2  keycode k2  ( -- u ) \ gforth
 keycode k3  keycode k3  ( -- u ) \ gforth
 keycode k4  keycode k4  ( -- u ) \ gforth
 keycode k5  keycode k5  ( -- u ) \ gforth
 keycode k6  keycode k6  ( -- u ) \ gforth
 keycode k7  keycode k7  ( -- u ) \ gforth
 keycode k8  keycode k8  ( -- u ) \ gforth
 keycode k9  keycode k9  ( -- u ) \ gforth
 keycode k10  keycode k10 ( -- u ) \ gforth
 keycode k11 \ not in pfe  keycode k11 ( -- u ) \ gforth
 keycode k12 \ not in pfe  keycode k12 ( -- u ) \ gforth
 \ shifted fuinction keys (don't work in xterm (same as unshifted, but  \ shifted fuinction keys (don't work in xterm (same as unshifted, but
 \ s-k1..s-k8 work in the Linux console)  \ s-k1..s-k8 work in the Linux console)
 keycode s-k1  keycode s-k1  ( -- u ) \ gforth
 keycode s-k2  keycode s-k2  ( -- u ) \ gforth
 keycode s-k3  keycode s-k3  ( -- u ) \ gforth
 keycode s-k4  keycode s-k4  ( -- u ) \ gforth
 keycode s-k5  keycode s-k5  ( -- u ) \ gforth
 keycode s-k6  keycode s-k6  ( -- u ) \ gforth
 keycode s-k7  keycode s-k7  ( -- u ) \ gforth
 keycode s-k8  keycode s-k8  ( -- u ) \ gforth
 keycode s-k9  keycode s-k9  ( -- u ) \ gforth
 keycode s-k10  keycode s-k10 ( -- u ) \ gforth
 keycode s-k11 \ not in pfe  keycode s-k11 ( -- u ) \ gforth
 keycode s-k12 \ not in pfe  keycode s-k12 ( -- u ) \ gforth
   
 \ helper word  \ helper word
 \ print a key sequence:  \ print a key sequence:
Line 117 
Line 125 
 create ekey-buffer 8 chars allot  create ekey-buffer 8 chars allot
 2variable ekey-buffered  2variable ekey-buffered
   
 27 constant #esc  [IFUNDEF] #esc  27 Constant #esc  [THEN]
   
 : esc-prefix ( -- u )  : esc-prefix ( -- u )
     key? if      key? if
Line 202 
Line 210 
       ekey-buffer 0 ekey-buffered 2! ;        ekey-buffer 0 ekey-buffered 2! ;
   
 : ekey ( -- u ) \ facility-ext e-key  : ekey ( -- u ) \ facility-ext e-key
       \G Receive a keyboard event @var{u} (encoding implementation-defined).
     key dup #esc =      key dup #esc =
     if      if
         drop clear-ekey-buffer          drop clear-ekey-buffer
Line 209 
Line 218 
     then ;      then ;
   
 : ekey>char ( u -- u false | c true ) \ facility-ext e-key-to-char  : ekey>char ( u -- u false | c true ) \ facility-ext e-key-to-char
       \G Convert keyboard event @var{u} into character @code{c} if possible.
     dup 256 u< ;      dup 256 u< ;
   
 ' key? alias ekey? ( -- flag )  ' key? alias ekey? ( -- flag ) \ facility-ext e-key-question
   \G True if a keyboard even is available.
   
 \  : esc? ( -- flag ) recursive  \  : esc? ( -- flag ) recursive
 \      key? 0=  \      key? 0=


Generate output suitable for use with a patch program
Legend:
Removed from v.1.8  
changed lines
  Added in v.1.12

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help