From 60371bb1bbde7377a270413d62a00ae5271b3ff7 Mon Sep 17 00:00:00 2001 From: André Twupack Date: Wed, 10 Sep 2014 21:33:51 +0200 Subject: vim-patch:7.4.345 Problem: Indent is not updated when deleting indent. Solution: Remember changedtick. https://code.google.com/p/vim/source/detail?r=v7-4-345 --- src/nvim/indent.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/nvim/indent.c') diff --git a/src/nvim/indent.c b/src/nvim/indent.c index 9258ee93b6..7090e007bf 100644 --- a/src/nvim/indent.c +++ b/src/nvim/indent.c @@ -451,6 +451,7 @@ int get_breakindent_win(win_T *wp, char_u *line) { static int prev_indent = 0; /* cached indent value */ static int prev_ts = 0L; /* cached tabstop value */ static char_u *prev_line = NULL; /* cached pointer to line */ + static int prev_tick = 0; // changedtick of cached value int bri = 0; /* window width minus window margin space, i.e. what rests for text */ const int eff_wwidth = wp->w_width @@ -459,10 +460,11 @@ int get_breakindent_win(win_T *wp, char_u *line) { ? number_width(wp) + 1 : 0); /* used cached indent, unless pointer or 'tabstop' changed */ - if (prev_line != line || prev_ts != wp->w_buffer->b_p_ts) - { + if (prev_line != line || prev_ts != wp->w_buffer->b_p_ts + || prev_tick != wp->w_buffer->b_changedtick) { prev_line = line; prev_ts = wp->w_buffer->b_p_ts; + prev_tick = wp->w_buffer->b_changedtick; prev_indent = get_indent_str(line, (int)wp->w_buffer->b_p_ts, wp->w_p_list); } -- cgit