[gforth] / gforth / smartdots.fs  

gforth: gforth/smartdots.fs

Diff for /gforth/smartdots.fs between version 1.3 and 1.6

version 1.3, Fri Mar 9 18:56:42 2012 UTC version 1.6, Tue Mar 27 23:02:01 2012 UTC
Line 1 
Line 1 
 \ smart .s                                             09mar2012py  \ smart .s                                             09mar2012py
   
 \ Copyright (C) 1995,1998,1999,2001,2003,2006,2007,2011 Free Software Foundation, Inc.  \ Copyright (C) 2012 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 20 
Line 20 
 \ idea: Gerald Wodni  \ idea: Gerald Wodni
   
 : addr? ( addr -- flag )  : addr? ( addr -- flag )
     TRY  @  IFERROR  2drop  false nothrow  ELSE  drop  true  THEN   ENDTRY ;      TRY  c@  IFERROR  2drop  false nothrow  ELSE  drop  true  THEN   ENDTRY ;
   
 : string? ( addr u -- flag )  : string? ( addr u -- flag )
     TRY  bounds ?DO  I c@ bl < IF  -1 throw  THEN  LOOP      TRY  dup #80 u> throw  bounds ?DO  I c@ bl < IF  -1 throw  THEN  LOOP
         IFERROR  2drop drop false nothrow ELSE  true  THEN  ENDTRY ;          IFERROR  2drop drop false nothrow ELSE  true  THEN  ENDTRY ;
   
 : .string. ( addr u -- )  : .string. ( addr u -- )
Line 34 
Line 34 
   
 : smart.s. ( n -- )  : smart.s. ( n -- )
     smart.s-skip @  smart.s-skip off IF  drop  EXIT  THEN      smart.s-skip @  smart.s-skip off IF  drop  EXIT  THEN
     over r> i swap >r - pick  2dup string? IF      over r> i swap >r -
       dup 1 = IF  false  ELSE  pick  2dup string?  THEN  IF
         .string. smart.s-skip on          .string. smart.s-skip on
     ELSE  drop dup addr? IF  .addr.      ELSE  drop dup addr? IF  .addr.
         ELSE  .  THEN          ELSE  .  THEN


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

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help