~ chicken-core (chicken-5) 4f4738fdec98062301fa8f970eca9e92a67bccb9


commit 4f4738fdec98062301fa8f970eca9e92a67bccb9
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Tue Jun 12 09:39:29 2012 +0200
Commit:     Christian Kellermann <ckeen@pestilenz.org>
CommitDate: Tue Jun 12 10:15:06 2012 +0200

    update module-exist-list when doing an deferred export in a module with wildcard export list (contributed by 'megane')
    
    Signed-off-by: felix <felix@call-with-current-continuation.org>
    Signed-off-by: Christian Kellermann <ckeen@pestilenz.org>

diff --git a/modules.scm b/modules.scm
index fd17c627..1a4cadad 100644
--- a/modules.scm
+++ b/modules.scm
@@ -157,11 +157,13 @@
 	  (##sys#current-module mod))))))
 
 (define (##sys#add-to-export-list mod exps)
-  (set-module-export-list! 
-   mod
-   (let ((xl (module-export-list mod)))
-     (or (eq? xl #t) 		; ==> #t
-	 (append xl exps)))))
+  (let ((xl (module-export-list mod)))
+    (if (eq? xl #t)
+	(let ((el (module-exist-list mod)))
+	  (set-module-exist-list!
+	   mod (append el exps)))
+	(set-module-export-list!
+	 mod (append xl exps)))))
 
 (define (##sys#toplevel-definition-hook sym mod exp val) #f)
 
diff --git a/tests/module-tests.scm b/tests/module-tests.scm
index 1bbacfab..ca1de1a4 100644
--- a/tests/module-tests.scm
+++ b/tests/module-tests.scm
@@ -225,5 +225,28 @@
    a)
  1)
 
+;; #865 - "*" export list needs special treatment when using "export"
+;; (fix contributed by "megane")
+
+(module
+ m22
+ *
+ (import chicken scheme)
+ (define b 2))
+
+(module
+ m23
+ *
+ (import chicken scheme)
+ (import m22)
+ (export b) )
+
+(test-equal
+ "`*' export-list + explicit export"
+ (module m24 ()
+   (import m23)
+   b)
+ 2)
+
 (test-end "modules")
 
Trap