| To: vim_dev@googlegroups.com |
| Subject: Patch 7.4.768 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| ------------ |
| |
| Patch 7.4.768 |
| Problem: :diffoff only works properly once. |
| Solution: Also make :diffoff work when used a second time. (Olaf Dabrunz) |
| Files: src/diff.c |
| |
| |
| *** ../vim-7.4.767/src/diff.c 2015-03-31 13:33:00.781525085 +0200 |
| --- src/diff.c 2015-07-03 14:55:54.953220651 +0200 |
| *************** |
| *** 1138,1169 **** |
| curwin = old_curwin; |
| |
| |
| - wp->w_p_diff = TRUE; |
| - |
| |
| |
| ! if (!wp->w_p_diff_saved) |
| wp->w_p_scb_save = wp->w_p_scb; |
| wp->w_p_scb = TRUE; |
| |
| |
| ! if (!wp->w_p_diff_saved) |
| wp->w_p_crb_save = wp->w_p_crb; |
| wp->w_p_crb = TRUE; |
| |
| ! if (!wp->w_p_diff_saved) |
| wp->w_p_wrap_save = wp->w_p_wrap; |
| wp->w_p_wrap = FALSE; |
| |
| curwin = wp; |
| curbuf = curwin->w_buffer; |
| ! if (!wp->w_p_diff_saved) |
| wp->w_p_fdm_save = vim_strsave(wp->w_p_fdm); |
| set_string_option_direct((char_u *)"fdm", -1, (char_u *)"diff", |
| OPT_LOCAL|OPT_FREE, 0); |
| curwin = old_curwin; |
| curbuf = curwin->w_buffer; |
| ! if (!wp->w_p_diff_saved) |
| { |
| wp->w_p_fdc_save = wp->w_p_fdc; |
| wp->w_p_fen_save = wp->w_p_fen; |
| --- 1138,1171 ---- |
| curwin = old_curwin; |
| |
| |
| |
| |
| ! if (!wp->w_p_diff) |
| wp->w_p_scb_save = wp->w_p_scb; |
| wp->w_p_scb = TRUE; |
| |
| |
| ! if (!wp->w_p_diff) |
| wp->w_p_crb_save = wp->w_p_crb; |
| wp->w_p_crb = TRUE; |
| |
| ! if (!wp->w_p_diff) |
| wp->w_p_wrap_save = wp->w_p_wrap; |
| wp->w_p_wrap = FALSE; |
| |
| curwin = wp; |
| curbuf = curwin->w_buffer; |
| ! if (!wp->w_p_diff) |
| ! { |
| ! if (wp->w_p_diff_saved) |
| ! free_string_option(wp->w_p_fdm_save); |
| wp->w_p_fdm_save = vim_strsave(wp->w_p_fdm); |
| + } |
| set_string_option_direct((char_u *)"fdm", -1, (char_u *)"diff", |
| OPT_LOCAL|OPT_FREE, 0); |
| curwin = old_curwin; |
| curbuf = curwin->w_buffer; |
| ! if (!wp->w_p_diff) |
| { |
| wp->w_p_fdc_save = wp->w_p_fdc; |
| wp->w_p_fen_save = wp->w_p_fen; |
| *************** |
| *** 1183,1188 **** |
| --- 1185,1192 ---- |
| |
| wp->w_p_diff_saved = TRUE; |
| |
| + wp->w_p_diff = TRUE; |
| + |
| if (addbuf) |
| diff_buf_add(wp->w_buffer); |
| redraw_win_later(wp, NOT_VALID); |
| *************** |
| *** 1197,1203 **** |
| exarg_T *eap; |
| { |
| win_T *wp; |
| - win_T *old_curwin = curwin; |
| |
| int diffwin = FALSE; |
| |
| --- 1201,1206 ---- |
| *************** |
| *** 1206,1262 **** |
| { |
| if (eap->forceit ? wp->w_p_diff : wp == curwin) |
| { |
| ! |
| |
| wp->w_p_diff = FALSE; |
| |
| |
| ! if (wp->w_p_scb) |
| ! wp->w_p_scb = wp->w_p_diff_saved ? wp->w_p_scb_save : FALSE; |
| |
| |
| ! if (wp->w_p_crb) |
| ! wp->w_p_crb = wp->w_p_diff_saved ? wp->w_p_crb_save : FALSE; |
| |
| ! if (!wp->w_p_wrap) |
| ! wp->w_p_wrap = wp->w_p_diff_saved ? wp->w_p_wrap_save : TRUE; |
| |
| - curwin = wp; |
| - curbuf = curwin->w_buffer; |
| - if (wp->w_p_diff_saved) |
| - { |
| free_string_option(wp->w_p_fdm); |
| ! wp->w_p_fdm = wp->w_p_fdm_save; |
| ! wp->w_p_fdm_save = empty_option; |
| ! } |
| ! else |
| ! set_string_option_direct((char_u *)"fdm", -1, |
| ! (char_u *)"manual", OPT_LOCAL|OPT_FREE, 0); |
| ! curwin = old_curwin; |
| ! curbuf = curwin->w_buffer; |
| ! if (wp->w_p_fdc == diff_foldcolumn) |
| ! wp->w_p_fdc = wp->w_p_diff_saved ? wp->w_p_fdc_save : 0; |
| ! if (wp->w_p_fdl == 0 && wp->w_p_diff_saved) |
| ! wp->w_p_fdl = wp->w_p_fdl_save; |
| |
| - if (wp->w_p_fen) |
| - { |
| |
| |
| ! if (foldmethodIsManual(wp) || !wp->w_p_diff_saved) |
| ! wp->w_p_fen = FALSE; |
| ! else |
| ! wp->w_p_fen = wp->w_p_fen_save; |
| } |
| |
| - foldUpdateAll(wp); |
| - |
| - changed_window_setting_win(wp); |
| - |
| |
| diff_buf_adjust(wp); |
| - |
| - wp->w_p_diff_saved = FALSE; |
| } |
| |
| diffwin |= wp->w_p_diff; |
| --- 1209,1255 ---- |
| { |
| if (eap->forceit ? wp->w_p_diff : wp == curwin) |
| { |
| ! |
| |
| |
| wp->w_p_diff = FALSE; |
| |
| + if (wp->w_p_diff_saved) |
| + { |
| + |
| |
| ! if (wp->w_p_scb) |
| ! wp->w_p_scb = wp->w_p_scb_save; |
| |
| |
| ! if (wp->w_p_crb) |
| ! wp->w_p_crb = wp->w_p_crb_save; |
| |
| ! if (!wp->w_p_wrap) |
| ! wp->w_p_wrap = wp->w_p_wrap_save; |
| |
| free_string_option(wp->w_p_fdm); |
| ! wp->w_p_fdm = vim_strsave(wp->w_p_fdm_save); |
| ! |
| ! if (wp->w_p_fdc == diff_foldcolumn) |
| ! wp->w_p_fdc = wp->w_p_fdc_save; |
| ! if (wp->w_p_fdl == 0) |
| ! wp->w_p_fdl = wp->w_p_fdl_save; |
| |
| |
| |
| ! if (wp->w_p_fen) |
| ! wp->w_p_fen = foldmethodIsManual(wp) ? FALSE |
| ! : wp->w_p_fen_save; |
| ! |
| ! foldUpdateAll(wp); |
| ! |
| ! changed_window_setting_win(wp); |
| ! |
| } |
| |
| |
| diff_buf_adjust(wp); |
| } |
| |
| diffwin |= wp->w_p_diff; |
| *** ../vim-7.4.767/src/version.c 2015-07-03 13:32:56.125020856 +0200 |
| --- src/version.c 2015-07-03 14:54:09.850320403 +0200 |
| *************** |
| *** 743,744 **** |
| --- 743,746 ---- |
| { |
| + |
| + 768, |
| |
| |
| -- |
| If Apple would build a car... |
| ... it would be powered by the sun, be reliable, five times |
| as fast and twice as easy to drive; but would only run on |
| five percent of the roads. |
| |
| |
| |
| \\\ an exciting new programming language -- http: |
| \\\ help me help AIDS victims -- http: |