cmdmod.cmod_flags = save_cmod_flags;
free_string_option(buf->b_p_ff);
buf->b_p_ff = save_ff;
- buf->b_ml.ml_flags = save_ml_flags;
+ buf->b_ml.ml_flags =
+ (buf->b_ml.ml_flags & ~ML_EMPTY) | (save_ml_flags & ML_EMPTY);
return r;
}
--- /dev/null
+| +0#0000e05#a8a8a8255@1>f+0#0000000#ffff4012|o@1| @69
+| +0#0000e05#a8a8a8255@1|b+0#0000000#5fd7ff255|a|r| @69
+| +0#0000e05#a8a8a8255@1|b+0#0000000#5fd7ff255|a|z| @69
+|~+0#4040ff13#ffffff0| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|X+3#0000000&|d|i|f@1|s|p|l|i|t|_|f|i|l|e| @41|1|,|1| @11|A|l@1
+| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@72
+| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@72
+| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|[+1#0000000&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1
+|"+0&&|X|d|i|f@1|s|p|l|i|t|_|f|i|l|e|"| |3|L|,| |1|2|B| @49
set diffanchors&
endfunc
+func Test_diff_add_prop_in_autocmd()
+ CheckScreendump
+
+ let lines =<< trim END
+ func MyDiff() abort
+ let f1 = readfile(v:fname_in)
+ let f2 = readfile(v:fname_new)
+ let f0 = diff(f1, f2)
+ call writefile(split(f0, "\n"), v:fname_out)
+ endfunc
+
+ call prop_type_add('myprop', #{highlight: 'Search', override: 1})
+ autocmd OptionSet diff call prop_add(1, 1, #{type: 'myprop', length: 100})
+ set diffexpr=MyDiff()
+ END
+ call writefile(lines, 'Xtest_diff_add_prop_in_autocmd', 'D')
+ call writefile(['foo', 'bar', 'baz'], 'Xdiffsplit_file', 'D')
+
+ let buf = RunVimInTerminal('-S Xtest_diff_add_prop_in_autocmd', {})
+ call term_sendkeys(buf, ":diffsplit Xdiffsplit_file\<CR>")
+ call VerifyScreenDump(buf, 'Test_diff_add_prop_in_autocmd_01', {})
+
+ call StopVimInTerminal(buf)
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab