aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2023-08-28 19:08:38 +0200
committerRicardo Wurmus <rekado@elephly.net>2023-08-28 19:08:38 +0200
commitc8a642de9a7b6c0e21c8327232245ab721822842 (patch)
tree664126b3d15ccb8a29867da366115765a3642957
parentb4c7fe02ae5cdb05dc03982fa460a5ee0d7fd7f5 (diff)
downloadguix-c8a642de9a7b6c0e21c8327232245ab721822842.tar
guix-c8a642de9a7b6c0e21c8327232245ab721822842.tar.gz
import-utils: Do not include punctuation when wrapping in @code{}.
* guix/import/utils.scm (beautify-description): Exclude punctuation. * tests/import-utils.scm: Add new test.
-rw-r--r--guix/import/utils.scm9
-rw-r--r--tests/import-utils.scm4
2 files changed, 12 insertions, 1 deletions
diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index fcd7707482..0cf52cdbde 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -342,7 +342,14 @@ LENGTH characters."
(let ((pattern (make-regexp "([A-Z][a-z]+[A-Z]|[a-z]+[A-Z])")))
(match (list-matches pattern word)
(() word)
- (_ (string-append "@code{" word "}")))))))))
+ ((m . rest)
+ ;; Do not include leading or trailing punctuation.
+ (let* ((last-text (or (and=> (string-skip-right word char-set:punctuation) 1+)
+ (string-length word)))
+ (inner (substring word (match:start m) last-text))
+ (pre (string-take word (match:start m)))
+ (post (substring word last-text (string-length word))))
+ (string-append pre "@code{" inner "}" post))))))))))
(words
(string-tokenize (string-trim-both description)
(char-set-complement
diff --git a/tests/import-utils.scm b/tests/import-utils.scm
index 7b078eac05..229e6eafaa 100644
--- a/tests/import-utils.scm
+++ b/tests/import-utils.scm
@@ -61,6 +61,10 @@ Differences are hard to spot, e.g. in CLOS vs. GOOPS."))
"The term API is not code, but @code{myAPI} might be."
(beautify-description "The term API is not code, but myAPI might be."))
+(test-equal "beautify-description: do not include punctuation when wrapping in @code"
+ "Code (@code{DelayedMatrix}, @code{MaMa}, or @code{MeMe}) should be wrapped."
+ (beautify-description "Code (DelayedMatrix, MaMa, or MeMe) should be wrapped."))
+
(test-equal "license->symbol"
'license:lgpl2.0
(license->symbol license:lgpl2.0))