From 62426057310b2332037a26e6f70cd5cc8b2e3a11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= Date: Sun, 21 Jun 2020 21:11:17 +0200 Subject: Fix spurious error in beginning-of-defun in pascal-mode (bug#41740) * lisp/progmodes/pascal.el (pascal-beg-of-defun): Ignore errors in forward-sexp. * test/lisp/progmodes/pascal-tests.el (pascal-beg-of-defun): New test. --- lisp/progmodes/pascal.el | 2 +- test/lisp/progmodes/pascal-tests.el | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el index b0191c029b9..fce059bafc7 100644 --- a/lisp/progmodes/pascal.el +++ b/lisp/progmodes/pascal.el @@ -589,7 +589,7 @@ See also `pascal-comment-area'." (interactive) (catch 'found (if (not (looking-at (concat "\\s \\|\\s)\\|" pascal-defun-re))) - (forward-sexp 1)) + (ignore-errors (forward-sexp 1))) (let ((nest 0) (max -1) (func 0) (reg (concat pascal-beg-block-re "\\|" pascal-end-block-re "\\|" diff --git a/test/lisp/progmodes/pascal-tests.el b/test/lisp/progmodes/pascal-tests.el index 10d6e0433d0..ed4c6fb03e0 100644 --- a/test/lisp/progmodes/pascal-tests.el +++ b/test/lisp/progmodes/pascal-tests.el @@ -52,4 +52,12 @@ (should (equal completions nil)) (should (equal point-before point-after)))))) +(ert-deftest pascal-beg-of-defun () + (with-temp-buffer + (pascal-mode) + (insert "program test; procedure p(") + (forward-char -1) + (pascal-beg-of-defun) + (should (equal (point) 15)))) + (provide 'pascal-tests) -- cgit v1.2.1