diff options
-rw-r--r-- | src/nvim/ex_eval.c | 4 | ||||
-rw-r--r-- | src/nvim/if_cscope.c | 2 | ||||
-rw-r--r-- | src/nvim/menu.c | 6 | ||||
-rw-r--r-- | src/nvim/strings.c | 7 |
4 files changed, 13 insertions, 6 deletions
diff --git a/src/nvim/ex_eval.c b/src/nvim/ex_eval.c index f4aaab5c43..a32f7db5f2 100644 --- a/src/nvim/ex_eval.c +++ b/src/nvim/ex_eval.c @@ -388,12 +388,12 @@ char *get_exception_string(void *value, except_type_T type, char_u *cmdname, int mesg = ((struct msglist *)value)->throw_msg; if (cmdname != NULL && *cmdname != NUL) { size_t cmdlen = STRLEN(cmdname); - ret = (char *)vim_strnsave((char_u *)"Vim(", 4 + cmdlen + 2 + STRLEN(mesg)); + ret = xstrnsave("Vim(", 4 + cmdlen + 2 + STRLEN(mesg)); STRCPY(&ret[4], cmdname); STRCPY(&ret[4 + cmdlen], "):"); val = ret + 4 + cmdlen + 2; } else { - ret = (char *)vim_strnsave((char_u *)"Vim:", 4 + STRLEN(mesg)); + ret = xstrnsave("Vim:", 4 + STRLEN(mesg)); val = ret + 4; } diff --git a/src/nvim/if_cscope.c b/src/nvim/if_cscope.c index 9ca01137cf..093ca238f1 100644 --- a/src/nvim/if_cscope.c +++ b/src/nvim/if_cscope.c @@ -433,7 +433,7 @@ static int cs_add_common(char *arg1, char *arg2, char *flags) if (fname == NULL) { goto add_err; } - fname = (char *)vim_strnsave((char_u *)fname, len); + fname = xstrnsave(fname, len); xfree(fbuf); FileInfo file_info; bool file_info_ok = os_fileinfo(fname, &file_info); diff --git a/src/nvim/menu.c b/src/nvim/menu.c index 0af39b0b0b..f648a06284 100644 --- a/src/nvim/menu.c +++ b/src/nvim/menu.c @@ -1275,7 +1275,7 @@ static char *popup_mode_name(char *name, int idx) size_t len = STRLEN(name); assert(len >= 4); - char *p = (char *)vim_strnsave((char_u *)name, len + 1); + char *p = xstrnsave(name, len + 1); memmove(p + 6, p + 5, len - 4); p[5] = menu_mode_chars[idx]; @@ -1308,7 +1308,7 @@ static char *menu_text(const char *str, int *mnemonic, char **actext) *actext = xstrdup(p + 1); } assert(p >= str); - text = (char *)vim_strnsave((char_u *)str, (size_t)(p - str)); + text = xstrnsave(str, (size_t)(p - str)); } else { text = xstrdup(str); } @@ -1560,7 +1560,7 @@ void ex_menutranslate(exarg_T *eap) from = xstrdup(from); from_noamp = menu_text(from, NULL, NULL); assert(arg >= to); - to = (char *)vim_strnsave((char_u *)to, (size_t)(arg - to)); + to = xstrnsave(to, (size_t)(arg - to)); menu_translate_tab_and_shift(from); menu_translate_tab_and_shift(to); menu_unescape_name(from); diff --git a/src/nvim/strings.c b/src/nvim/strings.c index 9d4c64e4b1..848044ee7c 100644 --- a/src/nvim/strings.c +++ b/src/nvim/strings.c @@ -67,6 +67,13 @@ char_u *vim_strnsave(const char_u *string, size_t len) return (char_u *)strncpy(xmallocz(len), (char *)string, len); } +/// A clone of vim_strnsave() that uses char* instead of char_u* +char *xstrnsave(const char *string, size_t len) + FUNC_ATTR_NONNULL_RET FUNC_ATTR_MALLOC FUNC_ATTR_NONNULL_ALL +{ + return strncpy(xmallocz(len), string, len); // NOLINT(runtime/printf) +} + /* * Same as vim_strsave(), but any characters found in esc_chars are preceded * by a backslash. |