aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
authorKaroly Lorentey2003-12-30 17:05:05 +0000
committerKaroly Lorentey2003-12-30 17:05:05 +0000
commit7c3a26158711d76ee77b0bd75fa9df56db5eb57d (patch)
treef808bf77a5b47ce2c8aec0a31187626860d566b6 /src/data.c
parentc1c63edb7907e35085f2d61507e1047db85d52c7 (diff)
parent8a37230a70acc8943ba45f52504179ddcc1a5468 (diff)
downloademacs-7c3a26158711d76ee77b0bd75fa9df56db5eb57d.tar.gz
emacs-7c3a26158711d76ee77b0bd75fa9df56db5eb57d.zip
Merged in changes from CVS head
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-5 Add =cvs-sync-make-log script * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-6 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-7 Use absolute tla-tools filenames in =cvs-sync-make-log * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-8 Use proper arch-tag: syntax for lispintro/texinfo.tex * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-9 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-24
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/data.c b/src/data.c
index a246271c1f6..c4e3937f3fa 100644
--- a/src/data.c
+++ b/src/data.c
@@ -873,6 +873,8 @@ store_symval_forwarding (symbol, valcontents, newval, buf)
873 register Lisp_Object valcontents, newval; 873 register Lisp_Object valcontents, newval;
874 struct buffer *buf; 874 struct buffer *buf;
875{ 875{
876 int offset;
877
876 switch (SWITCH_ENUM_CAST (XTYPE (valcontents))) 878 switch (SWITCH_ENUM_CAST (XTYPE (valcontents)))
877 { 879 {
878 case Lisp_Misc: 880 case Lisp_Misc:
@@ -892,6 +894,36 @@ store_symval_forwarding (symbol, valcontents, newval, buf)
892 894
893 case Lisp_Misc_Objfwd: 895 case Lisp_Misc_Objfwd:
894 *XOBJFWD (valcontents)->objvar = newval; 896 *XOBJFWD (valcontents)->objvar = newval;
897
898 /* If this variable is a default for something stored
899 in the buffer itself, such as default-fill-column,
900 find the buffers that don't have local values for it
901 and update them. */
902 if (XOBJFWD (valcontents)->objvar > (Lisp_Object *) &buffer_defaults
903 && XOBJFWD (valcontents)->objvar < (Lisp_Object *) (&buffer_defaults + 1))
904 {
905 int offset = ((char *) XOBJFWD (valcontents)->objvar
906 - (char *) &buffer_defaults);
907 int idx = PER_BUFFER_IDX (offset);
908
909 Lisp_Object tail, buf;
910
911 if (idx <= 0)
912 break;
913
914 for (tail = Vbuffer_alist; CONSP (tail); tail = XCDR (tail))
915 {
916 Lisp_Object buf;
917 struct buffer *b;
918
919 buf = Fcdr (XCAR (tail));
920 if (!BUFFERP (buf)) continue;
921 b = XBUFFER (buf);
922
923 if (! PER_BUFFER_VALUE_P (b, idx))
924 PER_BUFFER_VALUE (b, offset) = newval;
925 }
926 }
895 break; 927 break;
896 928
897 case Lisp_Misc_Buffer_Objfwd: 929 case Lisp_Misc_Buffer_Objfwd: