aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval/typval.h
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2017-05-08 15:43:45 +0300
committerZyX <kp-pav@yandex.ru>2017-05-08 15:43:45 +0300
commit09f849b60000c2d401d82f2b2fb2badde5583658 (patch)
tree662d17ea2e905f4136abef2d003014cb7dc914d4 /src/nvim/eval/typval.h
parent1d7fde39a6927d01de74aefb540ad445bfdfbfda (diff)
parenta9605bb4aff76a934a4c39fbda093ee8fc8a1c71 (diff)
downloadrneovim-09f849b60000c2d401d82f2b2fb2badde5583658.tar.gz
rneovim-09f849b60000c2d401d82f2b2fb2badde5583658.tar.bz2
rneovim-09f849b60000c2d401d82f2b2fb2badde5583658.zip
Merge branch 'master' into luaviml'/lua
Diffstat (limited to 'src/nvim/eval/typval.h')
-rw-r--r--src/nvim/eval/typval.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/nvim/eval/typval.h b/src/nvim/eval/typval.h
index 7eab22bc12..0f659727ee 100644
--- a/src/nvim/eval/typval.h
+++ b/src/nvim/eval/typval.h
@@ -17,6 +17,7 @@
#include "nvim/pos.h" // for linenr_T
#include "nvim/gettext.h"
#include "nvim/message.h"
+#include "nvim/macros.h"
/// Type used for VimL VAR_NUMBER values
typedef int varnumber_T;
@@ -423,6 +424,23 @@ static inline bool tv_is_func(const typval_T tv)
return tv.v_type == VAR_FUNC || tv.v_type == VAR_PARTIAL;
}
+/// Specify that argument needs to be translated
+///
+/// Used for size_t length arguments to avoid calling gettext() and strlen()
+/// unless needed.
+#define TV_TRANSLATE (SIZE_MAX)
+
+/// Specify that argument is a NUL-terminated C string
+///
+/// Used for size_t length arguments to avoid calling strlen() unless needed.
+#define TV_CSTRING (SIZE_MAX - 1)
+
+#ifdef UNIT_TESTING
+// Do not use enum constants, see commit message.
+EXTERN const size_t kTVCstring INIT(= TV_CSTRING);
+EXTERN const size_t kTVTranslate INIT(= TV_TRANSLATE);
+#endif
+
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "eval/typval.h.generated.h"
#endif