diff options
author | Karl Heuer <kwzh@gnu.org> | 1996-01-23 18:06:54 +0000 |
---|---|---|
committer | Karl Heuer <kwzh@gnu.org> | 1996-01-23 18:06:54 +0000 |
commit | 28a085da1b8e5fc49f16c8e3663bd9e49fec8404 (patch) | |
tree | 44b00e74cdcbaed227306f692f3d1e5fb2a8365c /src/data.c | |
parent | a5c8b6be8ef33dbf9200660855a3baf111483f20 (diff) | |
download | emacs-28a085da1b8e5fc49f16c8e3663bd9e49fec8404.tar.gz |
(kill-local-variable): didn't update the value of
forwarded objects.
Diffstat (limited to 'src/data.c')
-rw-r--r-- | src/data.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/data.c b/src/data.c index 263a21bebc1..8b9a158ef27 100644 --- a/src/data.c +++ b/src/data.c @@ -1362,14 +1362,18 @@ From now on the default value will apply in this buffer.") current_buffer->local_var_alist = Fdelq (tem, current_buffer->local_var_alist); - /* Make sure symbol does not think it is set up for this buffer; - force it to look once again for this buffer's value */ + /* If the symbol is set up for the current buffer, recompute its + value. We have to do it now, or else forwarded objects won't + work right. */ { Lisp_Object *pvalbuf; valcontents = XSYMBOL (variable)->value; pvalbuf = &XCONS (XBUFFER_LOCAL_VALUE (valcontents)->cdr)->car; if (current_buffer == XBUFFER (*pvalbuf)) - *pvalbuf = Qnil; + { + *pvalbuf = Qnil; + Fsymbol_value(variable); + } } return variable; |