diff options
author | Gabriel Wicki <gabriel@erlikon.ch> | 2024-12-02 23:39:48 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-12-12 12:52:07 +0100 |
commit | 94476296726b3d74d44b5c76120f62fd3f75ab67 (patch) | |
tree | 0d31ae3986cacff8ba9a88b60adcc05e4df5248f | |
parent | 27b4c319c06d1bc1dd8a79d225c1e0d90c9b667d (diff) | |
download | guix-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.scm | 15 | ||||
-rw-r--r-- | tests/lint.scm | 2 |
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: ™" |