diff options
author | Ricardo Wurmus <[email protected]> | 2025-02-11 22:10:51 +0100 |
---|---|---|
committer | Ricardo Wurmus <[email protected]> | 2025-02-11 22:13:10 +0100 |
commit | 36c9996b75ee2163a5081d4b10530f9388d420da (patch) | |
tree | ad8f5ab013d95722885cb9a113dd30ada1c57565 | |
parent | d5d3cb2c15abed37577b150cbf1479a01145e8bf (diff) |
import/utils: Escape @ in synopses.
* tests/import-utils.scm ("beautify-synopsis: escape @"): Add tests.
* guix/import/utils.scm (beautify-synopsis): Replace @ with @@.
Change-Id: I011d61687a098b5b50f44c1acd6f0a4eea06e9f0
-rw-r--r-- | guix/import/utils.scm | 8 | ||||
-rw-r--r-- | tests/import-utils.scm | 10 |
2 files changed, 15 insertions, 3 deletions
diff --git a/guix/import/utils.scm b/guix/import/utils.scm index 6f5efa790e..646482eb4a 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2012, 2013, 2018, 2019, 2020, 2023 Ludovic Courtès <[email protected]> ;;; Copyright © 2016 Jelle Licht <[email protected]> ;;; Copyright © 2016 David Craven <[email protected]> -;;; Copyright © 2017, 2019, 2020, 2022, 2023, 2024 Ricardo Wurmus <[email protected]> +;;; Copyright © 2017, 2019, 2020, 2022, 2023, 2024, 2025 Ricardo Wurmus <[email protected]> ;;; Copyright © 2018 Oleg Pykhalov <[email protected]> ;;; Copyright © 2019 Robert Vollmert <[email protected]> ;;; Copyright © 2020 Helio Machado <[email protected]> @@ -422,7 +422,11 @@ LENGTH characters." (substring synopsis 0 (1- (string-length synopsis)))) (else synopsis)))) - (string-trim-both cleaned))) + ;; Escape single @ to prevent it from being understood as invalid Texinfo + ;; syntax. + (regexp-substitute/global #f "@" + (string-trim-both cleaned) + 'pre "@@" 'post))) (define* (package-names->package-inputs names #:optional (output #f)) "Given a list of PACKAGE-NAMES or (PACKAGE-NAME VERSION) pairs, and an diff --git a/tests/import-utils.scm b/tests/import-utils.scm index 607349203c..4183903cd1 100644 --- a/tests/import-utils.scm +++ b/tests/import-utils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2017, 2022, 2023, 2024 Ricardo Wurmus <[email protected]> +;;; Copyright © 2015, 2017, 2022, 2023, 2024, 2025 Ricardo Wurmus <[email protected]> ;;; Copyright © 2016 Ben Woodcroft <[email protected]> ;;; Copyright © 2020 Martin Becze <[email protected]> ;;; Copyright © 2021 Sarah Morgensen <[email protected]> @@ -69,6 +69,14 @@ Differences are hard to spot, e.g. in CLOS vs. GOOPS.")) "The main functions are: @code{haplo.em()} and @code{haplo.power()}; FYI." (beautify-description "The main functions are: haplo.em() and haplo.power(); FYI.")) +(test-equal "beautify-synopsis: escape @" + "This is invalid @@syntax" + (beautify-synopsis "This is invalid @syntax")) + +(test-equal "beautify-synopsis: escape @" + "Just an @@ in the middle" + (beautify-synopsis "Just an @ in the middle")) + (test-equal "license->symbol" 'license:lgpl2.0 (license->symbol license:lgpl2.0)) |