Mercurial > emacs
changeset 17136:424932eba3e8
(compute_motion): When POS >= TO, don't call
find_before_next_newline() as it assumes POS < TO.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Wed, 05 Mar 1997 01:42:06 +0000 |
parents | 1814adcc2648 |
children | bd8d38879c97 |
files | src/indent.c |
diffstat | 1 files changed, 20 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/src/indent.c Tue Mar 04 18:00:30 1997 +0000 +++ b/src/indent.c Wed Mar 05 01:42:06 1997 +0000 @@ -1261,21 +1261,26 @@ { if (selective > 0 && indented_beyond_p (pos, selective)) { - /* Skip any number of invisible lines all at once */ - do - pos = find_before_next_newline (pos, to, 1) + 1; - while (pos < to - && indented_beyond_p (pos, selective)); - /* Allow for the " ..." that is displayed for them. */ - if (selective_rlen) + /* If (pos == to), we don't have to take care of + selective display. */ + if (pos < to) { - hpos += selective_rlen; - if (hpos >= width) - hpos = width; + /* Skip any number of invisible lines all at once */ + do + pos = find_before_next_newline (pos, to, 1) + 1; + while (pos < to + && indented_beyond_p (pos, selective)); + /* Allow for the " ..." that is displayed for them. */ + if (selective_rlen) + { + hpos += selective_rlen; + if (hpos >= width) + hpos = width; + } + --pos; + /* We have skipped the invis text, but not the + newline after. */ } - --pos; - /* We have skipped the invis text, but not the - newline after. */ } else { @@ -1295,7 +1300,8 @@ /* In selective display mode, everything from a ^M to the end of the line is invisible. Stop *before* the real newline. */ - pos = find_before_next_newline (pos, to, 1); + if (pos < to) + pos = find_before_next_newline (pos, to, 1); /* If we just skipped next_boundary, loop around in the main while and handle it. */