diff --git a/src/cmp/cmpc-wt.lsp b/src/cmp/cmpc-wt.lsp index e2bb93435..d1e999508 100644 --- a/src/cmp/cmpc-wt.lsp +++ b/src/cmp/cmpc-wt.lsp @@ -82,10 +82,17 @@ (let* ((l (1- (length text)))) (declare (fixnum l)) (dotimes (n l) - (let ((c (schar text n))) - (princ c stream) - (when (and (char= c #\*) (char= (schar text (1+ n)) #\/)) - (princ #\\ stream)))) + (let* ((c (schar text n)) + (code (char-code c))) + (cond + ((or (eq c #\Newline) (eq c #\Tab)) + (princ c stream)) + ((or (< code 32) (> code 127)) + (format stream "\ux" code)) + ((and (char= c #\*) (char= (schar text (1+ n)) #\/)) + (princ #\\ stream)) + (t + (princ c stream))))) (princ (schar text l) stream)) (format stream "~70T*/") )