aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
authorGregory Heytings2022-07-21 12:37:45 +0200
committerGregory Heytings2022-07-21 12:37:45 +0200
commit616da8fa8efa9023f56fa731072d877e2150afbc (patch)
treecabef8906fe8186c67899936e8b28640daeadb06 /src/buffer.c
parent51f8e86374a57efe5b8e5c31d96078e63c023da4 (diff)
parente09c056a440e78afd0e1920250714bc6de6ccf4f (diff)
downloademacs-616da8fa8efa9023f56fa731072d877e2150afbc.tar.gz
emacs-616da8fa8efa9023f56fa731072d877e2150afbc.zip
Merge branch 'feature/fix-the-long-lines-display-bug'
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 4994a310438..a55af906e26 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -985,6 +985,7 @@ reset_buffer (register struct buffer *b)
985 /* It is more conservative to start out "changed" than "unchanged". */ 985 /* It is more conservative to start out "changed" than "unchanged". */
986 b->clip_changed = 0; 986 b->clip_changed = 0;
987 b->prevent_redisplay_optimizations_p = 1; 987 b->prevent_redisplay_optimizations_p = 1;
988 b->long_line_optimizations_p = 0;
988 bset_backed_up (b, Qnil); 989 bset_backed_up (b, Qnil);
989 bset_local_minor_modes (b, Qnil); 990 bset_local_minor_modes (b, Qnil);
990 BUF_AUTOSAVE_MODIFF (b) = 0; 991 BUF_AUTOSAVE_MODIFF (b) = 0;
@@ -1501,7 +1502,7 @@ state of the current buffer. Use with care. */)
1501 decrease SAVE_MODIFF and auto_save_modified or increase 1502 decrease SAVE_MODIFF and auto_save_modified or increase
1502 MODIFF. */ 1503 MODIFF. */
1503 if (SAVE_MODIFF >= MODIFF) 1504 if (SAVE_MODIFF >= MODIFF)
1504 SAVE_MODIFF = modiff_incr (&MODIFF); 1505 SAVE_MODIFF = modiff_incr (&MODIFF, 1);
1505 if (EQ (flag, Qautosaved)) 1506 if (EQ (flag, Qautosaved))
1506 BUF_AUTOSAVE_MODIFF (b) = MODIFF; 1507 BUF_AUTOSAVE_MODIFF (b) = MODIFF;
1507 } 1508 }
@@ -2446,6 +2447,7 @@ results, see Info node `(elisp)Swapping Text'. */)
2446 swapfield (bidi_paragraph_cache, struct region_cache *); 2447 swapfield (bidi_paragraph_cache, struct region_cache *);
2447 current_buffer->prevent_redisplay_optimizations_p = 1; 2448 current_buffer->prevent_redisplay_optimizations_p = 1;
2448 other_buffer->prevent_redisplay_optimizations_p = 1; 2449 other_buffer->prevent_redisplay_optimizations_p = 1;
2450 swapfield (long_line_optimizations_p, bool_bf);
2449 swapfield (overlays_before, struct Lisp_Overlay *); 2451 swapfield (overlays_before, struct Lisp_Overlay *);
2450 swapfield (overlays_after, struct Lisp_Overlay *); 2452 swapfield (overlays_after, struct Lisp_Overlay *);
2451 swapfield (overlay_center, ptrdiff_t); 2453 swapfield (overlay_center, ptrdiff_t);
@@ -2465,12 +2467,12 @@ results, see Info node `(elisp)Swapping Text'. */)
2465 bset_point_before_scroll (current_buffer, Qnil); 2467 bset_point_before_scroll (current_buffer, Qnil);
2466 bset_point_before_scroll (other_buffer, Qnil); 2468 bset_point_before_scroll (other_buffer, Qnil);
2467 2469
2468 modiff_incr (&current_buffer->text->modiff); 2470 modiff_incr (&current_buffer->text->modiff, 1);
2469 modiff_incr (&other_buffer->text->modiff); 2471 modiff_incr (&other_buffer->text->modiff, 1);
2470 modiff_incr (&current_buffer->text->chars_modiff); 2472 modiff_incr (&current_buffer->text->chars_modiff, 1);
2471 modiff_incr (&other_buffer->text->chars_modiff); 2473 modiff_incr (&other_buffer->text->chars_modiff, 1);
2472 modiff_incr (&current_buffer->text->overlay_modiff); 2474 modiff_incr (&current_buffer->text->overlay_modiff, 1);
2473 modiff_incr (&other_buffer->text->overlay_modiff); 2475 modiff_incr (&other_buffer->text->overlay_modiff, 1);
2474 current_buffer->text->beg_unchanged = current_buffer->text->gpt; 2476 current_buffer->text->beg_unchanged = current_buffer->text->gpt;
2475 current_buffer->text->end_unchanged = current_buffer->text->gpt; 2477 current_buffer->text->end_unchanged = current_buffer->text->gpt;
2476 other_buffer->text->beg_unchanged = other_buffer->text->gpt; 2478 other_buffer->text->beg_unchanged = other_buffer->text->gpt;
@@ -4009,7 +4011,7 @@ modify_overlay (struct buffer *buf, ptrdiff_t start, ptrdiff_t end)
4009 4011
4010 bset_redisplay (buf); 4012 bset_redisplay (buf);
4011 4013
4012 modiff_incr (&BUF_OVERLAY_MODIFF (buf)); 4014 modiff_incr (&BUF_OVERLAY_MODIFF (buf), 1);
4013} 4015}
4014 4016
4015/* Remove OVERLAY from LIST. */ 4017/* Remove OVERLAY from LIST. */
@@ -6427,6 +6429,14 @@ Since `clone-indirect-buffer' calls `make-indirect-buffer', this hook
6427will run for `clone-indirect-buffer' calls as well. */); 6429will run for `clone-indirect-buffer' calls as well. */);
6428 Vclone_indirect_buffer_hook = Qnil; 6430 Vclone_indirect_buffer_hook = Qnil;
6429 6431
6432 DEFVAR_LISP ("long-line-threshold", Vlong_line_threshold,
6433 doc: /* Line length above which specific display optimizations are used.
6434Display optimizations for long lines will automatically be enabled in
6435buffers which contain one or more lines whose length is above that
6436threshold.
6437When nil, these display optimizations are disabled. */);
6438 XSETFASTINT (Vlong_line_threshold, 10000);
6439
6430 defsubr (&Sbuffer_live_p); 6440 defsubr (&Sbuffer_live_p);
6431 defsubr (&Sbuffer_list); 6441 defsubr (&Sbuffer_list);
6432 defsubr (&Sget_buffer); 6442 defsubr (&Sget_buffer);