version 1.2, 1997/09/13 12:05:51
|
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] ] |
. ; |
. ; |
|
|