aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2024-06-03 22:26:28 +0200
committerLudovic Courtès <ludo@gnu.org>2024-06-03 22:58:52 +0200
commite8ab4ccaa7def9838a7fc240609028078a0988b0 (patch)
treef1f24e45967a015276a368108b0e36ee26038ccc
parent2f56845b3332d4aeff7badd64989bea75d20b403 (diff)
downloadguix-e8ab4ccaa7def9838a7fc240609028078a0988b0.tar.gz
guix-e8ab4ccaa7def9838a7fc240609028078a0988b0.zip
style: Fix conversion of ‘unquote-splicing’ by ‘-S arguments’.
* guix/scripts/style.scm (unquote->ungexp): Add missing comma for ‘ungexp-splicing’. * tests/style.scm ("gexpify arguments, substitute-keyword-arguments + unquote-splicing"): New test. Change-Id: I17dcdd9b4812d54ddba1137e369360706b137bb4
-rw-r--r--guix/scripts/style.scm4
-rw-r--r--tests/style.scm25
2 files changed, 26 insertions, 3 deletions
diff --git a/guix/scripts/style.scm b/guix/scripts/style.scm
index 211980dc1c..0727ac1480 100644
--- a/guix/scripts/style.scm
+++ b/guix/scripts/style.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2021-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021-2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -304,7 +304,7 @@ counterpart."
value))
(('unquote-splicing x)
(if (= quotation 1)
- `(ungexp-splicing x)
+ `(ungexp-splicing ,x)
value))
(('quasiquote x)
(list 'quasiquote (loop x (+ quotation 1))))
diff --git a/tests/style.scm b/tests/style.scm
index 5e38549606..3125f4cb1b 100644
--- a/tests/style.scm
+++ b/tests/style.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2021-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021-2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -500,6 +500,29 @@
(load file)
(read-package-field (@ (my-packages) my-coreutils) 'arguments 7))))
+(test-equal "gexpify arguments, substitute-keyword-arguments + unquote-splicing"
+ "\
+ (substitute-keyword-arguments (package-arguments coreutils)
+ ((#:make-flags flags
+ #~'())
+ #~(cons \"-DXYZ=yes\"
+ #$@(if #t flags
+ '())))))\n"
+ (call-with-test-package '((arguments
+ (substitute-keyword-arguments
+ (package-arguments coreutils)
+ ((#:make-flags flags ''())
+ `(cons "-DXYZ=yes" ,@(if #t flags '()))))))
+ (lambda (directory)
+ (define file
+ (string-append directory "/my-packages.scm"))
+
+ (system* "guix" "style" "-L" directory "my-coreutils"
+ "-S" "arguments")
+
+ (load file)
+ (read-package-field (@ (my-packages) my-coreutils) 'arguments 6))))
+
(test-equal "gexpify arguments, append substitute-keyword-arguments"
"\
(append (list #:tests? #f)