From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Re: Is there a way of setting a variable only when it exists? Date: Mon, 14 Mar 2022 09:16:30 -0400 Message-ID: References: <87lexdul8e.fsf@mbork.pl> Reply-To: Stefan Monnier Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23052"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:Kyytvl8Js/Wl11R3BqafCgrpGis= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Mon Mar 14 14:45:51 2022 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 1nTl1B-0005qi-23 for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 14 Mar 2022 14:45:49 +0100 Original-Received: from localhost ([::1]:50878 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nTl1A-0007qf-2I for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 14 Mar 2022 09:45:48 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:37448) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nTkYz-00011f-P7 for help-gnu-emacs@gnu.org; Mon, 14 Mar 2022 09:16:42 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:49948) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nTkYy-0006Hr-2y for help-gnu-emacs@gnu.org; Mon, 14 Mar 2022 09:16:41 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1nTkYu-0008qg-UA for help-gnu-emacs@gnu.org; Mon, 14 Mar 2022 14:16:36 +0100 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: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 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:136536 Archived-At: > I assume it would be fairly easy to code such a macro (using `boundp'), > but maybe it exists already? AFAIK it doesn't exist yet. The reason for it is that it is not often useful. Typically there are two cases: - If the var exist, you want to set it and if not you have no fallback. In that case, it is typically harmless to set the var even when it doesn't exist, so the code just uses `setq` without bothering to test `boundp`. - If the var exist you want to set it, and if it doesn't you want to do something else. In that case, the something else tends to depend on the specifics so (if (boundp 'foo) (setq foo ..) ...) is about s good as it gets. -- Stefan