From a9892f8f2daceb5bc8595e4d01611936e2c403a4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 18 Dec 2021 22:45:32 +0100 Subject: style: Refer to source files by absolute file names. Previously, "guix style PACKAGE" would end up modifying a file looked up under the current directory since the location associated with PACKAGE is usually a relative file name. * guix/scripts/style.scm (absolute-location): New procedure. (simplify-package-inputs): Use it. --- guix/scripts/style.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/guix/scripts/style.scm b/guix/scripts/style.scm index 86a46f693c..01196eb3e4 100644 --- a/guix/scripts/style.scm +++ b/guix/scripts/style.scm @@ -392,6 +392,14 @@ doing it." (G_ "would be edited~%"))) str))) +(define (absolute-location loc) + "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))) + (location-line loc) + (location-column loc))) + (define* (simplify-package-inputs package #:key (policy 'silent) (edit-expression edit-expression)) @@ -413,7 +421,7 @@ PACKAGE." #f) (location (edit-expression - (location->source-properties location) + (location->source-properties (absolute-location location)) (lambda (str) (define matches? (match policy -- cgit v1.2.3