From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Pascal Bourguignon Newsgroups: gmane.emacs.help Subject: Re: elisp macros problem Date: 24 Jul 2004 21:59:05 +0200 Organization: [posted via Easynet Spain] Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Message-ID: <873c3h41o6.fsf@thalassa.informatimago.com> References: NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1090699343 17977 80.91.224.253 (24 Jul 2004 20:02:23 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sat, 24 Jul 2004 20:02:23 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sat Jul 24 22:02:15 2004 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1BoSik-0007nX-00 for ; Sat, 24 Jul 2004 22:02:15 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1BoSle-00070T-Tl for geh-help-gnu-emacs@m.gmane.org; Sat, 24 Jul 2004 16:05:14 -0400 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!easynet-monga!easynet.net!easynet-post2!not-for-mail Original-Newsgroups: gnu.emacs.help,comp.lang.lisp User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 Original-Lines: 36 Original-NNTP-Posting-Host: 62.93.174.79 Original-X-Trace: DXC=00jP@LM[M1CXS8_jib List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.help:19766 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:19766 Barry Margolin writes: > In article , > Lowell Kirsh wrote: > > > I am defining an emacs lisp macro to do: > > > > (my-add-hook 'lisp > > ...) > > > > which should give: > > > > (add-hook 'lisp-mode-hook > > (lambda () ...)) > > > > I have: > > > > (defmacro my-add-hook (hook &rest body) > > (let ((tempvar (make-symbol "cat"))) > > `(flet ((,tempvar (sym str) > > (make-symbol (concat (symbol-name sym) str)))) > > (add-hook (cat ,hook "-mode-hook") (lambda () ,@body))))) > > > > Does anyone know what's wrong with this and why it doesn't work? > > You need to use ,tempvar in place of cat in the last line. Then, (not (eq (make-symbol "toto")(make-symbol "toto"))), even on emacs lisp. You should use intern! -- __Pascal Bourguignon__ http://www.informatimago.com/ There is no worse tyranny than to force a man to pay for what he does not want merely because you think it would be good for him. -- Robert Heinlein