summaryrefslogtreecommitdiff
path: root/src/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c
index dc7c2409f..9f63d4525 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -688,6 +688,9 @@ static void f_setreg __ARGS((typval_T *argvars, typval_T *rettv));
static void f_settabvar __ARGS((typval_T *argvars, typval_T *rettv));
static void f_settabwinvar __ARGS((typval_T *argvars, typval_T *rettv));
static void f_setwinvar __ARGS((typval_T *argvars, typval_T *rettv));
+#ifdef FEAT_CRYPT
+static void f_sha256 __ARGS((typval_T *argvars, typval_T *rettv));
+#endif /* FEAT_CRYPT */
static void f_shellescape __ARGS((typval_T *argvars, typval_T *rettv));
static void f_shiftwidth __ARGS((typval_T *argvars, typval_T *rettv));
static void f_simplify __ARGS((typval_T *argvars, typval_T *rettv));
@@ -8055,6 +8058,9 @@ static struct fst
{"settabvar", 3, 3, f_settabvar},
{"settabwinvar", 4, 4, f_settabwinvar},
{"setwinvar", 3, 3, f_setwinvar},
+#ifdef FEAT_CRYPT
+ {"sha256", 1, 1, f_sha256},
+#endif
{"shellescape", 1, 2, f_shellescape},
{"shiftwidth", 0, 0, f_shiftwidth},
{"simplify", 1, 1, f_simplify},
@@ -16710,6 +16716,24 @@ setwinvar(argvars, rettv, off)
}
}
+#ifdef FEAT_CRYPT
+/*
+ * "sha256({string})" function
+ */
+ static void
+f_sha256(argvars, rettv)
+ typval_T *argvars;
+ typval_T *rettv;
+{
+ char_u *p;
+
+ p = get_tv_string(&argvars[0]);
+ rettv->vval.v_string = vim_strsave(
+ sha256_bytes(p, (int)STRLEN(p), NULL, 0));
+ rettv->v_type = VAR_STRING;
+}
+#endif /* FEAT_CRYPT */
+
/*
* "shellescape({string})" function
*/