diff src/if_mzsch.c @ 7712:bce3b5ddb393 v7.4.1154

commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jan 23 19:46:28 2016 +0100 patch 7.4.1154 Problem: No support for JSON. Solution: Add jsonencode() and jsondecode(). Also add v:false, v:true, v:null and v:none.
author Christian Brabandt <cb@256bit.org>
date Sat, 23 Jan 2016 20:00:04 +0100
parents 77a14f3bc18b
children e493c5dd85b3
line wrap: on
line diff
--- a/src/if_mzsch.c
+++ b/src/if_mzsch.c
@@ -3084,6 +3084,14 @@ vim_to_mzscheme_impl(typval_T *vim_value
 
 	MZ_GC_UNREG();
     }
+    else if (vim_value->v_type == VAR_SPECIAL)
+    {
+	if (vim_value->vval.v_number <= VVAL_TRUE)
+	    result = scheme_make_integer((long)vim_value->vval.v_number);
+	else
+	    result = scheme_null;
+	MZ_GC_CHECK();
+    }
     else
     {
 	result = scheme_void;
@@ -3148,8 +3156,8 @@ mzscheme_to_vim_impl(Scheme_Object *obj,
 	copy_tv(found, tv);
     else if (SCHEME_VOIDP(obj))
     {
-	tv->v_type = VAR_NUMBER;
-	tv->vval.v_number = 0;
+	tv->v_type = VAR_SPECIAL;
+	tv->vval.v_number = VVAL_NULL;
     }
     else if (SCHEME_INTP(obj))
     {
@@ -3158,7 +3166,7 @@ mzscheme_to_vim_impl(Scheme_Object *obj,
     }
     else if (SCHEME_BOOLP(obj))
     {
-	tv->v_type = VAR_NUMBER;
+	tv->v_type = VAR_SPECIAL;
 	tv->vval.v_number = SCHEME_TRUEP(obj);
     }
 # ifdef FEAT_FLOAT