aboutsummaryrefslogtreecommitdiff
path: root/src/data.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'src/data.lisp')
-rw-r--r--src/data.lisp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/data.lisp b/src/data.lisp
index 7cce283..2c3a7d9 100644
--- a/src/data.lisp
+++ b/src/data.lisp
@@ -98,7 +98,16 @@ sources are not expected to be available outside of the root Lisp."))
(defun try-register-data-source (&rest args)
"Register sources of prerequisite data.
-This function is typically called in consfigs."
+This function is typically called in consfigs. Any relative pathnames in ARGS
+will be resolved as paths under the home directory of the user Lisp is running
+as, before being passed to implementations of REGISTER-DATA-SOURCE."
+ (let ((home (user-homedir-pathname)))
+ (setq args
+ (loop
+ for arg in args
+ if (pathnamep arg)
+ collect (ensure-pathname arg :defaults home :ensure-absolute t)
+ else collect arg)))
(when-let ((pair (and (not (find args *data-source-registrations*
:test #'equal))
(restart-case (apply #'register-data-source args)