diff --git a/scsh/scsh-condition.scm b/scsh/scsh-condition.scm index 90fdc81..95852c0 100644 --- a/scsh/scsh-condition.scm +++ b/scsh/scsh-condition.scm @@ -7,9 +7,11 @@ (define syscall-error? (condition-predicate 'syscall-error)) -(define (errno-error errno msg syscall . stuff) - (apply signal 'syscall-error errno msg syscall stuff)) +(define (errno-error errno syscall . stuff) + (apply errno-error-with-message errno (errno-msg errno) syscall stuff)) +(define (errno-error-with-message errno msg syscall . stuff) + (apply signal 'syscall-error errno msg syscall stuff)) (define (with-errno-handler* handler thunk) (with-handler diff --git a/scsh/scsh-package.scm b/scsh/scsh-package.scm index 7465e20..e0c9e45 100644 --- a/scsh/scsh-package.scm +++ b/scsh/scsh-package.scm @@ -103,13 +103,6 @@ (open scheme) (files scsh-version)) -(define-structure scsh-errors scsh-errors-interface - (open scheme - architecture - (subset srfi-1 (last drop-right)) - handle conditions signals) - (files scsh-condition)) - (define-structure scsh-endian scsh-endian-interface (open scheme bitwise) @@ -194,6 +187,7 @@ handle fluids thread-fluids weak-tables + (subset srfi-1 (last drop-right)) srfi-14 ; scsh-regexp-package @@ -239,7 +233,6 @@ simple-syntax exit-hooks - scsh-errors scsh-endian) (for-syntax (open scsh-syntax-helpers scheme)) (access interrupts @@ -253,6 +246,7 @@ records ; I don't think this is necessary. !!! scheme) ; For accessing the normal I/O operators. (files syntax + scsh-condition syscalls fname rw diff --git a/scsh/syscalls.scm b/scsh/syscalls.scm index fa77b92..d7fe6fb 100644 --- a/scsh/syscalls.scm +++ b/scsh/syscalls.scm @@ -49,7 +49,7 @@ (continuation-graft cont (lambda () - (apply errno-error + (apply errno-error-with-message (cadr stuff) ; errno (caddr stuff) ;msg syscall