Update of /project/lisppaste/cvsroot/lisppaste2 In directory common-lisp.net:/home/bmastenbrook/lisppaste2
Modified Files: encode-for-pre.lisp Log Message: more beginning-of-line damage
Date: Thu Jun 24 12:48:04 2004 Author: bmastenbrook
Index: lisppaste2/encode-for-pre.lisp diff -u lisppaste2/encode-for-pre.lisp:1.17 lisppaste2/encode-for-pre.lisp:1.18 --- lisppaste2/encode-for-pre.lisp:1.17 Tue Jun 8 08:20:40 2004 +++ lisppaste2/encode-for-pre.lisp Thu Jun 24 12:48:04 2004 @@ -1,4 +1,4 @@ -;;;; $Id: encode-for-pre.lisp,v 1.17 2004/06/08 15:20:40 bmastenbrook Exp $ +;;;; $Id: encode-for-pre.lisp,v 1.18 2004/06/24 19:48:04 bmastenbrook Exp $ ;;;; $Source: /project/lisppaste/cvsroot/lisppaste2/encode-for-pre.lisp,v $
;;;; See the LICENSE file for licensing information. @@ -10,13 +10,16 @@
(defun encode-for-tt (string &key with-line-numbers first-char-nbsp) (let ((pos 0) (end (length string)) - (char nil)) + (char nil) (last-was-newline nil)) (flet ((next-char () - (setf char (when (> end pos) - (prog1 - (schar string pos) - (incf pos)))))) - (with-output-to-string (out) + (prog1 + (setf char (when (> end pos) + (prog1 + (schar string pos) + (incf pos)))) + (when char (setf last-was-newline (eql char #\newline)))))) + (values + (with-output-to-string (out) (block nil (tagbody (unless first-char-nbsp @@ -32,9 +35,9 @@ ((nil) (return)) ((#\Newline) (write-string "<br>" out) - (if with-line-numbers - (write-string (funcall with-line-numbers) out)) - (go escape-spaces)) + (when with-line-numbers + (write-string (funcall with-line-numbers) out)) + (go escape-spaces)) ((#&) (write-string "&" out)) ((#<) @@ -50,7 +53,8 @@ (t (write-char char out))) (next-char) - (go process-char))))))) + (go process-char)))) + last-was-newline))))
(defun encode-for-pre (string)