From: "Juanma Barranquero" <lekktu@gmail.com>
To: "Emacs Devel" <emacs-devel@gnu.org>
Subject: Re: frame-local variables weirdness
Date: Thu, 11 Oct 2007 11:42:44 +0200 [thread overview]
Message-ID: <f7ccd24b0710110242n3d7de3fdt4ee33b18955aab96@mail.gmail.com> (raw)
In-Reply-To: <f7ccd24b0612071828t25964389j4fd030607302e4fe@mail.gmail.com>
Another bug report from the pre-22.1 past.
This one is an interaction between frame-local and buffer-local variables.
(defun test (sym bug)
;; Default (global) value for the symbol
(set sym 'default)
(make-variable-frame-local sym)
;; Frame-local value
(modify-frame-parameters nil (list (cons sym 'frame)))
(when bug
;; Getting the value of sym changes the result
(symbol-value sym))
;; Buffer-local value
(make-variable-buffer-local sym)
(set sym 'local)
;; Now let's get back the local values
(list (local-variable-p sym) ;; should be t
(symbol-value sym) ;; should be 'local
(frame-parameter nil sym))) ;; should be 'frame
Note that passing t to the BUG argument only changes one thing: that
(symbol-value sym) is run.
(test 'foo nil) => (t local frame) ;; correct
(test 'bar t) => (nil local local) ;; incorrect
Richard proposed the attached patch, with fixes the test case but
causes other problems.
Juanma
Index: src/data.c
===================================================================
RCS file: /sources/emacs/emacs/src/data.c,v
retrieving revision 1.278
diff -u -2 -r1.278 data.c
--- src/data.c 10 Sep 2007 09:41:44 -0000 1.278
+++ src/data.c 11 Oct 2007 09:30:16 -0000
@@ -1238,7 +1238,8 @@
|| (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)
- && EQ (XCAR (current_alist_element),
- current_alist_element)))
+ && ! XBUFFER_LOCAL_VALUE (valcontents)->found_for_buffer))
{
/* The currently loaded binding is not necessarily valid.
next prev parent reply other threads:[~2007-10-11 9:42 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-05 13:41 frame-local variables weirdness Juanma Barranquero
2006-12-08 2:28 ` Juanma Barranquero
2006-12-09 1:26 ` Richard Stallman
2006-12-09 14:11 ` Juanma Barranquero
2006-12-10 4:24 ` Richard Stallman
2006-12-10 12:58 ` Juanma Barranquero
2007-10-11 9:42 ` Juanma Barranquero [this message]
2007-10-11 14:21 ` Stefan Monnier
2007-10-11 14:37 ` Juanma Barranquero
2007-10-11 17:33 ` Stefan Monnier
2007-10-11 19:00 ` Juanma Barranquero
2007-10-12 15:59 ` Richard Stallman
2007-10-12 16:33 ` Stefan Monnier
2007-10-14 16:29 ` Richard Stallman
2007-10-14 17:13 ` Juanma Barranquero
2007-10-14 17:51 ` David Kastrup
2007-10-15 16:04 ` Richard Stallman
2007-10-15 17:50 ` Stefan Monnier
2007-10-17 17:29 ` Stephen J. Turnbull
2007-10-17 18:05 ` Stefan Monnier
2007-10-18 5:03 ` Richard Stallman
2007-10-18 13:53 ` Stefan Monnier
2007-10-19 5:40 ` Richard Stallman
2007-10-19 13:56 ` Stefan Monnier
2007-10-20 3:30 ` Richard Stallman
2007-10-20 13:15 ` Stefan Monnier
2007-10-21 7:25 ` Richard Stallman
2007-10-21 14:24 ` Stefan Monnier
2007-10-21 14:56 ` Miles Bader
2007-10-21 19:20 ` Stefan Monnier
2007-10-22 2:26 ` Miles Bader
2007-10-22 9:01 ` Richard Stallman
2007-10-17 21:03 ` David Kastrup
2007-10-19 1:57 ` Stephen J. Turnbull
2007-10-17 23:53 ` Stefan Monnier
2007-10-18 12:45 ` Juanma Barranquero
2007-10-18 13:38 ` Stefan Monnier
2007-10-18 13:45 ` Juanma Barranquero
2007-10-18 14:10 ` Johan Bockgård
2007-10-18 16:40 ` Stefan Monnier
2007-10-19 17:42 ` Richard Stallman
2007-10-19 18:56 ` Stefan Monnier
2007-10-20 14:57 ` Richard Stallman
2007-10-21 2:03 ` Stefan Monnier
2007-10-22 9:00 ` Richard Stallman
2007-10-22 15:28 ` Stefan Monnier
2007-10-22 15:47 ` Juanma Barranquero
2007-10-22 16:01 ` Stefan Monnier
2007-10-22 16:17 ` Juanma Barranquero
2007-10-23 10:38 ` Richard Stallman
2007-10-23 20:31 ` Stefan Monnier
2007-10-24 8:33 ` Richard Stallman
2007-10-24 8:54 ` Johan Bockgård
2007-11-06 4:31 ` Chong Yidong
2007-11-06 8:37 ` Stefan Monnier
2007-11-06 10:48 ` Juanma Barranquero
2007-10-12 16:41 ` Juanma Barranquero
2007-10-13 6:41 ` Richard Stallman
2007-10-13 23:06 ` Juanma Barranquero
2007-10-18 12:44 ` Juanma Barranquero
2007-10-21 16:26 ` Richard Stallman
2007-10-21 16:33 ` Juanma Barranquero
2006-12-09 14:24 ` Juanma Barranquero
2006-12-09 15:26 ` Stefan Monnier
2006-12-09 17:59 ` Juanma Barranquero
2006-12-11 14:59 ` Richard Stallman
2006-12-11 15:57 ` Juanma Barranquero
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f7ccd24b0710110242n3d7de3fdt4ee33b18955aab96@mail.gmail.com \
--to=lekktu@gmail.com \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.