From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: buffer.c/buffer.h: How to add new buffer-local variables? Date: Sun, 31 Mar 2019 16:02:49 -0400 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="63966"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Mar 31 22:03:37 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hAgg4-000GVV-KB for ged-emacs-devel@m.gmane.org; Sun, 31 Mar 2019 22:03:36 +0200 Original-Received: from localhost ([127.0.0.1]:45559 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hAgg3-0004NB-Lc for ged-emacs-devel@m.gmane.org; Sun, 31 Mar 2019 16:03:35 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:39592) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hAgfS-0004N4-Er for emacs-devel@gnu.org; Sun, 31 Mar 2019 16:02:59 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hAgfR-0007Wv-Jb for emacs-devel@gnu.org; Sun, 31 Mar 2019 16:02:58 -0400 Original-Received: from [195.159.176.226] (port=53908 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hAgfR-0007WF-9N for emacs-devel@gnu.org; Sun, 31 Mar 2019 16:02:57 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.89) (envelope-from ) id 1hAgfO-000FgT-Ia for emacs-devel@gnu.org; Sun, 31 Mar 2019 22:02:54 +0200 X-Injected-Via-Gmane: http://gmane.org/ Cancel-Lock: sha1:C9a/qSZDsS//e/DdaJj8VsILKxo= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 195.159.176.226 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:234842 Archived-At: > if (!NILP (BVAR (XBUFFER (w->contents), crosshairs))) ... Buffer-local variables are appropriate in the `struct buffer` when it's likely that most buffers will have their own setting for it. For variables that are likely to be used only in some particular buffers, or only under some particular circumstances, it can make a lot more sense to declare them as global variables and then rely on the Elisp side using `make-local-variable` or `make-variable-buffer-local`, so you don't pay for that slot in every buffer even tho it's almost never used. Stefan