summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/charset.c2
-rw-r--r--src/testdir/test_increment.in23
-rw-r--r--src/testdir/test_increment.ok8
-rw-r--r--src/version.c2
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,