aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval/typval.c
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2017-04-13 19:16:32 +0300
committerZyX <kp-pav@yandex.ru>2017-04-14 23:58:46 +0300
commitb2942d1e729c4cfa8ec9d3bedcdc7ad838a689ef (patch)
tree77393686e3a0c7b5d12a1b4748f282b62fafe73b /src/nvim/eval/typval.c
parent58d2ce9bdbb6feab7176f451ca0248c78606aa2e (diff)
downloadrneovim-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.c22
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;
}