Subject: Re: bug#72759: 31.0.50; Emacs hangs with open-paren-in-column-0-is-defun-start set to nil

From: Eli Zaretskii <[email-masked]>
Date: Thu, 22 Aug 2024 20:54:26 +0300

> From: Eshel Yaron <[email-masked]>
> Cc: [email-masked]
> Date: Thu, 22 Aug 2024 19:08:23 +0200
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> >> diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el
> >> index 949ca6b74ad..65226d8ee44 100644
> >> --- a/lisp/emacs-lisp/checkdoc.el
> >> +++ b/lisp/emacs-lisp/checkdoc.el
> >> @@ -981,7 +981,7 @@ checkdoc-next-docstring
> >>  Return nil if there are no more doc strings."
> >>    (let (found)
> >>      (while (and (not (setq found (checkdoc--next-docstring)))
> >> -                (beginning-of-defun -1)))
> >> +                (beginning-of-defun-raw -1)))
> >>      found))
> >
> > But the doc string of beginning-of-defun-raw says, inter alia:
> >
> >   This is identical to function `beginning-of-defun', except that point
> >   does not move to the beginning of the line when `defun-prompt-regexp'
> >   is non-nil.                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
> >   ^^^^^^^^^^
> >
> > Does that mean defun-prompt-regexp was non-nil in your case?  The
> > default is nil.
> 
> No, defun-prompt-regexp was (and is) the default, nil.

So the doc string is inaccurate?

I'm trying to understand what kind of behavior change could be caused
by your proposed change, which is why what beginning-of-defun-raw does
and beginning-of-defun doesn't is important, especially if some user
options can affect that.  E.g., does anything change in this scenario
if defun-prompt-regexp is non-nil?