| To: vim_dev@googlegroups.com |
| Subject: Patch 7.3.798 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.3.798 (after 7.3.791) |
| Problem: MzScheme: circular list does not work correctly. |
| Solution: Separate Mac-specific code from generic code. (Sergey Khorev) |
| Files: src/if_mzsch.c, src/testdir/test70.in |
| |
| |
| |
| |
| |
| *** 965,970 **** |
| --- 965,971 ---- |
| #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,990 **** |
| --- 986,1021 ---- |
| 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,45 **** |
| :" 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" |
| :let res = "OK" |
| :else |
| :let res = "FAILED: " . l2[2] |
| --- 38,44 ---- |
| :" circular list (at the same time test lists containing lists) |
| :mz (set-car! (cddr l) l) |
| :let l2 = mzeval("h")["list"] |
| ! :if l2[2] == l2 |
| :let res = "OK" |
| :else |
| :let res = "FAILED: " . l2[2] |
| |
| |
| |
| *** 727,728 **** |
| --- 727,730 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 798, |
| /**/ |
| |
| -- |
| Be nice to your kids... they'll be the ones choosing your nursing home. |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ an exciting new programming language -- http://www.Zimbu.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |