Subject: Re: bug#64548: 29.0.92; Modus Themes Info manual is in "Unknown category"

From: Philip Kaludercic <[email-masked]>
Date: Mon, 10 Jul 2023 14:08:30 +0000

I've added Protesilaos to the CCs, in case he hasn't seen the bug
report.  (Generally it is recommended to add a "X-Debbugs-CC" header if
you can find the maintainer).

Stephen Berman <[email-masked]> writes:

> On Sun, 09 Jul 2023 22:21:55 +0200 Stephen Berman <[email-masked]> wrote:
>
>> After building Emacs from the release branch or from master, the
>> info/dir file looks like this (excerpted):
>>
>> [...]
>> * Menu:
>>
>> Texinfo documentation system
>> * Info: (info).                 How to use the documentation browsing system.
>>
>> Emacs
>> * Emacs: (emacs).               The extensible self-documenting text editor.
>> * Emacs FAQ: (efaq).            Frequently Asked Questions about Emacs.
>>
>> Emacs lisp
>> * Emacs Lisp Intro: (eintr).    A simple introduction to Emacs Lisp programming.
>> * Elisp: (elisp).               The Emacs Lisp Reference Manual.
>> [...]
>>
>> Emacs misc features
>> * Autotype: (autotype).         Convenient features for text that you enter
>>                                   frequently in Emacs.
>> * Bovine: (bovine).             Semantic bovine parser development.
>> * Calc: (calc).                 Advanced desk calculator and mathematical tool.
>> * Dired-X: (dired-x).           Dired Extra Features.
>> [...]
>>
>> Unknown category
>> *     Modus Themes: (modus-themes).      Elegant, highly legible and customizable themes.
>>
>>
>> The two odds things about the last entry are its category and the extra
>> space after the asterisk.  This odd category and appearance are only in
>> emacs-29 and master; in emacs-28 the Modus Themes manual is under the
>> "Emacs misc features" category and there's no extra space:
>>
>>
>> Emacs misc features
>> * Autotype: (autotype).         Convenient features for text that you enter
>>                                   frequently in Emacs.
>> * Bovine: (bovine).             Semantic bovine parser development.
>> * Calc: (calc).                 Advanced desk calculator and mathematical tool.
>> * Dired-X: (dired-x).           Dired Extra Features.
>> [...]
>> * Modus Themes: (modus-themes). Highly accessible themes (WCAG AAA).
>> * PCL-CVS: (pcl-cvs).           Emacs front-end to CVS.
>> [...]
>>
>>
>> I also checked the emacs-28.3-rc1.tar.xz and emacs-29.0.92.tar.xz
>> tarballs at alpha.gnu.org and the info/dir file in the latter tarball
>> has the same oddities with Modus Themes, while info/dir in the former
>> tarball does not.
>>
>> I eyeballed doc/misc/modus-themes.texi, which is generated from
>> modus-themes.org, in emacs-29 and master, and the beginning of that file
>> appears similar to the start of other .texi files in that directory and
>> also to the start of org.texi, which is also generated (from org.org).
>> (One difference between modus-themes.org and org.org is that the latter
>> uses org-setup.org to generate the .texi file, while modus-themes.org
>> includes similar lines in the file itself instead of in a setup file.)
>> And the resulting modus-themes.info file also appears to be fine.
>> Moreover, when I execute `install-info ./modus-themes.info ./dir' from
>> the shell, using the modus-themes.info from the emacs-29 builds, the
>> resulting dir file contains the entry for Modus Themes under the "Emacs
>> misc features" category.  So it seems that problematic dir file results
>> from some other part of the build process, but I couldn't figure out
>> which.
>
> I bisected the problem to the following commit:
>
> 8a9839348fb8762c8843362595f2ca9de60d515c is the first bad commit
> commit 8a9839348fb8762c8843362595f2ca9de60d515c
> Author: Protesilaos Stavrou <[email-masked]>
> Date:   Wed Aug 3 14:32:38 2022 +0300
>
>     Update modus-themes to their version 2.5.0
>
> And the problem is due, to my surprise, to whitespace in the Org markup
> at the beginning of modus-themes.org.  This suggests to me a problem
> somewhere in org/ox-texinfo.el, 

Why do you think this is a problem with exporting, rather than with
parsing?  Either way, it might be worth involving some Org people in
this report.

>                                 but I'm not familiar with that code, so
> I'll leave pursuing it to someone who is.  In the meantime, building
> with the attached patch against current emacs-29 restores the correct
> dir file.
>
> Steve Berman
>
> diff --git a/doc/misc/modus-themes.org b/doc/misc/modus-themes.org
> index 4bf78379c10..8cfa22df923 100644
> --- a/doc/misc/modus-themes.org
> +++ b/doc/misc/modus-themes.org
> @@ -1,23 +1,23 @@
> -#+title:                 Modus themes for GNU Emacs
> -#+author:                Protesilaos Stavrou
> -#+email:                 [email-masked]
> -#+language:              en
> -#+options:               ':t toc:nil author:t email:t num:t
> -#+startup:               content
> -#+macro:                 stable-version 3.0.0
> -#+macro:                 release-date 2022-10-28
> -#+macro:                 development-version 3.1.0-dev
> -#+macro:                 file @@texinfo:@file{@@$1@@texinfo:}@@
> -#+macro:                 space @@texinfo:@: @@
> -#+macro:                 kbd @@texinfo:@kbd{@@$1@@texinfo:}@@
> -#+texinfo_filename:      modus-themes.info
> -#+texinfo_dir_category:  Emacs misc features
> -#+texinfo_dir_title:     Modus Themes: (modus-themes)
> -#+texinfo_dir_desc:      Elegant, highly legible and customizable themes
> -#+texinfo_header:        @set MAINTAINERSITE @uref{https://protesilaos.com,maintainer webpage}
> -#+texinfo_header:        @set MAINTAINER Protesilaos Stavrou
> -#+texinfo_header:        @set MAINTAINEREMAIL @[email-masked]}
> -#+texinfo_header:        @set MAINTAINERCONTACT @uref{mailto:[email-masked],contact the maintainer}
> +#+title: Modus themes for GNU Emacs
> +#+author: Protesilaos Stavrou
> +#+email: [email-masked]
> +#+language: en
> +#+options: ':t toc:nil author:t email:t num:t
> +#+startup: content
> +#+macro: stable-version 3.0.0
> +#+macro: release-date 2022-10-28
> +#+macro: development-version 3.1.0-dev
> +#+macro: file @@texinfo:@file{@@$1@@texinfo:}@@
> +#+macro: space @@texinfo:@: @@
> +#+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@
> +#+texinfo_filename: modus-themes.info
> +#+texinfo_dir_category: Emacs misc features
> +#+texinfo_dir_title: Modus Themes: (modus-themes)
> +#+texinfo_dir_desc: Elegant, highly legible and customizable themes
> +#+texinfo_header: @set MAINTAINERSITE @uref{https://protesilaos.com,maintainer webpage}
> +#+texinfo_header: @set MAINTAINER Protesilaos Stavrou
> +#+texinfo_header: @set MAINTAINEREMAIL @[email-masked]}
> +#+texinfo_header: @set MAINTAINERCONTACT @uref{mailto:[email-masked],contact the maintainer}
>
>  #+texinfo: @insertcopying