diff options
author | ZyX <kp-pav@yandex.ru> | 2017-04-13 19:16:32 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2017-04-14 23:58:46 +0300 |
commit | b2942d1e729c4cfa8ec9d3bedcdc7ad838a689ef (patch) | |
tree | 77393686e3a0c7b5d12a1b4748f282b62fafe73b /src/nvim/eval/typval.c | |
parent | 58d2ce9bdbb6feab7176f451ca0248c78606aa2e (diff) | |
download | rneovim-b2942d1e729c4cfa8ec9d3bedcdc7ad838a689ef.tar.gz rneovim-b2942d1e729c4cfa8ec9d3bedcdc7ad838a689ef.tar.bz2 rneovim-b2942d1e729c4cfa8ec9d3bedcdc7ad838a689ef.zip |
eval: Change the point at which arg_errmsg and its length are changed
Ref #6437
Diffstat (limited to 'src/nvim/eval/typval.c')
-rw-r--r-- | src/nvim/eval/typval.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/nvim/eval/typval.c b/src/nvim/eval/typval.c index eb6db9547b..c29c67124f 100644 --- a/src/nvim/eval/typval.c +++ b/src/nvim/eval/typval.c @@ -2045,11 +2045,14 @@ bool tv_islocked(const typval_T *const tv) /// /// @param[in] lock Lock status. /// @param[in] name Variable name, used in the error message. -/// @param[in] name_len Variable name length. +/// @param[in] name_len Variable name length. Use #TV_TRANSLATE to translate +/// variable name and compute the length. Use #TV_CSTRING +/// to compute the length with strlen() without +/// translating. /// /// @return true if variable is locked, false otherwise. -bool tv_check_lock(const VarLockStatus lock, const char *const name, - const size_t name_len) +bool tv_check_lock(const VarLockStatus lock, const char *name, + size_t name_len) FUNC_ATTR_WARN_UNUSED_RESULT { const char *error_message = NULL; @@ -2068,10 +2071,17 @@ bool tv_check_lock(const VarLockStatus lock, const char *const name, } assert(error_message != NULL); - const char *const unknown_name = _("Unknown"); + if (name == NULL) { + name = _("Unknown"); + name_len = strlen(name); + } else if (name_len == TV_TRANSLATE) { + name = _(name); + name_len = strlen(name); + } else if (name_len == TV_CSTRING) { + name_len = strlen(name); + } - emsgf(_(error_message), (name != NULL ? name_len : strlen(unknown_name)), - (name != NULL ? name : unknown_name)); + emsgf(_(error_message), (int)name_len, name); return true; } |