diff options
author | Bram Moolenaar <Bram@vim.org> | 2015-09-01 18:51:39 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2015-09-01 18:51:39 +0200 |
commit | 5adfea1ac63e252556bccce54e92e8e10b58f592 (patch) | |
tree | 04bc312038adebab2e9cd2fcee55df5366b0ae30 /src | |
parent | 8667d66ca923d361e00e6369cbff37283db5a432 (diff) | |
download | vim-5adfea1ac63e252556bccce54e92e8e10b58f592.zip |
patch 7.4.848
Problem: CTRL-A on hex number in Visual block mode is incorrect.
Solution: Account for the "0x". (Hirohito Higashi)
Diffstat (limited to 'src')
-rw-r--r-- | src/charset.c | 2 | ||||
-rw-r--r-- | src/testdir/test_increment.in | 23 | ||||
-rw-r--r-- | src/testdir/test_increment.ok | 8 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 34 insertions, 1 deletions
diff --git a/src/charset.c b/src/charset.c index 327fa0375..a74bf0d5b 100644 --- a/src/charset.c +++ b/src/charset.c @@ -1909,6 +1909,8 @@ vim_str2nr(start, hexp, len, dooct, dohex, nptr, unptr, maxlen) else if (hex != 0 || dohex > 1) { /* hex */ + if (hex != 0) + n += 2; /* skip over "0x" */ while (vim_isxdigit(*ptr)) { un = 16 * un + (unsigned long)hex2nr(*ptr); diff --git a/src/testdir/test_increment.in b/src/testdir/test_increment.in index ecbc6f99a..2ae6b8a56 100644 --- a/src/testdir/test_increment.in +++ b/src/testdir/test_increment.in @@ -277,7 +277,15 @@ Text: Expected: 1) <Ctrl-a> and cursor is on a b - + +21) block-wise increment on part of hexadecimal +Text: +0x123456 + + Expected: + 1) Ctrl-V f3 <ctrl-a> +0x124456 + STARTTEST @@ -401,6 +409,12 @@ V3kg.. :.put =col('.') :set nrformats&vim +:" Test 21 +:/^S21=/+,/^E21=/-y a +:/^E21=/+put a +:set nrformats&vim +f3 + :" Save the report :/^# Test 1/,$w! test.out :qa! @@ -594,6 +608,13 @@ E20==== +# Test 21 +S21==== +0x123456 +E21==== + + + ENDTEST diff --git a/src/testdir/test_increment.ok b/src/testdir/test_increment.ok index 48e722f03..15d0e9b50 100644 --- a/src/testdir/test_increment.ok +++ b/src/testdir/test_increment.ok @@ -280,6 +280,14 @@ b 1 +# Test 21 +S21==== +0x123456 +E21==== + +0x124456 + + ENDTEST diff --git a/src/version.c b/src/version.c index 1a5e23764..b50521b62 100644 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 848, +/**/ 847, /**/ 846, |