Merge #5936 from blueyed/vim-8.0.0121

vim-patch:8.0.0121
This commit is contained in:
Justin M. Keyes 2017-01-14 12:29:46 +01:00 committed by GitHub
commit 58ba3bcbef
4 changed files with 39 additions and 14 deletions

View File

@ -31,6 +31,7 @@ local type_flags={
local redraw_flags={
statuslines='P_RSTAT',
current_window='P_RWIN',
current_window_only='P_RWINONLY',
current_buffer='P_RBUF',
all_windows='P_RALL',
everything='P_RCLR',

View File

@ -213,12 +213,12 @@ typedef struct vimoption {
#define P_VI_DEF 0x400U /* Use Vi default for Vim */
#define P_VIM 0x800U /* Vim option */
/* when option changed, what to display: */
#define P_RSTAT 0x1000U /* redraw status lines */
#define P_RWIN 0x2000U /* redraw current window */
#define P_RBUF 0x4000U /* redraw current buffer */
#define P_RALL 0x6000U /* redraw all windows */
#define P_RCLR 0x7000U /* clear and redraw all */
// when option changed, what to display:
#define P_RSTAT 0x1000U ///< redraw status lines
#define P_RWIN 0x2000U ///< redraw current window and recompute text
#define P_RBUF 0x4000U ///< redraw current buffer and recompute text
#define P_RALL 0x6000U ///< redraw all windows
#define P_RCLR 0x7000U ///< clear and redraw all
#define P_COMMA 0x8000U ///< comma separated list
#define P_ONECOMMA 0x18000U ///< P_COMMA and cannot have two consecutive
@ -238,6 +238,8 @@ typedef struct vimoption {
///< when there is a redraw flag
#define P_NO_DEF_EXP 0x8000000U ///< Do not expand default value.
#define P_RWINONLY 0x10000000U ///< only redraw current window
#define HIGHLIGHT_INIT \
"8:SpecialKey,~:EndOfBuffer,z:TermCursor,Z:TermCursorNC,@:NonText," \
"d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr," \
@ -4357,17 +4359,24 @@ static void check_redraw(uint32_t flags)
bool doclear = (flags & P_RCLR) == P_RCLR;
bool all = ((flags & P_RALL) == P_RALL || doclear);
if ((flags & P_RSTAT) || all) /* mark all status lines dirty */
if ((flags & P_RSTAT) || all) { // mark all status lines dirty
status_redraw_all();
}
if ((flags & P_RBUF) || (flags & P_RWIN) || all)
if ((flags & P_RBUF) || (flags & P_RWIN) || all) {
changed_window_setting();
if (flags & P_RBUF)
}
if (flags & P_RBUF) {
redraw_curbuf_later(NOT_VALID);
if (doclear)
}
if (flags & P_RWINONLY) {
redraw_later(NOT_VALID);
}
if (doclear) {
redraw_all_later(CLEAR);
else if (all)
} else if (all) {
redraw_all_later(NOT_VALID);
}
}
/// Find index for named option

View File

@ -17,8 +17,8 @@
-- types: bool, number, string
-- lists: (nil), comma, onecomma, flags, flagscomma
-- scopes: global, buffer, window
-- redraw options: statuslines, current_window, current_buffer, all_windows,
-- everything, curswant
-- redraw options: statuslines, current_window, curent_window_only,
-- current_buffer, all_windows, everything, curswant
-- default: {vi=…[, vim=…]}
-- defaults: {condition=#if condition, if_true=default, if_false=default}
-- #if condition:
@ -539,7 +539,7 @@ return {
full_name='cursorline', abbreviation='cul',
type='bool', scope={'window'},
vi_def=true,
redraw={'current_window'},
redraw={'current_window_only'},
defaults={if_true={vi=false}}
},
{

View File

@ -18,3 +18,18 @@ func Test_gee_dee()
call assert_equal(14, col('.'))
quit!
endfunc
" Check that setting 'cursorline' does not change curswant
func Test_cursorline_keep_col()
new
call setline(1, ['long long long line', 'short line'])
normal ggfi
let pos = getcurpos()
normal j
set cursorline
normal k
call assert_equal(pos, getcurpos())
bwipe!
set nocursorline
endfunc