version 1.1, 1997/05/21 20:40:14
|
version 1.8, 1999/12/12 18:35:55
|
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 Free Software Foundation, Inc. |
|
|
\ This file is part of Gforth. |
\ This file is part of Gforth. |
|
|
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 |
require ./io.fs |
|
require ./nio.fs |
|
|
|
AVariable ErrLink \ Linked list entry point |
NIL ErrLink ! |
NIL ErrLink ! |
|
|
decimal |
decimal |
Line 34 decimal
|
Line 37 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 |
|
|
|
has? OS [IF] |
|
: >stderr ( -- ) |
|
r> outfile-id >r stderr to outfile-id |
|
>exec r> to outfile-id ; |
|
[ELSE] |
|
: >stderr ; |
|
[THEN] |
|
|
: .error ( n -- ) |
: .error ( n -- ) |
cr ." Error: " |
>stderr |
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] ] |
. ; |
." error " dec. ; |
|
|