updated for version 7.2b-020
diff --git a/src/charset.c b/src/charset.c
index 0c9c511..0f4b0b9 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1466,9 +1466,11 @@
* skipwhite: skip over ' ' and '\t'.
*/
char_u *
-skipwhite(p)
- char_u *p;
+skipwhite(q)
+ char_u *q;
{
+ char_u *p = q;
+
while (vim_iswhite(*p)) /* skip to next non-white */
++p;
return p;
@@ -1478,9 +1480,11 @@
* skip over digits
*/
char_u *
-skipdigits(p)
- char_u *p;
+skipdigits(q)
+ char_u *q;
{
+ char_u *p = q;
+
while (VIM_ISDIGIT(*p)) /* skip to next non-digit */
++p;
return p;
@@ -1491,9 +1495,11 @@
* skip over digits and hex characters
*/
char_u *
-skiphex(p)
- char_u *p;
+skiphex(q)
+ char_u *q;
{
+ char_u *p = q;
+
while (vim_isxdigit(*p)) /* skip to next non-digit */
++p;
return p;
@@ -1505,9 +1511,11 @@
* skip to digit (or NUL after the string)
*/
char_u *
-skiptodigit(p)
- char_u *p;
+skiptodigit(q)
+ char_u *q;
{
+ char_u *p = q;
+
while (*p != NUL && !VIM_ISDIGIT(*p)) /* skip to next digit */
++p;
return p;
@@ -1517,9 +1525,11 @@
* skip to hex character (or NUL after the string)
*/
char_u *
-skiptohex(p)
- char_u *p;
+skiptohex(q)
+ char_u *q;
{
+ char_u *p = q;
+
while (*p != NUL && !vim_isxdigit(*p)) /* skip to next digit */
++p;
return p;
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 0f8af05..d700cc5 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -479,10 +479,13 @@
c = *s2;
(*s2) = 0;
/* Sorting on number: Store the number itself. */
+ p = s + start_col;
if (sort_hex)
- s = skiptohex(s + start_col);
+ s = skiptohex(p);
else
- s = skiptodigit(s + start_col);
+ s = skiptodigit(p);
+ if (s > p && s[-1] == '-')
+ --s; /* include preceding negative sign */
vim_str2nr(s, NULL, NULL, sort_oct, sort_hex,
&nrs[lnum - eap->line1].start_col_nr, NULL);
(*s2) = c;
diff --git a/src/version.c b/src/version.c
index d44083a..99b8565 100644
--- a/src/version.c
+++ b/src/version.c
@@ -677,6 +677,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 20,
+/**/
19,
/**/
18,