forked from aniani/vim
updated for version 7.3.798
Problem: MzScheme: circular list does not work correctly. Solution: Separate Mac-specific code from generic code. (Sergey Khorev)
This commit is contained in:
@@ -965,6 +965,7 @@ startup_mzscheme(void)
|
||||
#ifdef MZSCHEME_COLLECTS
|
||||
/* setup 'current-library-collection-paths' parameter */
|
||||
# if MZSCHEME_VERSION_MAJOR >= 299
|
||||
# ifdef MACOS
|
||||
{
|
||||
Scheme_Object *coll_byte_string = NULL;
|
||||
Scheme_Object *coll_char_string = NULL;
|
||||
@@ -985,6 +986,36 @@ startup_mzscheme(void)
|
||||
MZ_GC_CHECK();
|
||||
MZ_GC_UNREG();
|
||||
}
|
||||
# else
|
||||
{
|
||||
Scheme_Object *coll_byte_string = NULL;
|
||||
Scheme_Object *coll_char_string = NULL;
|
||||
Scheme_Object *coll_path = NULL;
|
||||
Scheme_Object *coll_pair = NULL;
|
||||
Scheme_Config *config = NULL;
|
||||
|
||||
MZ_GC_DECL_REG(5);
|
||||
MZ_GC_VAR_IN_REG(0, coll_byte_string);
|
||||
MZ_GC_VAR_IN_REG(1, coll_char_string);
|
||||
MZ_GC_VAR_IN_REG(2, coll_path);
|
||||
MZ_GC_VAR_IN_REG(3, coll_pair);
|
||||
MZ_GC_VAR_IN_REG(4, config);
|
||||
MZ_GC_REG();
|
||||
coll_byte_string = scheme_make_byte_string(MZSCHEME_COLLECTS);
|
||||
MZ_GC_CHECK();
|
||||
coll_char_string = scheme_byte_string_to_char_string(coll_byte_string);
|
||||
MZ_GC_CHECK();
|
||||
coll_path = scheme_char_string_to_path(coll_char_string);
|
||||
MZ_GC_CHECK();
|
||||
coll_pair = scheme_make_pair(coll_path, scheme_null);
|
||||
MZ_GC_CHECK();
|
||||
config = scheme_current_config();
|
||||
MZ_GC_CHECK();
|
||||
scheme_set_param(config, MZCONFIG_COLLECTION_PATHS, coll_pair);
|
||||
MZ_GC_CHECK();
|
||||
MZ_GC_UNREG();
|
||||
}
|
||||
# endif
|
||||
# else
|
||||
{
|
||||
Scheme_Object *coll_string = NULL;
|
||||
|
@@ -38,8 +38,7 @@ STARTTEST
|
||||
:" circular list (at the same time test lists containing lists)
|
||||
:mz (set-car! (cddr l) l)
|
||||
:let l2 = mzeval("h")["list"]
|
||||
:" bug: this returns item2, but it should be l2
|
||||
:if l2[2] == "item2"
|
||||
:if l2[2] == l2
|
||||
:let res = "OK"
|
||||
:else
|
||||
:let res = "FAILED: " . l2[2]
|
||||
|
@@ -725,6 +725,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
798,
|
||||
/**/
|
||||
797,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user