Mercurial > vim
changeset 1687:b2e037ed7e33 v7.2b.020
updated for version 7.2b-020
author | vimboss |
---|---|
date | Thu, 24 Jul 2008 19:31:11 +0000 |
parents | c7c53db66b55 |
children | 17526daaf79d |
files | src/charset.c src/ex_cmds.c src/version.c |
diffstat | 3 files changed, 27 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/src/charset.c +++ b/src/charset.c @@ -1466,9 +1466,11 @@ getvcols(wp, pos1, pos2, left, right) * 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 @@ skipwhite(p) * 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 @@ skipdigits(p) * 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 @@ skiphex(p) * 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 @@ skiptodigit(p) * 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;
--- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -479,10 +479,13 @@ ex_sort(eap) 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;