From: Jens Schmidt Date: Tue, 26 Sep 2023 19:36:19 +0000 (+0200) Subject: Fix beginning-of-defun not jumping to BOF X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=115a940a4b1d28f18df5aa82a19fae9cbe67b869;p=emacs.git Fix beginning-of-defun not jumping to BOF In batch mode or when font-lock and some other niceties are switched off, function `syntax-ppss' can modify match data held by function `beginning-of-defun-raw'. In that case, `beginning-of-defun' can jump to some seemingly arbitrary position, and not the actual BOF. * lisp/emacs-lisp/lisp.el (beginning-of-defun-raw): Save match data around a call to `syntax-ppss'. (Bug#66218) --- diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index a4aa79c171e..ee481dc4ed3 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el @@ -422,7 +422,8 @@ of a defun, nil if it failed to find one." "\\(?:" defun-prompt-regexp "\\)\\s(") "^\\s(") nil 'move arg)) - (nth 8 (syntax-ppss)))) + (save-match-data + (nth 8 (syntax-ppss))))) found) (progn (goto-char (1- (match-end 0))) t)))