guix: lint: Check descriptions for trademark signs.
* guix/scripts/lint.scm (check-description-style): Emit a warning if trademark signs found in description. * tests/lint.scm (description: may not contain trademark signs): Add test.
This commit is contained in:
parent
334bda9a9e
commit
83f18e0653
|
@ -161,6 +161,18 @@ markup is valid return a plain-text version of DESCRIPTION, otherwise #f."
|
|||
'description)
|
||||
#f)))
|
||||
|
||||
(define (check-trademarks description)
|
||||
"Check that DESCRIPTION does not contain '™' or '®' characters. See
|
||||
http://www.gnu.org/prep/standards/html_node/Trademarks.html."
|
||||
(match (string-index description (char-set #\™ #\®))
|
||||
((and (? number?) index)
|
||||
(emit-warning package
|
||||
(format #f (_ "description should not contain ~
|
||||
trademark sign '~a' at ~d")
|
||||
(string-ref description index) index)
|
||||
'description))
|
||||
(else #t)))
|
||||
|
||||
(define (check-proper-start description)
|
||||
(unless (or (properly-starts-sentence? description)
|
||||
(string-prefix-ci? (package-name package) description))
|
||||
|
@ -191,6 +203,7 @@ by two spaces; possible infraction~p at ~{~a~^, ~}")
|
|||
(if (string? description)
|
||||
(begin
|
||||
(check-not-empty description)
|
||||
(check-trademarks description)
|
||||
;; Use raw description for this because Texinfo rendering
|
||||
;; automatically fixes end of sentence space.
|
||||
(check-end-of-sentence-space description)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013 Cyril Roelandt <tipecaml@gmail.com>
|
||||
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;;
|
||||
|
@ -203,6 +203,20 @@ string) on HTTP requests."
|
|||
"E.g. Foo, i.e. Bar resp. Baz (a.k.a. DVD)."))))
|
||||
(check-description-style pkg)))))
|
||||
|
||||
(test-assert "description: may not contain trademark signs"
|
||||
(and (->bool
|
||||
(string-contains (with-warnings
|
||||
(let ((pkg (dummy-package "x"
|
||||
(description "Does The Right Thing™"))))
|
||||
(check-description-style pkg)))
|
||||
"should not contain trademark sign"))
|
||||
(->bool
|
||||
(string-contains (with-warnings
|
||||
(let ((pkg (dummy-package "x"
|
||||
(description "Works with Format®"))))
|
||||
(check-description-style pkg)))
|
||||
"should not contain trademark sign"))))
|
||||
|
||||
(test-assert "synopsis: not a string"
|
||||
(->bool
|
||||
(string-contains (with-warnings
|
||||
|
|
Loading…
Reference in New Issue