mirror of
https://github.com/vim/vim.git
synced 2025-10-20 08:14:18 -04:00
patch 7.4.1688
Problem: MzScheme does not support partial. Solution: Add minimal partial support. (Ken Takata)
This commit is contained in:
@@ -3109,6 +3109,7 @@ vim_to_mzscheme_impl(typval_T *vim_value, int depth, Scheme_Hash_Table *visited)
|
|||||||
MZ_GC_VAR_IN_REG(0, funcname);
|
MZ_GC_VAR_IN_REG(0, funcname);
|
||||||
MZ_GC_REG();
|
MZ_GC_REG();
|
||||||
|
|
||||||
|
/* FIXME: func_ref() and func_unref() are needed. */
|
||||||
funcname = scheme_make_byte_string((char *)vim_value->vval.v_string);
|
funcname = scheme_make_byte_string((char *)vim_value->vval.v_string);
|
||||||
MZ_GC_CHECK();
|
MZ_GC_CHECK();
|
||||||
result = scheme_make_closed_prim_w_arity(vim_funcref, funcname,
|
result = scheme_make_closed_prim_w_arity(vim_funcref, funcname,
|
||||||
@@ -3117,6 +3118,30 @@ vim_to_mzscheme_impl(typval_T *vim_value, int depth, Scheme_Hash_Table *visited)
|
|||||||
|
|
||||||
MZ_GC_UNREG();
|
MZ_GC_UNREG();
|
||||||
}
|
}
|
||||||
|
else if (vim_value->v_type == VAR_PARTIAL)
|
||||||
|
{
|
||||||
|
if (vim_value->vval.v_partial == NULL)
|
||||||
|
result = scheme_null;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Scheme_Object *funcname = NULL;
|
||||||
|
|
||||||
|
MZ_GC_DECL_REG(1);
|
||||||
|
MZ_GC_VAR_IN_REG(0, funcname);
|
||||||
|
MZ_GC_REG();
|
||||||
|
|
||||||
|
/* FIXME: func_ref() and func_unref() are needed. */
|
||||||
|
/* TODO: Support pt_dict and pt_argv. */
|
||||||
|
funcname = scheme_make_byte_string(
|
||||||
|
(char *)vim_value->vval.v_partial->pt_name);
|
||||||
|
MZ_GC_CHECK();
|
||||||
|
result = scheme_make_closed_prim_w_arity(vim_funcref, funcname,
|
||||||
|
(const char *)BYTE_STRING_VALUE(funcname), 0, -1);
|
||||||
|
MZ_GC_CHECK();
|
||||||
|
|
||||||
|
MZ_GC_UNREG();
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (vim_value->v_type == VAR_SPECIAL)
|
else if (vim_value->v_type == VAR_SPECIAL)
|
||||||
{
|
{
|
||||||
if (vim_value->vval.v_number <= VVAL_TRUE)
|
if (vim_value->vval.v_number <= VVAL_TRUE)
|
||||||
|
@@ -748,6 +748,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1688,
|
||||||
/**/
|
/**/
|
||||||
1687,
|
1687,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user