[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
03/03: utils: 'current-source-directory' returns the absolute directory
From: |
Ludovic Courtès |
Subject: |
03/03: utils: 'current-source-directory' returns the absolute directory name. |
Date: |
Thu, 16 Jun 2016 21:51:39 +0000 (UTC) |
civodul pushed a commit to branch master
in repository guix.
commit d4dd37fc4614859461952a251a49c1abb2d71ddc
Author: Ludovic Courtès <address@hidden>
Date: Thu Jun 16 22:24:14 2016 +0200
utils: 'current-source-directory' returns the absolute directory name.
* guix/utils.scm (current-source-directory): When FILE-NAME is relative,
use 'search-path' to determine the absolute file name.
---
guix/utils.scm | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/guix/utils.scm b/guix/utils.scm
index 8aadfb0..a642bd3 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -704,12 +704,18 @@ output port, and PROC's result is returned."
(define-syntax current-source-directory
(lambda (s)
- "Return the current directory name or #f if it could not be determined."
+ "Return the absolute name of the current directory, or #f if it could not
+be determined."
(syntax-case s ()
((_)
(match (assq 'filename (syntax-source s))
(('filename . (? string? file-name))
- (dirname file-name))
+ ;; If %FILE-PORT-NAME-CANONICALIZATION is 'relative, then FILE-NAME
+ ;; can be relative. In that case, we try to find out the absolute
+ ;; file name by looking at %LOAD-PATH.
+ (if (string-prefix? "/" file-name)
+ (dirname file-name)
+ (and=> (search-path %load-path file-name) dirname)))
(_
#f))))))