vim/7.4.806
2015-08-19 17:14:48 +02:00

183 lines
3.8 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

To: vim_dev@googlegroups.com
Subject: Patch 7.4.806
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.4.806
Problem: CTRL-A in Visual mode doesn't work properly with "alpha" in
'nrformat'.
Solution: Make it work. (Christian Brabandt)
Files: src/ops.c, src/testdir/test_increment.in,
src/testdir/test_increment.ok
*** ../vim-7.4.805/src/ops.c 2015-07-28 21:17:31.526069349 +0200
--- src/ops.c 2015-08-04 18:22:23.110938512 +0200
***************
*** 5492,5497 ****
--- 5492,5499 ----
for (i = lnum; i <= lnume; i++)
{
+ colnr_T stop = 0;
+
t = curwin->w_cursor;
curwin->w_cursor.lnum = i;
ptr = ml_get_curline();
***************
*** 5501,5531 ****
continue;
if (visual)
{
! if (doalp) /* search for ascii chars */
! {
! while (!ASCII_ISALPHA(ptr[col]) && ptr[col])
! col++;
! }
! /* skip to first digit, but allow for leading '-' */
! else if (dohex)
{
! while (!(vim_isxdigit(ptr[col]) || (ptr[col] == '-'
! && vim_isxdigit(ptr[col+1]))) && ptr[col])
! col++;
}
! else /* decimal */
{
! while (!(vim_isdigit(ptr[col]) || (ptr[col] == '-'
! && vim_isdigit(ptr[col+1]))) && ptr[col])
! col++;
}
}
- if (visual && ptr[col] == '-')
- {
- negative = TRUE;
- was_positive = FALSE;
- col++;
- }
/*
* If a number was found, and saving for undo works, replace the number.
*/
--- 5503,5530 ----
continue;
if (visual)
{
! if (VIsual_mode == 'v'
! && i == lnume)
! stop = curwin->w_cursor.col;
! else if (VIsual_mode == Ctrl_V
! && curbuf->b_visual.vi_curswant != MAXCOL)
! stop = curwin->w_cursor.col;
!
! while (ptr[col] != NUL
! && !vim_isdigit(ptr[col])
! && !(doalp && ASCII_ISALPHA(ptr[col])))
{
! if (col > 0 && col == stop)
! break;
! ++col;
}
!
! if (col > startcol && ptr[col - 1] == '-')
{
! negative = TRUE;
! was_positive = FALSE;
}
}
/*
* If a number was found, and saving for undo works, replace the number.
*/
*** ../vim-7.4.805/src/testdir/test_increment.in 2015-07-17 13:03:42.108357465 +0200
--- src/testdir/test_increment.in 2015-08-04 18:18:44.421419280 +0200
***************
*** 260,265 ****
--- 260,275 ----
9
12
+ 19) increment on number with nrformat including alpha
+ Text:
+ 1
+ 1a
+
+ Expected:
+ 1) <Ctrl-V>j$ <ctrl-a>
+ 2
+ 1b
+
STARTTEST
***************
*** 369,374 ****
--- 379,391 ----
:/^E18=/+put a
V3kg..
+ :" Test 19
+ :set nrformats+=alpha
+ :/^S19=/+,/^E19=/-y a
+ :/^E19=/+put a
+ k$
+ :set nrformats&vim
+
:" Save the report
:/^# Test 1/,$w! test.out
:qa!
***************
*** 547,552 ****
--- 564,576 ----
+ # Test 19
+ S19====
+ 1
+ 1a
+ E19====
+
+
ENDTEST
*** ../vim-7.4.805/src/testdir/test_increment.ok 2015-07-17 13:03:42.108357465 +0200
--- src/testdir/test_increment.ok 2015-08-04 18:18:44.425419233 +0200
***************
*** 261,266 ****
--- 261,275 ----
12
+ # Test 19
+ S19====
+ 1
+ 1a
+ E19====
+
+ 2
+ 2a
+
ENDTEST
*** ../vim-7.4.805/src/version.c 2015-08-04 17:43:20.577543527 +0200
--- src/version.c 2015-08-04 18:08:55.096101557 +0200
***************
*** 743,744 ****
--- 743,746 ----
{ /* Add new patch number below this line */
+ /**/
+ 806,
/**/
--
Not too long ago, compress was something you did to garbage...
/// 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 ///