aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGlenn Morris2020-05-09 10:03:21 -0700
committerGlenn Morris2020-05-09 10:03:21 -0700
commit5c890bfc191d0cf18dccbbf50ebdcde946a0d7fb (patch)
tree8e14f3cedc3fba87248f49c2e960f6bf3cfe2da7 /src
parent196bc13b7bc5a29fa4d27e83d7cf0db4d99aa8b7 (diff)
parentbe0d1cac83d14596406571f9cb668031ec5675ac (diff)
downloademacs-5c890bfc191d0cf18dccbbf50ebdcde946a0d7fb.tar.gz
emacs-5c890bfc191d0cf18dccbbf50ebdcde946a0d7fb.zip
Merge from origin/emacs-27
be0d1cac83 (origin/emacs-27) Small fix for type of 'display-fill-colu... c5e5839776 Fix customization of 'display-fill-column-indicator-charac... d5c184aa3e Refer to fill column indicator Info node in some places. e13300ae50 Merge branch 'emacs-27' of git.sv.gnu.org:/srv/git/emacs i... 0bae57033f Fix GTK's Tool Bar menu radio buttons 4c98aa7ea5 Minor clarifications in NEWS a1cbd05f38 Improve documentation of 'with-suppressed-warnings'. 4a895c1b26 Fix a typo in a comment 2caf3e997e Improve documentation of Hi Lock mode 7081c1d66f Fix typos in the Emacs user manual 0385771e2f Fix references to Speedbar in VHDL mode a76cafea0d Fix handling of FROM = t and TO = t by 'window-text-pixel-... # Conflicts: # etc/NEWS # src/xdisp.c
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c66
1 files changed, 47 insertions, 19 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 140d134572f..3ff4365ea61 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -10486,7 +10486,7 @@ include the height of both, if present, in the return value. */)
10486 struct buffer *b; 10486 struct buffer *b;
10487 struct it it; 10487 struct it it;
10488 struct buffer *old_b = NULL; 10488 struct buffer *old_b = NULL;
10489 ptrdiff_t start, end, pos; 10489 ptrdiff_t start, end, bpos;
10490 struct text_pos startp; 10490 struct text_pos startp;
10491 void *itdata = NULL; 10491 void *itdata = NULL;
10492 int c, max_x = 0, max_y = 0, x = 0, y = 0; 10492 int c, max_x = 0, max_y = 0, x = 0, y = 0;
@@ -10501,29 +10501,55 @@ include the height of both, if present, in the return value. */)
10501 } 10501 }
10502 10502
10503 if (NILP (from)) 10503 if (NILP (from))
10504 start = BEGV; 10504 {
10505 start = BEGV;
10506 bpos = BEGV_BYTE;
10507 }
10505 else if (EQ (from, Qt)) 10508 else if (EQ (from, Qt))
10506 { 10509 {
10507 start = pos = BEGV; 10510 start = BEGV;
10508 while ((pos++ < ZV) && (c = FETCH_CHAR (pos)) 10511 bpos = BEGV_BYTE;
10509 && (c == ' ' || c == '\t' || c == '\n' || c == '\r')) 10512 while (bpos < ZV_BYTE)
10510 start = pos; 10513 {
10511 while ((pos-- > BEGV) && (c = FETCH_CHAR (pos)) && (c == ' ' || c == '\t')) 10514 FETCH_CHAR_ADVANCE (c, start, bpos);
10512 start = pos; 10515 if (!(c == ' ' || c == '\t' || c == '\n' || c == '\r'))
10516 break;
10517 }
10518 while (bpos > BEGV_BYTE)
10519 {
10520 DEC_BOTH (start, bpos);
10521 c = FETCH_CHAR (bpos);
10522 if (!(c == ' ' || c == '\t'))
10523 break;
10524 }
10513 } 10525 }
10514 else 10526 else
10515 start = clip_to_bounds (BEGV, fix_position (from), ZV); 10527 {
10528 start = clip_to_bounds (BEGV, fix_position (from), ZV);
10529 bpos = CHAR_TO_BYTE (start);
10530 }
10531
10532 SET_TEXT_POS (startp, start, bpos);
10516 10533
10517 if (NILP (to)) 10534 if (NILP (to))
10518 end = ZV; 10535 end = ZV;
10519 else if (EQ (to, Qt)) 10536 else if (EQ (to, Qt))
10520 { 10537 {
10521 end = pos = ZV; 10538 end = ZV;
10522 while ((pos-- > BEGV) && (c = FETCH_CHAR (pos)) 10539 bpos = ZV_BYTE;
10523 && (c == ' ' || c == '\t' || c == '\n' || c == '\r')) 10540 while (bpos > BEGV_BYTE)
10524 end = pos; 10541 {
10525 while ((pos++ < ZV) && (c = FETCH_CHAR (pos)) && (c == ' ' || c == '\t')) 10542 DEC_BOTH (end, bpos);
10526 end = pos; 10543 c = FETCH_CHAR (bpos);
10544 if (!(c == ' ' || c == '\t' || c == '\n' || c == '\r'))
10545 break;
10546 }
10547 while (bpos < ZV_BYTE)
10548 {
10549 FETCH_CHAR_ADVANCE (c, end, bpos);
10550 if (!(c == ' ' || c == '\t'))
10551 break;
10552 }
10527 } 10553 }
10528 else 10554 else
10529 end = clip_to_bounds (start, fix_position (to), ZV); 10555 end = clip_to_bounds (start, fix_position (to), ZV);
@@ -10537,7 +10563,6 @@ include the height of both, if present, in the return value. */)
10537 max_y = XFIXNUM (y_limit); 10563 max_y = XFIXNUM (y_limit);
10538 10564
10539 itdata = bidi_shelve_cache (); 10565 itdata = bidi_shelve_cache ();
10540 SET_TEXT_POS (startp, start, CHAR_TO_BYTE (start));
10541 start_display (&it, w, startp); 10566 start_display (&it, w, startp);
10542 /* It makes no sense to measure dimensions of region of text that 10567 /* It makes no sense to measure dimensions of region of text that
10543 crosses the point where bidi reordering changes scan direction. 10568 crosses the point where bidi reordering changes scan direction.
@@ -34965,7 +34990,8 @@ It has no effect when set to 0, or when line numbers are not absolute. */);
34965 Fmake_variable_buffer_local (Qdisplay_line_numbers_offset); 34990 Fmake_variable_buffer_local (Qdisplay_line_numbers_offset);
34966 34991
34967 DEFVAR_BOOL ("display-fill-column-indicator", Vdisplay_fill_column_indicator, 34992 DEFVAR_BOOL ("display-fill-column-indicator", Vdisplay_fill_column_indicator,
34968 doc: /* Non-nil means display the fill column indicator. */); 34993 doc: /* Non-nil means display the fill column indicator.
34994See Info node `Displaying Boundaries' for details. */);
34969 Vdisplay_fill_column_indicator = false; 34995 Vdisplay_fill_column_indicator = false;
34970 DEFSYM (Qdisplay_fill_column_indicator, "display-fill-column-indicator"); 34996 DEFSYM (Qdisplay_fill_column_indicator, "display-fill-column-indicator");
34971 Fmake_variable_buffer_local (Qdisplay_fill_column_indicator); 34997 Fmake_variable_buffer_local (Qdisplay_fill_column_indicator);
@@ -34974,7 +35000,8 @@ It has no effect when set to 0, or when line numbers are not absolute. */);
34974 doc: /* Column for indicator when `display-fill-column-indicator' is non-nil. 35000 doc: /* Column for indicator when `display-fill-column-indicator' is non-nil.
34975The default value is t which means that the indicator 35001The default value is t which means that the indicator
34976will use the `fill-column' variable. If it is set to an integer the 35002will use the `fill-column' variable. If it is set to an integer the
34977indicator will be drawn in that column. */); 35003indicator will be drawn in that column.
35004See Info node `Displaying Boundaries' for details. */);
34978 Vdisplay_fill_column_indicator_column = Qt; 35005 Vdisplay_fill_column_indicator_column = Qt;
34979 DEFSYM (Qdisplay_fill_column_indicator_column, "display-fill-column-indicator-column"); 35006 DEFSYM (Qdisplay_fill_column_indicator_column, "display-fill-column-indicator-column");
34980 Fmake_variable_buffer_local (Qdisplay_fill_column_indicator_column); 35007 Fmake_variable_buffer_local (Qdisplay_fill_column_indicator_column);
@@ -34982,7 +35009,8 @@ indicator will be drawn in that column. */);
34982 DEFVAR_LISP ("display-fill-column-indicator-character", Vdisplay_fill_column_indicator_character, 35009 DEFVAR_LISP ("display-fill-column-indicator-character", Vdisplay_fill_column_indicator_character,
34983 doc: /* Character to draw the indicator when `display-fill-column-indicator' is non-nil. 35010 doc: /* Character to draw the indicator when `display-fill-column-indicator' is non-nil.
34984The default is U+2502 but a good alternative is (ascii 124) 35011The default is U+2502 but a good alternative is (ascii 124)
34985if the font in fill-column-indicator face does not support Unicode characters. */); 35012if the font in fill-column-indicator face does not support Unicode characters.
35013See Info node `Displaying Boundaries' for details. */);
34986 Vdisplay_fill_column_indicator_character = Qnil; 35014 Vdisplay_fill_column_indicator_character = Qnil;
34987 DEFSYM (Qdisplay_fill_column_indicator_character, "display-fill-column-indicator-character"); 35015 DEFSYM (Qdisplay_fill_column_indicator_character, "display-fill-column-indicator-character");
34988 Fmake_variable_buffer_local (Qdisplay_fill_column_indicator_character); 35016 Fmake_variable_buffer_local (Qdisplay_fill_column_indicator_character);