aboutsummaryrefslogtreecommitdiffstats
path: root/require.scm
diff options
context:
space:
mode:
authorDavid N. Welton <davidw@efn.org>1998-11-09 21:18:01 -0800
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:27 -0800
commit926b1b647ac830660933a5e63eb52d4a2552e264 (patch)
treee25db5f6e1441d67f5d9af063432018ee20a5f51 /require.scm
parentb21cac3362022718634f7086964208b2eed8e897 (diff)
parentfa3f23105ddcf07c5900de47f19af43d1db1b597 (diff)
downloadslib-926b1b647ac830660933a5e63eb52d4a2552e264.tar.gz
slib-926b1b647ac830660933a5e63eb52d4a2552e264.zip
Import Debian changes 2c3-3debian/2c3-3
slib (2c3-3) frozen unstable; urgency=low * Fixes #16235. * Fixes #19943. * Fixes #20265. * Fixes #24917. * Fixes #27389. slib (2c3-2) frozen unstable; urgency=low * Re-uploaded for slink freeze. slib (2c3-1) unstable; urgency=low * New upstream release.
Diffstat (limited to 'require.scm')
-rw-r--r--require.scm17
1 files changed, 10 insertions, 7 deletions
diff --git a/require.scm b/require.scm
index 5b02ff6..ebaf49f 100644
--- a/require.scm
+++ b/require.scm
@@ -17,7 +17,7 @@
;promotional, or sales literature without prior written consent in
;each case.
-(define *SLIB-VERSION* "2c0")
+(define *SLIB-VERSION* "2c3")
;;; Standardize msdos -> ms-dos.
(define software-type
@@ -41,11 +41,13 @@
((UNIX COHERENT) '(#\/))
((VMS) '(#\: #\])))))
(lambda ()
- (let loop ((i (- (string-length *load-pathname*) 1)))
- (cond ((negative? i) "")
- ((memv (string-ref *load-pathname* i) *vicinity-suffix*)
- (substring *load-pathname* 0 (+ i 1)))
- (else (loop (- i 1))))))))
+ (if *load-pathname*
+ (let loop ((i (- (string-length *load-pathname*) 1)))
+ (cond ((negative? i) "")
+ ((memv (string-ref *load-pathname* i) *vicinity-suffix*)
+ (substring *load-pathname* 0 (+ i 1)))
+ (else (loop (- i 1)))))
+ (slib:error "Not loading but called" 'program-vicinity)))))
(define sub-vicinity
(case (software-type)
@@ -156,12 +158,13 @@
(define (require:require feature)
(or (require:provided? feature)
- (let ((path (require:feature->path feature)))
+ (let ((path (catalog:get feature)))
(cond ((and (not path) (string? feature) (file-exists? feature))
(set! path feature)))
(cond ((not feature) (set! *catalog* #f))
((not path)
(slib:error ";required feature not supported: " feature))
+ ((symbol? path) (require:require path) (require:provide feature))
((not (pair? path)) ;simple name
(slib:load path)
(and (not (eq? 'new-catalog feature)) (require:provide feature)))