diff options
author | oni-link <knil.ino@gmail.com> | 2015-09-04 10:05:59 +0200 |
---|---|---|
committer | oni-link <knil.ino@gmail.com> | 2015-09-06 07:30:52 +0200 |
commit | 615e298a94fc9016a2f252aa9c474fe73bc55c1f (patch) | |
tree | 43a6aaa4f92866ff8991e9048ec86dafe13fef9d | |
parent | e2cbac7634b43320b9357c4adf5db3306f87b311 (diff) | |
download | rneovim-615e298a94fc9016a2f252aa9c474fe73bc55c1f.tar.gz rneovim-615e298a94fc9016a2f252aa9c474fe73bc55c1f.tar.bz2 rneovim-615e298a94fc9016a2f252aa9c474fe73bc55c1f.zip |
vim-patch:7.4.602
Problem: ":set" does not accept hex numbers as documented.
Solution: Use vim_str2nr(). (ZyX)
https://github.com/vim/vim/commit/18400e6430755c97eb7e31525ab4744502603731
-rw-r--r-- | runtime/doc/options.txt | 4 | ||||
-rw-r--r-- | src/nvim/option.c | 15 | ||||
-rw-r--r-- | src/nvim/version.c | 2 |
3 files changed, 6 insertions, 15 deletions
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index f28e5b9515..1393b11824 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -58,9 +58,7 @@ achieve special effects. These options come in three forms: :se[t] {option}:{value} Set string or number option to {value}. For numeric options the value can be given in decimal, - hex (preceded with 0x) or octal (preceded with '0') - (hex and octal are only available for machines which - have the strtol() function). + hex (preceded with 0x) or octal (preceded with '0'). The old value can be inserted by typing 'wildchar' (by default this is a <Tab>). See |cmdline-completion|. White space between {option} and '=' is allowed and diff --git a/src/nvim/option.c b/src/nvim/option.c index 308e2a28ee..6e82c45edf 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -1214,17 +1214,10 @@ do_set ( errmsg = e_invarg; goto skip; } - } - /* allow negative numbers (for 'undolevels') */ - else if (*arg == '-' || ascii_isdigit(*arg)) { - i = 0; - if (*arg == '-') - i = 1; - value = strtol((char *)arg, NULL, 0); - if (arg[i] == '0' && TOLOWER_ASC(arg[i + 1]) == 'x') - i += 2; - while (ascii_isdigit(arg[i])) - ++i; + } else if (*arg == '-' || ascii_isdigit(*arg)) { + // Allow negative (for 'undolevels'), octal and + // hex numbers. + vim_str2nr(arg, NULL, &i, true, true, &value, NULL); if (arg[i] != NUL && !ascii_iswhite(arg[i])) { errmsg = e_invarg; goto skip; diff --git a/src/nvim/version.c b/src/nvim/version.c index 9a8a50ea58..8f0e6ccfff 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -319,7 +319,7 @@ static int included_patches[] = { // 605, // 604, // 603, - // 602, + 602, 601, 600, 599, |