Macros like defun
(or defmacro
itself) have an optional docstring
argument, but since they are macros and not functions, docstring
isn't evaluated, but is taken as-is.
I need the docstring
to be evaluated so that instead of something like this -
"does a, then b, then c" ; b is hardcoded
I can put something like this instead -
(concat "does a, then " (getenv "<some-shell-variable>") " , then c") ; b isn't hardcoded
Is it possible to do this without having to tweak the definitions of defun
and defmacro
?
By tweak, I don't mean overwriting the definitions, but writing new macros like prefix-defun
and prefix-defmacro
based on the existing definitions of defun
and demacro
, except, the docstring is evaluated by replacing all instances of docstring
with (eval docstring)
.