help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

How does one use a macro in a special form?


From: Alan Mackenzie
Subject: How does one use a macro in a special form?
Date: Sat, 28 Jun 2003 13:23:53 +0000
User-agent: tin/1.4.5-20010409 ("One More Nightmare") (UNIX) (Linux/2.0.35 (i686))

In particular, I want to use a macro acm-indent++ within a let (or let*),
something like this:

(let ((a a-binding)
      (b b-binding)
      ,(acm-indent++))
  FORMS)

and I want it to expand to this:

(let ((a a-binding)
      (b b-binding)
      (indent-spaces (concat indent-spaces "    ")))
  FORMS)

The macro acm-indent++ looks like this:

(defmacro acm-indent++ ()
  "Increase the level of indentation in an acm-printf output by binding 
indent-spaces.
This form must appear \"comma\"d in a let/let* variable list."
  `(indent-spaces (concat indent-spaces "    ")))

Thus far, I'm having no luck with it, the value of indent-spaces
remaining unchanged within the let form.

Question:  does the "," operator have meaning when not within a backquote
expression?

Is it possible to do what I want to do, and if so, how do I go about it?

Thanks in advance for any help!

-- 
Alan Mackenzie (Munich, Germany)
Email: aacm@muuc.dee; to decode, wherever there is a repeated letter
(like "aa"), remove half of them (leaving, say, "a").



reply via email to

[Prev in Thread] Current Thread [Next in Thread]