[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: frame-local variables weirdness
From: |
Richard Stallman |
Subject: |
Re: frame-local variables weirdness |
Date: |
Mon, 11 Dec 2006 09:59:29 -0500 |
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;
}
Re: frame-local variables weirdness, Juanma Barranquero, 2006/12/09
Re: frame-local variables weirdness,
Richard Stallman <=