summaryrefslogtreecommitdiff
path: root/src/geiser
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2026-05-10 19:33:18 +0200
committerjao <jao@gnu.org>2026-05-10 19:33:18 +0200
commit31d2ab5fc4c4dc589e69dbfa7ad3a6f77410ead7 (patch)
tree0d14ffe207a4c0160aecff4d1352138ee0487a80 /src/geiser
parenta0f111f8dedd31c593c4ed12c0b99745f3c1340f (diff)
downloadgeiser-guile-31d2ab5fc4c4dc589e69dbfa7ad3a6f77410ead7.tar.gz
geiser-guile-31d2ab5fc4c4dc589e69dbfa7ad3a6f77410ead7.tar.bz2
ensuring absolute paths in locations of system definitions
this one should fix #64: when asking guile for the path of a core module, it'll answer with a relative path that must be resolved against the load path.
Diffstat (limited to 'src/geiser')
-rw-r--r--src/geiser/modules.scm7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/geiser/modules.scm b/src/geiser/modules.scm
index 32b0f1f..db694ca 100644
--- a/src/geiser/modules.scm
+++ b/src/geiser/modules.scm
@@ -1,6 +1,6 @@
;;; modules.scm -- module metadata
-;; Copyright (C) 2009, 2010, 2011, 2018 Jose Antonio Ortega Ruiz
+;; Copyright (C) 2009, 2010, 2011, 2018, 2026 Jose Antonio Ortega Ruiz
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the Modified BSD License. You should
@@ -80,8 +80,9 @@
(define (module-path module-name)
(and (module-name? module-name)
- (or ((@@ (ice-9 session) module-filename) module-name)
- (module-filename (resolve-module module-name #f)))))
+ (let ((file (or ((@@ (ice-9 session) module-filename) module-name)
+ (module-filename (resolve-module module-name #f)))))
+ (and (string? file) (%search-load-path file)))))
(define (submodules mod)
(hash-map->list (lambda (k v) v) (module-submodules mod)))