aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c27
1 files changed, 8 insertions, 19 deletions
diff --git a/src/buffer.c b/src/buffer.c
index d5f9541301d..416ff7e3702 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -362,8 +362,6 @@ The value is never nil. */)
362 362
363 b = (struct buffer *) allocate_buffer (); 363 b = (struct buffer *) allocate_buffer ();
364 364
365 b->size = sizeof (struct buffer) / sizeof (EMACS_INT);
366
367 /* An ordinary buffer uses its own struct buffer_text. */ 365 /* An ordinary buffer uses its own struct buffer_text. */
368 b->text = &b->own_text; 366 b->text = &b->own_text;
369 b->base_buffer = 0; 367 b->base_buffer = 0;
@@ -417,10 +415,7 @@ The value is never nil. */)
417 STRING_SET_INTERVALS (name, NULL_INTERVAL); 415 STRING_SET_INTERVALS (name, NULL_INTERVAL);
418 b->name = name; 416 b->name = name;
419 417
420 if (SREF (name, 0) != ' ') 418 b->undo_list = (SREF (name, 0) != ' ') ? Qnil : Qt;
421 b->undo_list = Qnil;
422 else
423 b->undo_list = Qt;
424 419
425 reset_buffer (b); 420 reset_buffer (b);
426 reset_buffer_local_variables (b, 1); 421 reset_buffer_local_variables (b, 1);
@@ -430,7 +425,6 @@ The value is never nil. */)
430 b->name = name; 425 b->name = name;
431 426
432 /* Put this in the alist of all live buffers. */ 427 /* Put this in the alist of all live buffers. */
433 XSETPVECTYPE (b, PVEC_BUFFER);
434 XSETBUFFER (buf, b); 428 XSETBUFFER (buf, b);
435 Vbuffer_alist = nconc2 (Vbuffer_alist, Fcons (Fcons (name, buf), Qnil)); 429 Vbuffer_alist = nconc2 (Vbuffer_alist, Fcons (Fcons (name, buf), Qnil));
436 430
@@ -568,13 +562,10 @@ CLONE nil means the indirect buffer's state is reset to default values. */)
568 error ("Empty string for buffer name is not allowed"); 562 error ("Empty string for buffer name is not allowed");
569 563
570 b = (struct buffer *) allocate_buffer (); 564 b = (struct buffer *) allocate_buffer ();
571 b->size = sizeof (struct buffer) / sizeof (EMACS_INT);
572 XSETPVECTYPE (b, PVEC_BUFFER);
573 565
574 if (XBUFFER (base_buffer)->base_buffer) 566 b->base_buffer = (XBUFFER (base_buffer)->base_buffer
575 b->base_buffer = XBUFFER (base_buffer)->base_buffer; 567 ? XBUFFER (base_buffer)->base_buffer
576 else 568 : XBUFFER (base_buffer));
577 b->base_buffer = XBUFFER (base_buffer);
578 569
579 /* Use the base buffer's text object. */ 570 /* Use the base buffer's text object. */
580 b->text = b->base_buffer->text; 571 b->text = b->base_buffer->text;
@@ -1919,8 +1910,7 @@ set_buffer_internal_1 (b)
1919 for (tail = b->local_var_alist; CONSP (tail); tail = XCDR (tail)) 1910 for (tail = b->local_var_alist; CONSP (tail); tail = XCDR (tail))
1920 { 1911 {
1921 valcontents = SYMBOL_VALUE (XCAR (XCAR (tail))); 1912 valcontents = SYMBOL_VALUE (XCAR (XCAR (tail)));
1922 if ((BUFFER_LOCAL_VALUEP (valcontents) 1913 if ((BUFFER_LOCAL_VALUEP (valcontents))
1923 || SOME_BUFFER_LOCAL_VALUEP (valcontents))
1924 && (tem = XBUFFER_LOCAL_VALUE (valcontents)->realvalue, 1914 && (tem = XBUFFER_LOCAL_VALUE (valcontents)->realvalue,
1925 (BOOLFWDP (tem) || INTFWDP (tem) || OBJFWDP (tem)))) 1915 (BOOLFWDP (tem) || INTFWDP (tem) || OBJFWDP (tem))))
1926 /* Just reference the variable 1916 /* Just reference the variable
@@ -1934,8 +1924,7 @@ set_buffer_internal_1 (b)
1934 for (tail = old_buf->local_var_alist; CONSP (tail); tail = XCDR (tail)) 1924 for (tail = old_buf->local_var_alist; CONSP (tail); tail = XCDR (tail))
1935 { 1925 {
1936 valcontents = SYMBOL_VALUE (XCAR (XCAR (tail))); 1926 valcontents = SYMBOL_VALUE (XCAR (XCAR (tail)));
1937 if ((BUFFER_LOCAL_VALUEP (valcontents) 1927 if ((BUFFER_LOCAL_VALUEP (valcontents))
1938 || SOME_BUFFER_LOCAL_VALUEP (valcontents))
1939 && (tem = XBUFFER_LOCAL_VALUE (valcontents)->realvalue, 1928 && (tem = XBUFFER_LOCAL_VALUE (valcontents)->realvalue,
1940 (BOOLFWDP (tem) || INTFWDP (tem) || OBJFWDP (tem)))) 1929 (BOOLFWDP (tem) || INTFWDP (tem) || OBJFWDP (tem))))
1941 /* Just reference the variable 1930 /* Just reference the variable
@@ -2509,7 +2498,7 @@ the normal hook `change-major-mode-hook'. */)
2509 /* Any which are supposed to be permanent, 2498 /* Any which are supposed to be permanent,
2510 make local again, with the same values they had. */ 2499 make local again, with the same values they had. */
2511 2500
2512 for (alist = oalist; !NILP (alist); alist = XCDR (alist)) 2501 for (alist = oalist; CONSP (alist); alist = XCDR (alist))
2513 { 2502 {
2514 sym = XCAR (XCAR (alist)); 2503 sym = XCAR (XCAR (alist));
2515 tem = Fget (sym, Qpermanent_local); 2504 tem = Fget (sym, Qpermanent_local);
@@ -2539,7 +2528,7 @@ swap_out_buffer_local_variables (b)
2539 XSETBUFFER (buffer, b); 2528 XSETBUFFER (buffer, b);
2540 oalist = b->local_var_alist; 2529 oalist = b->local_var_alist;
2541 2530
2542 for (alist = oalist; !NILP (alist); alist = XCDR (alist)) 2531 for (alist = oalist; CONSP (alist); alist = XCDR (alist))
2543 { 2532 {
2544 sym = XCAR (XCAR (alist)); 2533 sym = XCAR (XCAR (alist));
2545 2534