From: Stefan Kangas Date: Fri, 24 Sep 2021 21:00:57 +0000 (+0200) Subject: Fix recently introduced bug in checkdoc X-Git-Tag: emacs-28.0.90~678 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f17fb37c517573652de538e2843043db7603f9e9;p=emacs.git Fix recently introduced bug in checkdoc * lisp/emacs-lisp/checkdoc.el (checkdoc-in-abbreviation-p): Fix recently introduced bug where some abbreviations weren't recognized. * test/lisp/emacs-lisp/checkdoc-tests.el (checkdoc-tests-in-abbrevation-p/basic-case): Extend test. --- diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el index df93d392417..0862e66ac5d 100644 --- a/lisp/emacs-lisp/checkdoc.el +++ b/lisp/emacs-lisp/checkdoc.el @@ -2105,14 +2105,15 @@ Examples of recognized abbreviations: \"e.g.\", \"i.e.\", \"cf.\"." (save-excursion (goto-char begin) (condition-case nil - (let ((single-letter t)) + (let (single-letter) (forward-word -1) ;; Skip over all dots backwards, as `forward-word' will only ;; go one dot at a time in a string like "e.g.". (while (save-excursion (forward-char -1) (looking-at (rx "."))) - (setq single-letter nil) (forward-word -1)) + (when (= (point) (1- begin)) + (setq single-letter t)) ;; Piece of an abbreviation. (looking-at (if single-letter diff --git a/test/lisp/emacs-lisp/checkdoc-tests.el b/test/lisp/emacs-lisp/checkdoc-tests.el index 13b6d134e5c..d452024b8ff 100644 --- a/test/lisp/emacs-lisp/checkdoc-tests.el +++ b/test/lisp/emacs-lisp/checkdoc-tests.el @@ -131,7 +131,10 @@ See the comments in Bug#24998." (checkdoc-in-abbreviation-p (point)))) (ert-deftest checkdoc-tests-in-abbrevation-p/basic-case () - (should (checkdoc-tests--abbrev-test "foo bar e.g. baz" "e.g"))) + (should (checkdoc-tests--abbrev-test "foo bar e.g. baz" "e.g")) + (should (checkdoc-tests--abbrev-test "behavior/errors etc. that" "etc")) + (should (checkdoc-tests--abbrev-test "foo vs. bar" "vs")) + (should (checkdoc-tests--abbrev-test "spy a.k.a. spy" "a.k.a"))) (ert-deftest checkdoc-tests-in-abbrevation-p/with-parens () (should (checkdoc-tests--abbrev-test "foo bar (e.g. baz)" "e.g")))