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

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 05 May 2023 07:14:02 +0000

Your bug report

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

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
63291: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63291
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#63291: libxml-parse-{html, xml}-region help page incorrect argument lower bound
From: Eli Zaretskii <[email-masked]>
To: Ruijie Yu <[email-masked]>
Cc: [email-masked]
Date: Fri, 05 May 2023 10:13:51 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> 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.

Subject: libxml-parse-{html,xml}-region help page incorrect argument lower bound
From: Ruijie Yu <[email-masked]>
To: [email-masked]
Date: Fri, 05 May 2023 14:38:02 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

First of all, this is newest Emacs 30 in-source build (pulled and built
a few hours ago).

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.

```emacs-lisp
(with-temp-buffer (insert "<html></html>")
                  (libxml-parse-html-region))
;=> (html nil)
```

I have zero knowledge of dealing with C defuns, so I'll leave fixing
this issue to someone more experienced at that.

-- 
Best,

RY

[Please note that this mail might go to spam due to some
misconfiguration in my mail server -- still investigating.]