aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2008-05-20 00:13:37 +0000
committerStefan Monnier2008-05-20 00:13:37 +0000
commit40a69fac46d1c66275912ed98beb4b34a64164bb (patch)
treec837c8b298dfc6705b0494283dc11ecb91106123 /src
parent12a28ea34cf170499991df5ac70abedb3884137f (diff)
downloademacs-40a69fac46d1c66275912ed98beb4b34a64164bb.tar.gz
emacs-40a69fac46d1c66275912ed98beb4b34a64164bb.zip
* 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.
Diffstat (limited to 'src')
-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 @@
12008-05-20 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * xdisp.c (select_frame_for_redisplay): Adjust for last change to
4 indirect_variable.
5 * eval.c (lisp_indirect_variable): New fun.
6 (Fuser_variable_p): Use it.
7
12008-05-19 Stefan Monnier <monnier@iro.umontreal.ca> 82008-05-19 Stefan Monnier <monnier@iro.umontreal.ca>
2 9
3 * lisp.h (indirect_variable): 10 * 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)
934 return Qnil; 934 return Qnil;
935} 935}
936 936
937static Lisp_Object
938lisp_indirect_variable (Lisp_Object sym)
939{
940 XSETSYMBOL (sym, indirect_variable (XSYMBOL (sym)));
941 return sym;
942}
943
937DEFUN ("user-variable-p", Fuser_variable_p, Suser_variable_p, 1, 1, 0, 944DEFUN ("user-variable-p", Fuser_variable_p, Suser_variable_p, 1, 1, 0,
938 doc: /* Return t if VARIABLE is intended to be set and modified by users. 945 doc: /* Return t if VARIABLE is intended to be set and modified by users.
939\(The alternative is a variable used internally in a Lisp program.) 946\(The alternative is a variable used internally in a Lisp program.)
@@ -954,7 +961,7 @@ chain of symbols. */)
954 961
955 /* If indirect and there's an alias loop, don't check anything else. */ 962 /* If indirect and there's an alias loop, don't check anything else. */
956 if (XSYMBOL (variable)->indirect_variable 963 if (XSYMBOL (variable)->indirect_variable
957 && NILP (internal_condition_case_1 (indirect_variable, variable, 964 && NILP (internal_condition_case_1 (lisp_indirect_variable, variable,
958 Qt, user_variable_p_eh))) 965 Qt, user_variable_p_eh)))
959 return Qnil; 966 return Qnil;
960 967
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
11033select_frame_for_redisplay (frame) 11033select_frame_for_redisplay (frame)
11034 Lisp_Object frame; 11034 Lisp_Object frame;
11035{ 11035{
11036 Lisp_Object tail, sym, val; 11036 Lisp_Object tail, symbol, val;
11037 Lisp_Object old = selected_frame; 11037 Lisp_Object old = selected_frame;
11038 struct Lisp_Symbol *sym;
11038 11039
11039 xassert (FRAMEP (frame) && FRAME_LIVE_P (XFRAME (frame))); 11040 xassert (FRAMEP (frame) && FRAME_LIVE_P (XFRAME (frame)));
11040 11041
@@ -11044,15 +11045,15 @@ select_frame_for_redisplay (frame)
11044 { 11045 {
11045 for (tail = XFRAME (frame)->param_alist; CONSP (tail); tail = XCDR (tail)) 11046 for (tail = XFRAME (frame)->param_alist; CONSP (tail); tail = XCDR (tail))
11046 if (CONSP (XCAR (tail)) 11047 if (CONSP (XCAR (tail))
11047 && (sym = XCAR (XCAR (tail)), 11048 && (symbol = XCAR (XCAR (tail)),
11048 SYMBOLP (sym)) 11049 SYMBOLP (symbol))
11049 && (sym = indirect_variable (sym), 11050 && (sym = indirect_variable (XSYMBOL (symbol)),
11050 val = SYMBOL_VALUE (sym), 11051 val = sym->value,
11051 (BUFFER_LOCAL_VALUEP (val))) 11052 (BUFFER_LOCAL_VALUEP (val)))
11052 && XBUFFER_LOCAL_VALUE (val)->check_frame) 11053 && XBUFFER_LOCAL_VALUE (val)->check_frame)
11053 /* Use find_symbol_value rather than Fsymbol_value 11054 /* Use find_symbol_value rather than Fsymbol_value
11054 to avoid an error if it is void. */ 11055 to avoid an error if it is void. */
11055 find_symbol_value (sym); 11056 find_symbol_value (symbol);
11056 } while (!EQ (frame, old) && (frame = old, 1)); 11057 } while (!EQ (frame, old) && (frame = old, 1));
11057} 11058}
11058 11059