diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/indent.c | 4 | ||||
| -rw-r--r-- | src/xdisp.c | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/indent.c b/src/indent.c index 5d7c6ae4f98..bc59239f20f 100644 --- a/src/indent.c +++ b/src/indent.c | |||
| @@ -2178,6 +2178,7 @@ whether or not it is currently displayed in some window. */) | |||
| 2178 | if (nlines <= 0) | 2178 | if (nlines <= 0) |
| 2179 | { | 2179 | { |
| 2180 | it.vpos = vpos_init; | 2180 | it.vpos = vpos_init; |
| 2181 | it.current_y = 0; | ||
| 2181 | /* Do this even if LINES is 0, so that we move back to the | 2182 | /* Do this even if LINES is 0, so that we move back to the |
| 2182 | beginning of the current line as we ought. */ | 2183 | beginning of the current line as we ought. */ |
| 2183 | if ((nlines < 0 && IT_CHARPOS (it) > 0) | 2184 | if ((nlines < 0 && IT_CHARPOS (it) > 0) |
| @@ -2187,6 +2188,7 @@ whether or not it is currently displayed in some window. */) | |||
| 2187 | else if (overshoot_handled) | 2188 | else if (overshoot_handled) |
| 2188 | { | 2189 | { |
| 2189 | it.vpos = vpos_init; | 2190 | it.vpos = vpos_init; |
| 2191 | it.current_y = 0; | ||
| 2190 | move_it_by_lines (&it, min (PTRDIFF_MAX, nlines)); | 2192 | move_it_by_lines (&it, min (PTRDIFF_MAX, nlines)); |
| 2191 | } | 2193 | } |
| 2192 | else | 2194 | else |
| @@ -2200,6 +2202,7 @@ whether or not it is currently displayed in some window. */) | |||
| 2200 | while (IT_CHARPOS (it) <= it_start) | 2202 | while (IT_CHARPOS (it) <= it_start) |
| 2201 | { | 2203 | { |
| 2202 | it.vpos = 0; | 2204 | it.vpos = 0; |
| 2205 | it.current_y = 0; | ||
| 2203 | move_it_by_lines (&it, 1); | 2206 | move_it_by_lines (&it, 1); |
| 2204 | } | 2207 | } |
| 2205 | if (nlines > 1) | 2208 | if (nlines > 1) |
| @@ -2208,6 +2211,7 @@ whether or not it is currently displayed in some window. */) | |||
| 2208 | else /* it_start = ZV */ | 2211 | else /* it_start = ZV */ |
| 2209 | { | 2212 | { |
| 2210 | it.vpos = 0; | 2213 | it.vpos = 0; |
| 2214 | it.current_y = 0; | ||
| 2211 | move_it_by_lines (&it, min (PTRDIFF_MAX, nlines)); | 2215 | move_it_by_lines (&it, min (PTRDIFF_MAX, nlines)); |
| 2212 | /* We could have some display or overlay string at ZV, | 2216 | /* We could have some display or overlay string at ZV, |
| 2213 | in which case it.vpos will be nonzero now, while | 2217 | in which case it.vpos will be nonzero now, while |
diff --git a/src/xdisp.c b/src/xdisp.c index 2d0d67784cc..d05eca169c3 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -8609,8 +8609,7 @@ move_it_in_display_line_to (struct it *it, | |||
| 8609 | && it->dpvec + it->current.dpvec_index + 1 >= it->dpend))) | 8609 | && it->dpvec + it->current.dpvec_index + 1 >= it->dpend))) |
| 8610 | 8610 | ||
| 8611 | /* If there's a line-/wrap-prefix, handle it. */ | 8611 | /* If there's a line-/wrap-prefix, handle it. */ |
| 8612 | if (it->hpos == 0 && it->method == GET_FROM_BUFFER | 8612 | if (it->hpos == 0 && it->method == GET_FROM_BUFFER) |
| 8613 | && it->current_y < it->last_visible_y) | ||
| 8614 | handle_line_prefix (it); | 8613 | handle_line_prefix (it); |
| 8615 | 8614 | ||
| 8616 | if (IT_CHARPOS (*it) < CHARPOS (this_line_min_pos)) | 8615 | if (IT_CHARPOS (*it) < CHARPOS (this_line_min_pos)) |