Subject: Re: bug#74844: 29.4; m-buffer: Broken Top Directory node in Info manual due to malformed Texinfo direntry

From: Suhail Singh <[email-masked]>
Date: Sun, 15 Dec 2024 12:53:01 -0500

Eli Zaretskii <[email-masked]> writes:

>> Btw, based on my interpretation of the Org manual
>> (info "(org) Texinfo specific export settings"), I would've expected the
>> below to work:
>> 
>> #+begin_src diff
>>   -#+TEXINFO_DIR_TITLE: m-buffer-doc
>>   -#+TEXINFO_DIR_DESC: Manipulate the Contents of Emacs Buffers
>>   +#+TEXINFO_FILENAME: m-buffer-doc.texi
>>   +#+TEXINFO_DIR_NAME: m-buffer
>> #+end_src
>
> Why do you suggest removing TEXINFO_DIR_TITLE

Because of this comment in ox-texinfo.el which suggests that it is
obsolete:

#+begin_src emacs-lisp
      (:texinfo-dirtitle "TEXINFO_DIR_TITLE" nil nil t) ;Obsolete.
#+end_src

Elsewhere in the same file:

#+begin_src emacs-lisp
	    (dn (or (plist-get info :texinfo-dirname)
	            (plist-get info :texinfo-dirtitle))) ;Obsolete name.
#+end_src

> and TEXINFO_DIR_DESC?

Per (info "(org) Texinfo specific export settings"):

#+begin_quote
  ‘TEXINFO_DIR_DESC’
       The directory description of the document.  Defaults to the title
       of the document.
#+end_quote

The Org document in question already has a TITLE specified.

> And why is TEXINFO_FILENAME important?

Per (info "(org) Texinfo specific export settings"):

#+begin_quote
  ‘TEXINFO_FILENAME’
       The Texinfo filename.
#+end_quote

Also,

#+begin_quote
  ‘TEXINFO_DIR_NAME’
       The directory name of the document.  This is the short name under
       which the ‘m’ command will find your manual in the main Info
       directory.  It defaults to the base name of the Texinfo file.

       The full form of the Texinfo entry is ‘* DIRNAME: NODE.’ where
       ‘NODE’ is usually just ‘(FILENAME)’.  Normally this option only
       provides the ‘DIRNAME’ part, but if you need more control, it can
       also be the full entry (recognized by the presence of parentheses
       or a leading ~* ~).
#+end_quote

I interpreted "FILENAME" above to mean TEXINFO_FILENAME, which is also
what's suggested by the code:

#+begin_src emacs-lisp
	    (file (or (org-strip-quotes (plist-get info :texinfo-filename))
		    (plist-get info :output-file)))
#+end_src

-- 
Suhail