From ff142a7a74038a944fd0f2392d791dc9ab3b2327 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 13 Feb 2026 17:02:10 +0800 Subject: [PATCH] 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 --- src/nvim/memory.c | 10 +++++----- src/nvim/strings.c | 4 +--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/nvim/memory.c b/src/nvim/memory.c index 47c4e42dbb..ec82848138 100644 --- 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 index a5e96bffb3..cc4de19d6f 100644 --- 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