From mboxrd@z Thu Jan  1 00:00:00 1970
Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail
From: Stefan Monnier <monnier@iro.umontreal.ca>
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: <jwv36n2zuf2.fsf-monnier+emacs@gnu.org>
References: <m28swvypgc.wl%esq@lawlist.com>
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: <emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org>
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 <emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org>)
	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 <emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org>)
	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 <ged-emacs-devel@m.gmane.org>) 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 <ged-emacs-devel@m.gmane.org>) 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 <ged-emacs-devel@m.gmane.org>)
	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 <ged-emacs-devel@m.gmane.org>) 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." <emacs-devel.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/emacs-devel>,
	<mailto:emacs-devel-request@gnu.org?subject=unsubscribe>
List-Archive: <http://lists.gnu.org/archive/html/emacs-devel/>
List-Post: <mailto:emacs-devel@gnu.org>
List-Help: <mailto:emacs-devel-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/emacs-devel>,
	<mailto:emacs-devel-request@gnu.org?subject=subscribe>
Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org
Original-Sender: "Emacs-devel" <emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org>
Xref: news.gmane.org gmane.emacs.devel:234842
Archived-At: <http://permalink.gmane.org/gmane.emacs.devel/234842>

> 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