]> granicus.if.org Git - vim/commitdiff
updated for version 7.3.798 v7.3.798
authorBram Moolenaar <Bram@vim.org>
Thu, 31 Jan 2013 20:09:15 +0000 (21:09 +0100)
committerBram Moolenaar <Bram@vim.org>
Thu, 31 Jan 2013 20:09:15 +0000 (21:09 +0100)
Problem:    MzScheme: circular list does not work correctly.
Solution:   Separate Mac-specific code from generic code. (Sergey Khorev)

src/if_mzsch.c
src/testdir/test70.in
src/version.c

index f9bcd5d91c48a1677d7ba207251ddb549a09d214..238446409584d14d0200813a74672ebf98ea37c4 100644 (file)
@@ -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;
index 24c0c12b484d95e578e67f471d6a99c3922724a5..9fbe818b3d9ebf38b3f13d5a4881781869e18df1 100644 (file)
@@ -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]
index 8cd0432d02a7b2bac8cdeb0b0919755501a3ad73..2f17d2c4ed93ea0d94bec077eb566f545461c8b1 100644 (file)
@@ -725,6 +725,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    798,
 /**/
     797,
 /**/