version 1.16, 2007/12/31 19:02:25
|
version 1.19, 2012/08/09 23:58:53
|
Line 38 decimal
|
Line 38 decimal
|
|
|
has? OS [IF] |
has? OS [IF] |
: >stderr ( -- ) |
: >stderr ( -- ) |
r> outfile-id >r stderr to outfile-id |
r> outfile-id >r debug-fid to outfile-id |
>exec r> to outfile-id ; |
>exec r> to outfile-id ; |
[THEN] |
[THEN] |
|
|
: .error ( n -- ) |
: error$ ( n -- addr u ) \ gforth |
[ has? OS [IF] ] |
\G converts an error to a string |
>stderr |
|
[ [THEN] ] |
|
ErrLink |
ErrLink |
BEGIN @ dup |
BEGIN @ dup |
WHILE |
WHILE |
2dup cell+ @ = |
2dup cell+ @ = |
IF |
IF |
2 cells + count type drop EXIT THEN |
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] ] |
." error " dec. ; |
base @ >r decimal |
|
s>d tuck dabs <# #s rot sign s" error #" holds #> r> base ! ; |
|
|
|
: .error ( n -- ) |
|
[ has? OS [IF] ] |
|
>stderr |
|
[ [THEN] ] |
|
error$ type ; |
|
|