aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Wicki <gabriel@erlikon.ch>2024-12-02 23:39:48 +0100
committerLudovic Courtès <ludo@gnu.org>2024-12-12 12:52:07 +0100
commit94476296726b3d74d44b5c76120f62fd3f75ab67 (patch)
tree0d31ae3986cacff8ba9a88b60adcc05e4df5248f
parent27b4c319c06d1bc1dd8a79d225c1e0d90c9b667d (diff)
downloadguix-94476296726b3d74d44b5c76120f62fd3f75ab67.tar.gz
guix-94476296726b3d74d44b5c76120f62fd3f75ab67.zip
lint: Ignore initials from double space check.
Prevent false positives in initials as the are commonly used in names, e.g. Margaret E. Hamilton - which obviously do not end sentences. Check whether a period character `.' is preceded by at least two characters. This should save us from false positives when linting. * guix/lint.scm(check-description-style)[check-end-of-sentence-space] Add condition. * tests/lint.scm: Add test case. Change-Id: I42a1365aaaed2afc7308b88ebd4b0720ad362761 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--guix/lint.scm15
-rw-r--r--tests/lint.scm2
2 files changed, 11 insertions, 6 deletions
diff --git a/guix/lint.scm b/guix/lint.scm
index ee2059d812..1c8be911eb 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -466,11 +466,16 @@ trademark sign '~a' at ~d")
(reverse (fold-matches
"\\. [A-Z]" description '()
(lambda (m r)
- ;; Filter out matches of common abbreviations.
- (if (find (lambda (s)
- (string-suffix-ci? s (match:prefix m)))
- '("i.e" "e.g" "a.k.a" "resp"))
- r (cons (match:start m) r)))))))
+ ;; Filter out matches of common abbreviations and
+ ;; initials.
+ (let ((pre (match:prefix m)))
+ (if (or
+ (string-match "[A-Z]$" pre) ;; Initial found
+ (find (lambda (s)
+ (string-suffix-ci? s pre))
+ '("i.e" "e.g" "a.k.a" "resp")))
+ r
+ (cons (match:start m) r))))))))
(if (null? infractions)
'()
(list
diff --git a/tests/lint.scm b/tests/lint.scm
index 47e31a69bf..09be160f5d 100644
--- a/tests/lint.scm
+++ b/tests/lint.scm
@@ -173,7 +173,7 @@
'()
(let ((pkg (dummy-package "x"
(description
- "E.g. Foo, i.e. Bar resp. Baz (a.k.a. DVD)."))))
+ "E.g. Foo, i.e. Bar resp. Baz (a.k.a. DVD). Name O. Person"))))
(check-description-style pkg)))
(test-equal "description: may not contain trademark signs: ™"