diff --git a/src/screen.c b/src/screen.c index 6816503871..1d4fdd3d95 100644 --- a/src/screen.c +++ b/src/screen.c @@ -10718,7 +10718,7 @@ number_width(wp) /* cursor line shows absolute line number */ lnum = wp->w_buffer->b_ml.ml_line_count; - if (lnum == wp->w_nrwidth_line_count) + if (lnum == wp->w_nrwidth_line_count && wp->w_nuw_cached == wp->w_p_nuw) return wp->w_nrwidth_width; wp->w_nrwidth_line_count = lnum; @@ -10734,6 +10734,7 @@ number_width(wp) n = wp->w_p_nuw - 1; wp->w_nrwidth_width = n; + wp->w_nuw_cached = wp->w_p_nuw; return n; } #endif diff --git a/src/structs.h b/src/structs.h index 60bc870eb3..448697a4a6 100644 --- a/src/structs.h +++ b/src/structs.h @@ -2306,6 +2306,7 @@ struct window_S #ifdef FEAT_LINEBREAK linenr_T w_nrwidth_line_count; /* line count when ml_nrwidth_width * was computed. */ + long w_nuw_cached; /* 'numberwidth' option cached */ int w_nrwidth_width; /* nr of chars to print line count. */ #endif diff --git a/src/version.c b/src/version.c index 8a55ed6158..265145a4ac 100644 --- a/src/version.c +++ b/src/version.c @@ -741,6 +741,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 664, /**/ 663, /**/