summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Kangas <stefan@marxist.se>2021-09-26 14:13:03 +0200
committerStefan Kangas <stefan@marxist.se>2021-09-26 14:55:19 +0200
commita0d5de4fb9de82dfda741c5cf39d87cee955cc46 (patch)
tree7b102a9c6a377284dd3b26eddbcfdcf2593706a1
parent6e1de14e51f692684ccaffb7113ca0e6c135ba41 (diff)
downloademacs-a0d5de4fb9de82dfda741c5cf39d87cee955cc46.tar.gz
Add test for lm-website
* lisp/emacs-lisp/lisp-mnt.el (lm-website): Use rx. * test/lisp/emacs-lisp/lisp-mnt-tests.el (lm--tests-lm-website): New test.
-rw-r--r--lisp/emacs-lisp/lisp-mnt.el6
-rw-r--r--test/lisp/emacs-lisp/lisp-mnt-tests.el8
2 files changed, 11 insertions, 3 deletions
diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el
index b27c7e78a88..96ac054a7d7 100644
--- a/lisp/emacs-lisp/lisp-mnt.el
+++ b/lisp/emacs-lisp/lisp-mnt.el
@@ -501,9 +501,9 @@ absent, return nil."
(defun lm-website (&optional file)
"Return the website in file FILE, or current buffer if FILE is nil."
(let ((page (lm-with-file file
- (lm-header "\\(?:x-\\)?\\(?:url\\|homepage\\)"))))
- (if (and page (string-match "^<.+>$" page))
- (substring page 1 -1)
+ (lm-header (rx (? "x-") (or "url" "homepage"))))))
+ (if (and page (string-match (rx bol "<" (+ nonl) ">" eol) page))
+ (substring page 1 -1)
page)))
(defalias 'lm-homepage 'lm-website) ; for backwards-compatibility
diff --git a/test/lisp/emacs-lisp/lisp-mnt-tests.el b/test/lisp/emacs-lisp/lisp-mnt-tests.el
index 84cdc7205f2..d77804fbe60 100644
--- a/test/lisp/emacs-lisp/lisp-mnt-tests.el
+++ b/test/lisp/emacs-lisp/lisp-mnt-tests.el
@@ -32,5 +32,13 @@
'(("Bob Weiner" . "rsw@gnu.org")
("Mats Lidell" . "matsl@gnu.org")))))
+(ert-deftest lm--tests-lm-website ()
+ (with-temp-buffer
+ (insert ";; URL: https://example.org/foo")
+ (should (string= (lm-website) "https://example.org/foo")))
+ (with-temp-buffer
+ (insert ";; X-URL: <https://example.org/foo>")
+ (should (string= (lm-website) "https://example.org/foo"))))
+
(provide 'lisp-mnt-tests)
;;; lisp-mnt-tests.el ends here