X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fpprint.lisp;h=f5428786c00f5bac79d83a541258fc2293f1482b;hb=26ac616b6783b8841ccda8b4f1caa7d898d91b86;hp=07f87255d41ae5d9e868b9a769a72e1d5098ff5a;hpb=70a16828572748140239e3c74f34a2967e1e5131;p=sbcl.git diff --git a/src/code/pprint.lisp b/src/code/pprint.lisp index 07f8725..f542878 100644 --- a/src/code/pprint.lisp +++ b/src/code/pprint.lisp @@ -1007,16 +1007,11 @@ line break." (output-ugly-object array stream)) ((and *print-readably* (not (array-readably-printable-p array))) - (restart-case - (error 'print-not-readable :object array) - (print-unreadably () - :report "Print unreadably." - (let ((*print-readably* nil)) - (pprint-array stream array))) - (use-value (o) - :report "Supply an object to be printed instead." - :interactive read-unreadable-replacement - (write o :stream stream)))) + (if *read-eval* + (if (vectorp array) + (sb!impl::output-unreadable-vector-readably array stream) + (sb!impl::output-unreadable-array-readably array stream)) + (print-not-readable-error array stream))) ((vectorp array) (pprint-vector stream array)) (t @@ -1145,7 +1140,10 @@ line break." (declare (ignore noise)) (if (and (consp list) (consp (cdr list)) - (cddr list)) + (cddr list) + ;; Filter out (FLET FOO :IN BAR) names. + (and (consp (cddr list)) + (not (eq :in (third list))))) (funcall (formatter "~:<~^~W~^ ~@_~:<~@{~:<~^~W~^~3I ~:_~/SB!PRETTY:PPRINT-LAMBDA-LIST/~1I~:@_~@{~W~^ ~_~}~:>~^ ~_~}~:>~1I~@:_~@{~W~^ ~_~}~:>") stream @@ -1269,7 +1267,9 @@ line break." (defun pprint-defmethod (stream list &rest noise) (declare (ignore noise)) - (if (consp (third list)) + (if (and (consp (cdr list)) + (consp (cddr list)) + (consp (third list))) (pprint-defun stream list) (funcall (formatter "~:<~^~W~^ ~@_~:I~W~^ ~W~^ ~:_~/SB!PRETTY:PPRINT-LAMBDA-LIST/~1I~@{ ~_~W~}~:>") @@ -1376,7 +1376,7 @@ line break." (declare (ignore noise)) (destructuring-bind (loop-symbol . clauses) list (declare (ignore loop-symbol)) - (if (or (null clauses) (consp (car clauses))) + (if (or (atom clauses) (consp (car clauses))) (pprint-spread-fun-call stream list) (pprint-extended-loop stream list))))