diff options
| author | Paul Eggert | 2015-03-03 14:29:22 -0800 |
|---|---|---|
| committer | Paul Eggert | 2015-03-03 14:29:22 -0800 |
| commit | f15c8583198c3d6c26ca0c0a5b6fb019f98d6c3c (patch) | |
| tree | 7068ac99c5729e94a93a4a0ae7ddd1acbb7d2c01 /src | |
| parent | 118a31a3b1eb08cba14887c3134054e9b4383688 (diff) | |
| parent | ec26c23f4815fbc6bbd16d20f400721bc7b58344 (diff) | |
| download | emacs-f15c8583198c3d6c26ca0c0a5b6fb019f98d6c3c.tar.gz emacs-f15c8583198c3d6c26ca0c0a5b6fb019f98d6c3c.zip | |
Merge from origin/emacs-24
ec26c23 authors.el: Add missing ignored and renamed files
e589765 A more thorough fix for bug#19307
4e8d586 Fix last commit
d6fee01 Tramp: Don't use a tempfile for ControlPath.
27e11c0 Fix display of overlay strings with faces after ellipsis (Bug#19307)
e9a7e10 Fix redrawing of mode lines when exposed (Bug#19721)
50f3811 net/tramp.el (tramp-ssh-controlmaster-options): Use "%C"
Conflicts:
lisp/ChangeLog
src/ChangeLog
src/xdisp.c
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 27 | ||||
| -rw-r--r-- | src/dispnew.c | 6 | ||||
| -rw-r--r-- | src/xdisp.c | 32 |
3 files changed, 49 insertions, 16 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 0bc5d650caf..0a05b544d98 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,30 @@ | |||
| 1 | 2015-03-03 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * xdisp.c (handle_stop, handle_single_display_spec) | ||
| 4 | (next-element_from_image): Don't reset the | ||
| 5 | ignore_overlay_strings_at_pos_p flag here. | ||
| 6 | (next_element_from_buffer): Reset ignore_overlay_strings_at_pos_p | ||
| 7 | here. | ||
| 8 | (next_overlay_string): Set ignore_overlay_strings_at_pos_p here, | ||
| 9 | after we've exhausted all the overlay strings at the current | ||
| 10 | position. (Bug#19307) | ||
| 11 | |||
| 12 | 2015-03-03 Eli Zaretskii <eliz@gnu.org> | ||
| 13 | |||
| 14 | * xdisp.c (set_iterator_to_next): Set value of stop_charpos | ||
| 15 | according to the object we are about to resume iterating. | ||
| 16 | (Bug#19307) | ||
| 17 | |||
| 18 | * dispnew.c (adjust_glyph_matrix): Set the update_mode_line flag | ||
| 19 | of the window whose current glyph matrix was resized, which | ||
| 20 | disables the mode-line row as side effect. | ||
| 21 | |||
| 22 | * xdisp.c (redisplay_window): Don't avoid redisplay of a window | ||
| 23 | whose update_mode_line flag is set. (Bug#19721) | ||
| 24 | |||
| 25 | 2015-03-03 Eli Zaretskii <eliz@gnu.org> | ||
| 26 | |||
| 27 | * dispextern.h (FACE_FOR_CHAR): Fix the commentary. | ||
| 1 | 2015-03-03 Daniel Colascione <dancol@dancol.org> | 28 | 2015-03-03 Daniel Colascione <dancol@dancol.org> |
| 2 | 29 | ||
| 3 | * alloc.c (syms_of_alloc): Rename `gc-precise-p' to `gc-precise'. | 30 | * alloc.c (syms_of_alloc): Rename `gc-precise-p' to `gc-precise'. |
diff --git a/src/dispnew.c b/src/dispnew.c index 6bc24697cb7..693dd49825c 100644 --- a/src/dispnew.c +++ b/src/dispnew.c | |||
| @@ -567,6 +567,12 @@ adjust_glyph_matrix (struct window *w, struct glyph_matrix *matrix, int x, int y | |||
| 567 | for (i = 0; i < matrix->nrows; ++i) | 567 | for (i = 0; i < matrix->nrows; ++i) |
| 568 | matrix->rows[i].enabled_p = false; | 568 | matrix->rows[i].enabled_p = false; |
| 569 | } | 569 | } |
| 570 | /* We've disabled the mode-line row, so force redrawing of | ||
| 571 | the mode line, if any, since otherwise it will remain | ||
| 572 | disabled in the current matrix, and expose events won't | ||
| 573 | redraw it. */ | ||
| 574 | if (WINDOW_WANTS_MODELINE_P (w)) | ||
| 575 | w->update_mode_line = 1; | ||
| 570 | } | 576 | } |
| 571 | else if (matrix == w->desired_matrix) | 577 | else if (matrix == w->desired_matrix) |
| 572 | { | 578 | { |
diff --git a/src/xdisp.c b/src/xdisp.c index 3f57841ac13..5ef839eb865 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -3241,7 +3241,6 @@ handle_stop (struct it *it) | |||
| 3241 | it->dpvec = NULL; | 3241 | it->dpvec = NULL; |
| 3242 | it->current.dpvec_index = -1; | 3242 | it->current.dpvec_index = -1; |
| 3243 | handle_overlay_change_p = !it->ignore_overlay_strings_at_pos_p; | 3243 | handle_overlay_change_p = !it->ignore_overlay_strings_at_pos_p; |
| 3244 | it->ignore_overlay_strings_at_pos_p = false; | ||
| 3245 | it->ellipsis_p = false; | 3244 | it->ellipsis_p = false; |
| 3246 | 3245 | ||
| 3247 | /* Use face of preceding text for ellipsis (if invisible) */ | 3246 | /* Use face of preceding text for ellipsis (if invisible) */ |
| @@ -3331,7 +3330,6 @@ handle_stop (struct it *it) | |||
| 3331 | pop_it (it); | 3330 | pop_it (it); |
| 3332 | else | 3331 | else |
| 3333 | { | 3332 | { |
| 3334 | it->ignore_overlay_strings_at_pos_p = true; | ||
| 3335 | it->string_from_display_prop_p = false; | 3333 | it->string_from_display_prop_p = false; |
| 3336 | it->from_disp_prop_p = false; | 3334 | it->from_disp_prop_p = false; |
| 3337 | handle_overlay_change_p = false; | 3335 | handle_overlay_change_p = false; |
| @@ -4925,11 +4923,6 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object, | |||
| 4925 | iterate_out_of_display_property (it); | 4923 | iterate_out_of_display_property (it); |
| 4926 | *position = it->position; | 4924 | *position = it->position; |
| 4927 | } | 4925 | } |
| 4928 | /* If we were to display this fringe bitmap, | ||
| 4929 | next_element_from_image would have reset this flag. | ||
| 4930 | Do the same, to avoid affecting overlays that | ||
| 4931 | follow. */ | ||
| 4932 | it->ignore_overlay_strings_at_pos_p = false; | ||
| 4933 | return 1; | 4926 | return 1; |
| 4934 | } | 4927 | } |
| 4935 | } | 4928 | } |
| @@ -4949,9 +4942,6 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object, | |||
| 4949 | iterate_out_of_display_property (it); | 4942 | iterate_out_of_display_property (it); |
| 4950 | *position = it->position; | 4943 | *position = it->position; |
| 4951 | } | 4944 | } |
| 4952 | if (it) | ||
| 4953 | /* Reset this flag like next_element_from_image would. */ | ||
| 4954 | it->ignore_overlay_strings_at_pos_p = false; | ||
| 4955 | return 1; | 4945 | return 1; |
| 4956 | } | 4946 | } |
| 4957 | 4947 | ||
| @@ -5445,6 +5435,12 @@ next_overlay_string (struct it *it) | |||
| 5445 | if (it->sp > 0 && STRINGP (it->string) && !SCHARS (it->string)) | 5435 | if (it->sp > 0 && STRINGP (it->string) && !SCHARS (it->string)) |
| 5446 | pop_it (it); | 5436 | pop_it (it); |
| 5447 | 5437 | ||
| 5438 | /* Since we've exhausted overlay strings at this buffer | ||
| 5439 | position, set the flag to ignore overlays until we move to | ||
| 5440 | another position. The flag is reset in | ||
| 5441 | next_element_from_buffer. */ | ||
| 5442 | it->ignore_overlay_strings_at_pos_p = true; | ||
| 5443 | |||
| 5448 | /* If we're at the end of the buffer, record that we have | 5444 | /* If we're at the end of the buffer, record that we have |
| 5449 | processed the overlay strings there already, so that | 5445 | processed the overlay strings there already, so that |
| 5450 | next_element_from_buffer doesn't try it again. */ | 5446 | next_element_from_buffer doesn't try it again. */ |
| @@ -7289,17 +7285,18 @@ set_iterator_to_next (struct it *it, bool reseat_p) | |||
| 7289 | reseat_at_next_visible_line_start (it, true); | 7285 | reseat_at_next_visible_line_start (it, true); |
| 7290 | else if (it->dpvec_char_len > 0) | 7286 | else if (it->dpvec_char_len > 0) |
| 7291 | { | 7287 | { |
| 7292 | if (it->method == GET_FROM_STRING | ||
| 7293 | && it->current.overlay_string_index >= 0 | ||
| 7294 | && it->n_overlay_strings > 0) | ||
| 7295 | it->ignore_overlay_strings_at_pos_p = true; | ||
| 7296 | it->len = it->dpvec_char_len; | 7288 | it->len = it->dpvec_char_len; |
| 7297 | set_iterator_to_next (it, reseat_p); | 7289 | set_iterator_to_next (it, reseat_p); |
| 7298 | } | 7290 | } |
| 7299 | 7291 | ||
| 7300 | /* Maybe recheck faces after display vector. */ | 7292 | /* Maybe recheck faces after display vector. */ |
| 7301 | if (recheck_faces) | 7293 | if (recheck_faces) |
| 7302 | it->stop_charpos = IT_CHARPOS (*it); | 7294 | { |
| 7295 | if (it->method == GET_FROM_STRING) | ||
| 7296 | it->stop_charpos = IT_STRING_CHARPOS (*it); | ||
| 7297 | else | ||
| 7298 | it->stop_charpos = IT_CHARPOS (*it); | ||
| 7299 | } | ||
| 7303 | } | 7300 | } |
| 7304 | break; | 7301 | break; |
| 7305 | 7302 | ||
| @@ -7916,7 +7913,6 @@ static bool | |||
| 7916 | next_element_from_image (struct it *it) | 7913 | next_element_from_image (struct it *it) |
| 7917 | { | 7914 | { |
| 7918 | it->what = IT_IMAGE; | 7915 | it->what = IT_IMAGE; |
| 7919 | it->ignore_overlay_strings_at_pos_p = false; | ||
| 7920 | return true; | 7916 | return true; |
| 7921 | } | 7917 | } |
| 7922 | 7918 | ||
| @@ -8086,6 +8082,7 @@ next_element_from_buffer (struct it *it) | |||
| 8086 | and handle the last stop_charpos that precedes our | 8082 | and handle the last stop_charpos that precedes our |
| 8087 | current position. */ | 8083 | current position. */ |
| 8088 | handle_stop_backwards (it, it->stop_charpos); | 8084 | handle_stop_backwards (it, it->stop_charpos); |
| 8085 | it->ignore_overlay_strings_at_pos_p = false; | ||
| 8089 | return GET_NEXT_DISPLAY_ELEMENT (it); | 8086 | return GET_NEXT_DISPLAY_ELEMENT (it); |
| 8090 | } | 8087 | } |
| 8091 | else | 8088 | else |
| @@ -8102,6 +8099,7 @@ next_element_from_buffer (struct it *it) | |||
| 8102 | it->base_level_stop = it->stop_charpos; | 8099 | it->base_level_stop = it->stop_charpos; |
| 8103 | } | 8100 | } |
| 8104 | handle_stop (it); | 8101 | handle_stop (it); |
| 8102 | it->ignore_overlay_strings_at_pos_p = false; | ||
| 8105 | return GET_NEXT_DISPLAY_ELEMENT (it); | 8103 | return GET_NEXT_DISPLAY_ELEMENT (it); |
| 8106 | } | 8104 | } |
| 8107 | } | 8105 | } |
| @@ -8129,6 +8127,7 @@ next_element_from_buffer (struct it *it) | |||
| 8129 | } | 8127 | } |
| 8130 | else | 8128 | else |
| 8131 | handle_stop_backwards (it, it->base_level_stop); | 8129 | handle_stop_backwards (it, it->base_level_stop); |
| 8130 | it->ignore_overlay_strings_at_pos_p = false; | ||
| 8132 | return GET_NEXT_DISPLAY_ELEMENT (it); | 8131 | return GET_NEXT_DISPLAY_ELEMENT (it); |
| 8133 | } | 8132 | } |
| 8134 | else | 8133 | else |
| @@ -15799,6 +15798,7 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) | |||
| 15799 | if (!just_this_one_p | 15798 | if (!just_this_one_p |
| 15800 | && REDISPLAY_SOME_P () | 15799 | && REDISPLAY_SOME_P () |
| 15801 | && !w->redisplay | 15800 | && !w->redisplay |
| 15801 | && !w->update_mode_line | ||
| 15802 | && !f->redisplay | 15802 | && !f->redisplay |
| 15803 | && !buffer->text->redisplay | 15803 | && !buffer->text->redisplay |
| 15804 | && BUF_PT (buffer) == w->last_point) | 15804 | && BUF_PT (buffer) == w->last_point) |