mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 03:05:11 -07:00
fix: do not cast offset to char_u
* str_utf_start/end both cast the offset into the utf string
to a char_u, a pointer + long is well-defined and the cast is
unnecessary. This previously resulted in issues for offsets greater than
256.
(cherry picked from commit 1a887293ef
)
This commit is contained in:
parent
5c8e5432c0
commit
93f1ec0a59
@ -231,7 +231,7 @@ static int nlua_str_utf_start(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL
|
||||
if (offset < 0 || offset > (intptr_t)s1_len) {
|
||||
return luaL_error(lstate, "index out of range");
|
||||
}
|
||||
int tail_offset = mb_head_off((char_u *)s1, (char_u *)s1 + (char_u)offset - 1);
|
||||
int tail_offset = mb_head_off((char_u *)s1, (char_u *)s1 + offset - 1);
|
||||
lua_pushinteger(lstate, tail_offset);
|
||||
return 1;
|
||||
}
|
||||
@ -251,7 +251,7 @@ static int nlua_str_utf_end(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL
|
||||
if (offset < 0 || offset > (intptr_t)s1_len) {
|
||||
return luaL_error(lstate, "index out of range");
|
||||
}
|
||||
int tail_offset = mb_tail_off((char_u *)s1, (char_u *)s1 + (char_u)offset - 1);
|
||||
int tail_offset = mb_tail_off((char_u *)s1, (char_u *)s1 + offset - 1);
|
||||
lua_pushinteger(lstate, tail_offset);
|
||||
return 1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user