Annotation of gforth/kernel/errore.fs, revision 1.1

1.1     ! anton       1: \ ERRORE.FS English error strings                      9may93jaw
        !             2: 
        !             3: \ Copyright (C) 1995 Free Software Foundation, Inc.
        !             4: 
        !             5: \ This file is part of Gforth.
        !             6: 
        !             7: \ Gforth is free software; you can redistribute it and/or
        !             8: \ modify it under the terms of the GNU General Public License
        !             9: \ as published by the Free Software Foundation; either version 2
        !            10: \ of the License, or (at your option) any later version.
        !            11: 
        !            12: \ This program is distributed in the hope that it will be useful,
        !            13: \ but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            14: \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            15: \ GNU General Public License for more details.
        !            16: 
        !            17: \ You should have received a copy of the GNU General Public License
        !            18: \ along with this program; if not, write to the Free Software
        !            19: \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
        !            20: 
        !            21: 
        !            22: \ The errors are defined by a linked list, for easy adding
        !            23: \ and deleting. Speed is not neccassary at this point.
        !            24: 
        !            25: AVARIABLE ErrLink              \ Linked list entry point
        !            26: NIL ErrLink !
        !            27: 
        !            28: decimal
        !            29: 
        !            30: \ error numbers between -256 and -511 represent signals
        !            31: \ signals are handled with strsignal
        !            32: \ but some signals produce throw-codes > -256, e.g., -28
        !            33: 
        !            34: \ error numbers between -512 and -2047 are for OS errors and are
        !            35: \ handled with strerror
        !            36: 
        !            37: : .error ( n -- )
        !            38:     cr ." Error: "
        !            39:     ErrLink
        !            40:     BEGIN @ dup
        !            41:     WHILE
        !            42:        2dup cell+ @ =
        !            43:        IF 2 cells + count type drop exit THEN
        !            44:     REPEAT
        !            45:     drop
        !            46: [ has-os [IF] ]
        !            47:     dup -511 -255 within
        !            48:     IF
        !            49:        256 + negate strsignal type exit
        !            50:     THEN
        !            51:     dup -2047 -511 within
        !            52:     IF
        !            53:        512 + negate strerror type exit
        !            54:     THEN
        !            55: [ [THEN] ]
        !            56:     . ;
        !            57: 

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