summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2008-05-20 00:13:37 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2008-05-20 00:13:37 +0000
commit40a69fac46d1c66275912ed98beb4b34a64164bb (patch)
treec837c8b298dfc6705b0494283dc11ecb91106123
parent12a28ea34cf170499991df5ac70abedb3884137f (diff)
downloademacs-40a69fac46d1c66275912ed98beb4b34a64164bb.tar.gz
* xdisp.c (select_frame_for_redisplay): Adjust for last change to
indirect_variable. * eval.c (lisp_indirect_variable): New fun. (Fuser_variable_p): Use it.
-rw-r--r--src/ChangeLog7
-rw-r--r--src/eval.c9
-rw-r--r--src/xdisp.c13
3 files changed, 22 insertions, 7 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 0232ce4a1ca..9eb5f95b5fb 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
+2008-05-20 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * xdisp.c (select_frame_for_redisplay): Adjust for last change to
+ indirect_variable.
+ * eval.c (lisp_indirect_variable): New fun.
+ (Fuser_variable_p): Use it.
+
2008-05-19 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp.h (indirect_variable):
diff --git a/src/eval.c b/src/eval.c
index 2652064e064..076ac91cb6f 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -934,6 +934,13 @@ user_variable_p_eh (ignore)
return Qnil;
}
+static Lisp_Object
+lisp_indirect_variable (Lisp_Object sym)
+{
+ XSETSYMBOL (sym, indirect_variable (XSYMBOL (sym)));
+ return sym;
+}
+
DEFUN ("user-variable-p", Fuser_variable_p, Suser_variable_p, 1, 1, 0,
doc: /* Return t if VARIABLE is intended to be set and modified by users.
\(The alternative is a variable used internally in a Lisp program.)
@@ -954,7 +961,7 @@ chain of symbols. */)
/* If indirect and there's an alias loop, don't check anything else. */
if (XSYMBOL (variable)->indirect_variable
- && NILP (internal_condition_case_1 (indirect_variable, variable,
+ && NILP (internal_condition_case_1 (lisp_indirect_variable, variable,
Qt, user_variable_p_eh)))
return Qnil;
diff --git a/src/xdisp.c b/src/xdisp.c
index 9f0c173d5b7..83e84861425 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -11033,8 +11033,9 @@ static void
select_frame_for_redisplay (frame)
Lisp_Object frame;
{
- Lisp_Object tail, sym, val;
+ Lisp_Object tail, symbol, val;
Lisp_Object old = selected_frame;
+ struct Lisp_Symbol *sym;
xassert (FRAMEP (frame) && FRAME_LIVE_P (XFRAME (frame)));
@@ -11044,15 +11045,15 @@ select_frame_for_redisplay (frame)
{
for (tail = XFRAME (frame)->param_alist; CONSP (tail); tail = XCDR (tail))
if (CONSP (XCAR (tail))
- && (sym = XCAR (XCAR (tail)),
- SYMBOLP (sym))
- && (sym = indirect_variable (sym),
- val = SYMBOL_VALUE (sym),
+ && (symbol = XCAR (XCAR (tail)),
+ SYMBOLP (symbol))
+ && (sym = indirect_variable (XSYMBOL (symbol)),
+ val = sym->value,
(BUFFER_LOCAL_VALUEP (val)))
&& XBUFFER_LOCAL_VALUE (val)->check_frame)
/* Use find_symbol_value rather than Fsymbol_value
to avoid an error if it is void. */
- find_symbol_value (sym);
+ find_symbol_value (symbol);
} while (!EQ (frame, old) && (frame = old, 1));
}