(begin
(*print-char #\| context)
(string-for-each (lambda (char)
- (print-string-char char context))
+ (print-string-char char context #\|))
s)
(*print-char #\| context))))
(*print-char #\" context)
(do ((index 0 (fix:+ index 1)))
((not (fix:< index end*)))
- (print-string-char (string-ref string index) context))
+ (print-string-char (string-ref string index) context #\"))
(if (< end* end)
(*print-string "..." context))
(*print-char #\" context))
(*print-string string context)))
-(define (print-string-char char context)
+(define (print-string-char char context quote-char)
(case char
((#\bel)
(*print-char #\\ context)
((#\tab)
(*print-char #\\ context)
(*print-char #\t context))
- ((#\\ #\" #\|)
+ ((#\\)
(*print-char #\\ context)
+ (*print-char #\\ context))
+ ((#\" #\|)
+ (if (eqv? char quote-char)
+ (*print-char #\\ context))
(*print-char char context))
(else
(if (and (char-in-set? char char-set:normal-printing)
("-inf.0-inf.0i" ,assert-complex-nonreal)
("+inf.0+nan.0i" ,assert-complex-nonreal)
("+nan.0+inf.0i" ,assert-complex-nonreal)
- ("\"|\"" ,assert-string xfail)
+ ("\"|\"" ,assert-string)
("\"\\\"\"" ,assert-string)
("\"\\\\\"" ,assert-string))
(lambda (string #!optional assertion xfail?)