summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--debian/changelog10
-rw-r--r--debian/control2
-rw-r--r--guile.init22
3 files changed, 31 insertions, 3 deletions
diff --git a/debian/changelog b/debian/changelog
index e08dd62..10d362e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+slib (3a2-5) unstable; urgency=low
+
+ * guile.init (slib:load): Use the version that used to be in guile,
+ which searches paths (not relevant to the present bug) and makes sure
+ that loaded files land in the slib module (the cause of the present
+ bug).
+ * debian/control (slib): No longer conflict with gnucash of any version.
+
+ -- Thomas Bushnell, BSG <tb@debian.org> Mon, 16 Jan 2006 11:20:16 -0800
+
slib (3a2-4) unstable; urgency=high
* Unfortunately, slib-3a2 has an undiagnosed interoperability problem
diff --git a/debian/control b/debian/control
index 1ba8ee3..ad8e191 100644
--- a/debian/control
+++ b/debian/control
@@ -9,7 +9,7 @@ Package: slib
Section: devel
Priority: optional
Architecture: all
-Conflicts: libguile9 (<= 1:1.4-26), guile-1.6-libs (<= 1.6.7-1.1), gnucash (<= 1.8.12-3)
+Conflicts: libguile9 (<= 1:1.4-26), guile-1.6-libs (<= 1.6.7-1.1)
Description: Portable Scheme library
SLIB is a portable scheme library meant to provide compatibility and
utility functions for all standard scheme implementations. SLIB
diff --git a/guile.init b/guile.init
index c1a74f8..9fd36d9 100644
--- a/guile.init
+++ b/guile.init
@@ -370,8 +370,26 @@
;;; (let ((load-file (guile:wrap-case-insensitive load)))
;;; (lambda (<pathname>)
;;; (load-file (string-append <pathname> (scheme-file-suffix))))))
-(define (slib:load <pathname>)
- (load (string-append <pathname> (scheme-file-suffix))))
+;; Two changes from the normal slib thing here:
+;; 1. Load from the path
+;; 2. Importantly: guarantee that loaded files land in the slib module.
+(define (slib:load name)
+ (save-module-excursion
+ (lambda ()
+ (set-current-module slib-module)
+ (let ((errinfo (catch 'system-error
+ (lambda ()
+ (load-from-path name)
+ #f)
+ (lambda args args))))
+ (if (and errinfo
+ (catch 'system-error
+ (lambda ()
+ (load-from-path
+ (string-append name ".scm"))
+ #f)
+ (lambda args args)))
+ (apply throw errinfo))))))
(define slib:load-source slib:load)