X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=base.lisp;h=d90ae6256352578bcd2cec0383702ca79757296d;hb=75603625f58acaa4e23baca99712d4d098be43d0;hp=feca6b151a1f79dc54e24e938d1de29546bf515f;hpb=63a46255032f6cb25666c40205a23409677eb757;p=lml.git diff --git a/base.lisp b/base.lisp index feca6b1..d90ae62 100644 --- a/base.lisp +++ b/base.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Aug 2002 ;;;; -;;;; $Id: base.lisp,v 1.4 2003/01/14 08:41:22 kevin Exp $ +;;;; $Id: base.lisp,v 1.5 2003/01/17 22:16:25 kevin Exp $ ;;;; ;;;; This file, part of LML, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -33,7 +33,7 @@ (defun reset-indent () (setq *indent* 0)) -(defun lml-print (str &rest args) +(defun lml-format (str &rest args) (when (streamp *html-output*) (when *print-spaces* (indent-spaces *indent* *html-output*)) (if args @@ -42,11 +42,17 @@ (when *print-spaces* (format *html-output* "~%")) (values))) -(defmacro lml-line (str &rest args) - `(lml-print ,str ,@args)) +(defun lml-princ (s) + (princ s *html-output*)) + +(defun lml-print (s) + (format *html-output* "~A~%" s)) + +(defun lml-write-char (char) + (write-char char *html-output)) (defun lml-print-date (date) - (lml-print (date-string date))) + (lml-princ (date-string date))) (defmacro lml-exec-body (&body forms) `(progn @@ -54,12 +60,12 @@ #'(lambda (form) (etypecase form (string - `(lml-print ,form)) + `(lml-princ ,form)) (number - `(lml-print "~D" ,form)) + `(lml-format "~D" ,form)) (symbol (when form - `(lml-print ,form))) + `(lml-princ ,form))) (cons form))) forms))) @@ -67,19 +73,19 @@ (defmacro with-attr-string (tag attr-string &body body) (let ((attr (gensym))) `(let ((,attr ,attr-string)) - (lml-print "<~(~A~)~A>" ',tag + (lml-format "<~(~A~)~A>" ',tag (if (and (stringp ,attr) (plusp (length ,attr))) (format nil "~A" ,attr) "")) (incf *indent*) (lml-exec-body ,@body) (decf *indent*) - (lml-print "" ',tag)))) + (lml-format "" ',tag)))) (defmacro with-no-endtag-attr-string (tag attr-string) (let ((attr (gensym))) `(let ((,attr ,attr-string)) - (lml-print "<~(~A~)~A />" ',tag + (lml-format "<~(~A~)~A />" ',tag (if (and (stringp ,attr) (plusp (length ,attr))) (format nil "~A" ,attr) ""))))) @@ -180,8 +186,8 @@ (defmacro xhtml-prologue () `(progn - (lml-print "~A~%" (xml-prologue-string)) - (lml-print "~A~%" (xhtml-prologue-string)))) + (lml-format "~A~%" (xml-prologue-string)) + (lml-format "~A~%" (xhtml-prologue-string)))) (defmacro link (dest &body body) `(with a :href ,dest ,@body)) @@ -267,7 +273,7 @@ #+cmu (setf curr-string (coerce curr-string `(simple-array character (*)))) - (push `(lml-print ,curr-string) forms) + (push `(lml-princ ,curr-string) forms) (setq curr-string (new-string)) (setq got-comma nil) (vector-push #\( curr-string) @@ -288,7 +294,7 @@ (push `(let ((,res ,eval-string)) (when ,res - (lml-print ,res))) + (lml-princ ,res))) forms)) (setq curr-string (new-string))) ;; read comma, then non #\( char @@ -307,7 +313,7 @@ #+cmu (setf curr-string (coerce curr-string `(simple-array character (*)))) - (push `(lml-print ,curr-string) forms) + (push `(lml-princ ,curr-string) forms) `(progn ,@(nreverse forms)))))