Mercurial > hg > xemacs-beta
diff src/bytecode.c @ 1630:6c996a26d761
[xemacs-hg @ 2003-08-18 20:30:49 by james]
Fix edebug problem caused by making a variable buffer-local before the defvar.
author | james |
---|---|
date | Mon, 18 Aug 2003 20:30:51 +0000 |
parents | 5cec7ab01719 |
children | 2264738f7ae4 |
line wrap: on
line diff
--- a/src/bytecode.c Mon Aug 18 19:51:18 2003 +0000 +++ b/src/bytecode.c Mon Aug 18 20:30:51 2003 +0000 @@ -540,7 +540,13 @@ Lisp_Symbol *symbol_ptr = XSYMBOL (symbol); Lisp_Object old_value = symbol_ptr->value; Lisp_Object new_value = POP; - if (!SYMBOL_VALUE_MAGIC_P (old_value) || UNBOUNDP (old_value)) + if (SYMBOL_VALUE_MAGIC_P (old_value) && + (XSYMBOL_VALUE_MAGIC_TYPE (old_value) == SYMVAL_BUFFER_LOCAL || + XSYMBOL_VALUE_MAGIC_TYPE (old_value) == + SYMVAL_SOME_BUFFER_LOCAL) && + NILP (Fdefault_boundp (symbol))) + Fset_default (symbol, new_value); + else if (!SYMBOL_VALUE_MAGIC_P (old_value) || UNBOUNDP (old_value)) symbol_ptr->value = new_value; else Fset (symbol, new_value);