From 26733dd488874fee8dfc70d54167f427d5f50516 Mon Sep 17 00:00:00 2001 From: Sean Dewar Date: Thu, 3 Jun 2021 02:45:36 +0100 Subject: vim-patch:8.2.2309: 0o777 not recognized as octal Problem: 0o777 not recognized as octal. Solution: Use vim_isodigit(). (Ken Takata, closes vim/vim#7633, closes vim/vim#7631) https://github.com/vim/vim/commit/c37b655443e0a11a77a9f0707e3259ab4b8b3dda :scriptversion is N/A. --- src/nvim/charset.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/nvim/charset.c') diff --git a/src/nvim/charset.c b/src/nvim/charset.c index 94b6b7a8d7..ab4e4ad4bd 100644 --- a/src/nvim/charset.c +++ b/src/nvim/charset.c @@ -1463,7 +1463,7 @@ void vim_str2nr(const char_u *const start, int *const prep, int *const len, if (!STRING_ENDED(ptr + 2) && ptr[0] == '0' && (ptr[1] == 'o' || ptr[1] == 'O') - && ascii_isbdigit(ptr[2])) { + && ascii_isodigit(ptr[2])) { ptr += 2; } goto vim_str2nr_oct; @@ -1499,14 +1499,14 @@ void vim_str2nr(const char_u *const start, int *const prep, int *const len, if ((what & STR2NR_OOCT) && !STRING_ENDED(ptr + 2) && (pre == 'O' || pre == 'o') - && ascii_isbdigit(ptr[2])) { + && ascii_isodigit(ptr[2])) { ptr += 2; goto vim_str2nr_oct; } // Detect old octal format: 0 followed by octal digits. pre = 0; if (!(what & STR2NR_OCT) - || !('0' <= ptr[1] && ptr[1] <= '7')) { + || !ascii_isodigit(ptr[1])) { goto vim_str2nr_dec; } for (int i = 2; !STRING_ENDED(ptr + i) && ascii_isdigit(ptr[i]); i++) { @@ -1552,7 +1552,7 @@ vim_str2nr_bin: PARSE_NUMBER(2, (*ptr == '0' || *ptr == '1'), (*ptr - '0')); goto vim_str2nr_proceed; vim_str2nr_oct: - PARSE_NUMBER(8, ('0' <= *ptr && *ptr <= '7'), (*ptr - '0')); + PARSE_NUMBER(8, (ascii_isodigit(*ptr)), (*ptr - '0')); goto vim_str2nr_proceed; vim_str2nr_dec: PARSE_NUMBER(10, (ascii_isdigit(*ptr)), (*ptr - '0')); -- cgit