To: vim_dev@googlegroups.com Subject: Patch 8.0.0260 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.0.0260 Problem: Build fails with tiny features. Solution: Move get_tabpage_arg() inside #ifdef. Files: src/ex_docmd.c *** ../vim-8.0.0259/src/ex_docmd.c 2017-01-29 14:48:06.288454957 +0100 --- src/ex_docmd.c 2017-01-29 15:13:08.498451464 +0100 *************** *** 5485,5588 **** } /* - * Handle the argument for a tabpage related ex command. - * Returns a tabpage number. - * When an error is encountered then eap->errmsg is set. - */ - static int - get_tabpage_arg(exarg_T *eap) - { - int tab_number; - int unaccept_arg0 = (eap->cmdidx == CMD_tabmove) ? 0 : 1; - - if (eap->arg && *eap->arg != NUL) - { - char_u *p = eap->arg; - char_u *p_save; - int relative = 0; /* argument +N/-N means: go to N places to the - * right/left relative to the current position. */ - - if (*p == '-') - { - relative = -1; - p++; - } - else if (*p == '+') - { - relative = 1; - p++; - } - - p_save = p; - tab_number = getdigits(&p); - - if (relative == 0) - { - if (STRCMP(p, "$") == 0) - tab_number = LAST_TAB_NR; - else if (p == p_save || *p_save == '-' || *p != NUL - || tab_number > LAST_TAB_NR) - { - /* No numbers as argument. */ - eap->errmsg = e_invarg; - goto theend; - } - } - else - { - if (*p_save == NUL) - tab_number = 1; - else if (p == p_save || *p_save == '-' || *p != NUL - || tab_number == 0) - { - /* No numbers as argument. */ - eap->errmsg = e_invarg; - goto theend; - } - tab_number = tab_number * relative + tabpage_index(curtab); - if (!unaccept_arg0 && relative == -1) - --tab_number; - } - if (tab_number < unaccept_arg0 || tab_number > LAST_TAB_NR) - eap->errmsg = e_invarg; - } - else if (eap->addr_count > 0) - { - if (unaccept_arg0 && eap->line2 == 0) - eap->errmsg = e_invrange; - else - { - tab_number = eap->line2; - if (!unaccept_arg0 && **eap->cmdlinep == '-') - { - --tab_number; - if (tab_number < unaccept_arg0) - eap->errmsg = e_invarg; - } - } - } - else - { - switch (eap->cmdidx) - { - case CMD_tabnext: - tab_number = tabpage_index(curtab) + 1; - if (tab_number > LAST_TAB_NR) - tab_number = 1; - break; - case CMD_tabmove: - tab_number = LAST_TAB_NR; - break; - default: - tab_number = tabpage_index(curtab); - } - } - - theend: - return tab_number; - } - - /* * ":abbreviate" and friends. */ static void --- 5485,5490 ---- *************** *** 7567,7572 **** --- 7469,7572 ---- } /* + * Handle the argument for a tabpage related ex command. + * Returns a tabpage number. + * When an error is encountered then eap->errmsg is set. + */ + static int + get_tabpage_arg(exarg_T *eap) + { + int tab_number; + int unaccept_arg0 = (eap->cmdidx == CMD_tabmove) ? 0 : 1; + + if (eap->arg && *eap->arg != NUL) + { + char_u *p = eap->arg; + char_u *p_save; + int relative = 0; /* argument +N/-N means: go to N places to the + * right/left relative to the current position. */ + + if (*p == '-') + { + relative = -1; + p++; + } + else if (*p == '+') + { + relative = 1; + p++; + } + + p_save = p; + tab_number = getdigits(&p); + + if (relative == 0) + { + if (STRCMP(p, "$") == 0) + tab_number = LAST_TAB_NR; + else if (p == p_save || *p_save == '-' || *p != NUL + || tab_number > LAST_TAB_NR) + { + /* No numbers as argument. */ + eap->errmsg = e_invarg; + goto theend; + } + } + else + { + if (*p_save == NUL) + tab_number = 1; + else if (p == p_save || *p_save == '-' || *p != NUL + || tab_number == 0) + { + /* No numbers as argument. */ + eap->errmsg = e_invarg; + goto theend; + } + tab_number = tab_number * relative + tabpage_index(curtab); + if (!unaccept_arg0 && relative == -1) + --tab_number; + } + if (tab_number < unaccept_arg0 || tab_number > LAST_TAB_NR) + eap->errmsg = e_invarg; + } + else if (eap->addr_count > 0) + { + if (unaccept_arg0 && eap->line2 == 0) + eap->errmsg = e_invrange; + else + { + tab_number = eap->line2; + if (!unaccept_arg0 && **eap->cmdlinep == '-') + { + --tab_number; + if (tab_number < unaccept_arg0) + eap->errmsg = e_invarg; + } + } + } + else + { + switch (eap->cmdidx) + { + case CMD_tabnext: + tab_number = tabpage_index(curtab) + 1; + if (tab_number > LAST_TAB_NR) + tab_number = 1; + break; + case CMD_tabmove: + tab_number = LAST_TAB_NR; + break; + default: + tab_number = tabpage_index(curtab); + } + } + + theend: + return tab_number; + } + + /* * ":tabclose": close current tab page, unless it is the last one. * ":tabclose N": close tab page N. */ *** ../vim-8.0.0259/src/version.c 2017-01-29 14:48:06.288454957 +0100 --- src/version.c 2017-01-29 15:17:59.796512728 +0100 *************** *** 766,767 **** --- 766,769 ---- { /* Add new patch number below this line */ + /**/ + 260, /**/ -- Mental Floss prevents moral decay! /// 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 ///