Diff for /gforth/history.fs between versions 1.41 and 1.50

version 1.41, 2005/01/26 21:41:27 version 1.50, 2006/12/31 13:39:13
Line 1 Line 1
 \ command line edit and history support                 16oct94py  \ command line edit and history support                 16oct94py
   
 \ Copyright (C) 1995,2000,2003,2004 Free Software Foundation, Inc.  \ Copyright (C) 1995,2000,2003,2004,2005,2006 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 69  s" os-class" environment? [IF] s" unix" Line 69  s" os-class" environment? [IF] s" unix"
   
 \ moving in history file                               16oct94py  \ moving in history file                               16oct94py
   
 : clear-line ( max span addr pos1 -- max addr )  defer back-restore ( u -- )
   backspaces over spaces swap backspaces ;  ' backspaces is back-restore
   
   [IFDEF] x-width
   : clear-line ( max span addr pos1 -- max addr )
     back-restore over over swap x-width spaces swap back-restore ;
   [ELSE]
   : clear-line ( max span addr pos1 -- max addr )
     back-restore over spaces swap back-restore ;
   [THEN]
 \ : clear-tib ( max span addr pos -- max 0 addr 0 false )  \ : clear-tib ( max span addr pos -- max 0 addr 0 false )
 \   clear-line 0 tuck dup ;  \   clear-line 0 tuck dup ;
   
Line 197  require utf-8.fs Line 204  require utf-8.fs
     restore-cursor 2dup type ;      restore-cursor 2dup type ;
 : .all ( span addr pos1 -- span addr pos1 )  : .all ( span addr pos1 -- span addr pos1 )
     restore-cursor >r 2dup swap type r> ;      restore-cursor >r 2dup swap type r> ;
   : xback-restore ( u -- )
       drop restore-cursor ;
   
   \ In the following, addr max is the buffer, addr span is the current
   \ string in the buffer, and pos1 is the cursor position in the buffer.
   
 : <xins>  ( max span addr pos1 xc -- max span addr pos2 )  : <xins>  ( max span addr pos1 xc -- max span addr pos2 )
     >r  2over r@ xc-size + u< IF  ( max span addr pos1 R:xc )      >r  2over r@ xc-size + u< IF  ( max span addr pos1 R:xc )
Line 269  require utf-8.fs Line 281  require utf-8.fs
     ['] xclear-tib   ctrl K bindkey      ['] xclear-tib   ctrl K bindkey
     ['] xfirst-pos   ctrl A bindkey      ['] xfirst-pos   ctrl A bindkey
     ['] xend-pos     ctrl E bindkey      ['] xend-pos     ctrl E bindkey
     ['] (xenter)     #lf    bindkey      history IF  ['] (xenter)     #lf    bindkey  THEN
     ['] (xenter)     #cr    bindkey      history IF  ['] (xenter)     #cr    bindkey  THEN
     ['] xtab-expand  #tab   bindkey      ['] xtab-expand  #tab   bindkey
     ['] (xins)       IS insert-char      ['] (xins)       IS insert-char
     ['] kill-prefix  IS everychar      ['] kill-prefix  IS everychar
     ['] save-cursor  IS everyline ;      ['] save-cursor  IS everyline
       ['] xback-restore IS back-restore
   ;
   
 xchar-history  xchar-history
   
Line 285  xchar-history Line 299  xchar-history
     ?dup-if      ?dup-if
         \ !! >stderr          \ !! >stderr
         \ history-file type ." : " .error cr          \ history-file type ." : " .error cr
         drop 2drop          drop 2drop 0 to history
         ['] false ['] false ['] (ret)          ['] false ['] false ['] (ret)
     else      else
         to history          to history
Line 300  xchar-history Line 314  xchar-history
 ;  ;
   
 : history-cold ( -- )  : history-cold ( -- )
     history-file get-history ;      history-file get-history xchar-history ;
   
   :noname ( -- )
       defers 'cold
       history-cold
   ; is 'cold
   
 ' history-cold INIT8 chained  
 history-cold  history-cold
   

Removed from v.1.41  
changed lines
  Added in v.1.50


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