X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fpprint.lisp;fp=src%2Fcode%2Fpprint.lisp;h=c8e23015fc2e6d155abf43dee85fb1ba94a22e8f;hb=cc27e35fc73e6765679d6f426ee144abdfac7c27;hp=c0ab2472c23db2206edf655f517c3b393d0d2de6;hpb=d9479b4b4ca343e06886902d3a43eaf5a238fb9b;p=sbcl.git diff --git a/src/code/pprint.lisp b/src/code/pprint.lisp index c0ab247..c8e2301 100644 --- a/src/code/pprint.lisp +++ b/src/code/pprint.lisp @@ -1009,8 +1009,16 @@ line break." (output-ugly-object array stream)) ((and *print-readably* (not (array-readably-printable-p array))) - (let ((*print-readably* nil)) - (error 'print-not-readable :object 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)))) ((vectorp array) (pprint-vector stream array)) (t