diff src/evalfunc.c @ 27657:a077948be0f4 v8.2.4354

patch 8.2.4354: dynamic loading of libsodium not handled properly Commit: https://github.com/vim/vim/commit/d68b2fc034fa3c824e0d4d53745cfe9eb8c5ecd6 Author: K.Takata <kentkt@csc.jp> Date: Sat Feb 12 11:18:37 2022 +0000 patch 8.2.4354: dynamic loading of libsodium not handled properly Problem: Dynamic loading of libsodium not handled properly. Solution: Fix has() and :version. Show an error message when loading fails. Fix memory leaks. (Ken Takata, closes #9754)
author Bram Moolenaar <Bram@vim.org>
date Sat, 12 Feb 2022 12:30:03 +0100
parents 4eb2bf8b2f27
children 3813036f19cb
line wrap: on
line diff
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -5997,7 +5997,7 @@ f_has(typval_T *argvars, typval_T *rettv
 #endif
 		},
 	{"sodium",
-#ifdef FEAT_SODIUM
+#if defined(FEAT_SODIUM) && !defined(DYNAMIC_SODIUM)
 		1
 #else
 		0
@@ -6318,6 +6318,10 @@ f_has(typval_T *argvars, typval_T *rettv
 	else if (STRICMP(name, "tcl") == 0)
 	    n = tcl_enabled(FALSE);
 #endif
+#ifdef DYNAMIC_SODIUM
+	else if (STRICMP(name, "sodium") == 0)
+	    n = sodium_enabled(FALSE);
+#endif
 #if defined(FEAT_TERMINAL) && defined(MSWIN)
 	else if (STRICMP(name, "terminal") == 0)
 	    n = terminal_enabled();