aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/data.c b/src/data.c
index c6629dd5f29..1435cb03779 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1501,10 +1501,14 @@ set_internal (Lisp_Object symbol, Lisp_Object newval, Lisp_Object where,
1501 { 1501 {
1502 int offset = XBUFFER_OBJFWD (innercontents)->offset; 1502 int offset = XBUFFER_OBJFWD (innercontents)->offset;
1503 int idx = PER_BUFFER_IDX (offset); 1503 int idx = PER_BUFFER_IDX (offset);
1504 if (idx > 0 1504 if (idx > 0 && bindflag == SET_INTERNAL_SET
1505 && bindflag == SET_INTERNAL_SET 1505 && !PER_BUFFER_VALUE_P (buf, idx))
1506 && !let_shadows_buffer_binding_p (sym)) 1506 {
1507 SET_PER_BUFFER_VALUE_P (buf, idx, 1); 1507 if (let_shadows_buffer_binding_p (sym))
1508 set_default_internal (symbol, newval, bindflag);
1509 else
1510 SET_PER_BUFFER_VALUE_P (buf, idx, 1);
1511 }
1508 } 1512 }
1509 1513
1510 if (voide) 1514 if (voide)