summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/screen.c13
-rw-r--r--src/version.c2
2 files changed, 12 insertions, 3 deletions
diff --git a/src/screen.c b/src/screen.c
index 8f8604508a..219b664318 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -2644,7 +2644,7 @@ win_line(wp, lnum, startrow, endrow, nochange)
#if defined(FEAT_SIGNS) || (defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)) \
|| defined(FEAT_SYN_HL) || defined(FEAT_DIFF)
# define LINE_ATTR
- int line_attr = 0; /* atrribute for the whole line */
+ int line_attr = 0; /* attribute for the whole line */
#endif
#ifdef FEAT_SEARCH_EXTRA
matchitem_T *cur; /* points to the match list */
@@ -3040,18 +3040,25 @@ win_line(wp, lnum, startrow, endrow, nochange)
if (has_spell)
{
int len;
+ colnr_T linecol = (colnr_T)(ptr - line);
hlf_T spell_hlf = HLF_COUNT;
pos = wp->w_cursor;
wp->w_cursor.lnum = lnum;
- wp->w_cursor.col = (colnr_T)(ptr - line);
+ wp->w_cursor.col = linecol;
len = spell_move_to(wp, FORWARD, TRUE, TRUE, &spell_hlf);
+
+ /* spell_move_to() may call ml_get() and make "line" invalid */
+ line = ml_get_buf(wp->w_buffer, lnum, FALSE);
+ ptr = line + linecol;
+
if (len == 0 || (int)wp->w_cursor.col > ptr - line)
{
/* no bad word found at line start, don't check until end of a
* word */
spell_hlf = HLF_COUNT;
- word_end = (int)(spell_to_word_end(ptr, wp->w_buffer) - line + 1);
+ word_end = (int)(spell_to_word_end(ptr, wp->w_buffer)
+ - line + 1);
}
else
{
diff --git a/src/version.c b/src/version.c
index 979bb4012c..10be161a17 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 251,
+/**/
250,
/**/
249,