Diff for /gforth/kernel/errore.fs between versions 1.1 and 1.3

version 1.1, 1997/05/21 20:40:14 version 1.3, 1998/08/29 20:46:14
Line 22 Line 22
 \ The errors are defined by a linked list, for easy adding  \ The errors are defined by a linked list, for easy adding
 \ and deleting. Speed is not neccassary at this point.  \ and deleting. Speed is not neccassary at this point.
   
 AVARIABLE ErrLink              \ Linked list entry point  AVariable ErrLink              \ Linked list entry point
 NIL ErrLink !  NIL ErrLink !
   
 decimal  decimal
Line 34  decimal Line 34  decimal
 \ error numbers between -512 and -2047 are for OS errors and are  \ error numbers between -512 and -2047 are for OS errors and are
 \ handled with strerror  \ handled with strerror
   
   : >stderr ( -- )
       r> outfile-id >r stderr to outfile-id
       >exec  r> to outfile-id ;
   
 : .error ( n -- )  : .error ( n -- )
       >stderr
     cr ." Error: "      cr ." Error: "
     ErrLink      ErrLink
     BEGIN @ dup      BEGIN @ dup
     WHILE      WHILE
         2dup cell+ @ =          2dup cell+ @ =
         IF 2 cells + count type drop exit THEN          IF
               2 cells + count type drop EXIT THEN
     REPEAT      REPEAT
     drop      drop
 [ has-os [IF] ]  [ has? os [IF] ]
     dup -511 -255 within      dup -511 -255 within
     IF      IF
         256 + negate strsignal type exit          256 + negate strsignal type EXIT
     THEN      THEN
     dup -2047 -511 within      dup -2047 -511 within
     IF      IF
         512 + negate strerror type exit          512 + negate strerror type EXIT
     THEN      THEN
 [ [THEN] ]  [ [THEN] ]
     . ;      . ;
   

Removed from v.1.1  
changed lines
  Added in v.1.3


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