On Fri, Oct 23, 2026 at 09:27:53AM +0300, Eli Zaretskii wrote:
> > One possibility is to double check what exactly Emacs supported before, and
> > only output the DELs for input that Emacs didn't support.  I belive if there
> > was only a single colon not followed by whitespace, Emacs managed to treat
> > it as an index entry.
> 
> I don't think that's true, but maybe I'm thinking about a different
> case.  Can you show an example of an entry with colons which you think
> Emacs should be able to support? 

In one version of elisp.info (27.2), there are the following index entries:


* :deferred, JSONRPC keyword:            JSONRPC deferred requests.
                                                              (line  16)
* :notification-dispatcher:              JSONRPC Overview.    (line  20)
* :request-dispatcher:                   JSONRPC Overview.    (line  20)

Opening the file with a command like "C-u M-x info RET ./elisp.info RET",
accessing these index entries works with "i:deferred" etc.  Pressing return
on these menu entries when you are in the index node also works.

In emacs.info (from version 29.1.90), there are the following index entries:

* :d (Dired):                            Operating on Files.  (line 192)
* :e (Dired):                            Operating on Files.  (line 204)
* :s (Dired):                            Operating on Files.  (line 200)
* :v (Dired):                            Operating on Files.  (line 196)

These all work as expected (tested with Emacs 29.3 (Debian)).

Running 'i:s (Dired)<RET>' does work and finds the relevant index entry.

The only niggle is that the search appears to omit the leading colon,
leading other index entries, such as "M-s a C-s (Dired)" to be found.

I asusme this is part of what the comment at the start of info.el
was about:

;; Note that nowadays we expect Info files to be made using makeinfo.
;; In particular we make these assumptions:
;;  - a menu item MAY contain colons but not colon-space ": "
;;  - a menu item ending with ": " (but not ":: ") is an index entry
;;  - a node name MAY NOT contain a colon
;; This distinction is to support indexing of computer programming
;; language terms that may contain ":" but not ": ".

https://lists.gnu.org/archive/html/bug-gnu-emacs/2019-01/msg00235.html

> The ones that Patrice provides in
> his colons_in_index_entries_and_node.info file (which he sent to the
> Emacs bug#57277) didn't work in Emacs, with the sole exception of the
> first one, which says
> 
> * ::                                     ^?One::node, with entries.^?.
> 

I don't think any of those will work because the node names are all
quoted (I couldn't find the file in my emails but looked at the one in
the texi2any test suite in git).

> With the updated Emacs Info reader it works better: the 1st index
> entry leads to the wrong node, and 4th and 5th error out (No such
> node), but the rest do work, although Emacs still doesn't recognize
> the format well enough because the usual highlighting of menu entries
> is wrong.
> 
> > There's no downside in outputting the DELs in other cases, as far as I can
> > tell: where there is a double colon ("::") or colon followed by space (": 
> > ").
> 
> Right.

Reply via email to