Loading ...
Sorry, an error occurred while loading the content.

Patch 7.3.591

Expand Messages
  • Bram Moolenaar
    Patch 7.3.591 Problem: Can only move to a tab by absolute number. Solution: Move a number of tabs to the left or the right. (Lech Lorens) Files:
    Message 1 of 1 , Jul 6, 2012
    • 0 Attachment
      Patch 7.3.591
      Problem: Can only move to a tab by absolute number.
      Solution: Move a number of tabs to the left or the right. (Lech Lorens)
      Files: runtime/doc/tabpage.txt, src/ex_cmds.h, src/ex_docmd.c,
      src/testdir/test62.in, src/testdir/test62.ok, src/window.c


      *** ../vim-7.3.590/runtime/doc/tabpage.txt 2010-08-15 21:57:17.000000000 +0200
      --- runtime/doc/tabpage.txt 2012-07-06 18:10:06.000000000 +0200
      ***************
      *** 173,182 ****
      --- 173,192 ----
      REORDERING TAB PAGES:

      :tabm[ove] [N] *:tabm* *:tabmove*
      + :[N]tabm[ove]
      Move the current tab page to after tab page N. Use zero to
      make the current tab page the first one. Without N the tab
      page is made the last one.

      + :tabm[ove] +[N]
      + :tabm[ove] -[N]
      + Move the current tab page N places to the right (with +) or to
      + the left (with -).
      +
      + Note that although it is possible to move a tab behind the N-th one by using
      + :Ntabmove, it is impossible to move it by N places by using :+Ntabmove. For
      + clarification what +N means in this context see |[range]|.
      +

      LOOPING OVER TAB PAGES:

      *** ../vim-7.3.590/src/ex_cmds.h 2012-05-18 18:47:11.000000000 +0200
      --- src/ex_cmds.h 2012-07-06 18:10:13.000000000 +0200
      ***************
      *** 944,950 ****
      EX(CMD_tabfirst, "tabfirst", ex_tabnext,
      TRLBAR),
      EX(CMD_tabmove, "tabmove", ex_tabmove,
      ! RANGE|NOTADR|ZEROR|COUNT|TRLBAR|ZEROR),
      EX(CMD_tablast, "tablast", ex_tabnext,
      TRLBAR),
      EX(CMD_tabnext, "tabnext", ex_tabnext,
      --- 944,950 ----
      EX(CMD_tabfirst, "tabfirst", ex_tabnext,
      TRLBAR),
      EX(CMD_tabmove, "tabmove", ex_tabmove,
      ! RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR),
      EX(CMD_tablast, "tablast", ex_tabnext,
      TRLBAR),
      EX(CMD_tabnext, "tabnext", ex_tabnext,
      *** ../vim-7.3.590/src/ex_docmd.c 2012-06-06 19:02:40.000000000 +0200
      --- src/ex_docmd.c 2012-07-06 18:16:25.000000000 +0200
      ***************
      *** 7478,7484 ****
      ex_tabmove(eap)
      exarg_T *eap;
      {
      ! tabpage_move(eap->addr_count == 0 ? 9999 : (int)eap->line2);
      }

      /*
      --- 7478,7519 ----
      ex_tabmove(eap)
      exarg_T *eap;
      {
      ! int tab_number = 9999;
      !
      ! if (eap->arg && *eap->arg != NUL)
      ! {
      ! char_u *p = eap->arg;
      ! int relative = 0; /* argument +N/-N means: move N places to the
      ! * right/left relative to the current position. */
      !
      ! if (*eap->arg == '-')
      ! {
      ! relative = -1;
      ! p = eap->arg + 1;
      ! }
      ! else if (*eap->arg == '+')
      ! {
      ! relative = 1;
      ! p = eap->arg + 1;
      ! }
      ! else
      ! p = eap->arg;
      !
      ! if (p == skipdigits(p))
      ! {
      ! /* No numbers as argument. */
      ! eap->errmsg = e_invarg;
      ! return;
      ! }
      !
      ! tab_number = getdigits(&p);
      ! if (relative != 0)
      ! tab_number = tab_number * relative + tabpage_index(curtab) - 1;;
      ! }
      ! else if (eap->addr_count != 0)
      ! tab_number = eap->line2;
      !
      ! tabpage_move(tab_number);
      }

      /*
      *** ../vim-7.3.590/src/testdir/test62.in 2012-03-07 22:55:17.000000000 +0100
      --- src/testdir/test62.in 2012-07-06 18:10:13.000000000 +0200
      ***************
      *** 93,98 ****
      --- 93,126 ----
      :endif
      :"
      :"
      + :for i in range(9) | tabnew | endfor
      + 1gt
      + Go =tabpagenr()


      + :tabmove 5
      + i =tabpagenr()


      + :tabmove -2
      + i =tabpagenr()


      + :tabmove +4
      + i =tabpagenr()


      + :tabmove
      + i =tabpagenr()


      + :tabmove -20
      + i =tabpagenr()


      + :tabmove +20
      + i =tabpagenr()


      + :3tabmove
      + i =tabpagenr()


      + :7tabmove 5
      + i =tabpagenr()


      + :let a='No error caught.'
      + :try
      + :tabmove foo
      + :catch E474
      + :let a='E474 caught.'
      + :endtry
      + i =a

      + :"
      + :"
      :/^Results/,$w! test.out
      :qa!
      ENDTEST
      *** ../vim-7.3.590/src/testdir/test62.ok 2012-02-22 19:13:00.000000000 +0100
      --- src/testdir/test62.ok 2012-07-06 18:10:13.000000000 +0200
      ***************
      *** 8,10 ****
      --- 8,20 ----
      tab drop 1: pass
      tab drop 2: pass
      tab drop 3: pass
      + 1
      + 6
      + 4
      + 8
      + 10
      + 1
      + 10
      + 4
      + 6
      + E474 caught.
      *** ../vim-7.3.590/src/window.c 2012-07-06 16:39:43.000000000 +0200
      --- src/window.c 2012-07-06 18:10:13.000000000 +0200
      ***************
      *** 3929,3935 ****
      }

      /* Re-insert it at the specified position. */
      ! if (n == 0)
      {
      curtab->tp_next = first_tabpage;
      first_tabpage = curtab;
      --- 3929,3935 ----
      }

      /* Re-insert it at the specified position. */
      ! if (n <= 0)
      {
      curtab->tp_next = first_tabpage;
      first_tabpage = curtab;
      *** ../vim-7.3.590/src/version.c 2012-07-06 17:51:24.000000000 +0200
      --- src/version.c 2012-07-06 18:11:08.000000000 +0200
      ***************
      *** 716,717 ****
      --- 716,719 ----
      { /* Add new patch number below this line */
      + /**/
      + 591,
      /**/

      --
      Bare feet magnetize sharp metal objects so they point upward from the
      floor -- especially in the dark.

      /// Bram Moolenaar -- Bram@... -- 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 ///

      --
      You received this message from the "vim_dev" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php
    Your message has been successfully submitted and would be delivered to recipients shortly.