Diff for /gforth/ekey.fs between versions 1.22 and 1.25

version 1.22, 2008/11/23 20:49:37 version 1.25, 2009/01/21 18:08:11
Line 331  s-k6 s" [32~" esc-sequence Line 331  s-k6 s" [32~" esc-sequence
 s-k7 s" [33~" esc-sequence  s-k7 s" [33~" esc-sequence
 s-k8 s" [34~" esc-sequence  s-k8 s" [34~" esc-sequence
   
   \ esc sequences for MacOS X iterm <e7a7c785-3bea-408b-94e9-4b59b008546f@x16g2000prn.googlegroups.com>
   k-left   s" OD" esc-sequence
   k-right  s" OC" esc-sequence
   k-up     s" OA" esc-sequence
   k-down   s" OB" esc-sequence
   
 set-current  set-current
 [ENDIF]  [ENDIF]
   
 : clear-ekey-buffer ( -- )  : clear-ekey-buffer ( -- )
     ekey-buffer 0 ekey-buffered 2! ;      ekey-buffer 0 ekey-buffered 2! ;
   
   [IFDEF] max-single-byte
       : read-xkey ( key -- flag )
           clear-ekey-buffer
           ekey-buffered char-append-buffer
           ekey-buffer 1 u8addrlen 1 +do
               key? 0= ?leave
               key ekey-buffered char-append-buffer
           loop
           ekey-buffer 1 u8addrlen ekey-buffered @ = ;
       : get-xkey ( u -- xc )
           dup max-single-byte u>= if
               read-xkey if
                   ekey-buffer xc@+ nip         else
                   ekey-buffered 2@ unkeys key  then
           then ;
       : xkey? ( -- flag )
           key? dup if
               drop key read-xkey ekey-buffered 2@ unkeys
               clear-ekey-buffer  then ;
   [THEN]
   
 : ekey ( -- u ) \ facility-ext e-key  : ekey ( -- u ) \ facility-ext e-key
     \G Receive a keyboard event @var{u} (encoding implementation-defined).      \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
         esc-prefix          esc-prefix  exit
     then      then
     [IFDEF] max-single-byte      [IFDEF] max-single-byte
         dup max-single-byte u>= if          get-xkey
             clear-ekey-buffer  
             ekey-buffered char-append-buffer  
             ekey-buffer 1 u8addrlen 1 +do  
                 key? 0= ?leave  
                 key ekey-buffered char-append-buffer  
             loop  
             ekey-buffer 1 u8addrlen ekey-buffered @ = if  
                 ekey-buffer xc@+ nip         else  
                 ekey-buffered 2@ unkeys key  then  
         then  
     [THEN]      [THEN]
 ;  ;
   
Line 371  set-current Line 388  set-current
 \G keyboard event @var{u1} into key id @var{u2} and return true;  \G keyboard event @var{u1} into key id @var{u2} and return true;
 \G otherwise return @var{u1} and false.  \G otherwise return @var{u1} and false.
     ekey>xchar 0= ;      ekey>xchar 0= ;
   
   ' xkey? alias ekey? ( -- flag ) \ facility-ext e-key-question
 [ELSE]  [ELSE]
 : 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.      \G Convert keyboard event @var{u} into character @code{c} if possible.
Line 380  set-current Line 399  set-current
 \G keyboard event @var{u1} into key id @var{u2} and return true;  \G keyboard event @var{u1} into key id @var{u2} and return true;
 \G otherwise return @var{u1} and false.  \G otherwise return @var{u1} and false.
     ekey>char 0= ;      ekey>char 0= ;
 [THEN]  
   
 ' key? alias ekey? ( -- flag ) \ facility-ext e-key-question  ' key? alias ekey? ( -- flag ) \ facility-ext e-key-question
   [THEN]
   
 \G True if a keyboard event is available.  \G True if a keyboard event is available.
   
 \  : esc? ( -- flag ) recursive  \  : esc? ( -- flag ) recursive

Removed from v.1.22  
changed lines
  Added in v.1.25


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>