From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: frame-local variables weirdness Date: Mon, 11 Dec 2006 09:59:29 -0500 Message-ID: References: Reply-To: rms@gnu.org NNTP-Posting-Host: dough.gmane.org Content-Type: text/plain; charset=ISO-8859-15 X-Trace: sea.gmane.org 1165849219 8664 80.91.229.10 (11 Dec 2006 15:00:19 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Mon, 11 Dec 2006 15:00:19 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Dec 11 16:00:18 2006 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by dough.gmane.org with esmtp (Exim 4.50) id 1Gtmdd-0007k8-0H for ged-emacs-devel@m.gmane.org; Mon, 11 Dec 2006 16:00:17 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Gtmdc-0003mT-Ja for ged-emacs-devel@m.gmane.org; Mon, 11 Dec 2006 10:00:16 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Gtmcw-0003Q4-K6 for emacs-devel@gnu.org; Mon, 11 Dec 2006 09:59:34 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Gtmct-0003Mg-A7 for emacs-devel@gnu.org; Mon, 11 Dec 2006 09:59:31 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Gtmcs-0003MJ-SH for emacs-devel@gnu.org; Mon, 11 Dec 2006 09:59:31 -0500 Original-Received: from [199.232.76.164] (helo=fencepost.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.52) id 1Gtmcs-0003uE-Ue for emacs-devel@gnu.org; Mon, 11 Dec 2006 09:59:31 -0500 Original-Received: from rms by fencepost.gnu.org with local (Exim 4.52) id 1Gtmcr-0008AM-RM; Mon, 11 Dec 2006 09:59:29 -0500 Original-To: "Juanma Barranquero" In-reply-to: (lekktu@gmail.com) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:63581 Archived-At: I think this should fix your problem. Does it work in general? *** data.c 12 Nov 2006 00:16:50 -0500 1.268 --- data.c 10 Dec 2006 23:05:35 -0500 *************** *** 1207,1215 **** || buf != XBUFFER (XBUFFER_LOCAL_VALUE (valcontents)->buffer) || (XBUFFER_LOCAL_VALUE (valcontents)->check_frame && !EQ (selected_frame, XBUFFER_LOCAL_VALUE (valcontents)->frame)) || (BUFFER_LOCAL_VALUEP (valcontents) ! && EQ (XCAR (current_alist_element), ! current_alist_element))) { /* The currently loaded binding is not necessarily valid. We need to unload it, and choose a new binding. */ --- 1207,1216 ---- || buf != XBUFFER (XBUFFER_LOCAL_VALUE (valcontents)->buffer) || (XBUFFER_LOCAL_VALUE (valcontents)->check_frame && !EQ (selected_frame, XBUFFER_LOCAL_VALUE (valcontents)->frame)) + /* After make-variable-buffer-local, if we haven't got a + buffer-local binding in place, we need to make one. */ || (BUFFER_LOCAL_VALUEP (valcontents) ! && ! XBUFFER_LOCAL_VALUE (valcontents)->found_for_buffer)) { /* The currently loaded binding is not necessarily valid. We need to unload it, and choose a new binding. */ *************** *** 1264,1270 **** XSETCAR (XBUFFER_LOCAL_VALUE (valcontents)->cdr, tem1); ! /* Set `buffer' and `frame' slots for thebinding now loaded. */ XSETBUFFER (XBUFFER_LOCAL_VALUE (valcontents)->buffer, buf); XBUFFER_LOCAL_VALUE (valcontents)->frame = selected_frame; } --- 1265,1271 ---- XSETCAR (XBUFFER_LOCAL_VALUE (valcontents)->cdr, tem1); ! /* Set `buffer' and `frame' slots for the binding now loaded. */ XSETBUFFER (XBUFFER_LOCAL_VALUE (valcontents)->buffer, buf); XBUFFER_LOCAL_VALUE (valcontents)->frame = selected_frame; }