X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-posix%2Finterface.lisp;h=4669aaffbd4b2176e2e48f0982e59e834ac14c50;hb=4d0b87793a047baecf2403455ddca1a82f44a41b;hp=732922e08f10bc8338df1107963bfa7e6ffc3894;hpb=ffb003f5648f1abe64561c8a426878774e10a21b;p=sbcl.git diff --git a/contrib/sb-posix/interface.lisp b/contrib/sb-posix/interface.lisp index 732922e..4669aaf 100644 --- a/contrib/sb-posix/interface.lisp +++ b/contrib/sb-posix/interface.lisp @@ -64,14 +64,19 @@ ((errno :initarg :errno :reader sb-posix:syscall-errno) (name :initarg :name :initform nil :reader sb-posix:syscall-name)) (:report (lambda (c s) - (let ((errno (sb-posix:syscall-errno c))) - (format s "Error in ~S: ~A (~A)" - (sb-posix:syscall-name c) - (sb-int:strerror errno) - errno))))) - -(declaim (ftype (function (symbol) nil) syscall-error)) -(defun syscall-error (name) + (let ((errno (sb-posix:syscall-errno c)) + (name (sb-posix:syscall-name c))) + (if name + (format s "Error in ~S: ~A (~A)" + name + (sb-int:strerror errno) + errno) + (format s "Error in syscall: ~A (~A)" + (sb-int:strerror errno) + errno)))))) + +(declaim (ftype (function (&optional symbol) nil) syscall-error)) +(defun syscall-error (&optional name) (error 'sb-posix:syscall-error :name name :errno (get-errno)))