Bram Moolenaar | 4 Jul 15:23 2015
Picon
Picon

Beeps while testing


When running the tests the terminal produces beeps.
Usually this is caused by the test script having a line break,
which is the command to move to the next line.
If there is no next line Vim beeps.

It would be nice if someone can spend time on locating the places
where beeps are produced and fix them.  Usually inserting an Ex
command helps:  :"

-- 
hundred-and-one symptoms of being an internet addict:
177. You log off of your system because it's time to go to work.

 /// Bram Moolenaar -- Bram <at> 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    ///

-- 
--

-- 
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

--- 
You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe <at> googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

(Continue reading)

Bram Moolenaar | 4 Jul 15:06 2015
Picon
Picon

Patch 7.4.769


Patch 7.4.769 (after 7.4 768)
Problem:    Behavior of :diffoff is not tested.
Solution:   Add a bit of testing. (Olaf Dabrunz)
Files:      src/testdir/test47.in, src/testdir/test47.ok

*** ../vim-7.4.768/src/testdir/test47.in	2012-10-21 22:08:44.000000000 +0200
--- src/testdir/test47.in	2015-07-04 15:00:48.065450222 +0200
***************
*** 1,5 ****
--- 1,7 ----
  Tests for vertical splits and filler lines in diff mode

+ Also tests restoration of saved options by :diffoff.
+ 
  STARTTEST
  :so small.vim
  :" Disable the title to avoid xterm keeping the wrong one.
***************
*** 10,17 ****
--- 12,26 ----
  ddGpkkrXoxxx :w! Xtest2
  :file Nop
  ggoyyy jjjozzzz 
+ :set foldmethod=marker foldcolumn=4
+ :redir => nodiffsettings
+ :silent! :set diff? fdm? fdc? scb? crb? wrap?
+ :redir END
  :vert diffsplit Xtest
  :vert diffsplit Xtest2
(Continue reading)

Lukas | 4 Jul 12:57 2015
Picon

--remote-tab-silent needs and argument

Can the behaviour with  --remote-tab-silent  argument be changed so that it works also without any argument so that it just opens Vim with no file like with 'gvim'?

Because of the fact that 'gvim --remote-tab-silent' ends with an argument missing error the wrapper script is needed to be used in gvim.desktop if the user wants to enforce global one GVim instance configuration.

Thanks,

Lukas

--
--
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

---
You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe <at> googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Alexey Radkov | 3 Jul 23:43 2015
Picon

colorcolumn/cursorcolumn conceal + wrap voodoo

Hi.

Here is a little patch that fixes broken visualization of cursorcolumn and colorcolumn when there are many wrapped concealed lines. The idea is to enable special voodoo code in win_line() at l. 5437 only for current row. Conceal offsets on other lines may differ so this voodoo magic being applied to them shifts positions of cursorcolumn and colorcolumn relative to the current line where the cursor is positioned. This may look ugly.

I attached two images that show broken columns before the patch applied and good looking columns after the patch. The focus is at the right window on a dot sign after wrapped Russian word "теплее".

Cheers, Alexey.

--
--
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

---
You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe <at> googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Ken Takata | 3 Jul 16:15 2015
Picon

[patch] Please include Tera Term Language syntax/filetype plugin

Hi Bram,

I wrote a syntax/filetype plugin for Tera Term Language (TTL) which is
a macro language for Tera Term (http://ttssh2.osdn.jp/index.html.en).
Can you include this?

The plugin is also available at https://github.com/k-takata/vim-teraterm .

Regards,
Ken Takata

-- 
--

-- 
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

--- 
You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe <at> googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Bram Moolenaar | 3 Jul 15:07 2015
Picon
Picon

Patch 7.4.768


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;
  # endif

-     wp->w_p_diff = TRUE;
- 
      /* Use 'scrollbind' and 'cursorbind' when available */
  #ifdef FEAT_SCROLLBIND
!     if (!wp->w_p_diff_saved)
  	wp->w_p_scb_save = wp->w_p_scb;
      wp->w_p_scb = TRUE;
  #endif
  #ifdef FEAT_CURSORBIND
!     if (!wp->w_p_diff_saved)
  	wp->w_p_crb_save = wp->w_p_crb;
      wp->w_p_crb = TRUE;
  #endif
!     if (!wp->w_p_diff_saved)
  	wp->w_p_wrap_save = wp->w_p_wrap;
      wp->w_p_wrap = FALSE;
  # ifdef FEAT_FOLDING
      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;
  # endif

      /* Use 'scrollbind' and 'cursorbind' when available */
  #ifdef FEAT_SCROLLBIND
!     if (!wp->w_p_diff)
  	wp->w_p_scb_save = wp->w_p_scb;
      wp->w_p_scb = TRUE;
  #endif
  #ifdef FEAT_CURSORBIND
!     if (!wp->w_p_diff)
  	wp->w_p_crb_save = wp->w_p_crb;
      wp->w_p_crb = TRUE;
  #endif
!     if (!wp->w_p_diff)
  	wp->w_p_wrap_save = wp->w_p_wrap;
      wp->w_p_wrap = FALSE;
  # ifdef FEAT_FOLDING
      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 ----
      /* Saved the current values, to be restored in ex_diffoff(). */
      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;
  #ifdef FEAT_SCROLLBIND
      int		diffwin = FALSE;
  #endif
--- 1201,1206 ----
***************
*** 1206,1262 ****
      {
  	if (eap->forceit ? wp->w_p_diff : wp == curwin)
  	{
! 	    /* Set 'diff', 'scrollbind' off and 'wrap' on. If option values
! 	     * were saved in diff_win_options() restore them. */
  	    wp->w_p_diff = FALSE;

  #ifdef FEAT_SCROLLBIND
! 	    if (wp->w_p_scb)
! 		wp->w_p_scb = wp->w_p_diff_saved ? wp->w_p_scb_save : FALSE;
  #endif
  #ifdef FEAT_CURSORBIND
! 	    if (wp->w_p_crb)
! 		wp->w_p_crb = wp->w_p_diff_saved ? wp->w_p_crb_save : FALSE;
  #endif
! 	    if (!wp->w_p_wrap)
! 		wp->w_p_wrap = wp->w_p_diff_saved ? wp->w_p_wrap_save : TRUE;
  #ifdef FEAT_FOLDING
- 	    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)
- 	    {
  		/* Only restore 'foldenable' when 'foldmethod' is not
  		 * "manual", otherwise we continue to show the diff folds. */
! 		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);
- 	    /* make sure topline is not halfway a fold */
- 	    changed_window_setting_win(wp);
- #endif
  	    /* Note: 'sbo' is not restored, it's a global option. */
  	    diff_buf_adjust(wp);
- 
- 	    wp->w_p_diff_saved = FALSE;
  	}
  #ifdef FEAT_SCROLLBIND
  	diffwin |= wp->w_p_diff;
--- 1209,1255 ----
      {
  	if (eap->forceit ? wp->w_p_diff : wp == curwin)
  	{
! 	    /* Set 'diff' off. If option values were saved in
! 	     * diff_win_options(), restore the ones whose settings seem to have
! 	     * been left over from diff mode.  */
  	    wp->w_p_diff = FALSE;

+ 	    if (wp->w_p_diff_saved)
+ 	    {
+ 
  #ifdef FEAT_SCROLLBIND
! 		if (wp->w_p_scb)
! 		    wp->w_p_scb = wp->w_p_scb_save;
  #endif
  #ifdef FEAT_CURSORBIND
! 		if (wp->w_p_crb)
! 		    wp->w_p_crb = wp->w_p_crb_save;
  #endif
! 		if (!wp->w_p_wrap)
! 		    wp->w_p_wrap = wp->w_p_wrap_save;
  #ifdef FEAT_FOLDING
  		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;

  		/* Only restore 'foldenable' when 'foldmethod' is not
  		 * "manual", otherwise we continue to show the diff folds. */
! 		if (wp->w_p_fen)
! 		    wp->w_p_fen = foldmethodIsManual(wp) ? FALSE
! 							 : wp->w_p_fen_save;
! 
! 		foldUpdateAll(wp);
! 		/* make sure topline is not halfway a fold */
! 		changed_window_setting_win(wp);
! #endif
  	    }

  	    /* Note: 'sbo' is not restored, it's a global option. */
  	    diff_buf_adjust(wp);
  	}
  #ifdef FEAT_SCROLLBIND
  	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 ----
  {   /* Add new patch number below this line */
+ /**/
+     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.

 /// Bram Moolenaar -- Bram <at> 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    ///

-- 
--

-- 
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

--- 
You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe <at> googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Bram Moolenaar | 3 Jul 13:50 2015
Picon
Picon

Vim-multibyte mailing list is closed


Hello Vim users,

The number of messages on the vim-multibyte mailing list has gone down
to nothing.  Multi-byte text is a core part of Vim these days, mainly
because UTF-8 is wide spread now.

Therefore I have closed the vim-multibyte maillist.  The archive will
remain, but posting new messages is no longer possible.  You can use the
vim-use and vim-dev lists for multi-byte questions and discussions.

-- 
hundred-and-one symptoms of being an internet addict:
174. You know what a listserv is.

 /// Bram Moolenaar -- Bram <at> 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    ///

-- 
--

-- 
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

--- 
You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe <at> googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Bram Moolenaar | 3 Jul 13:33 2015
Picon
Picon

Patch 7.4.767


Patch 7.4.767
Problem:    --remote-tab-silent can fail on MS-Windows.
Solution:   Use single quotes to avoid problems with backslashes. (Idea by
            Weiyong Mao)
Files:      src/main.c

*** ../vim-7.4.766/src/main.c	2015-06-25 17:03:32.580666257 +0200
--- src/main.c	2015-07-03 13:23:10.479096992 +0200
***************
*** 4008,4022 ****
       *    if haslocaldir()
       *	    cd -
       *      lcd -
!      *    elseif getcwd() ==# "current path"
       *      cd -
       *    endif
       *  endif
       */
      ga_concat(&ga, (char_u *)":if !exists('+acd')||!&acd|if haslocaldir()|");
!     ga_concat(&ga, (char_u *)"cd -|lcd -|elseif getcwd() ==# \"");
      ga_concat(&ga, cdp);
!     ga_concat(&ga, (char_u *)"\"|cd -|endif|endif<CR>");
      vim_free(cdp);

      if (sendReply)
--- 4008,4022 ----
       *    if haslocaldir()
       *	    cd -
       *      lcd -
!      *    elseif getcwd() ==# 'current path'
       *      cd -
       *    endif
       *  endif
       */
      ga_concat(&ga, (char_u *)":if !exists('+acd')||!&acd|if haslocaldir()|");
!     ga_concat(&ga, (char_u *)"cd -|lcd -|elseif getcwd() ==# '");
      ga_concat(&ga, cdp);
!     ga_concat(&ga, (char_u *)"'|cd -|endif|endif<CR>");
      vim_free(cdp);

      if (sendReply)
*** ../vim-7.4.766/src/version.c	2015-07-03 13:05:45.833974396 +0200
--- src/version.c	2015-07-03 13:31:49.905707437 +0200
***************
*** 743,744 ****
--- 743,746 ----
  {   /* Add new patch number below this line */
+ /**/
+     767,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
173. You keep tracking down the email addresses of all your friends
     (even childhood friends).

 /// Bram Moolenaar -- Bram <at> 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    ///

-- 
--

-- 
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

--- 
You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe <at> googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Bram Moolenaar | 3 Jul 13:06 2015
Picon
Picon

Patch 7.4.766


Patch 7.4.766 (after 7.4.757)
Problem:    Background color check does not work on Tera Term.
Solution:   Also recognize ST as a termination character. (Hirohito Higashi)
Files:      src/term.c

*** ../vim-7.4.765/src/term.c	2015-06-27 18:34:19.503618396 +0200
--- src/term.c	2015-07-03 12:49:14.224448432 +0200
***************
*** 4264,4270 ****
  	     *
  	     * - Background color response:
  	     *       <Esc>]11;rgb:{rrrr}/{gggg}/{bbbb}\007
! 	     *   The final byte must be '\007'.
  	     */
  	    char_u *argp = tp[0] == CSI ? tp + 1 : tp + 2;

--- 4264,4272 ----
  	     *
  	     * - Background color response:
  	     *       <Esc>]11;rgb:{rrrr}/{gggg}/{bbbb}\007
! 	     *   Or
! 	     *       <Esc>]11;rgb:{rrrr}/{gggg}/{bbbb}ST
! 	     *   The final byte must be '\007' or ST(0x9c or ESC\).
  	     */
  	    char_u *argp = tp[0] == CSI ? tp + 1 : tp + 2;

***************
*** 4408,4419 ****
  		    key_name[1] = (int)KE_IGNORE;
  		    slen = i + 1;
  		}
! 		else if (*T_RBG != NUL && len >= 24 - (tp[0] == CSI)
  			&& argp[0] == '1' && argp[1] == '1'
  			&& argp[2] == ';' && argp[3] == 'r' && argp[4] == 'g'
  			&& argp[5] == 'b' && argp[6] == ':'
  			&& argp[11] == '/' && argp[16] == '/'
! 			&& argp[21] == '\007')
  		{
  		    LOG_TR("Received RBG");
  		    rbg_status = RBG_GOT;
--- 4410,4424 ----
  		    key_name[1] = (int)KE_IGNORE;
  		    slen = i + 1;
  		}
! 		else if (*T_RBG != NUL
! 			&& len >= 24 - (tp[0] == CSI)
! 			&& len >= 24 - (tp[0] == CSI) + (argp[21] == ESC)
  			&& argp[0] == '1' && argp[1] == '1'
  			&& argp[2] == ';' && argp[3] == 'r' && argp[4] == 'g'
  			&& argp[5] == 'b' && argp[6] == ':'
  			&& argp[11] == '/' && argp[16] == '/'
! 			&& (argp[21] == '\007' || argp[21] == STERM
! 			    || (argp[21] == ESC && argp[22] == '\\')))
  		{
  		    LOG_TR("Received RBG");
  		    rbg_status = RBG_GOT;
***************
*** 4427,4433 ****
  		    }
  		    key_name[0] = (int)KS_EXTRA;
  		    key_name[1] = (int)KE_IGNORE;
! 		    slen = 24;
  		}
  	    }

--- 4432,4438 ----
  		    }
  		    key_name[0] = (int)KS_EXTRA;
  		    key_name[1] = (int)KE_IGNORE;
! 		    slen = 24 - (tp[0] == CSI) + (argp[21] == ESC);
  		}
  	    }

*** ../vim-7.4.765/src/version.c	2015-07-03 12:44:01.739748554 +0200
--- src/version.c	2015-07-03 12:49:06.288532246 +0200
***************
*** 743,744 ****
--- 743,746 ----
  {   /* Add new patch number below this line */
+ /**/
+     766,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
172. You join listservers just for the extra e-mail.

 /// Bram Moolenaar -- Bram <at> 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    ///

-- 
--

-- 
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

--- 
You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe <at> googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Bram Moolenaar | 3 Jul 12:44 2015
Picon
Picon

Patch 7.4.765


Patch 7.4.765 (after 7.4.754)
Problem:    CTRL-A and CTRL-X in Visual mode do not always work well.
Solution:   Improvements for increment and decrement. (Christian Brabandt)
Files:      src/normal.c, src/ops.c, src/testdir/test_increment.in,
            src/testdir/test_increment.ok

*** ../vim-7.4.764/src/normal.c	2015-06-25 13:57:20.029431114 +0200
--- src/normal.c	2015-07-03 11:43:43.250141166 +0200
***************
*** 4204,4210 ****
      int visual = VIsual_active;
      if (cap->oap->op_type == OP_NOP
  	    && do_addsub((int)cap->cmdchar, cap->count1, cap->arg) == OK)
! 	prep_redo_cmd(cap);
      else
  	clearopbeep(cap->oap);
      if (visual)
--- 4204,4227 ----
      int visual = VIsual_active;
      if (cap->oap->op_type == OP_NOP
  	    && do_addsub((int)cap->cmdchar, cap->count1, cap->arg) == OK)
!     {
! 	if (visual)
! 	{
! 	    ResetRedobuff();
! 	    AppendCharToRedobuff(VIsual_mode);
! 	    if (VIsual_mode == 'V')
! 	    {
! 		AppendNumberToRedobuff(cap->oap->line_count);
! 		AppendCharToRedobuff('j');
! 	    }
! 	    AppendNumberToRedobuff(cap->count1);
! 	    if (cap->nchar != NUL)
! 		AppendCharToRedobuff(cap->nchar);
! 	    AppendCharToRedobuff(cap->cmdchar);
! 	}
! 	else
! 	    prep_redo_cmd(cap);
!     }
      else
  	clearopbeep(cap->oap);
      if (visual)
*** ../vim-7.4.764/src/ops.c	2015-06-25 13:57:20.033431073 +0200
--- src/ops.c	2015-07-03 12:31:42.315559376 +0200
***************
*** 5386,5392 ****
      int		hex;		/* 'X' or 'x': hex; '0': octal */
      static int	hexupper = FALSE;	/* 0xABC */
      unsigned long n;
!     long	offset = 0;		/* line offset for Ctrl_V mode */
      long_u	oldn;
      char_u	*ptr;
      int		c;
--- 5386,5392 ----
      int		hex;		/* 'X' or 'x': hex; '0': octal */
      static int	hexupper = FALSE;	/* 0xABC */
      unsigned long n;
!     unsigned long offset = 0;		/* line offset for Ctrl_V mode */
      long_u	oldn;
      char_u	*ptr;
      int		c;
***************
*** 5398,5407 ****
--- 5398,5409 ----
      int		firstdigit;
      int		subtract;
      int		negative = FALSE;
+     int		was_positive = TRUE;
      int		visual = VIsual_active;
      int		i;
      int		lnum = curwin->w_cursor.lnum;
      int		lnume = curwin->w_cursor.lnum;
+     int		startcol;

      dohex = (vim_strchr(curbuf->b_p_nf, 'x') != NULL);	/* "heX" */
      dooct = (vim_strchr(curbuf->b_p_nf, 'o') != NULL);	/* "Octal" */
***************
*** 5431,5444 ****
  	curbuf->b_visual.vi_end = curwin->w_cursor;
  	curbuf->b_visual.vi_mode = VIsual_mode;

! 	col = VIsual.col;
  	lnum = VIsual.lnum;
  	lnume = curwin->w_cursor.lnum;
- 	if (ptr[col] == '-')
- 	{
- 	    negative = TRUE;
- 	    col++;
- 	}
      }
      else
      {
--- 5433,5446 ----
  	curbuf->b_visual.vi_end = curwin->w_cursor;
  	curbuf->b_visual.vi_mode = VIsual_mode;

! 	if (VIsual_mode != 'v')
! 	    startcol = VIsual.col < curwin->w_cursor.col ? VIsual.col
! 						       : curwin->w_cursor.col;
! 	else
! 	    startcol = VIsual.col;
! 	col = startcol;
  	lnum = VIsual.lnum;
  	lnume = curwin->w_cursor.lnum;
      }
      else
      {
***************
*** 5481,5489 ****
      {
  	curwin->w_cursor.lnum = i;
  	ptr = ml_get_curline();
- 	RLADDSUBFIX(ptr);
  	if ((int)STRLEN(ptr) <= col)
! 	    col = 0;
  	/*
  	 * If a number was found, and saving for undo works, replace the number.
  	 */
--- 5483,5498 ----
      {
  	curwin->w_cursor.lnum = i;
  	ptr = ml_get_curline();
  	if ((int)STRLEN(ptr) <= col)
! 	    /* try again on next line */
! 	    continue;
! 	if (visual && ptr[col] == '-')
! 	{
! 	    negative = TRUE;
! 	    was_positive = FALSE;
! 	    col++;
! 	}
! 	RLADDSUBFIX(ptr);
  	/*
  	 * If a number was found, and saving for undo works, replace the number.
  	 */
***************
*** 5598,5603 ****
--- 5607,5620 ----
  		    negative = FALSE;
  	    }

+ 	    if (visual && !was_positive && !negative)
+ 	    {
+ 		/* need to remove the '-' */
+ 		col--;
+ 		length++;
+ 	    }
+ 
+ 
  	    /*
  	     * Delete the old number.
  	     */
***************
*** 5634,5641 ****
  	    if (buf1 == NULL)
  		return FAIL;
  	    ptr = buf1;
! 	    /* do not add leading '-' for visual mode */
! 	    if (negative && !visual)
  	    {
  		*ptr++ = '-';
  	    }
--- 5651,5657 ----
  	    if (buf1 == NULL)
  		return FAIL;
  	    ptr = buf1;
! 	    if (negative && (!visual || (visual && was_positive)))
  	    {
  		*ptr++ = '-';
  	    }
***************
*** 5654,5676 ****
  	     * Put the number characters in buf2[].
  	     */
  	    if (hex == 0)
! 		sprintf((char *)buf2, "%lu", n + offset);
  	    else if (hex == '0')
! 		sprintf((char *)buf2, "%lo", n + offset);
  	    else if (hex && hexupper)
! 		sprintf((char *)buf2, "%lX", n + offset);
  	    else
! 		sprintf((char *)buf2, "%lx", n + offset);
  	    length -= (int)STRLEN(buf2);

- 	    if (g_cmd)
- 	    {
- 		if (subtract)
- 		    offset -= (unsigned long)Prenum1;
- 		else
- 		    offset += (unsigned long)Prenum1;
- 	    }
- 
  	    /*
  	     * Adjust number of zeros to the new number of digits, so the
  	     * total length of the number remains the same.
--- 5670,5684 ----
  	     * Put the number characters in buf2[].
  	     */
  	    if (hex == 0)
! 		sprintf((char *)buf2, "%lu", n);
  	    else if (hex == '0')
! 		sprintf((char *)buf2, "%lo", n);
  	    else if (hex && hexupper)
! 		sprintf((char *)buf2, "%lX", n);
  	    else
! 		sprintf((char *)buf2, "%lx", n);
  	    length -= (int)STRLEN(buf2);

  	    /*
  	     * Adjust number of zeros to the new number of digits, so the
  	     * total length of the number remains the same.
***************
*** 5685,5697 ****
  	    ins_str(buf1);		/* insert the new number */
  	    vim_free(buf1);
  	}
! 	--curwin-≥w_cursor.col;
  	curwin->w_set_curswant = TRUE;
  #ifdef FEAT_RIGHTLEFT
  	ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE);
  	RLADDSUBFIX(ptr);
  #endif
      }
      return OK;
  }

--- 5693,5719 ----
  	    ins_str(buf1);		/* insert the new number */
  	    vim_free(buf1);
  	}
! 
! 	if (g_cmd)
! 	{
! 	    offset = (unsigned long)Prenum1;
! 	    g_cmd = 0;
! 	}
! 	/* reset */
! 	subtract = FALSE;
! 	negative = FALSE;
! 	if (visual && VIsual_mode != Ctrl_V)
! 	    col = 0;
! 	else
! 	    col = startcol;
! 	Prenum1 += offset;
  	curwin->w_set_curswant = TRUE;
  #ifdef FEAT_RIGHTLEFT
  	ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE);
  	RLADDSUBFIX(ptr);
  #endif
      }
+     --curwin-≥w_cursor.col;
      return OK;
  }

*** ../vim-7.4.764/src/testdir/test_increment.in	2015-06-28 19:24:32.198911433 +0200
--- src/testdir/test_increment.in	2015-07-03 11:47:53.111483406 +0200
***************
*** 6,11 ****
--- 6,12 ----
  1) Ctrl-A on visually selected number
  Text:
  foobar-10
+     Expected:
      1)    Ctrl-A on start of line:
  	foobar-9
      2)    Ctrl-A on visually selected "-10":
***************
*** 24,29 ****
--- 25,31 ----
  30
  40

+     Expected:
      1) Ctrl-A on visually selected lines:
  11
  21
***************
*** 46,51 ****
--- 48,54 ----

  40

+     Expected:
      1) 2 g Ctrl-A on visually selected lines:
  12

***************
*** 66,74 ****
--- 69,190 ----
  4) Ctrl-A on non-number
  Text:
  foobar-10
+     Expected:
      1) visually select foobar:
      foobar-10

+ 5) g<Ctrl-A> on letter
+ Test:
+ a
+ a
+ a
+ a
+     Expected:
+     1) g Ctrl-A on visually selected lines
+     b
+     c
+     d
+     e
+ 
+ 6) g<Ctrl-A> on letter
+ Test:
+ z
+ z
+ z
+ z
+     Expected:
+     1) g Ctrl-X on visually selected lines
+     y
+     x
+     w
+     v
+ 
+ 7) <Ctrl-A> on letter
+ Test:
+ 2
+ 1
+ 0
+ -1
+ -2
+ 
+     Expected:
+     1) Ctrl-A on visually selected lines
+     3
+     2
+     1
+     0
+     -1
+ 
+     2) Ctrl-X on visually selected lines
+     1
+     0
+     -1
+     -2
+     -3
+ 8) Block increment on 0x9
+ Text:
+ 0x9
+ 0x9
+     Expected:
+     1) Ctrl-A on visually block selected region (cursor at beginning):
+     0xa
+     0xa
+     2) Ctrl-A on visually block selected region (cursor at end)
+     0xa
+     0xa
+ 
+ 9) Increment and redo
+ Text:
+ 2
+ 2
+ 
+ 3
+ 3
+ 
+     Expected:
+     1) 2 Ctrl-A on first 2 visually selected lines
+     4
+     4
+     2) redo (.) on 3
+     5
+     5
+ 10) sequentially decrement 1
+ Text:
+ 1
+ 1
+ 1
+ 1
+     Expected:
+     1) g Ctrl-X on visually selected lines
+     0
+     -1
+     -2
+     -3
+ 
+ 11) visually block selected indented lines
+ Text:
+     1
+ 1
+     1
+     1
+     Expexted:
+     1) g Ctrl-A on block selected indented lines
+     2
+ 1
+     3
+     4
+ 
+ 12) visually selected several columns
+ Text:
+ 0 0
+ 0 0
+ 0 0
+     Expected:
+     1) 'v' select last zero and first zeroes
+     0 1
+     1 0
+     1 0
+ 
  STARTTEST
  :so small.vim
  :"
***************
*** 77,92 ****
  :"
  :" Test 1
  :/^S1=/+,/^E1=/-y a
! :/^E1/+put a
!  :/^E1/+2put a
! f-v$ :/^E1/+3put a
! f1v$ :/^E1/+4put a
! f-v$ :/^E1/+5put a
  f1v$ 

  :" Test 22
  :/^S2=/+,/^E2=/-y a
! :/^E2/+put a
  V3k$ :.+put a
  V3k$ 

--- 193,208 ----
  :"
  :" Test 1
  :/^S1=/+,/^E1=/-y a
! :/^E1=/+put a
!  :/^E1=/+2put a
! f-v$ :/^E1=/+3put a
! f1v$ :/^E1=/+4put a
! f-v$ :/^E1=/+5put a
  f1v$ 

  :" Test 22
  :/^S2=/+,/^E2=/-y a
! :/^E2=/+put a
  V3k$ :.+put a
  V3k$ 

***************
*** 101,106 ****
--- 217,265 ----
  :/^E4=/+put a
  vf- 

+ :" Test 5
+ :set nrformats+=alpha
+ :/^S5=/+,/^E5=/-y a
+ :/^E5=/+put a
+ v3kg 
+ 
+ :" Test 6
+ :/^S6=/+,/^E6=/-y a
+ :/^E6=/+put a
+ v3kg 
+ 
+ :" Test 7
+ :/^S7=/+,/^E7=/-y a
+ :/^E7=/+put a
+ V4k :.+put a
+ V4k 
+ 
+ :" Test 8
+ :/^S8=/+,/^E8=/-y a
+ :/^E8=/+put a
+ k j$ :.+put a
+ k$ + 
+ 
+ :" Test 9
+ :/^S9=/+,/^E9=/-y a
+ :/^E9=/+put a
+ 5kVj2 2j.
+ 
+ :" Test 10
+ :/^S10=/+,/^E10=/-y a
+ :/^E10=/+put a
+ V3kg 
+ 
+ : Test 11
+ :/^S11=/+,/^E11=/-y a
+ :/^E11=/+put a
+ 3kf1 3jg 
+ 
+ :" Test 12
+ :/^S12=/+,/^E12=/-y a
+ :/^E12=/+put a
+ 2k$v++ 
+ 
  :" Save the report
  :/^# Test 1/,$w! test.out
  :qa!
***************
*** 142,146 ****
--- 301,393 ----
  E4=====

  
+ 
+ # Test 5
+ S5====
+ a
+ a
+ a
+ a
+ E5====
+ 
+ 
+ # Test 6
+ S6====
+ z
+ z
+ z
+ z
+ E6====
+ 
+ 
+ 
+ # Test 7
+ S7====
+ 2
+ 1
+ 0
+ -1
+ -2
+ E7====
+ 
+ 
+ 
+ # Test 8
+ S8====
+ 0x9
+ 0x9
+ E8====
+ 
+ 
+ 
+ 
+ # Test 9
+ S9====
+ 2
+ 2
+ 
+ 3
+ 3
+ 
+ E9====
+ 
+ 
+ 
+ 
+ # Test 10
+ S10====
+ 1
+ 1
+ 1
+ 1
+ E10====
+ 
+ 
+ 
+ 
+ # Test 11
+ S11====
+     1
+ 1
+     1
+     1
+ E11====
+ 
+ 
+ 
+ # Test 12
+ S12====
+ 0 0
+ 0 0
+ 0 0
+ E12====
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
  ENDTEST

*** ../vim-7.4.764/src/testdir/test_increment.ok	2015-06-25 13:57:20.033431073 +0200
--- src/testdir/test_increment.ok	2015-07-03 11:43:43.254141124 +0200
***************
*** 62,66 ****
--- 62,193 ----

  foobar-10

+ 
+ # Test 5
+ S5====
+ a
+ a
+ a
+ a
+ E5====
+ 
+ b
+ c
+ d
+ e
+ 
+ # Test 6
+ S6====
+ z
+ z
+ z
+ z
+ E6====
+ 
+ y
+ x
+ w
+ v
+ 
+ 
+ # Test 7
+ S7====
+ 2
+ 1
+ 0
+ -1
+ -2
+ E7====
+ 
+ 3
+ 2
+ 1
+ 0
+ -1
+ 
+ 1
+ 0
+ -1
+ -2
+ -3
+ 
+ # Test 8
+ S8====
+ 0x9
+ 0x9
+ E8====
+ 
+ 0xa
+ 0xa
+ 
+ 0xa
+ 0xa
+ 
+ 
+ # Test 9
+ S9====
+ 2
+ 2
+ 
+ 3
+ 3
+ 
+ E9====
+ 
+ 4
+ 4
+ 
+ 5
+ 5
+ 
+ 
+ 
+ 
+ # Test 10
+ S10====
+ 1
+ 1
+ 1
+ 1
+ E10====
+ 
+ 0
+ -1
+ -2
+ -3
+ 
+ 
+ 
+ # Test 11
+ S11====
+     1
+ 1
+     1
+     1
+ E11====
+ 
+     2
+ 1
+     3
+     4
+ 
+ 
+ # Test 12
+ S12====
+ 0 0
+ 0 0
+ 0 0
+ E12====
+ 
+ 0 1
+ 1 0
+ 1 0
+ 
+ 
+ 
+ 
+ 
+ 
+ 
  ENDTEST

*** ../vim-7.4.764/src/version.c	2015-06-28 19:24:32.198911433 +0200
--- src/version.c	2015-07-03 11:45:07.697242802 +0200
***************
*** 743,744 ****
--- 743,746 ----
  {   /* Add new patch number below this line */
+ /**/
+     765,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
171. You invent another person and chat with yourself in empty chat rooms.

 /// Bram Moolenaar -- Bram <at> 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    ///

-- 
--

-- 
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

--- 
You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe <at> googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Rexdf | 3 Jul 06:40 2015
Picon

Patch for support Racket 6.2 for Windows x64

diff -r 99fc18dc1ede src/Make_mvc.mak
--- a/src/Make_mvc.mak  Sun Jun 28 19:24:40 2015 +0200
+++ b/src/Make_mvc.mak  Fri Jul 03 12:20:48 2015 +0800
 <at>  <at>  -797,7 +797,7  <at>  <at> 
 !endif
 CFLAGS = $(CFLAGS) -DFEAT_MZSCHEME -I $(MZSCHEME)\include
 !if EXIST("$(MZSCHEME)\collects\scheme\base.ss") \
-       || EXIST("$(MZSCHEME)\collects\scheme\base.rkt")
+       || EXIST("$(MZSCHEME)\collects\racket\base.rkt")
 # for MzScheme >= 4 we need to include byte code for basic Scheme stuff
 MZSCHEME_EXTRA_DEP = mzscheme_base.c
 CFLAGS = $(CFLAGS) -DINCLUDE_MZSCHEME_BASE
 <at>  <at>  -1170,7 +1170,7  <at>  <at> 
        $(CC) $(CFLAGS) if_mzsch.c \
                -DMZSCHEME_COLLECTS=\"$(MZSCHEME:\=\\)\\collects\"
 mzscheme_base.c:
-       $(MZSCHEME)\mzc --c-mods mzscheme_base.c ++lib scheme/base
+       $(MZSCHEME)\raco ctool --c-mods mzscheme_base.c ++lib scheme/base

 $(OUTDIR)/if_python.obj: $(OUTDIR) if_python.c if_py_both.h $(INCL)
        $(CC) $(CFLAGS) $(PYTHON_INC) if_python.c
diff -r 99fc18dc1ede src/if_mzsch.c
--- a/src/if_mzsch.c    Sun Jun 28 19:24:40 2015 +0200
+++ b/src/if_mzsch.c    Fri Jul 03 12:20:48 2015 +0800
 <at>  <at>  -871,7 +871,7  <at>  <at> 
 mzscheme_main(int argc, char** argv)
 {
 #if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) &&
defined(USE_THREAD_LOCAL)
-    scheme_register_tls_space(&tls_space, 0);
+    //scheme_register_tls_space(&tls_space, 0);
 #endif
 #ifdef TRAMPOLINED_MZVIM_STARTUP
     return scheme_main_setup(TRUE, mzscheme_env_main, argc, argv);

build command(we need raco in path to run $(MZSCHEME)\raco ctool
--c-mods mzscheme_base.c ++lib scheme/base):
SET PATH=%TOOLDIR%\racket-6.2;%PATH%
nmake -f Make_mvc.mak CPU=AMD64 ... MZSCHEME=%TOOLDIR%\racket-6.2
MZSCHEME_VER=xxxxxxx DYNAMIC_MZSCHEME=no MZSCHEME_GENERATE_BASE=yes

result: http://i.rexdf.org/images/mzscheme_vim.gif (Ignore the chinese)

In x64, we can just comment `scheme_register_tls_space(&tls_space,
0);`, it seems ok. (maybe we need something like `#if WIN64`.)

racket-6.1.1-x86_64-win32.exe seems not working with `raco ctool
--c-mods mzscheme_base.c ++lib scheme/base` neither `raco ctool
--c-mods mzscheme_base.c ++lib racket/base`

I use http://mirror.racket-lang.org/installers/6.2/racket-minimal-6.2-src.tgz
and run `raco pkg install -i main-distribution`.
http://mirror.racket-lang.org/installers/6.2/racket-6.2-x86_64-win32.exe
should work. if not, you should build from souce code with same
version Visual studio which you use to build gvim.

-- 
--

-- 
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

--- 
You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe <at> googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Gmane