diff options
author | Ludovic Courtès <ludo@gnu.org> | 2024-06-03 22:26:28 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-06-03 22:58:52 +0200 |
commit | e8ab4ccaa7def9838a7fc240609028078a0988b0 (patch) | |
tree | f1f24e45967a015276a368108b0e36ee26038ccc | |
parent | 2f56845b3332d4aeff7badd64989bea75d20b403 (diff) | |
download | guix-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.scm | 4 | ||||
-rw-r--r-- | tests/style.scm | 25 |
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) |