Show the signal name next to the number in parentheses on Unices.

db4
Elliott Hird 2009-04-20 01:28:41 +01:00
parent 27928f5f8f
commit 0719d83653
1 changed files with 20 additions and 1 deletions

View File

@ -88,8 +88,27 @@ M: string error. print ;
: divide-by-zero-error. ( obj -- )
"Division by zero" print drop ;
CONSTANT: signal-names
{
"SIGHUP" "SIGINT" "SIGQUIT" "SIGILL" "SIGTRAP" "SIGABRT"
"SIGEMT" "SIGFPE" "SIGKILL" "SIGBUS" "SIGSEGV" "SIGSYS"
"SIGPIPE" "SIGALRM" "SIGTERM" "SIGURG" "SIGSTOP" "SIGTSIP"
"SIGCONT" "SIGCHLD" "SIGTTIN" "SIGTTOU" "SIGIO" "SIGXCPU"
"SIGXFSZ" "SIGVTALRM" "SIGPROF" "SIGWINCH" "SIGINFO"
"SIGUSR1" "SIGUSR2"
}
: signal-name ( n -- str )
1- signal-names nth;
: signal-name. ( n -- )
dup signal-names length <=
os unix? and
[ " (" write signal-name write ")" write ] [ drop ] if ;
: signal-error. ( obj -- )
"Operating system signal " write third . ;
"Operating system signal " write
third [ pprint ] [ signal-name. ] bi nl ;
: array-size-error. ( obj -- )
"Invalid array size: " write dup third .