all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Juanma Barranquero" <lekktu@gmail.com>
Subject: frame-local variables weirdness
Date: Tue, 5 Dec 2006 14:41:34 +0100	[thread overview]
Message-ID: <f7ccd24b0612050541n3836883bh66784efe0b37b782@mail.gmail.com> (raw)

After making a variable frame-local, and then buffer-local (with
`make-variable-buffer-local', not `make-local-variable') it is not
possible to set a buffer-local value for the variable:

  ELISP> (setq foo 'default)
 default
  ELISP> (make-variable-frame-local 'foo)
 foo
  ELISP> (modify-frame-parameters nil '((foo . frame)))
 nil
  ELISP> foo
 frame
  ELISP> (make-variable-buffer-local 'foo)
 foo
  ELISP> (setq foo 'bug)
 bug
  ELISP> foo
 bug
  ELISP> (frame-parameter nil 'foo)
 bug
  ELISP> (local-variable-p 'foo)
 nil

However, that doesn't happen if we first make it buffer-local, and
then frame-local:

  ELISP> (setq bar 'default)
 default
  ELISP> (make-variable-buffer-local 'bar)
 bar
  ELISP> (setq bar 'buffer)
 buffer
  ELISP> (local-variable-p 'bar)
 t
  ELISP> (make-variable-frame-local 'bar)
 bar
  ELISP> (modify-frame-parameters nil '((bar . frame)))
 nil
  ELISP> bar
 buffer
  ELISP> (kill-local-variable 'bar)
 bar
  ELISP> bar
 frame

BTW, is there a way to know when a variable is frame local?
`frame-parameter' is not enough (it could be a frame parameter and yet
not a frame local variable).

                    /L/e/k/t/u

             reply	other threads:[~2006-12-05 13:41 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-05 13:41 Juanma Barranquero [this message]
2006-12-08  2:28 ` frame-local variables weirdness 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
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=f7ccd24b0612050541n3836883bh66784efe0b37b782@mail.gmail.com \
    --to=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.