commit ff142a7a74038a944fd0f2392d791dc9ab3b2327
parent 1a1690660effdd22545a4f5c4ae65407563eb16c
Author: zeertzjq <zeertzjq@outlook.com>
Date: Fri, 13 Feb 2026 17:02:10 +0800
vim-patch:9.1.2147: Compile warning in strings.c (#37842)
Problem: Compile warning in strings.c
Solution: Use const qualifier (John Marriott).
closes: vim/vim#19387
https://github.com/vim/vim/commit/388654af27a6e422172d6ee6c40b061f5dd6dfa0
Co-authored-by: John Marriott <basilisk@internode.on.net>
Diffstat:
2 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/src/nvim/memory.c b/src/nvim/memory.c
@@ -273,8 +273,8 @@ size_t xstrnlen(const char *s, size_t n)
char *xstrchrnul(const char *str, char c)
FUNC_ATTR_NONNULL_RET FUNC_ATTR_NONNULL_ALL FUNC_ATTR_PURE
{
- char *p = strchr(str, c);
- return p ? p : (char *)(str + strlen(str));
+ const char *p = strchr(str, c);
+ return p ? (char *)p : (char *)(str + strlen(str));
}
/// A version of memchr() that returns a pointer one past the end
@@ -288,8 +288,8 @@ char *xstrchrnul(const char *str, char c)
void *xmemscan(const void *addr, char c, size_t size)
FUNC_ATTR_NONNULL_RET FUNC_ATTR_NONNULL_ALL FUNC_ATTR_PURE
{
- char *p = memchr(addr, c, size);
- return p ? p : (char *)addr + size;
+ const char *p = memchr(addr, c, size);
+ return p ? (char *)p : (char *)addr + size;
}
/// Replaces every instance of `c` with `x`.
@@ -524,7 +524,7 @@ char *xstrndup(const char *str, size_t len)
FUNC_ATTR_MALLOC FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_RET
FUNC_ATTR_NONNULL_ALL
{
- char *p = memchr(str, NUL, len);
+ const char *p = memchr(str, NUL, len);
return xmemdupz(str, p ? (size_t)(p - str) : len);
}
diff --git a/src/nvim/strings.c b/src/nvim/strings.c
@@ -1100,9 +1100,7 @@ static int parse_fmt_types(const char ***ap_types, int *num_posarg, const char *
while (*p != NUL) {
if (*p != '%') {
- char *q = strchr(p + 1, '%');
- size_t n = (q == NULL) ? strlen(p) : (size_t)(q - p);
-
+ size_t n = (size_t)(xstrchrnul(p + 1, '%') - p);
p += n;
} else {
// allowed values: \0, h, l, L