patch 8.0.1416: crash when searching for a sentence
Problem: Crash when searching for a sentence.
Solution: Return NUL when getting character at MAXCOL. (closes #2468)
diff --git a/src/misc2.c b/src/misc2.c
index 87b79fa..fd432cd 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -348,24 +348,29 @@
int
inc(pos_T *lp)
{
- char_u *p = ml_get_pos(lp);
+ char_u *p;
- if (*p != NUL) /* still within line, move to next char (may be NUL) */
+ /* when searching position may be set to end of a line */
+ if (lp->col != MAXCOL)
{
-#ifdef FEAT_MBYTE
- if (has_mbyte)
+ p = ml_get_pos(lp);
+ if (*p != NUL) /* still within line, move to next char (may be NUL) */
{
- int l = (*mb_ptr2len)(p);
+#ifdef FEAT_MBYTE
+ if (has_mbyte)
+ {
+ int l = (*mb_ptr2len)(p);
- lp->col += l;
- return ((p[l] != NUL) ? 0 : 2);
- }
+ lp->col += l;
+ return ((p[l] != NUL) ? 0 : 2);
+ }
#endif
- lp->col++;
+ lp->col++;
#ifdef FEAT_VIRTUALEDIT
- lp->coladd = 0;
+ lp->coladd = 0;
#endif
- return ((p[1] != NUL) ? 0 : 2);
+ return ((p[1] != NUL) ? 0 : 2);
+ }
}
if (lp->lnum != curbuf->b_ml.ml_line_count) /* there is a next line */
{