To: vim_dev@googlegroups.com Subject: Patch 7.4.868 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.868 Problem: 'smarttab' is also effective when 'paste' is enabled. (Alexander Monakov) Solution: Disable 'smarttab' when 'paste' is set. (Christian Brabandt) Do the same for 'expandtab'. Files: src/option.c, src/structs.h *** ../vim-7.4.867/src/option.c 2015-08-26 23:24:06.854494285 +0200 --- src/option.c 2015-09-15 17:20:59.307643051 +0200 *************** *** 387,396 **** static long p_wm_nobin; /* Saved values for when 'paste' is set */ static long p_tw_nopaste; static long p_wm_nopaste; - static long p_sts_nopaste; - static int p_ai_nopaste; struct vimoption { --- 387,397 ---- static long p_wm_nobin; /* Saved values for when 'paste' is set */ + static int p_ai_nopaste; + static int p_et_nopaste; + static long p_sts_nopaste; static long p_tw_nopaste; static long p_wm_nopaste; struct vimoption { *************** *** 10702,10707 **** --- 10703,10709 ---- buf->b_p_fixeol = p_fixeol; buf->b_p_et = p_et; buf->b_p_et_nobin = p_et_nobin; + buf->b_p_et_nopaste = p_et_nopaste; buf->b_p_ml = p_ml; buf->b_p_ml_nobin = p_ml_nobin; buf->b_p_inf = p_inf; *************** *** 11640,11645 **** --- 11642,11648 ---- { static int old_p_paste = FALSE; static int save_sm = 0; + static int save_sta = 0; #ifdef FEAT_CMDL_INFO static int save_ru = 0; #endif *************** *** 11664,11673 **** --- 11667,11678 ---- buf->b_p_wm_nopaste = buf->b_p_wm; buf->b_p_sts_nopaste = buf->b_p_sts; buf->b_p_ai_nopaste = buf->b_p_ai; + buf->b_p_et_nopaste = buf->b_p_et; } /* save global options */ save_sm = p_sm; + save_sta = p_sta; #ifdef FEAT_CMDL_INFO save_ru = p_ru; #endif *************** *** 11676,11685 **** save_hkmap = p_hkmap; #endif /* save global values for local buffer options */ p_tw_nopaste = p_tw; p_wm_nopaste = p_wm; - p_sts_nopaste = p_sts; - p_ai_nopaste = p_ai; } /* --- 11681,11691 ---- save_hkmap = p_hkmap; #endif /* save global values for local buffer options */ + p_ai_nopaste = p_ai; + p_et_nopaste = p_et; + p_sts_nopaste = p_sts; p_tw_nopaste = p_tw; p_wm_nopaste = p_wm; } /* *************** *** 11693,11702 **** --- 11699,11710 ---- buf->b_p_wm = 0; /* wrapmargin is 0 */ buf->b_p_sts = 0; /* softtabstop is 0 */ buf->b_p_ai = 0; /* no auto-indent */ + buf->b_p_et = 0; /* no expandtab */ } /* set global options */ p_sm = 0; /* no showmatch */ + p_sta = 0; /* no smarttab */ #ifdef FEAT_CMDL_INFO # ifdef FEAT_WINDOWS if (p_ru) *************** *** 11727,11736 **** --- 11735,11746 ---- buf->b_p_wm = buf->b_p_wm_nopaste; buf->b_p_sts = buf->b_p_sts_nopaste; buf->b_p_ai = buf->b_p_ai_nopaste; + buf->b_p_et = buf->b_p_et_nopaste; } /* restore global options */ p_sm = save_sm; + p_sta = save_sta; #ifdef FEAT_CMDL_INFO # ifdef FEAT_WINDOWS if (p_ru != save_ru) *************** *** 11743,11752 **** p_hkmap = save_hkmap; #endif /* set global values for local buffer options */ p_tw = p_tw_nopaste; p_wm = p_wm_nopaste; - p_sts = p_sts_nopaste; - p_ai = p_ai_nopaste; } old_p_paste = p_paste; --- 11753,11763 ---- p_hkmap = save_hkmap; #endif /* set global values for local buffer options */ + p_ai = p_ai_nopaste; + p_et = p_et_nopaste; + p_sts = p_sts_nopaste; p_tw = p_tw_nopaste; p_wm = p_wm_nopaste; } old_p_paste = p_paste; *** ../vim-7.4.867/src/structs.h 2015-07-21 15:48:13.589517950 +0200 --- src/structs.h 2015-09-15 17:16:58.742127236 +0200 *************** *** 1589,1594 **** --- 1589,1595 ---- int b_p_fixeol; /* 'fixendofline' */ int b_p_et; /* 'expandtab' */ int b_p_et_nobin; /* b_p_et saved for binary mode */ + int b_p_et_nopaste; /* b_p_et saved for paste mode */ #ifdef FEAT_MBYTE char_u *b_p_fenc; /* 'fileencoding' */ #endif *** ../vim-7.4.867/src/version.c 2015-09-15 15:57:22.815879940 +0200 --- src/version.c 2015-09-15 17:01:01.468036320 +0200 *************** *** 743,744 **** --- 743,746 ---- { /* Add new patch number below this line */ + /**/ + 868, /**/ -- Are leaders born or made? And if they're made, can we return them under warranty? (Scott Adams - The Dilbert principle) /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///