From e85e0e74a0d7e9f0e5579568d33036fb3945ee36 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Nov 28 2014 17:00:10 +0000 Subject: - patchlevel 535 --- diff --git a/7.4.535 b/7.4.535 new file mode 100644 index 0000000..20c32ed --- /dev/null +++ b/7.4.535 @@ -0,0 +1,469 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.535 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.535 (after 7.4.530) +Problem: Can't build with tiny features. +Solution: Add #ifdefs and skip a test. +Files: src/ex_docmd.c, src/testdir/test_argument_count.in + + +*** ../vim-7.4.534/src/ex_docmd.c 2014-11-27 16:38:07.648261279 +0100 +--- src/ex_docmd.c 2014-11-27 18:12:30.874072643 +0100 +*************** +*** 1713,1718 **** +--- 1713,1765 ---- + return buf->b_fnum; + } + ++ #ifdef FEAT_WINDOWS ++ static int current_win_nr __ARGS((win_T *win)); ++ static int current_tab_nr __ARGS((tabpage_T *tab)); ++ ++ static int ++ current_win_nr(win) ++ win_T *win; ++ { ++ win_T *wp; ++ int nr = 0; ++ ++ for (wp = firstwin; wp != NULL; wp = wp->w_next) ++ { ++ ++nr; ++ if (wp == win) ++ break; ++ } ++ return nr; ++ } ++ ++ static int ++ current_tab_nr(tab) ++ tabpage_T *tab; ++ { ++ tabpage_T *tp; ++ int nr = 0; ++ ++ for (tp = first_tabpage; tp != NULL; tp = tp->tp_next) ++ { ++ ++nr; ++ if (tp == tab) ++ break; ++ } ++ return nr; ++ } ++ ++ # define CURRENT_WIN_NR current_win_nr(curwin) ++ # define LAST_WIN_NR current_win_nr(NULL) ++ # define CURRENT_TAB_NR current_tab_nr(curtab) ++ # define LAST_TAB_NR current_tab_nr(NULL) ++ #else ++ # define CURRENT_WIN_NR 1 ++ # define LAST_WIN_NR 1 ++ # define CURRENT_TAB_NR 1 ++ # define LAST_TAB_NR 1 ++ #endif ++ + + /* + * Execute one Ex command. +*************** +*** 1765,1772 **** + #endif + cmdmod_T save_cmdmod; + int ni; /* set when Not Implemented */ +- win_T *wp; +- tabpage_T *tp; + char_u *cmd; + + vim_memset(&ea, 0, sizeof(ea)); +--- 1812,1817 ---- +*************** +*** 2085,2097 **** + ea.line2 = curwin->w_cursor.lnum; + break; + case ADDR_WINDOWS: +! lnum = 0; +! for (wp = firstwin; wp != NULL; wp = wp->w_next) +! { +! lnum++; +! if (wp == curwin) +! break; +! } + ea.line2 = lnum; + break; + case ADDR_ARGUMENTS: +--- 2130,2136 ---- + ea.line2 = curwin->w_cursor.lnum; + break; + case ADDR_WINDOWS: +! lnum = CURRENT_WIN_NR; + ea.line2 = lnum; + break; + case ADDR_ARGUMENTS: +*************** +*** 2102,2114 **** + ea.line2 = curbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = 0; +! for(tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! { +! lnum++; +! if (tp == curtab) +! break; +! } + ea.line2 = lnum; + break; + } +--- 2141,2147 ---- + ea.line2 = curbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = CURRENT_TAB_NR; + ea.line2 = lnum; + break; + } +*************** +*** 4198,4205 **** + pos_T pos; + pos_T *fp; + linenr_T lnum; +- win_T *wp; +- tabpage_T *tp; + + cmd = skipwhite(*ptr); + lnum = MAXLNUM; +--- 4231,4236 ---- +*************** +*** 4215,4227 **** + lnum = curwin->w_cursor.lnum; + break; + case ADDR_WINDOWS: +! lnum = 0; +! for (wp = firstwin; wp != NULL; wp = wp->w_next) +! { +! lnum++; +! if (wp == curwin) +! break; +! } + break; + case ADDR_ARGUMENTS: + lnum = curwin->w_arg_idx + 1; +--- 4246,4252 ---- + lnum = curwin->w_cursor.lnum; + break; + case ADDR_WINDOWS: +! lnum = CURRENT_WIN_NR; + break; + case ADDR_ARGUMENTS: + lnum = curwin->w_arg_idx + 1; +*************** +*** 4231,4243 **** + lnum = curbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = 0; +! for(tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! { +! lnum++; +! if (tp == curtab) +! break; +! } + break; + } + break; +--- 4256,4262 ---- + lnum = curbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = CURRENT_TAB_NR; + break; + } + break; +*************** +*** 4250,4258 **** + lnum = curbuf->b_ml.ml_line_count; + break; + case ADDR_WINDOWS: +! lnum = 0; +! for (wp = firstwin; wp != NULL; wp = wp->w_next) +! lnum++; + break; + case ADDR_ARGUMENTS: + lnum = ARGCOUNT; +--- 4269,4275 ---- + lnum = curbuf->b_ml.ml_line_count; + break; + case ADDR_WINDOWS: +! lnum = LAST_WIN_NR; + break; + case ADDR_ARGUMENTS: + lnum = ARGCOUNT; +*************** +*** 4262,4270 **** + lnum = lastbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = 0; +! for(tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! lnum++; + break; + } + break; +--- 4279,4285 ---- + lnum = lastbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = LAST_TAB_NR; + break; + } + break; +*************** +*** 4419,4434 **** + switch (addr_type) + { + case ADDR_LINES: +! lnum = curwin->w_cursor.lnum; /* "+1" is same as ".+1" */ + break; + case ADDR_WINDOWS: +! lnum = 0; +! for (wp = firstwin; wp != NULL; wp = wp->w_next) +! { +! lnum++; +! if (wp == curwin) +! break; +! } + break; + case ADDR_ARGUMENTS: + lnum = curwin->w_arg_idx + 1; +--- 4434,4444 ---- + switch (addr_type) + { + case ADDR_LINES: +! /* "+1" is same as ".+1" */ +! lnum = curwin->w_cursor.lnum; + break; + case ADDR_WINDOWS: +! lnum = CURRENT_WIN_NR; + break; + case ADDR_ARGUMENTS: + lnum = curwin->w_arg_idx + 1; +*************** +*** 4438,4450 **** + lnum = curbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = 0; +! for(tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! { +! lnum++; +! if (tp == curtab) +! break; +! } + break; + } + } +--- 4448,4454 ---- + lnum = curbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = CURRENT_TAB_NR; + break; + } + } +*************** +*** 4481,4489 **** + lnum = 0; + break; + } +! c = 0; +! for (tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! c++; + if (lnum >= c) + lnum = c; + break; +--- 4485,4491 ---- + lnum = 0; + break; + } +! c = LAST_TAB_NR; + if (lnum >= c) + lnum = c; + break; +*************** +*** 4493,4501 **** + lnum = 0; + break; + } +! c = 0; +! for (wp = firstwin; wp != NULL; wp = wp->w_next) +! c++; + if (lnum > c) + lnum = c; + break; +--- 4495,4501 ---- + lnum = 0; + break; + } +! c = LAST_WIN_NR; + if (lnum > c) + lnum = c; + break; +*************** +*** 6805,6819 **** + } + + /* +! * ":quit": quit current window, quit Vim if closed the last window. + */ + static void + ex_quit(eap) + exarg_T *eap; + { + win_T *wp; +! buf_T *buf; +! int wnr; + + #ifdef FEAT_CMDWIN + if (cmdwin_type != 0) +--- 6805,6819 ---- + } + + /* +! * ":quit": quit current window, quit Vim if the last window is closed. + */ + static void + ex_quit(eap) + exarg_T *eap; + { ++ #if defined(FEAT_WINDOWS) || defined(FEAT_AUTOCMD) + win_T *wp; +! #endif + + #ifdef FEAT_CMDWIN + if (cmdwin_type != 0) +*************** +*** 6828,6855 **** + text_locked_msg(); + return; + } + if (eap->addr_count > 0) + { +! wnr = eap->line2; +! for (wp = firstwin; --wnr > 0; ) +! { +! if (wp->w_next == NULL) + break; +- else +- wp = wp->w_next; +- } +- buf = wp->w_buffer; + } + else +! { + wp = curwin; +! buf = curbuf; +! } + #ifdef FEAT_AUTOCMD + apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf); + /* Refuse to quit when locked or when the buffer in the last window is + * being closed (can only happen in autocommands). */ +! if (curbuf_locked() || (buf->b_nwindows == 1 && buf->b_closing)) + return; + #endif + +--- 6828,6854 ---- + text_locked_msg(); + return; + } ++ #ifdef FEAT_WINDOWS + if (eap->addr_count > 0) + { +! int wnr = eap->line2; +! +! for (wp = firstwin; wp->w_next != NULL; wp = wp->w_next) +! if (--wnr <= 0) + break; + } + else +! #endif +! #if defined(FEAT_WINDOWS) || defined(FEAT_AUTOCMD) + wp = curwin; +! #endif +! + #ifdef FEAT_AUTOCMD + apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf); + /* Refuse to quit when locked or when the buffer in the last window is + * being closed (can only happen in autocommands). */ +! if (curbuf_locked() || (wp->w_buffer->b_nwindows == 1 +! && wp->w_buffer->b_closing)) + return; + #endif + +*************** +*** 7214,7222 **** + ex_hide(eap) + exarg_T *eap; + { +- win_T *win; +- int winnr = 0; +- + if (*eap->arg != NUL && check_nextcmd(eap->arg) == NULL) + eap->errmsg = e_invarg; + else +--- 7213,7218 ---- +*************** +*** 7231,7237 **** + # endif + if (eap->addr_count == 0) + win_close(curwin, FALSE); /* don't free buffer */ +! else { + for (win = firstwin; win != NULL; win = win->w_next) + { + winnr++; +--- 7227,7237 ---- + # endif + if (eap->addr_count == 0) + win_close(curwin, FALSE); /* don't free buffer */ +! else +! { +! int winnr = 0; +! win_T *win; +! + for (win = firstwin; win != NULL; win = win->w_next) + { + winnr++; +*** ../vim-7.4.534/src/testdir/test_argument_count.in 2014-11-27 16:22:42.746412995 +0100 +--- src/testdir/test_argument_count.in 2014-11-27 18:21:05.568408375 +0100 +*************** +*** 1,6 **** +--- 1,7 ---- + Tests for :[count]argument! and :[count]argdelete vim: set ft=vim : + + STARTTEST ++ :so small.vim + :%argd + :argadd a b c d + :set hidden +*** ../vim-7.4.534/src/version.c 2014-11-27 17:44:05.380820867 +0100 +--- src/version.c 2014-11-27 18:30:32.826167330 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 535, + /**/ + +-- +Mushrooms always grow in damp places and so they look like umbrellas. + + /// 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 ///