From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.help Subject: Re: How does one use a macro in a special form? Date: Sat, 28 Jun 2003 18:17:36 +0000 Organization: muc.de e.V. -- private internet access Sender: help-gnu-emacs-bounces+gnu-help-gnu-emacs=m.gmane.org@gnu.org Message-ID: <04mkdb.1j.ln@acm.acm> References: <863chuqdyn.fsf@bigwalter.net> NNTP-Posting-Host: main.gmane.org X-Trace: main.gmane.org 1056871335 5101 80.91.224.249 (29 Jun 2003 07:22:15 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Sun, 29 Jun 2003 07:22:15 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+gnu-help-gnu-emacs=m.gmane.org@gnu.org Sun Jun 29 09:22:13 2003 Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 19WWVp-0001K1-00 for ; Sun, 29 Jun 2003 09:22:13 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.20) id 19WWUP-0004DT-D7 for gnu-help-gnu-emacs@m.gmane.org; Sun, 29 Jun 2003 03:20:45 -0400 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!logbridge.uoregon.edu!newsfeed.stueberl.de!news.space.net!news.muc.de!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 42 Original-NNTP-Posting-Host: acm.muc.de Original-X-Trace: marvin.muc.de 1056871040 4668 193.149.49.134 (29 Jun 2003 07:17:20 GMT) Original-X-Complaints-To: news-admin@muc.de Original-NNTP-Posting-Date: 29 Jun 2003 07:17:20 GMT User-Agent: tin/1.4.5-20010409 ("One More Nightmare") (UNIX) (Linux/2.0.35 (i686)) Original-Xref: shelby.stanford.edu gnu.emacs.help:114826 Original-To: help-gnu-emacs@gnu.org X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , Errors-To: help-gnu-emacs-bounces+gnu-help-gnu-emacs=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.help:11319 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:11319 Daniel Jensen wrote on Sat, 28 Jun 2003 20:00:48 +0200: > Alan Mackenzie writes: >> In particular, I want to use a macro acm-indent++ within a let (or let*), > You can't. Let is a special form and does not follow conventional > evaluation rules. >> 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 " "))) > Use something like this instead: > (defmacro with-extra-indent-spaces (&rest body) > `(let ((indent-spaces (concat indent-spaces " "))) > ,@body)) > (let (...) > (with-extra-indent-spaces > ...)) >> Question: does the "," operator have meaning when not within a >> backquote expression? > No. Then it's just a character. It is only an "operator" inside > backquoted forms. Many thanks for the chrystal clear answers. I think for this thing, I'll just write out the indent-spaces thing in longhand each time I need it. > Daniel Jensen -- 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").