diff options
| author | Gregory Heytings | 2022-07-21 12:37:45 +0200 |
|---|---|---|
| committer | Gregory Heytings | 2022-07-21 12:37:45 +0200 |
| commit | 616da8fa8efa9023f56fa731072d877e2150afbc (patch) | |
| tree | cabef8906fe8186c67899936e8b28640daeadb06 /src/buffer.c | |
| parent | 51f8e86374a57efe5b8e5c31d96078e63c023da4 (diff) | |
| parent | e09c056a440e78afd0e1920250714bc6de6ccf4f (diff) | |
| download | emacs-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.c | 26 |
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 (¤t_buffer->text->modiff); | 2470 | modiff_incr (¤t_buffer->text->modiff, 1); |
| 2469 | modiff_incr (&other_buffer->text->modiff); | 2471 | modiff_incr (&other_buffer->text->modiff, 1); |
| 2470 | modiff_incr (¤t_buffer->text->chars_modiff); | 2472 | modiff_incr (¤t_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 (¤t_buffer->text->overlay_modiff); | 2474 | modiff_incr (¤t_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 | |||
| 6427 | will run for `clone-indirect-buffer' calls as well. */); | 6429 | will 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. | ||
| 6434 | Display optimizations for long lines will automatically be enabled in | ||
| 6435 | buffers which contain one or more lines whose length is above that | ||
| 6436 | threshold. | ||
| 6437 | When 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); |