aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/diff.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-03-16 17:10:20 +0800
committerGitHub <noreply@github.com>2024-03-16 17:10:20 +0800
commitc0daea3afd6a1e502e282a235a10643c785301f7 (patch)
tree9f117e4b9d51619d8a3f6a5e149b2da789c01f9a /src/nvim/diff.c
parentead3a1bd7a3fbc266ae5bf724d74cd1c44286b50 (diff)
downloadrneovim-c0daea3afd6a1e502e282a235a10643c785301f7.tar.gz
rneovim-c0daea3afd6a1e502e282a235a10643c785301f7.tar.bz2
rneovim-c0daea3afd6a1e502e282a235a10643c785301f7.zip
vim-patch:9.1.0183: Wrong display or screenpos() result when toggling diff mode (#27882)
Problem: Wrong display or screenpos() result when toggling diff mode. Solution: Reset w_skipcol when disabling 'wrap'. Reset w_leftcol when enabling 'wrap' (zeertzjq). fixes: vim/vim#14210 closes: vim/vim#14211 https://github.com/vim/vim/commit/9e7f1fc2f159d58b2a4cd4b7060bead126fead49
Diffstat (limited to 'src/nvim/diff.c')
-rw-r--r--src/nvim/diff.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/nvim/diff.c b/src/nvim/diff.c
index c680600d39..39d9e9e978 100644
--- a/src/nvim/diff.c
+++ b/src/nvim/diff.c
@@ -1429,6 +1429,7 @@ void diff_win_options(win_T *wp, bool addbuf)
wp->w_p_wrap_save = wp->w_p_wrap;
}
wp->w_p_wrap = false;
+ wp->w_skipcol = 0;
}
if (!wp->w_p_diff) {
@@ -1497,8 +1498,9 @@ void ex_diffoff(exarg_T *eap)
wp->w_p_crb = wp->w_p_crb_save;
}
if (!(diff_flags & DIFF_FOLLOWWRAP)) {
- if (!wp->w_p_wrap) {
- wp->w_p_wrap = wp->w_p_wrap_save;
+ if (!wp->w_p_wrap && wp->w_p_wrap_save) {
+ wp->w_p_wrap = true;
+ wp->w_leftcol = 0;
}
}
free_string_option(wp->w_p_fdm);