##// END OF EJS Templates
Fix two regressions
Fix two regressions

File last commit:

r49:cd6f7adb default
r64:44143cfd default
Show More
api-macros.lisp
46 lines | 1.2 KiB | text/x-common-lisp | CommonLispLexer
(in-package txt2web.api)
(defpsmacro with-call-args (args &body body)
`(progn
(init-args ,args)
,@body
(get-result)))
(defpsmacro with-frame (&body body)
`(progn
(push-local-frame)
(unwind-protect
,@body
(pop-local-frame))))
(defpsmacro href-call (func &rest args)
`(+ "javascript:" (inline-call ,func ,@args)))
(defpsmacro inline-call (func &rest args)
`(+ ',func
"(\""
,(first args)
,@(loop :for arg :in (cdr args)
:collect "\", \""
:collect arg)
"\");"))
(defpsmacro with-sleep ((resume-func) &body body)
`(new (*promise
(lambda (resolve)
(start-sleeping)
(let ((,resume-func (lambda ()
(finish-sleeping)
(resolve)))))
,@body))))
(defvar *serv-vars* nil)
(defpsmacro define-serv-var (name (value &optional index) &body body)
(setf name (string-upcase (symbol-name name)))
(pushnew name *serv-vars* :test #'equal)
`(setf (getprop serv-vars ,name)
(create :name ,name
:body (lambda (,value ,@(when index (list index)))
,@body))))