From 6bb483467a2e8a7f260bbdf732e06d3797064ed8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Aug 19 2015 15:14:48 +0000 Subject: - patchlevel 806 --- diff --git a/7.4.806 b/7.4.806 new file mode 100644 index 0000000..a9e08c1 --- /dev/null +++ b/7.4.806 @@ -0,0 +1,182 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.806 +Fcc: outbox +From: Bram Moolenaar +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) j$ ++ 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 ///