[gforth] / gforth / ekey.fs  

gforth: gforth/ekey.fs

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

version 1.22, Sun Nov 23 20:49:37 2008 UTC version 1.23, Sun Nov 23 21:09:55 2008 UTC
Line 337 
Line 337 
 : clear-ekey-buffer ( -- )  : clear-ekey-buffer ( -- )
     ekey-buffer 0 ekey-buffered 2! ;      ekey-buffer 0 ekey-buffered 2! ;
   
 : ekey ( -- u ) \ facility-ext e-key  
     \G Receive a keyboard event @var{u} (encoding implementation-defined).  
     key dup #esc =  
     if  
         drop clear-ekey-buffer  
         esc-prefix  
     then  
     [IFDEF] max-single-byte      [IFDEF] max-single-byte
         dup max-single-byte u>= if      : read-xkey ( key -- flag )
             clear-ekey-buffer              clear-ekey-buffer
             ekey-buffered char-append-buffer              ekey-buffered char-append-buffer
             ekey-buffer 1 u8addrlen 1 +do              ekey-buffer 1 u8addrlen 1 +do
                 key? 0= ?leave                  key? 0= ?leave
                 key ekey-buffered char-append-buffer                  key ekey-buffered char-append-buffer
             loop              loop
             ekey-buffer 1 u8addrlen ekey-buffered @ = if          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-buffer xc@+ nip         else
                 ekey-buffered 2@ unkeys key  then                  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
       \G Receive a keyboard event @var{u} (encoding implementation-defined).
       key dup #esc =
       if
           drop clear-ekey-buffer
           esc-prefix  exit
         then          then
       [IFDEF] max-single-byte
           get-xkey
     [THEN]      [THEN]
 ;  ;
   


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

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help