Subject: Re: bug#63291: libxml-parse-{html, xml}-region help page incorrect argument lower bound

From: Eli Zaretskii <[email-masked]>
Date: Fri, 05 May 2023 10:13:51 +0300

> Date: Fri, 05 May 2023 14:38:02 +0800
> From:  Ruijie Yu via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <[email-masked]>
> 
> I'm reading the help page of `libxml-parse-xml-region' and noticed this:
> 
> --8<---------------cut here---------------start------------->8---
> libxml-parse-xml-region is a built-in function in ‘src/xml.c’.
> 
> (libxml-parse-xml-region START END &optional BASE-URL)
> 
> Parse the region as an XML document and return the parse tree.
> If START is nil, it defaults to ‘point-min’.  If END is nil, it
> defaults to ‘point-max’.
> 
> ...
> --8<---------------cut here---------------end--------------->8---
> 
> Notice the function signature: it implies that the first two arguments
> are mandatory, even though the docstring proceeds to talk about what
> happens when these two arguments are nil.  Similarly for
> `libxml-parse-html-region'.
> 
> However, both the C source code and experiments show that these two
> functions do accept 0 arguments.

This is because a recent change made the first 2 arguments optional,
but advertised-calling-convention of these functions in subr.el was
not adjusted to that change, and was overriding the effect of the
DEFUN macros, which say the truth: up to 4 arguments, with zero
mandatory ones.

Fixed on the emacs-29 branch.