Mercurial > vim
diff src/eval.c @ 4126:2b340e5c5baa v7.3.816
updated for version 7.3.816
Problem: Can't compute a hash.
Solution: Add the sha256() function. (Tyru, Hirohito Higashi)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 13 Feb 2013 17:35:04 +0100 |
parents | 16e8a09e8ab0 |
children | 36fd800b8c6c |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -688,6 +688,9 @@ static void f_setreg __ARGS((typval_T *a 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 */