Mercurial > emacs
changeset 2486:d5d7e6996604
(Fkill_all_local_variables): Store each var's current value
in the buffer's alist entry, before reverting to the default value.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 08 Apr 1993 07:10:42 +0000 |
parents | c34bbe650160 |
children | 7ba321c5b44d |
files | src/buffer.c |
diffstat | 1 files changed, 8 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/buffer.c Thu Apr 08 07:10:13 1993 +0000 +++ b/src/buffer.c Thu Apr 08 07:10:42 1993 +0000 @@ -1149,8 +1149,16 @@ Set it up for the current buffer with the default value. */ tem = XCONS (XCONS (XSYMBOL (sym)->value)->cdr)->cdr; + /* Store the symbol's current value into the alist entry + it is currently set up for. This is so that, if the + local is marked permanent, and we make it local again below, + we don't lose the value. */ + XCONS (XCONS (tem)->car)->cdr = XCONS (XSYMBOL (sym)->value)->car; + /* Switch to the symbol's default-value alist entry. */ XCONS (tem)->car = tem; + /* Mark it as current for the current buffer. */ XCONS (XCONS (XSYMBOL (sym)->value)->cdr)->car = Fcurrent_buffer (); + /* Store the current value into any forwarding in the symbol. */ store_symval_forwarding (sym, XCONS (XSYMBOL (sym)->value)->car, XCONS (tem)->cdr); }