diff options
author | Ludovic Courtès <ludo@gnu.org> | 2022-07-11 23:02:48 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-07-12 01:17:45 +0200 |
commit | b8b02f4de5136d4385f36a79e727c90cb0ba1951 (patch) | |
tree | 1285cb232e4d5182e482b046d073552465057f2a /guix | |
parent | 4574ef267e543bcac97d9c400f30cb731df29181 (diff) |
style: Gracefully handle failure to locate a source file.
* guix/scripts/style.scm (absolute-location): Raise an error when
'search-path' returns #f.
Diffstat (limited to 'guix')
-rw-r--r-- | guix/scripts/style.scm | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/guix/scripts/style.scm b/guix/scripts/style.scm index fd5f7f5c26..9fd652beb1 100644 --- a/guix/scripts/style.scm +++ b/guix/scripts/style.scm @@ -44,6 +44,7 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) #:use-module (srfi srfi-37) #:export (pretty-print-with-comments read-with-comments @@ -683,7 +684,16 @@ doing it." "Replace the file name in LOC by an absolute location." (location (if (string-prefix? "/" (location-file loc)) (location-file loc) - (search-path %load-path (location-file loc))) + + ;; 'search-path' might return #f in obscure cases, such as + ;; when %LOAD-PATH includes "." or ".." and LOC comes from a + ;; file in a subdirectory thereof. + (match (search-path %load-path (location-file loc)) + (#f + (raise (formatted-message + (G_ "file '~a' not found on load path") + (location-file loc)))) + (str str))) (location-line loc) (location-column loc))) |