|
|
@ -107,6 +107,11 @@
|
|
|
|
(t (write-to-string x))))
|
|
|
|
(t (write-to-string x))))
|
|
|
|
str))))
|
|
|
|
str))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defmacro strcat-fast (&rest strings)
|
|
|
|
|
|
|
|
"Concat all strings, they need to be strings. Use `strcat' instead unless you can guarantee you won't violate that."
|
|
|
|
|
|
|
|
`(concatenate 'string
|
|
|
|
|
|
|
|
,@strings))
|
|
|
|
|
|
|
|
|
|
|
|
(defmacro until (stmt)
|
|
|
|
(defmacro until (stmt)
|
|
|
|
"Repeat stmt until its return is not NIL, then return that value."
|
|
|
|
"Repeat stmt until its return is not NIL, then return that value."
|
|
|
|
`(let ((ret nil))
|
|
|
|
`(let ((ret nil))
|
|
|
|