From 44311583ebdf92f822fd3e59f8b1a537f32aeebb Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 4 Jan 2008 16:18:12 +0000 Subject: [PATCH] fix module-path? for planet sub-dirs svn: r8206 --- src/mzscheme/src/lightning/i386/fp.h | 2 +- src/mzscheme/src/module.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/mzscheme/src/lightning/i386/fp.h b/src/mzscheme/src/lightning/i386/fp.h index 79db017114..49619adcaa 100644 --- a/src/mzscheme/src/lightning/i386/fp.h +++ b/src/mzscheme/src/lightning/i386/fp.h @@ -62,7 +62,7 @@ ((s2) == 0 ? opr(0, (rd)) \ : (s2) == (s1) ? jit_fxch((rd), op(0, 0)) \ : jit_fxch((rd), op((s2), 0))) \ - : (rd) == (s2) ? jit_fxch((s1), op(0, (rd) == 0 ? (s1) : (rd))) \ + : (rd) == (s2) ? ((s1) == 0 ? op((s1), (s2)) : jit_fxch((s2), op((s1), 0))) \ : (FLDr (s1), op(0, (s2)+1), FSTPr((rd)+1))) #define jit_addr_d(rd,s1,s2) jit_fp_binary((rd),(s1),(s2),FADDrr,FADDrr) diff --git a/src/mzscheme/src/module.c b/src/mzscheme/src/module.c index 41a497c633..db1ded42fb 100644 --- a/src/mzscheme/src/module.c +++ b/src/mzscheme/src/module.c @@ -1842,10 +1842,10 @@ int scheme_is_module_path(Scheme_Object *obj) return 1; } } else if (SAME_OBJ(SCHEME_CAR(obj), planet_symbol)) { - Scheme_Object *a; + Scheme_Object *a, *subs; int len; - if (scheme_proper_list_length(obj) != 3) + if (scheme_proper_list_length(obj) < 3) return 0; obj = SCHEME_CDR(obj); a = SCHEME_CAR(obj); @@ -1854,6 +1854,7 @@ int scheme_is_module_path(Scheme_Object *obj) if (!ok_path_string(a, 0, 1, 1)) return 0; obj = SCHEME_CDR(obj); + subs = SCHEME_CDR(obj); obj = SCHEME_CAR(obj); len = scheme_proper_list_length(obj); if (len < 2) @@ -1901,6 +1902,12 @@ int scheme_is_module_path(Scheme_Object *obj) return 0; } + for (; !SCHEME_NULLP(subs); subs = SCHEME_CDR(subs)) { + a = SCHEME_CAR(subs); + if (!ok_path_string(a, 0, 0, 0)) + return 0; + } + return 1; } }