diff --git a/utils.lisp b/utils.lisp index 04cbaee..3525086 100644 --- a/utils.lisp +++ b/utils.lisp @@ -133,7 +133,12 @@ while line do (funcall fi line))) (defun strcat (&rest str) - (apply #'concatenate (cons 'string str))) + (apply #'concatenate (cons 'string (mapcar #'(lambda (x) + (typecase x + (string x) + (character (string x)) + (t (write-to-string x)))) + str)))) (defmacro until (stmt) `(let ((ret nil)) @@ -424,6 +429,7 @@ thing))) (defmacro enable-all-readers () + "Turn on reader macros" '(eval-when (:compile-toplevel :load-toplevel :execute) (push *readtable* *old-readtables*) (setq *readtable* (copy-readtable)) @@ -434,6 +440,7 @@ (set-macro-character #\~ 'top-level-reader))) ;"Run at compile,load and execute" (defmacro disable-all-readers() + "Turn off reader macros" '(eval-when (:compile-toplevel :load-toplevel :execute) (setq *readtable* (pop *old-readtables*))))