From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/55827 Path: main.gmane.org!not-for-mail From: Katsumi Yamaoka Newsgroups: gmane.emacs.gnus.general Subject: Re: how to turn this Gnus function into a macro? Date: Thu, 08 Jan 2004 12:47:39 +0900 Organization: Emacsen advocacy group Sender: ding-owner@lists.math.uh.edu Message-ID: References: <4noetfo10c.fsf@collins.bwh.harvard.edu> <4n8ykjazla.fsf@collins.bwh.harvard.edu> <87k743qf5t.fsf@jbms.ath.cx> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1073533686 13768 80.91.224.253 (8 Jan 2004 03:48:06 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 8 Jan 2004 03:48:06 +0000 (UTC) Original-X-From: ding-owner+M4367@lists.math.uh.edu Thu Jan 08 04:48:04 2004 Return-path: Original-Received: from malifon.math.uh.edu ([129.7.128.13]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1AeR9Q-0002GV-00 for ; Thu, 08 Jan 2004 04:48:04 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu) by malifon.math.uh.edu with smtp (Exim 3.20 #1) id 1AeR9C-0003OC-00; Wed, 07 Jan 2004 21:47:51 -0600 Original-Received: from justine.libertine.org ([66.139.78.221] ident=postfix) by malifon.math.uh.edu with esmtp (Exim 3.20 #1) id 1AeR98-0003Nt-00 for ding@lists.math.uh.edu; Wed, 07 Jan 2004 21:47:46 -0600 Original-Received: from washington.hostforweb.net (washington.hostforweb.net [69.61.11.2]) by justine.libertine.org (Postfix) with ESMTP id E18A13A005B for ; Wed, 7 Jan 2004 21:47:45 -0600 (CST) Original-Received: from yamaoka by washington.hostforweb.net with local (Exim 4.24) id 1AeR9E-0007Ke-Ci for ding@gnus.org; Wed, 07 Jan 2004 22:47:52 -0500 Original-To: ding@gnus.org X-Face: #kKnN,xUnmKia.'[pp`;Omh}odZK)?7wQSl"4o04=EixTF+V[""w~iNbM9ZL+.b*_CxUmFk B#Fu[*?MZZH@IkN:!"\w%I_zt>[$nm7nQosZ<3eu;B:$Q_:p!',P.c0-_Cy[dz4oIpw0ESA^D*1Lw= L&i*6&( User-Agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3.50 (gnu/linux) Cancel-Lock: sha1:vBXyXqKsXSkMb7wMSLrdu+25XL0= X-Hashcash: 0:040108:ding@gnus.org:a1db29545b131b30 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - washington.hostforweb.net X-AntiAbuse: Original Domain - gnus.org X-AntiAbuse: Originator/Caller UID/GID - [32041 32041] / [47 12] X-AntiAbuse: Sender Address Domain - washington.hostforweb.net Precedence: bulk Xref: main.gmane.org gmane.emacs.gnus.general:55827 X-Report-Spam: http://spam.gmane.org/gmane.emacs.gnus.general:55827 >>>>> In <87k743qf5t.fsf@jbms.ath.cx> >>>>> Jeremy Maitin-Shepard wrote: > (defmacro spam-fetch-field-fast (article field) > "Fetch a field quickly, using the internal gnus-data-list function" > (let ((macro (intern (concat "mail-header-" (symbol-name field))))) > (if macro > `(let ((article ,article)) > (if (numberp article) > (let* ((header (assoc article (gnus-data-list nil))) > (data-header (if header (gnus-data-header header)))) > (,macro data-header))))))) Unfortunately, it dosn't work for all `field's. (macroexpand '(spam-fetch-field-fast ART FIELD)) => (let ((article ART)) (if (numberp article) (let* ((header (assoc article (gnus-data-list nil))) (data-header (if header (gnus-data-header header)))) (mail-header-FIELD data-header)))) BTW, (eval '(MACRO ARG)) can be used, however it is four times slower than (MACRO ARG). -- Katsumi Yamaoka