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

version 1.22, 2008/11/23 20:49:37 version 1.23, 2008/11/23 21:09:55
Line 337  set-current Line 337  set-current
 : 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]
 ;  ;
   

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


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