X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Fcondition.lisp;h=7f664314602ca4437433384aabd7417c2c7c6949;hb=6a9bbe6f36179cee92001a1f9ed5ff38be512644;hp=a62586a19598c2d7bd11c306a08f77ced71ae4ff;hpb=26341a4b638f5480993e9715bfb637e560592819;p=sbcl.git diff --git a/src/code/condition.lisp b/src/code/condition.lisp index a62586a..7f66431 100644 --- a/src/code/condition.lisp +++ b/src/code/condition.lisp @@ -682,6 +682,17 @@ (let (lineno colno) (when (and pos (< pos sb!xc:array-dimension-limit) + ;; KLUDGE: lseek() (which is what FILE-POSITION + ;; reduces to on file-streams) is undefined on + ;; "some devices", which in practice means that it + ;; can claim to succeed on /dev/stdin on Darwin + ;; and Solaris. This is obviously bad news, + ;; because the READ-SEQUENCE below will then + ;; block, not complete, and the report will never + ;; be printed. As a workaround, we exclude + ;; interactive streams from this attempt to report + ;; positions. -- CSR, 2003-08-21 + (not (interactive-stream-p error-stream)) (file-position error-stream :start)) (let ((string (make-string pos @@ -770,6 +781,7 @@ (define-condition nil-array-accessed-error (type-error) () (:report (lambda (condition stream) + (declare (ignore condition)) (format stream "An attempt to access an array of element-type ~ NIL was made. Congratulations!"))))