Diff for /gforth/kernel/errore.fs between versions 1.2 and 1.20

version 1.2, 1997/09/13 12:05:51 version 1.20, 2012/12/31 15:25:19
Line 1 Line 1
 \ ERRORE.FS English error strings                      9may93jaw  \ ERRORE.FS English error strings                      9may93jaw
   
 \ Copyright (C) 1995 Free Software Foundation, Inc.  \ Copyright (C) 1995,1996,1997,1998,1999,2000,2003,2006,2007,2012 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
 \ Gforth is free software; you can redistribute it and/or  \ Gforth is free software; you can redistribute it and/or
 \ modify it under the terms of the GNU General Public License  \ modify it under the terms of the GNU General Public License
 \ as published by the Free Software Foundation; either version 2  \ as published by the Free Software Foundation, either version 3
 \ of the License, or (at your option) any later version.  \ of the License, or (at your option) any later version.
   
 \ This program is distributed in the hope that it will be useful,  \ This program is distributed in the hope that it will be useful,
Line 15 Line 15
 \ GNU General Public License for more details.  \ GNU General Public License for more details.
   
 \ You should have received a copy of the GNU General Public License  \ You should have received a copy of the GNU General Public License
 \ along with this program; if not, write to the Free Software  \ along with this program. If not, see http://www.gnu.org/licenses/.
 \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  
   
   
 \ 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  require ./io.fs
   require ./nio.fs
   
   AVariable ErrLink              \ Linked list entry point
 NIL ErrLink !  NIL ErrLink !
   
 decimal  decimal
Line 34  decimal Line 36  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
   
 : .error ( n -- )  has? OS [IF]
     cr ." Error: "  : >stderr ( -- )
       r> outfile-id >r debug-fid to outfile-id
       >exec  r> to outfile-id ;
   [THEN]
   
   : error$ ( n -- addr u ) \ gforth
       \G converts an error to a string
     ErrLink      ErrLink
     BEGIN @ dup      BEGIN @ dup
     WHILE      WHILE
         2dup cell+ @ =          2dup cell+ @ =
         IF 2 cells + count type drop exit THEN          IF
               2 cells + count rot 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 EXIT
     THEN      THEN
     dup -2047 -511 within      dup -2047 -511 within
     IF      IF
         512 + negate strerror type exit          512 + negate strerror EXIT
     THEN      THEN
 [ [THEN] ]  [ [THEN] ]
     . ;      base @ >r decimal
       s>d tuck dabs <# #s rot sign s" error #" holds #> r> base ! ;
   
   : .error ( n -- )
   [ has? OS [IF] ]
       >stderr
   [ [THEN] ]
       error$ type ;
   

Removed from v.1.2  
changed lines
  Added in v.1.20


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