all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: "Juanma Barranquero" <lekktu@gmail.com>
Cc: Emacs Devel <emacs-devel@gnu.org>
Subject: Re: frame-local variables weirdness
Date: Thu, 11 Oct 2007 10:21:19 -0400	[thread overview]
Message-ID: <jwvy7e9d96t.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <f7ccd24b0710110242n3d7de3fdt4ee33b18955aab96@mail.gmail.com> (Juanma Barranquero's message of "Thu\, 11 Oct 2007 11\:42\:44 +0200")

> 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.

I'd much rather disallow variables that are both buffer-local and frame-local.
What is the use-case?


        Stefan


> 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.


> _______________________________________________
> Emacs-devel mailing list
> Emacs-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-devel

  reply	other threads:[~2007-10-11 14:21 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
2007-10-11 14:21     ` Stefan Monnier [this message]
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=jwvy7e9d96t.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=emacs-devel@gnu.org \
    --cc=lekktu@gmail.com \
    /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.