15 lines
2.2 KiB
Plaintext
15 lines
2.2 KiB
Plaintext
;;;; A message longer than the buffer that holds it is cut at a character,
|
|
;;;; never inside one, and says it was cut. The printed condition below starts
|
|
;;;; with an odd number of bytes before 400 two-byte characters, so a cut at a
|
|
;;;; fixed byte count lands inside one. The unhandled message at the end is
|
|
;;;; printed in full: it is not made from the handler's shortened copy.
|
|
|
|
(defstruct Wide :parent Error [code i32 why string])
|
|
(defstruct Long :parent Error)
|
|
|
|
(defn main [] i32
|
|
(handler-case (do (error (Wide {.code 123 .why "éééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééé"})) 0)
|
|
[(Error [e] (println (.message e)) 0)])
|
|
(error (Long {.name "long" .message "éééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééé"}))
|
|
0)
|