Diff for /gforth/extend.fs between versions 1.63 and 1.69

version 1.63, 2009/08/23 12:14:47 version 1.69, 2011/08/12 16:53:19
Line 1 Line 1
 \ EXTEND.FS    CORE-EXT Word not fully tested!         12may93jaw  \ EXTEND.FS    CORE-EXT Word not fully tested!         12may93jaw
   
 \ Copyright (C) 1995,1998,2000,2003,2005,2007 Free Software Foundation, Inc.  \ Copyright (C) 1995,1998,2000,2003,2005,2007,2009,2010 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 50  decimal Line 50  decimal
     >r s>d >r abs -rot      >r s>d >r abs -rot
     s>d r> xor r> swap >r >r dabs rot tuck um* 2swap um*      s>d r> xor r> swap >r >r dabs rot tuck um* 2swap um*
     swap >r 0 d+ r> -rot r@ um/mod -rot r> um/mod      swap >r 0 d+ r> -rot r@ um/mod -rot r> um/mod
     [ s" floored" environment? 0= throw ] [if]      [ 1 -3 mod 0< ] [if]
         -rot r> IF IF 1. d+ THEN dnegate ELSE drop THEN          -rot r> IF IF 1. d+ THEN dnegate ELSE drop THEN
     [else]      [else]
         nip swap r> IF dnegate THEN          nip swap r> IF dnegate THEN
Line 60  decimal Line 60  decimal
   
 \ just as described in dpANS5  \ just as described in dpANS5
   
 0 CONSTANT case ( compilation  -- case-sys ; run-time  -- ) \ core-ext  [ifundef] cs-drop
     immediate  : CS-DROP ( dest -- ) \ gforth
       dest? 2drop ;
   [then]
   
   : case ( compilation  -- case-sys ; run-time  -- ) \ core-ext
       postpone begin 0 ; immediate
   
   : ?of ( compilation  -- of-sys ; run-time  f -- ) \ gforth
       >r POSTPONE if r> ; immediate
   
 : of ( compilation  -- of-sys ; run-time x1 x2 -- |x1 ) \ core-ext  : of ( compilation  -- of-sys ; run-time x1 x2 -- |x1 ) \ core-ext
     \ !! the implementation does not match the stack effect      \ !! the implementation does not match the stack effect
     1+ >r      postpone over postpone = postpone ?of postpone drop ; immediate
     postpone over postpone = postpone if postpone drop  
     r> ; immediate  
   
 : endof ( compilation case-sys1 of-sys -- case-sys2 ; run-time  -- ) \ core-ext end-of  : endof ( compilation case-sys1 of-sys -- case-sys2 ; run-time  -- ) \ core-ext end-of
     >r postpone else r> ; immediate      >r postpone else 1 cs-roll r> 1+ ; immediate
   
   : contof ( compilation case-sys1 of-sys -- case-sys2 ; run-time  -- )
       \ like @code{endof}, but loops back to the @code{case}
       >r 1 cs-pick postpone again postpone then r> ; immediate
   
   : n-thens ( orig1 ... origu u -- )
       0 ?do postpone then loop ;
   
 : endcase ( compilation case-sys -- ; run-time x -- ) \ core-ext end-case  : endcase ( compilation case-sys -- ; run-time x -- ) \ core-ext end-case
     postpone drop      >r cs-drop postpone drop r> n-thens ; immediate
     0 ?do postpone then loop ; immediate  
   : nextcase ( compilation case-sys -- ; run-time x -- ) \ gforth-undocumented
       \ like ENDCASE, but start again from the beginning if this is
       \ reached by fallthrough
       >r postpone drop postpone again r> n-thens ; immediate
   
   
 \ C"                                                    17may93jaw  \ C"                                                    17may93jaw
   
Line 199  variable span ( -- c-addr ) \ core-ext-o Line 217  variable span ( -- c-addr ) \ core-ext-o
     \G editing capabilites are available. The length of the string is      \G editing capabilites are available. The length of the string is
     \G stored in @code{span}; it does not include the <return>      \G stored in @code{span}; it does not include the <return>
     \G character. OBSOLESCENT: superceeded by @code{accept}.      \G character. OBSOLESCENT: superceeded by @code{accept}.
       everyline
     0 rot over      0 rot over
     BEGIN ( maxlen span c-addr pos1 )      BEGIN ( maxlen span c-addr pos1 )
         key decode ( maxlen span c-addr pos2 flag )          xkey decode ( maxlen span c-addr pos2 flag )
         >r 2over = r> or          >r 2over = r> or
     UNTIL      UNTIL
     2 pick swap /string type      2 pick swap /string type

Removed from v.1.63  
changed lines
  Added in v.1.69


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