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