From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.help Subject: Re: Example use of macro to minimize and generalize the code Date: Tue, 01 Jun 2021 01:37:28 +0200 Message-ID: <87y2buscef.fsf@web.de> References: <87k0nfesns.fsf@zoho.eu> <87mtsbd31w.fsf@zoho.eu> <87a6oad81r.fsf@zoho.eu> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31761"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:jW/92w/atF1HXjC7E/fwyHTUN20= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jun 01 01:37:59 2021 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lnrTq-00084B-Rt for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 01 Jun 2021 01:37:58 +0200 Original-Received: from localhost ([::1]:39040 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lnrTp-0003SH-3M for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 31 May 2021 19:37:57 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37094) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lnrTX-0003S9-BN for help-gnu-emacs@gnu.org; Mon, 31 May 2021 19:37:39 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:55314) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lnrTV-0000Bs-VB for help-gnu-emacs@gnu.org; Mon, 31 May 2021 19:37:39 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1lnrTU-0007iN-AR for help-gnu-emacs@gnu.org; Tue, 01 Jun 2021 01:37:36 +0200 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:130405 Archived-At: Jean Louis writes: > (defmacro when-tabulated-id (table id &rest body) > (declare (indent 2) (debug t)) > (ignore id) > `(if id > (progn > ,@body) > (if (or (eq ,table 'any) > (string-equal ,table rcd-current-table)) > (let ((id (tabulated-list-get-id))) > (if id > (progn ,@body) > (message "Did not get ID"))) > (message "This function is for table `%s' only" ,table)))) There is something wrong with that definition however: the variable `id' is completely ignored, specifying something at that argument position is redundant. Tt may "work" by accident if the symbol `id' happens to be dynamically bound to the same thing that you specify as argument, but only when that exact variable name is used and only in dynamically binding Lisp. Normally the byte compiler warns about this kind of problem - of course only if you don't silence it ;-) Michael.