texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: XML menu leading text and menu separator in eleme


From: Patrice Dumas
Subject: branch master updated: XML menu leading text and menu separator in elements instead of attributes
Date: Mon, 28 Nov 2022 16:45:00 -0500

This is an automated email from the git hooks/post-receive script.

pertusus pushed a commit to branch master
in repository texinfo.

The following commit(s) were added to refs/heads/master by this push:
     new a83df0a2ae XML menu leading text and menu separator in elements 
instead of attributes
a83df0a2ae is described below

commit a83df0a2ae8cb8a3b75a14e235d691b45792217a
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Mon Nov 28 22:44:47 2022 +0100

    XML menu leading text and menu separator in elements instead of attributes
    
    * tp/Texinfo/Convert/TexinfoMarkup.pm (%type_elements, _convert),
    util/texinfo.dtd: put menu_entry_leading_text and menu_entry_separator
    types text in element rather than in attributes.  It is better to keep
    the structure and protect spaces more naturally.
    
    * util/texinfo.dtd: add endspace attribute for macro and rmacro.
---
 ChangeLog                                          | 12 +++++
 NEWS                                               |  2 +
 tp/Texinfo/Convert/TexinfoMarkup.pm                | 36 ++++++-------
 tp/t/results/converters_tests/non_empty_part.pl    |  4 +-
 tp/t/results/converters_tests/ref_in_sectioning.pl |  4 +-
 .../some_at_commands_in_ref_nodes.pl               |  2 +-
 .../converters_tests/spaces_in_empty_node_names.pl |  6 +--
 .../converters_tests/spaces_in_node_names.pl       |  6 +--
 .../converters_tests/things_before_setfilename.pl  |  2 +-
 .../things_before_setfilename_no_element.pl        |  2 +-
 .../formats_encodings/at_commands_in_refs.pl       | 54 +++++++++----------
 .../res_xml/char_latin1_latin1_in_refs.xml         | 10 ++--
 tp/t/results/indices/double_index_entry.pl         |  2 +-
 tp/t/results/indices/index_entry_before_node.pl    |  4 +-
 .../index_entry_in_footnote_different_node_end.pl  |  2 +-
 .../indices/index_entry_in_footnote_separate.pl    |  2 +-
 .../indices/printindex_index_entry_in_copying.pl   |  2 +-
 ...rintindex_index_entry_in_copying_in_footnote.pl |  2 +-
 ...ndex_index_entry_in_copying_no_insertcopying.pl |  2 +-
 .../menu/block_commands_in_menu_description.pl     |  2 +-
 tp/t/results/menu/comment_on_menu_line.pl          |  2 +-
 tp/t/results/menu/dash_in_menu.pl                  |  2 +-
 tp/t/results/menu/detailmenu.pl                    |  4 +-
 tp/t/results/menu/detailmenu_in_description.pl     |  4 +-
 tp/t/results/menu/detailmenu_on_subnodes.pl        | 16 +++---
 tp/t/results/menu/detailmenu_unknown_node.pl       |  2 +-
 tp/t/results/menu/empty_menu_description.pl        |  2 +-
 tp/t/results/menu/entry_after_detailmenu.pl        |  8 +--
 tp/t/results/menu/example_in_menu_comment.pl       |  2 +-
 tp/t/results/menu/example_in_menu_description.pl   |  2 +-
 tp/t/results/menu/formats_in_menu.pl               |  8 +--
 tp/t/results/menu/inlineraw_in_menu_description.pl |  2 +-
 tp/t/results/menu/invalid_info_menu_entry.pl       | 10 ++--
 tp/t/results/menu/menu_entry_name.pl               | 20 +++----
 tp/t/results/menu/menu_entry_name_comment.pl       | 10 ++--
 tp/t/results/menu/menu_entry_no_entry_location.pl  |  6 +--
 tp/t/results/menu/menu_entry_node.pl               |  8 +--
 tp/t/results/menu/menu_entry_node_comments.pl      |  8 +--
 tp/t/results/menu/menu_in_example.pl               |  6 +--
 tp/t/results/menu/menu_pointing_to_anchor.pl       |  2 +-
 tp/t/results/menu/menu_title_before_entries.pl     |  2 +-
 .../results/menu/missing_detailmenu_on_subnodes.pl | 16 +++---
 tp/t/results/menu/reference_to_external_manual.pl  |  2 +-
 tp/t/results/menu/sc_in_menu.pl                    |  4 +-
 tp/t/results/menu/simple.pl                        | 10 ++--
 tp/t/results/menu/simple_no_menu.pl                | 10 ++--
 .../menu/space_and_commands_in_menu_node.pl        | 18 +++----
 tp/t/results/menu/verb_in_menu_description.pl      |  2 +-
 tp/t/results/sectioning/chapter_between_nodes.pl   |  2 +-
 .../chapter_node_before_and_after_part.pl          |  2 +-
 tp/t/results/sectioning/double_part.pl             |  2 +-
 .../results/sectioning/explicit_node_directions.pl |  4 +-
 .../results/sectioning/more_sections_than_nodes.pl |  8 +--
 .../sectioning/node_part_chapter_after_chapter.pl  |  4 +-
 .../sectioning/node_part_chapter_after_top.pl      |  2 +-
 .../nodes_after_top_before_chapter_nodes.pl        |  4 +-
 .../nodes_no_node_top_explicit_directions.pl       |  2 +-
 tp/t/results/sectioning/part_chapter_after_top.pl  |  2 +-
 tp/t/results/sectioning/part_node_after_top.pl     |  2 +-
 tp/t/results/sectioning/part_node_before_top.pl    |  2 +-
 .../sectioning/part_node_chapter_after_top.pl      |  4 +-
 .../sectioning/part_node_chapter_appendix.pl       |  2 +-
 .../sectioning/part_node_chapter_node_appendix.pl  |  4 +-
 .../sectioning/part_node_node_part_appendix.pl     |  4 +-
 tp/t/results/sectioning/part_node_part_appendix.pl |  2 +-
 .../sectioning/part_node_part_node_appendix.pl     |  4 +-
 tp/t/results/sectioning/section_before_top.pl      |  2 +-
 .../sectioning/section_in_unnumbered_plaintext.pl  | 62 +++++++++++-----------
 .../sectioning/two_nodes_between_chapters.pl       |  6 +--
 tp/t/results/xml_tests/image_inline_or_not.pl      |  4 +-
 .../res_parser/formatting_xml/formatting.xml       | 20 +++----
 util/texinfo.dtd                                   | 18 +++----
 72 files changed, 261 insertions(+), 253 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 9dd1c2646d..0dc475bb6a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2022-11-28  Patrice Dumas  <pertusus@free.fr>
+
+       XML menu leading text and menu separator in elements instead of 
attributes
+
+       * tp/Texinfo/Convert/TexinfoMarkup.pm (%type_elements, _convert),
+       util/texinfo.dtd: put menu_entry_leading_text and menu_entry_separator
+       types text in element rather than in attributes.  It is better to keep
+       the structure and protect spaces more naturally.
+
+       * util/texinfo.dtd: add endspace attribute for macro and rmacro.
+
+
 2022-11-27  Per Bothner  <per@bothner.com>
 
        * js/info.js (on_link): Change query pattern for links.
diff --git a/NEWS b/NEWS
index 11605792f2..dff6f8402b 100644
--- a/NEWS
+++ b/NEWS
@@ -17,6 +17,8 @@ See the manual for detailed information.
     . Change @point expansion to U+22C6 in HTML Cross-references.
     . omit colons after index entries by default.  this can still be
       configured with INDEX_ENTRY_COLON.
+ . XML output:
+    . menu leading text and menu separator in elements instead of attributes.
 
 * texi2dvi
  . macro expansion with texi2any requires at least version 5.0 (only
diff --git a/tp/Texinfo/Convert/TexinfoMarkup.pm 
b/tp/Texinfo/Convert/TexinfoMarkup.pm
index cb4a1803a9..d78028e6c3 100644
--- a/tp/Texinfo/Convert/TexinfoMarkup.pm
+++ b/tp/Texinfo/Convert/TexinfoMarkup.pm
@@ -241,7 +241,9 @@ my %type_elements = (
   'paragraph' => 'para',
   'preformatted' => 'pre',
   'menu_entry' => 'menuentry',
+  'menu_entry_leading_text' => 'menuleadingtext',
   'menu_entry_node' => 'menunode',
+  'menu_entry_separator' => 'menuseparator',
   'menu_comment' => 'menucomment',
   'menu_entry_description' => 'menudescription',
   'menu_entry_name' => 'menutitle',
@@ -582,7 +584,17 @@ sub _convert($$;$)
     if ($self->{'document_context'}->[-1]->{'raw'}) {
       return $element->{'text'};
     }
-    return $self->txi_markup_convert_text($element);
+    my $result = '';
+    my $text_element;
+    if ($element->{'type'} and defined($type_elements{$element->{'type'}})) {
+      $text_element = $type_elements{$element->{'type'}};
+      $result .= $self->txi_markup_open_element($text_element);
+    }
+    $result .= $self->txi_markup_convert_text($element);
+    if ($text_element) {
+      $result .= $self->txi_markup_close_element($text_element);
+    }
+    return $result;
   }
 
   my @close_format_elements;
@@ -738,6 +750,7 @@ sub _convert($$;$)
         my $attribute;
         if ($line_command_line_attributes{$cmdname}) {
           if ($element->{'extra'} and 
defined($element->{'extra'}->{'text_arg'})) {
+            # FIXME use _protect_in_spaces_attribute_text?
             push @$attribute, [$line_command_line_attributes{$cmdname},
                   $element->{'extra'}->{'text_arg'}];
           }
@@ -1433,15 +1446,6 @@ sub _convert($$;$)
       my $attribute = [];
       if ($element->{'type'} eq 'preformatted') {
         push @$attribute, ['space', 'preserve'];
-      } elsif ($element->{'type'} eq 'menu_entry') {
-        push @$attribute, ['leadingtext',
-                           $self->_convert($element->{'args'}->[0])];
-      } elsif (($element->{'type'} eq 'menu_entry_node'
-                or $element->{'type'} eq 'menu_entry_name')
-               and $self->{'pending_menu_entry_separator'}) {
-        push @$attribute, ['separator',
-               $self->_convert($self->{'pending_menu_entry_separator'})];
-        delete $self->{'pending_menu_entry_separator'};
       }
       $result
         .= $self->txi_markup_open_element($type_elements{$element->{'type'}},
@@ -1544,17 +1548,7 @@ sub _convert($$;$)
   if ($element->{'type'} and $element->{'type'} eq 'menu_entry') {
     foreach my $arg (@{$element->{'args'}}) {
       $arg_nr++;
-      # menu_entry_leading_text is added as attribute leadingtext of menu_entry
-      # menu_entry_separator is recorded here and then added ass attribute
-      # separator
-      next if ($arg->{'type'} eq 'menu_entry_leading_text'
-               or $arg->{'type'} eq 'menu_entry_separator');
-      if ($element->{'args'}->[$arg_nr +1]
-          and $element->{'args'}->[$arg_nr +1]->{'type'}
-          and $element->{'args'}->[$arg_nr +1]->{'type'} eq 
'menu_entry_separator') {
-        $self->{'pending_menu_entry_separator'} = $element->{'args'}->[$arg_nr 
+1];
-      }
-      my $in_code;
+      my $in_code = 0;
       if ($arg->{'type'} eq 'menu_entry_node') {
         $in_code = 1;
       }
diff --git a/tp/t/results/converters_tests/non_empty_part.pl 
b/tp/t/results/converters_tests/non_empty_part.pl
index 25c08612fb..3b20ba63fd 100644
--- a/tp/t/results/converters_tests/non_empty_part.pl
+++ b/tp/t/results/converters_tests/non_empty_part.pl
@@ -1500,8 +1500,8 @@ $result_converted{'xml'}->{'non_empty_part'} = '<part 
spaces=" "><sectiontitle>p
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">chapter 
node</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">part chapter node</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>chapter 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>part chapter 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/converters_tests/ref_in_sectioning.pl 
b/tp/t/results/converters_tests/ref_in_sectioning.pl
index d587ffe53b..92a0d93c4b 100644
--- a/tp/t/results/converters_tests/ref_in_sectioning.pl
+++ b/tp/t/results/converters_tests/ref_in_sectioning.pl
@@ -2375,8 +2375,8 @@ $result_converted{'xml'}->{'ref_in_sectioning'} = 
'<contents></contents>
 <top spaces=" "><sectiontitle>for example <ref 
label="node"><xrefnodename>node</xrefnodename></ref> (<pxref 
label="node"><xrefnodename>node</xrefnodename></pxref>) (<pxref label="Top" 
manual="file"><xrefnodename>Top</xrefnodename><xrefinfofile spaces=" 
">file</xrefinfofile><xrefprintedname spaces=" 
">Manual</xrefprintedname></pxref>)</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">node</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">chap</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>node</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chap</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/converters_tests/some_at_commands_in_ref_nodes.pl 
b/tp/t/results/converters_tests/some_at_commands_in_ref_nodes.pl
index ef67ab7a64..7136690f8c 100644
--- a/tp/t/results/converters_tests/some_at_commands_in_ref_nodes.pl
+++ b/tp/t/results/converters_tests/some_at_commands_in_ref_nodes.pl
@@ -1742,7 +1742,7 @@ 
$result_converted{'xml'}->{'some_at_commands_in_ref_nodes'} = '
 <top spaces=" "><sectiontitle>Top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">A <sc>sc <accent 
type="tilde" bracketed="off">n</accent> &aring; &tex;</sc> node <accent 
type="uml" bracketed="off">i</accent> <accent 
type="uml"><dotless>i</dotless></accent> <accent type="grave"><accent 
type="macr" bracketed="off">E</accent></accent> &lslash; <accent 
type="cedil"><accent type="acute" bracketed="off">C</accent></accent> 
&iexcl;</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>A <sc>sc <accent 
type="tilde" bracketed="off">n</accent> &aring; &tex;</sc> node <accent 
type="uml" bracketed="off">i</accent> <accent 
type="uml"><dotless>i</dotless></accent> <accent type="grave"><accent 
type="macr" bracketed="off">E</accent></accent> &lslash; <accent 
type="cedil"><accent type="acute" bracketed="off">C</accent></accent> 
&iexcl;</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/converters_tests/spaces_in_empty_node_names.pl 
b/tp/t/results/converters_tests/spaces_in_empty_node_names.pl
index 7c5f07ce99..d8be6f0794 100644
--- a/tp/t/results/converters_tests/spaces_in_empty_node_names.pl
+++ b/tp/t/results/converters_tests/spaces_in_empty_node_names.pl
@@ -825,9 +825,9 @@ 
$result_converted{'html_text'}->{'spaces_in_empty_node_names'} = '<a class="node
 $result_converted{'xml'}->{'spaces_in_empty_node_names'} = '<node name="Top" 
spaces=" "><nodename>Top</nodename></node>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::"><spacecmd 
type="spc"/><spacecmd type="spc"/></menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><verb delimiter=":">  </verb></menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><spacecmd type="spc"/></menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode><spacecmd 
type="spc"/><spacecmd 
type="spc"/></menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><verb delimiter=":">  
</verb></menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><spacecmd 
type="spc"/></menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="" spaces=" "><nodename></nodename></node>
diff --git a/tp/t/results/converters_tests/spaces_in_node_names.pl 
b/tp/t/results/converters_tests/spaces_in_node_names.pl
index cbe67e0439..97f81f9468 100644
--- a/tp/t/results/converters_tests/spaces_in_node_names.pl
+++ b/tp/t/results/converters_tests/spaces_in_node_names.pl
@@ -921,9 +921,9 @@ $result_converted{'html_text'}->{'spaces_in_node_names'} = 
'<a class="node-id" i
 $result_converted{'xml'}->{'spaces_in_node_names'} = '<node name="Top" 
spaces=" "><nodename>Top</nodename><nodenext automatic="on">a<spacecmd 
type="spc"/><spacecmd type="spc"/></nodenext></node>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">a<spacecmd 
type="spc"/><spacecmd type="spc"/></menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">b<verb delimiter=":">  </verb></menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">c<spacecmd type="spc"/></menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>a<spacecmd 
type="spc"/><spacecmd 
type="spc"/></menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>b<verb delimiter=":">  
</verb></menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>c<spacecmd 
type="spc"/></menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="a-" spaces=" "><nodename>a<spacecmd type="spc"/><spacecmd 
type="spc"/></nodename><nodenext automatic="on">b<verb delimiter=":">  
</verb></nodenext><nodeprev automatic="on">Top</nodeprev><nodeup 
automatic="on">Top</nodeup></node>
diff --git a/tp/t/results/converters_tests/things_before_setfilename.pl 
b/tp/t/results/converters_tests/things_before_setfilename.pl
index 7b56a01dab..0225e9eb93 100644
--- a/tp/t/results/converters_tests/things_before_setfilename.pl
+++ b/tp/t/results/converters_tests/things_before_setfilename.pl
@@ -1460,7 +1460,7 @@ $result_converted{'xml'}->{'things_before_setfilename'} = 
'<preamblebeforebeginn
 <contents></contents>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::                ">An 
anchor</menunode><menudescription><pre xml:space="preserve">menu entry pointing 
to the anchor.
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>An 
anchor</menunode><menuseparator>::                
</menuseparator><menudescription><pre xml:space="preserve">menu entry pointing 
to the anchor.
 </pre></menudescription></menuentry></menu>
 
 <cindex index="cp" spaces=" "><indexterm index="cp" number="1">index 
entry</indexterm></cindex>
diff --git 
a/tp/t/results/converters_tests/things_before_setfilename_no_element.pl 
b/tp/t/results/converters_tests/things_before_setfilename_no_element.pl
index 87220acdbb..568cfad6c0 100644
--- a/tp/t/results/converters_tests/things_before_setfilename_no_element.pl
+++ b/tp/t/results/converters_tests/things_before_setfilename_no_element.pl
@@ -1171,7 +1171,7 @@ 
$result_converted{'xml'}->{'things_before_setfilename_no_element'} = '<preambleb
 <contents></contents>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::                ">An 
anchor</menunode><menudescription><pre xml:space="preserve">menu entry pointing 
to the anchor.
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>An 
anchor</menunode><menuseparator>::                
</menuseparator><menudescription><pre xml:space="preserve">menu entry pointing 
to the anchor.
 </pre></menudescription></menuentry></menu>
 
 <cindex index="cp" spaces=" "><indexterm index="cp" number="1">index 
entry</indexterm></cindex>
diff --git a/tp/t/results/formats_encodings/at_commands_in_refs.pl 
b/tp/t/results/formats_encodings/at_commands_in_refs.pl
index d38467528e..526f770709 100644
--- a/tp/t/results/formats_encodings/at_commands_in_refs.pl
+++ b/tp/t/results/formats_encodings/at_commands_in_refs.pl
@@ -18154,33 +18154,33 @@ $result_converted{'xml'}->{'at_commands_in_refs'} = 
'<node name="Top" spaces=" "
 <top spaces=" "><sectiontitle>Top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">&hyphenbreak; &lbrace; 
&rbrace;</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><spacecmd type="spc"/> <spacecmd type="tab"/> &eosexcl; 
&linebreak; &eosperiod; &noeos; .&noeos; &eosquest; 
&arobase;</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">&atchar; &lbracechar; &rbracechar; &backslashchar; 
&hashchar;</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">&latex; &tex; &bullet; &comma; &copyright; &dots; 
&enddots;</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">&equiv; &errorglyph; &euro; &iexcl; &expansion; 
&minus;</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">&ge; &le; &rarr;</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">&ordf; &ordm; &point; &pound; &printglyph; &iquest; 
&registered;</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">&result; &deg; a&nbsp;b <today/> 
&aring;</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">&Aring; &aelig; &oelig; &AElig; &OElig; &oslash; &Oslash; 
&szlig; &lslash; &Lslash; &ETH; &eth; &THORN; 
&thorn;</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><accent type="uml">a</accent> <accent type="tilde">e</accent> 
<accent type="circ"><dotless>i</dotless></accent> <accent 
type="circ">a</accent> <accent type="grave">a</accent> <accent type="acute" 
bracketed="off">e</accent> <accent type="cedil">c</accent> <accent 
type="macr">e</accent> <accent type="ring">e</accent> <accent 
type="doubleacute">e</accent> <accent type="ogon">e</accent></menunode><menude 
[...]
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><accent type="dotaccent">e</accent> <accent 
type="breve">e</accent> <accent type="ubaraccent">e</accent> <accent 
type="udotaccent">e</accent> <accent type="caron">e</accent> 
<dotless>j</dotless> <accent 
type="tieaccent">ee</accent></menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><dotless>i</dotless> <accent type="grave"><accent type="macr" 
bracketed="off">E</accent></accent> <accent type="cedil"><accent type="acute" 
bracketed="off">C</accent></accent></menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">&ldquo; &rdquo; &lsquo; &rsquo; &bdquo; 
&sbquo;</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">&laquo; &raquo; &guillemotleft; &guillemotright; &lsaquo; 
&rsaquo;</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">`` \'\' --- -- ` \'</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><acronym><acronymword>AAA</acronymword><acronymdesc spaces=" 
">fff</acronymdesc></acronym> <acronym><acronymword>AAA</acronymword></acronym> 
<acronym><acronymword>BBB</acronymword></acronym></menunode><menudescription><pre
 xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><abbr><abbrword>CCC</abbrword><abbrdesc spaces=" 
">rrr</abbrdesc></abbr> <abbr><abbrword>CCC</abbrword></abbr> 
<abbr><abbrword>DDD</abbrword></abbr></menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><email><emailaddress>someone&arobase;somewher</emailaddress><emailname
 spaces=" ">the someone</emailname></email> 
<email><emailaddress>no_explain&arobase;there</emailaddress></email></menunode><menudescription><pre
 xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><image where="inline"><imagefile>f--ile1</imagefile></image>  
<image 
where="inline"><imagefile>f--ile</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension>e--xt</imageextension></image></menunode><menudescription><pre
 xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><verb delimiter="."> @ {} . 
</verb></menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><cite>cite <asis>asis</asis></cite> <w>in &arobase;w 
<b>b</b></w> <r>in r</r> <sc>sc</sc> <strong>str</strong> <t>t</t> 
<var>var</var> <dfn>dfn</dfn> <i>i</i></menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><env>env</env> <code>code</code> <option>option</option> 
<samp>samp</samp> <command>command</command> <file>file</file> <kbd>C-x 
<key>ESC</key></kbd></menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">8.27<dmn>in</dmn></menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><sansserif>sansserif</sansserif> 
<slanted>slanted</slanted></menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><indicateurl>indicateurl</indicateurl></menunode><menudescription><pre
 xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><sub>g</sub>H 3<sup>rd</sup></menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::"><url><urefurl>http://somewhere_aaa</urefurl></url> 
<url><urefurl>url</urefurl><urefdesc spaces=" ">text</urefdesc></url> 
<uref><urefurl>/man.cgi/1/ls</urefurl><urefreplacement>ls</urefreplacement></uref></menunode><menudescription><pre
 xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>&hyphenbreak; 
&lbrace; 
&rbrace;</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><spacecmd type="spc"/> <spacecmd type="tab"/> 
&eosexcl; &linebreak; &eosperiod; &noeos; .&noeos; &eosquest; 
&arobase;</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>&atchar; &lbracechar; &rbracechar; &backslashchar; 
&hashchar;</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>&latex; &tex; &bullet; &comma; &copyright; &dots; 
&enddots;</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>&equiv; &errorglyph; &euro; &iexcl; &expansion; 
&minus;</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>&ge; &le; 
&rarr;</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>&ordf; &ordm; &point; &pound; &printglyph; &iquest; 
&registered;</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>&result; &deg; a&nbsp;b <today/> 
&aring;</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>&Aring; &aelig; &oelig; &AElig; &OElig; &oslash; 
&Oslash; &szlig; &lslash; &Lslash; &ETH; &eth; &THORN; 
&thorn;</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><accent type="uml">a</accent> <accent 
type="tilde">e</accent> <accent type="circ"><dotless>i</dotless></accent> 
<accent type="circ">a</accent> <accent type="grave">a</accent> <accent 
type="acute" bracketed="off">e</accent> <accent type="cedil">c</accent> <accent 
type="macr">e</accent> <accent type="ring">e</accent> <accent 
type="doubleacute">e</accent> <accent type="ogon">e</accent></menunode><m [...]
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><accent type="dotaccent">e</accent> <accent 
type="breve">e</accent> <accent type="ubaraccent">e</accent> <accent 
type="udotaccent">e</accent> <accent type="caron">e</accent> 
<dotless>j</dotless> <accent 
type="tieaccent">ee</accent></menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><dotless>i</dotless> <accent type="grave"><accent 
type="macr" bracketed="off">E</accent></accent> <accent type="cedil"><accent 
type="acute" 
bracketed="off">C</accent></accent></menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>&ldquo; &rdquo; &lsquo; &rsquo; &bdquo; 
&sbquo;</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>&laquo; &raquo; &guillemotleft; &guillemotright; 
&lsaquo; 
&rsaquo;</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>`` \'\' --- -- ` 
\'</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><acronym><acronymword>AAA</acronymword><acronymdesc 
spaces=" ">fff</acronymdesc></acronym> 
<acronym><acronymword>AAA</acronymword></acronym> 
<acronym><acronymword>BBB</acronymword></acronym></menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><abbr><abbrword>CCC</abbrword><abbrdesc spaces=" 
">rrr</abbrdesc></abbr> <abbr><abbrword>CCC</abbrword></abbr> 
<abbr><abbrword>DDD</abbrword></abbr></menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><email><emailaddress>someone&arobase;somewher</emailaddress><emailname
 spaces=" ">the someone</emailname></email> 
<email><emailaddress>no_explain&arobase;there</emailaddress></email></menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><image 
where="inline"><imagefile>f--ile1</imagefile></image>  <image 
where="inline"><imagefile>f--ile</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension>e--xt</imageextension></image></menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><verb delimiter="."> @ {} . 
</verb></menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><cite>cite <asis>asis</asis></cite> <w>in 
&arobase;w <b>b</b></w> <r>in r</r> <sc>sc</sc> <strong>str</strong> <t>t</t> 
<var>var</var> <dfn>dfn</dfn> 
<i>i</i></menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><env>env</env> <code>code</code> 
<option>option</option> <samp>samp</samp> <command>command</command> 
<file>file</file> <kbd>C-x 
<key>ESC</key></kbd></menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>8.27<dmn>in</dmn></menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><sansserif>sansserif</sansserif> 
<slanted>slanted</slanted></menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><indicateurl>indicateurl</indicateurl></menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><sub>g</sub>H 
3<sup>rd</sup></menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode><url><urefurl>http://somewhere_aaa</urefurl></url> 
<url><urefurl>url</urefurl><urefdesc spaces=" ">text</urefdesc></url> 
<uref><urefurl>/man.cgi/1/ls</urefurl><urefreplacement>ls</urefreplacement></uref></menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git 
a/tp/t/results/formats_encodings/char_latin1_latin1_in_refs/res_xml/char_latin1_latin1_in_refs.xml
 
b/tp/t/results/formats_encodings/char_latin1_latin1_in_refs/res_xml/char_latin1_latin1_in_refs.xml
index d490f2e3cd..aa209815a9 100644
--- 
a/tp/t/results/formats_encodings/char_latin1_latin1_in_refs/res_xml/char_latin1_latin1_in_refs.xml
+++ 
b/tp/t/results/formats_encodings/char_latin1_latin1_in_refs/res_xml/char_latin1_latin1_in_refs.xml
@@ -10,11 +10,11 @@
 <top spaces=" "><sectiontitle>char latin1 latin1 in refs</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">� � � � � � � � � � 
�</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">�</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">� � �</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">� � � � � � � � � �</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">�</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>� � � � � � � � � � 
�</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>�</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>� � 
�</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>� � � � � � � � � 
�</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>�</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/indices/double_index_entry.pl 
b/tp/t/results/indices/double_index_entry.pl
index bcf1e7d987..6046218e05 100644
--- a/tp/t/results/indices/double_index_entry.pl
+++ b/tp/t/results/indices/double_index_entry.pl
@@ -629,7 +629,7 @@ $result_converted{'xml'}->{'double_index_entry'} = '<node 
name="Top" spaces=" ">
 <cindex index="cp" spaces=" "><indexterm index="cp" 
number="2">aaa</indexterm></cindex>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">other 
node</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>other 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="other-node" spaces=" "><nodename>other 
node</nodename><nodenext></nodenext><nodeprev 
automatic="on">Top</nodeprev><nodeup>Top</nodeup></node>
diff --git a/tp/t/results/indices/index_entry_before_node.pl 
b/tp/t/results/indices/index_entry_before_node.pl
index 5fe48db6e6..5d379fad2c 100644
--- a/tp/t/results/indices/index_entry_before_node.pl
+++ b/tp/t/results/indices/index_entry_before_node.pl
@@ -697,8 +697,8 @@ $result_converted{'html_text'}->{'index_entry_before_node'} 
= '<a class="node-id
 $result_converted{'xml'}->{'index_entry_before_node'} = '<node name="Top" 
spaces=" "><nodename>Top</nodename><nodenext 
automatic="on">first</nodenext></node>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">first</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">second</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>first</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>second</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="first" spaces=" 
"><nodename>first</nodename><nodenext>second</nodenext><nodeprev 
automatic="on">Top</nodeprev><nodeup>Top</nodeup></node>
diff --git a/tp/t/results/indices/index_entry_in_footnote_different_node_end.pl 
b/tp/t/results/indices/index_entry_in_footnote_different_node_end.pl
index 78985700f9..98c759dbfe 100644
--- a/tp/t/results/indices/index_entry_in_footnote_different_node_end.pl
+++ b/tp/t/results/indices/index_entry_in_footnote_different_node_end.pl
@@ -633,7 +633,7 @@ 
$result_converted{'html_text'}->{'index_entry_in_footnote_different_node_end'} =
 $result_converted{'xml'}->{'index_entry_in_footnote_different_node_end'} = 
'<node name="Top" spaces=" "><nodename>Top</nodename><nodenext 
automatic="on">First</nodenext></node>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">First</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>First</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <para>Top node<footnote><para>in footnote
diff --git a/tp/t/results/indices/index_entry_in_footnote_separate.pl 
b/tp/t/results/indices/index_entry_in_footnote_separate.pl
index c3ffd0ce29..44373323e4 100644
--- a/tp/t/results/indices/index_entry_in_footnote_separate.pl
+++ b/tp/t/results/indices/index_entry_in_footnote_separate.pl
@@ -668,7 +668,7 @@ 
$result_converted{'xml'}->{'index_entry_in_footnote_separate'} = '<footnotestyle
 <node name="Top" spaces=" "><nodename>Top</nodename><nodenext 
automatic="on">First</nodenext></node>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">First</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>First</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <para>Top node<footnote><para>in footnote
diff --git a/tp/t/results/indices/printindex_index_entry_in_copying.pl 
b/tp/t/results/indices/printindex_index_entry_in_copying.pl
index 57f844206a..ef9077ed78 100644
--- a/tp/t/results/indices/printindex_index_entry_in_copying.pl
+++ b/tp/t/results/indices/printindex_index_entry_in_copying.pl
@@ -1412,7 +1412,7 @@ 
$result_converted{'xml'}->{'printindex_index_entry_in_copying'} = '<copying ends
 </para><insertcopying></insertcopying>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">chapter</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chapter</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git 
a/tp/t/results/indices/printindex_index_entry_in_copying_in_footnote.pl 
b/tp/t/results/indices/printindex_index_entry_in_copying_in_footnote.pl
index ca70d51cb0..2b15f13d0e 100644
--- a/tp/t/results/indices/printindex_index_entry_in_copying_in_footnote.pl
+++ b/tp/t/results/indices/printindex_index_entry_in_copying_in_footnote.pl
@@ -858,7 +858,7 @@ 
$result_converted{'xml'}->{'printindex_index_entry_in_copying_in_footnote'} = '<
 </para><insertcopying></insertcopying>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">chapter</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chapter</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git 
a/tp/t/results/indices/printindex_index_entry_in_copying_no_insertcopying.pl 
b/tp/t/results/indices/printindex_index_entry_in_copying_no_insertcopying.pl
index 05e38cc322..6f8eac9bc6 100644
--- a/tp/t/results/indices/printindex_index_entry_in_copying_no_insertcopying.pl
+++ b/tp/t/results/indices/printindex_index_entry_in_copying_no_insertcopying.pl
@@ -1208,7 +1208,7 @@ 
$result_converted{'xml'}->{'printindex_index_entry_in_copying_no_insertcopying'}
 <para>Top.
 </para>
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">chapter</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chapter</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/menu/block_commands_in_menu_description.pl 
b/tp/t/results/menu/block_commands_in_menu_description.pl
index 6608ec5def..f328aa136a 100644
--- a/tp/t/results/menu/block_commands_in_menu_description.pl
+++ b/tp/t/results/menu/block_commands_in_menu_description.pl
@@ -771,7 +771,7 @@ 
$result_converted{'xml'}->{'block_commands_in_menu_description'} = '<node name="
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">(manual)</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(manual)</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre><itemize commandarg="bullet" endspaces=" 
"><itemprepend><formattingcommand command="bullet" 
automatic="on"/></itemprepend>
 <beforefirstitem><pre xml:space="preserve">
 </pre></beforefirstitem><listitem><prepend>&bullet;</prepend><pre 
xml:space="preserve"> in item
diff --git a/tp/t/results/menu/comment_on_menu_line.pl 
b/tp/t/results/menu/comment_on_menu_line.pl
index 907c5b43c3..2be908309a 100644
--- a/tp/t/results/menu/comment_on_menu_line.pl
+++ b/tp/t/results/menu/comment_on_menu_line.pl
@@ -440,7 +440,7 @@ $result_converted_errors{'html'}->{'comment_on_menu_line'} 
= [
 $result_converted{'xml'}->{'comment_on_menu_line'} = '<node name="Top" 
spaces=" "><nodename>Top</nodename><nodenext 
automatic="on">first</nodenext></node>
 
 <menu spaces="  " endspaces=" "><!-- c -->
-<menuentry leadingtext="* "><menunode 
separator="::">first</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>first</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <chapter spaces=" "><sectiontitle>first</sectiontitle>
diff --git a/tp/t/results/menu/dash_in_menu.pl 
b/tp/t/results/menu/dash_in_menu.pl
index b6739bce86..d17d1ee442 100644
--- a/tp/t/results/menu/dash_in_menu.pl
+++ b/tp/t/results/menu/dash_in_menu.pl
@@ -249,7 +249,7 @@ $result_converted_errors{'html'}->{'dash_in_menu'} = [
 
 $result_converted{'xml'}->{'dash_in_menu'} = '
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menutitle separator=": 
">entry&textmdash;in</menutitle><menunode separator=".         
">(manual)n---ode</menunode><menudescription><pre 
xml:space="preserve">description &textmdash; in.
+<menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>entry&textmdash;in</menutitle><menuseparator>: 
</menuseparator><menunode>(manual)n---ode</menunode><menuseparator>.         
</menuseparator><menudescription><pre xml:space="preserve">description 
&textmdash; in.
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
 comment &textmdash; in.
 </pre></menucomment></menu>
diff --git a/tp/t/results/menu/detailmenu.pl b/tp/t/results/menu/detailmenu.pl
index dc9d3de9fc..9e48169149 100644
--- a/tp/t/results/menu/detailmenu.pl
+++ b/tp/t/results/menu/detailmenu.pl
@@ -319,10 +319,10 @@ $result_converted_errors{'html'}->{'detailmenu'} = [
 
 $result_converted{'xml'}->{'detailmenu'} = '
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::          ">Copying 
Conditions</menunode><menudescription><pre xml:space="preserve">Your rights.
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>Copying 
Conditions</menunode><menuseparator>::          
</menuseparator><menudescription><pre xml:space="preserve">Your rights.
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
 </pre></menucomment><detailmenu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">detailmenu</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>detailmenu</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></detailmenu>
 </menu>
 ';
diff --git a/tp/t/results/menu/detailmenu_in_description.pl 
b/tp/t/results/menu/detailmenu_in_description.pl
index f72c6ff062..23fc8ed735 100644
--- a/tp/t/results/menu/detailmenu_in_description.pl
+++ b/tp/t/results/menu/detailmenu_in_description.pl
@@ -297,9 +297,9 @@ 
$result_converted_errors{'html'}->{'detailmenu_in_description'} = [
 
 $result_converted{'xml'}->{'detailmenu_in_description'} = '
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::          ">Copying 
Conditions</menunode><menudescription><pre xml:space="preserve">Your rights.
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>Copying 
Conditions</menunode><menuseparator>::          
</menuseparator><menudescription><pre xml:space="preserve">Your rights.
 </pre></menudescription></menuentry><detailmenu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">detailmenu</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>detailmenu</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></detailmenu>
 </menu>
 ';
diff --git a/tp/t/results/menu/detailmenu_on_subnodes.pl 
b/tp/t/results/menu/detailmenu_on_subnodes.pl
index 35a64eafe1..eb8abf5993 100644
--- a/tp/t/results/menu/detailmenu_on_subnodes.pl
+++ b/tp/t/results/menu/detailmenu_on_subnodes.pl
@@ -1768,18 +1768,18 @@ $result_converted{'xml'}->{'detailmenu_on_subnodes'} = 
'<node name="Top" spaces=
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">chapter</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">chapter 2</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chapter</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chapter 
2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
 </pre></menucomment><detailmenu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">section</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>section</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></detailmenu>
 <menucomment><pre xml:space="preserve">
 </pre></menucomment><detailmenu endspaces=" ">
 <menucomment><pre xml:space="preserve">Chap 2
 
-</pre></menucomment><menuentry leadingtext="* "><menunode 
separator="::">section chap 2</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">unnumberedsec</menunode><menudescription><pre 
xml:space="preserve">
+</pre></menucomment><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>section chap 
2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>unnumberedsec</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></detailmenu>
 </menu>
 
@@ -1788,7 +1788,7 @@ $result_converted{'xml'}->{'detailmenu_on_subnodes'} = 
'<node name="Top" spaces=
 <chapter spaces=" "><sectiontitle>chapter</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">section</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>section</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="section" spaces=" "><nodename>section</nodename><nodeup 
automatic="on">chapter</nodeup></node>
@@ -1800,8 +1800,8 @@ $result_converted{'xml'}->{'detailmenu_on_subnodes'} = 
'<node name="Top" spaces=
 <chapter spaces=" "><sectiontitle>chapter 2</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">section chap 
2</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">unnumberedsec</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>section chap 
2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>unnumberedsec</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="section-chap-2" spaces=" "><nodename>section chap 
2</nodename><nodenext automatic="on">unnumberedsec</nodenext><nodeup 
automatic="on">chapter 2</nodeup></node>
diff --git a/tp/t/results/menu/detailmenu_unknown_node.pl 
b/tp/t/results/menu/detailmenu_unknown_node.pl
index 785fab24b4..a3f1c7cb7b 100644
--- a/tp/t/results/menu/detailmenu_unknown_node.pl
+++ b/tp/t/results/menu/detailmenu_unknown_node.pl
@@ -318,7 +318,7 @@ $result_converted{'xml'}->{'detailmenu_unknown_node'} = 
'<node name="Top" spaces
 
 <menu endspaces=" ">
 <detailmenu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">unknown</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>unknown</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></detailmenu>
 </menu>
 ';
diff --git a/tp/t/results/menu/empty_menu_description.pl 
b/tp/t/results/menu/empty_menu_description.pl
index fe8260370b..ccc4a048e8 100644
--- a/tp/t/results/menu/empty_menu_description.pl
+++ b/tp/t/results/menu/empty_menu_description.pl
@@ -325,7 +325,7 @@ $result_converted{'xml'}->{'empty_menu_description'} = 
'<node name="Top" spaces=
 </nodenext></node>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menutitle 
separator=":">a</menutitle><menunode>(f)b
+<menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a</menutitle><menuseparator>:</menuseparator><menunode>(f)b
 </menunode><menudescription></menudescription></menuentry><menucomment><pre 
xml:space="preserve">
 </pre></menucomment></menu>
 ';
diff --git a/tp/t/results/menu/entry_after_detailmenu.pl 
b/tp/t/results/menu/entry_after_detailmenu.pl
index c05dc9675c..4982bb342a 100644
--- a/tp/t/results/menu/entry_after_detailmenu.pl
+++ b/tp/t/results/menu/entry_after_detailmenu.pl
@@ -755,17 +755,17 @@ $result_converted{'xml'}->{'entry_after_detailmenu'} = 
'<node name="Top" spaces=
 
 <menu endspaces=" ">
 <detailmenu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">second</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>second</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></detailmenu>
 <menucomment><pre xml:space="preserve">
 Menu comment
 
-</pre></menucomment><menuentry leadingtext="* "><menunode 
separator="::">first</menunode><menudescription><pre xml:space="preserve">
+</pre></menucomment><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>first</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
 </pre></menucomment><detailmenu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">second</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>second</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></detailmenu>
-<menuentry leadingtext="* "><menunode 
separator="::">second</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>second</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="first" spaces=" "><nodename>first</nodename><nodenext 
automatic="on">second</nodenext><nodeprev automatic="on">Top</nodeprev><nodeup 
automatic="on">Top</nodeup></node>
diff --git a/tp/t/results/menu/example_in_menu_comment.pl 
b/tp/t/results/menu/example_in_menu_comment.pl
index f4aed7bfe8..8552d93a09 100644
--- a/tp/t/results/menu/example_in_menu_comment.pl
+++ b/tp/t/results/menu/example_in_menu_comment.pl
@@ -319,7 +319,7 @@ 
$result_converted_errors{'html'}->{'example_in_menu_comment'} = [
 
 
 $result_converted{'xml'}->{'example_in_menu_comment'} = '<menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">entry</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>entry</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
 </pre><example endspaces=" ">
 <pre xml:space="preserve">in 
diff --git a/tp/t/results/menu/example_in_menu_description.pl 
b/tp/t/results/menu/example_in_menu_description.pl
index 0eddbe403c..d6479b700c 100644
--- a/tp/t/results/menu/example_in_menu_description.pl
+++ b/tp/t/results/menu/example_in_menu_description.pl
@@ -449,7 +449,7 @@ $result_converted{'xml'}->{'example_in_menu_description'} = 
'<node name="Top" sp
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">(manual)</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(manual)</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre><example endspaces=" ">
 <pre xml:space="preserve">in 
 
diff --git a/tp/t/results/menu/formats_in_menu.pl 
b/tp/t/results/menu/formats_in_menu.pl
index ca5daa57b3..1252fae98e 100644
--- a/tp/t/results/menu/formats_in_menu.pl
+++ b/tp/t/results/menu/formats_in_menu.pl
@@ -899,24 +899,24 @@ $result_converted_errors{'html'}->{'formats_in_menu'} = [
 $result_converted{'xml'}->{'formats_in_menu'} = '<node name="Top" spaces=" 
"><nodename>Top</nodename><nodenext automatic="on">(gcc)</nodenext></node>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator=":: 
">(gcc)</menunode><menudescription><pre xml:space="preserve">text
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(gcc)</menunode><menuseparator>:: 
</menuseparator><menudescription><pre xml:space="preserve">text
 </pre><table commandarg="asis" spaces=" " endspaces=" ">
 <tableentry><tableterm><item spaces=" "><itemformat 
command="asis">item</itemformat></item>
 </tableterm><tableitem><pre xml:space="preserve">* table line::
 </pre></tableitem></tableentry></table>
 </menudescription></menuentry><menucomment><pre xml:space="preserve">
-</pre></menucomment><menuentry leadingtext="* "><menunode 
separator="::">(info)</menunode><menudescription><pre xml:space="preserve">
+</pre></menucomment><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(info)</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre><verbatim xml:space="preserve" endspaces=" ">
 some @ verb{x atim
 * texinfo:: in @ verbatim
 </verbatim>
-<pre xml:space="preserve"></pre></menudescription></menuentry><menuentry 
leadingtext="* "><menunode separator=":: 
">(manual2)</menunode><menudescription><pre xml:space="preserve">%
+<pre 
xml:space="preserve"></pre></menudescription></menuentry><menuentry><menuleadingtext>*
 </menuleadingtext><menunode>(manual2)</menunode><menuseparator>:: 
</menuseparator><menudescription><pre xml:space="preserve">%
 <html endspaces=" ">
 
 &lt;i&gt;&lt;/i&gt;
 </html>
 Log$
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator=":: ">(truc)</menunode><menudescription><pre 
xml:space="preserve"><acronym><acronymword>description
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(truc)</menunode><menuseparator>:: 
</menuseparator><menudescription><pre 
xml:space="preserve"><acronym><acronymword>description
 * acronym::</acronymword></acronym>
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
 </pre><example endspaces=" ">
diff --git a/tp/t/results/menu/inlineraw_in_menu_description.pl 
b/tp/t/results/menu/inlineraw_in_menu_description.pl
index 12a490c366..1a40975725 100644
--- a/tp/t/results/menu/inlineraw_in_menu_description.pl
+++ b/tp/t/results/menu/inlineraw_in_menu_description.pl
@@ -421,7 +421,7 @@ $result_converted{'xml'}->{'inlineraw_in_menu_description'} 
= '<node name="Top"
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">(manual)</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(manual)</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 <inlineraw><inlinerawformat>html</inlinerawformat><inlinerawcontent spaces=" 
">in inline raw
 
 end inlineraw</inlinerawcontent></inlineraw>
diff --git a/tp/t/results/menu/invalid_info_menu_entry.pl 
b/tp/t/results/menu/invalid_info_menu_entry.pl
index b4acacb769..4dfa017937 100644
--- a/tp/t/results/menu/invalid_info_menu_entry.pl
+++ b/tp/t/results/menu/invalid_info_menu_entry.pl
@@ -753,11 +753,11 @@ 
$result_converted_errors{'html'}->{'invalid_info_menu_entry'} = [
 $result_converted{'xml'}->{'invalid_info_menu_entry'} = '<node name="Top" 
spaces=" "><nodename>Top</nodename><nodenext 
automatic="on">(f)<asis>a:</asis></nodenext></node>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">(f)<asis>a:</asis></menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": "><asis>name:</asis></menutitle><menunode 
separator=".">(f)node</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">name</menutitle><menunode separator=". ">(f)<asis>node. 
</asis></menunode><menudescription><pre xml:space="preserve">d
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">name</menutitle><menunode separator=". 
">(f)<asis>node,n</asis></menunode><menudescription><pre xml:space="preserve">d2
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">name</menutitle><menunode separator=". ">(f)<asis>node       
n</asis></menunode><menudescription><pre xml:space="preserve">d3
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(f)<asis>a:</asis></menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle><asis>name:</asis></menutitle><menuseparator>: 
</menuseparator><menunode>(f)node</menunode><menuseparator>.</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>name</menutitle><menuseparator>: 
</menuseparator><menunode>(f)<asis>node. </asis></menunode><menuseparator>. 
</menuseparator><menudescription><pre xml:space="preserve">d
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>name</menutitle><menuseparator>: 
</menuseparator><menunode>(f)<asis>node,n</asis></menunode><menuseparator>. 
</menuseparator><menudescription><pre xml:space="preserve">d2
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>name</menutitle><menuseparator>: 
</menuseparator><menunode>(f)<asis>node        
n</asis></menunode><menuseparator>. </menuseparator><menudescription><pre 
xml:space="preserve">d3
 </pre></menudescription></menuentry></menu>
 ';
 
diff --git a/tp/t/results/menu/menu_entry_name.pl 
b/tp/t/results/menu/menu_entry_name.pl
index d7b01fbcc4..d7a92eb701 100644
--- a/tp/t/results/menu/menu_entry_name.pl
+++ b/tp/t/results/menu/menu_entry_name.pl
@@ -956,16 +956,16 @@ $result_converted_errors{'html'}->{'menu_entry_name'} = [
 
 
 $result_converted{'xml'}->{'menu_entry_name'} = '<menu endspaces=" ">
-<menuentry leadingtext="* "><menutitle separator=": 
">a</menutitle><menunode>(f)b
-</menunode><menudescription><pre 
xml:space="preserve"></pre></menudescription></menuentry><menuentry 
leadingtext="* "><menutitle separator=": ">a</menutitle><menunode 
separator=",">(f)b1.c</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">a</menutitle><menunode separator=",     
">(f)b2.c</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">a</menutitle><menunode separator=",    
">(f)b3.c</menunode><menudescription><pre xml:space="preserve">d
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">a</menutitle><menunode separator=". 
">(f)b1.</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">a </menutitle><menunode separator=".">(f) b2 
.</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">a.n</menutitle><menunode separator=".         
">(f)b3.</menunode><menudescription><pre xml:space="preserve">d
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">a</menutitle><menunode 
separator=".">(f)b1.c</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">a</menutitle><menunode separator=".  
">(f)b2.c</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">a</menutitle><menunode separator=". 
">(f)b3.c</menunode><menudescription><pre xml:space="preserve">d
+<menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a</menutitle><menuseparator>: 
</menuseparator><menunode>(f)b
+</menunode><menudescription><pre 
xml:space="preserve"></pre></menudescription></menuentry><menuentry><menuleadingtext>*
 </menuleadingtext><menutitle>a</menutitle><menuseparator>: 
</menuseparator><menunode>(f)b1.c</menunode><menuseparator>,</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a</menutitle><menuseparator>: 
</menuseparator><menunode>(f)b2.c</menunode><menuseparator>,     
</menuseparator><menudescription><pre xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a</menutitle><menuseparator>: 
</menuseparator><menunode>(f)b3.c</menunode><menuseparator>,    
</menuseparator><menudescription><pre xml:space="preserve">d
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a</menutitle><menuseparator>: 
</menuseparator><menunode>(f)b1.</menunode><menuseparator>. 
</menuseparator><menudescription><pre xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a </menutitle><menuseparator>: 
</menuseparator><menunode>(f) b2 
.</menunode><menuseparator>.</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a.n</menutitle><menuseparator>: 
</menuseparator><menunode>(f)b3.</menunode><menuseparator>.         
</menuseparator><menudescription><pre xml:space="preserve">d
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a</menutitle><menuseparator>: 
</menuseparator><menunode>(f)b1.c</menunode><menuseparator>.</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a</menutitle><menuseparator>: 
</menuseparator><menunode>(f)b2.c</menunode><menuseparator>.  
</menuseparator><menudescription><pre xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a</menutitle><menuseparator>: 
</menuseparator><menunode>(f)b3.c</menunode><menuseparator>. 
</menuseparator><menudescription><pre xml:space="preserve">d
 </pre></menudescription></menuentry></menu>
 ';
 
diff --git a/tp/t/results/menu/menu_entry_name_comment.pl 
b/tp/t/results/menu/menu_entry_name_comment.pl
index 0cb1bf2efc..f1fbb7a36c 100644
--- a/tp/t/results/menu/menu_entry_name_comment.pl
+++ b/tp/t/results/menu/menu_entry_name_comment.pl
@@ -598,11 +598,11 @@ 
$result_converted_errors{'html'}->{'menu_entry_name_comment'} = [
 
 
 $result_converted{'xml'}->{'menu_entry_name_comment'} = '<menu endspaces=" ">
-<menuentry leadingtext="* "><menutitle separator=": 
">a</menutitle><menunode>(f)b</menunode><menudescription><pre 
xml:space="preserve"><!-- c c -->
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">a</menutitle><menunode>(f)b </menunode><menudescription><pre 
xml:space="preserve"><!-- c c -->
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">a</menutitle><menunode 
separator=",">(f)b1c.c</menunode><menudescription><pre 
xml:space="preserve"><!-- c c -->
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">a</menutitle><menunode separator=",     
">(f)b2c.c</menunode><menudescription><pre xml:space="preserve"><!-- c c -->
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">a</menutitle><menunode separator=",    
">(f)b3c.c</menunode><menudescription><pre xml:space="preserve">d<!-- c c -->
+<menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a</menutitle><menuseparator>: 
</menuseparator><menunode>(f)b</menunode><menudescription><pre 
xml:space="preserve"><!-- c c -->
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a</menutitle><menuseparator>: 
</menuseparator><menunode>(f)b </menunode><menudescription><pre 
xml:space="preserve"><!-- c c -->
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a</menutitle><menuseparator>: 
</menuseparator><menunode>(f)b1c.c</menunode><menuseparator>,</menuseparator><menudescription><pre
 xml:space="preserve"><!-- c c -->
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a</menutitle><menuseparator>: 
</menuseparator><menunode>(f)b2c.c</menunode><menuseparator>,     
</menuseparator><menudescription><pre xml:space="preserve"><!-- c c -->
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a</menutitle><menuseparator>: 
</menuseparator><menunode>(f)b3c.c</menunode><menuseparator>,    
</menuseparator><menudescription><pre xml:space="preserve">d<!-- c c -->
 </pre></menudescription></menuentry></menu>
 ';
 
diff --git a/tp/t/results/menu/menu_entry_no_entry_location.pl 
b/tp/t/results/menu/menu_entry_no_entry_location.pl
index f9e7a1920f..d514bb031e 100644
--- a/tp/t/results/menu/menu_entry_no_entry_location.pl
+++ b/tp/t/results/menu/menu_entry_no_entry_location.pl
@@ -342,13 +342,13 @@ 
$result_converted_errors{'html'}->{'menu_entry_no_entry_location'} = [
 
 
 $result_converted{'xml'}->{'menu_entry_no_entry_location'} = '<menu 
endspaces=" ">
-<menuentry leadingtext="* "><menunode separator=":: 
">(manual)</menunode><menudescription><pre xml:space="preserve">begin 
description
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(manual)</menunode><menuseparator>:: 
</menuseparator><menudescription><pre xml:space="preserve">begin description
 * not an entry ?
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator=":: ">(manual)</menunode><menudescription><pre 
xml:space="preserve">an entry
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(manual)</menunode><menuseparator>:: 
</menuseparator><menudescription><pre xml:space="preserve">an entry
   in description
 * and here ?
 with text.
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">(last manual)</menunode><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(last 
manual)</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 ';
 
diff --git a/tp/t/results/menu/menu_entry_node.pl 
b/tp/t/results/menu/menu_entry_node.pl
index 166d3dd4e8..88c1b9ea18 100644
--- a/tp/t/results/menu/menu_entry_node.pl
+++ b/tp/t/results/menu/menu_entry_node.pl
@@ -413,10 +413,10 @@ $result_converted_errors{'html'}->{'menu_entry_node'} = [
 
 
 $result_converted{'xml'}->{'menu_entry_node'} = '<menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">(f)a1</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::  ">(f)a2</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::         ">(f)a3</menunode><menudescription><pre 
xml:space="preserve">d
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator=":: ">(f)&arobase;a&noeos;</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(f)a1</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(f)a2</menunode><menuseparator>::  
</menuseparator><menudescription><pre xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(f)a3</menunode><menuseparator>::         
</menuseparator><menudescription><pre xml:space="preserve">d
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(f)&arobase;a&noeos;</menunode><menuseparator>:: 
</menuseparator><menudescription><pre xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 ';
 
diff --git a/tp/t/results/menu/menu_entry_node_comments.pl 
b/tp/t/results/menu/menu_entry_node_comments.pl
index 723ae17557..6fd5535ce9 100644
--- a/tp/t/results/menu/menu_entry_node_comments.pl
+++ b/tp/t/results/menu/menu_entry_node_comments.pl
@@ -459,10 +459,10 @@ 
$result_converted_errors{'html'}->{'menu_entry_node_comments'} = [
 
 
 $result_converted{'xml'}->{'menu_entry_node_comments'} = '<menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">(f)a1c</menunode><menudescription><pre xml:space="preserve"><!-- 
c c -->
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::  ">(f)a2c</menunode><menudescription><pre 
xml:space="preserve"><!-- c c -->
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::         ">(f)a3c</menunode><menudescription><pre 
xml:space="preserve">d<!-- c c -->
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::   ">(f) a4 </menunode><menudescription><pre 
xml:space="preserve"><!-- c c -->
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(f)a1c</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve"><!-- c c -->
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(f)a2c</menunode><menuseparator>::  
</menuseparator><menudescription><pre xml:space="preserve"><!-- c c -->
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(f)a3c</menunode><menuseparator>::         
</menuseparator><menudescription><pre xml:space="preserve">d<!-- c c -->
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(f) a4 </menunode><menuseparator>::   
</menuseparator><menudescription><pre xml:space="preserve"><!-- c c -->
 </pre></menudescription></menuentry></menu>
 ';
 
diff --git a/tp/t/results/menu/menu_in_example.pl 
b/tp/t/results/menu/menu_in_example.pl
index 46aa8a57ab..2620470a14 100644
--- a/tp/t/results/menu/menu_in_example.pl
+++ b/tp/t/results/menu/menu_in_example.pl
@@ -642,7 +642,7 @@ $result_converted{'xml'}->{'menu_in_example'} = '<node 
name="Top" spaces=" "><no
 
 <example endspaces=" ">
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">(entry)</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(entry)</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre><cartouche endspaces=" ">
 <pre xml:space="preserve">in cartouche in description in menu in example
 </pre></cartouche>
@@ -651,8 +651,8 @@ $result_converted{'xml'}->{'menu_in_example'} = '<node 
name="Top" spaces=" "><no
 <pre xml:space="preserve">in cartouche in menu comment in menu in example
 </pre></cartouche>
 <pre xml:space="preserve">
-</pre></menucomment><menuentry leadingtext="* "><menunode separator="::      
">(node) menu</menunode><menudescription><pre xml:space="preserve">a node in 
menu
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=":">a menu name</menutitle><menunode separator=". ">(other) 
node</menunode><menudescription><pre xml:space="preserve">
+</pre></menucomment><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(node) menu</menunode><menuseparator>::      
</menuseparator><menudescription><pre xml:space="preserve">a node in menu
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>a menu 
name</menutitle><menuseparator>:</menuseparator><menunode>(other) 
node</menunode><menuseparator>. </menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 </example>
 ';
diff --git a/tp/t/results/menu/menu_pointing_to_anchor.pl 
b/tp/t/results/menu/menu_pointing_to_anchor.pl
index f231892a3b..a788013a05 100644
--- a/tp/t/results/menu/menu_pointing_to_anchor.pl
+++ b/tp/t/results/menu/menu_pointing_to_anchor.pl
@@ -410,7 +410,7 @@ $result_converted{'xml'}->{'menu_pointing_to_anchor'} = 
'<node name="Top" spaces
 <anchor name="An-anchor">An anchor</anchor>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::                ">An 
anchor</menunode><menudescription><pre xml:space="preserve">menu entry pointing 
to the anchor.
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>An 
anchor</menunode><menuseparator>::                
</menuseparator><menudescription><pre xml:space="preserve">menu entry pointing 
to the anchor.
 </pre></menudescription></menuentry></menu>
 </top>
 ';
diff --git a/tp/t/results/menu/menu_title_before_entries.pl 
b/tp/t/results/menu/menu_title_before_entries.pl
index 41ff865e34..2fee7e6024 100644
--- a/tp/t/results/menu/menu_title_before_entries.pl
+++ b/tp/t/results/menu/menu_title_before_entries.pl
@@ -373,7 +373,7 @@ $result_converted{'xml'}->{'menu_title_before_entries'} = 
'<node name="Top" spac
 
 <menu endspaces=" ">
 <menucomment><pre xml:space="preserve">Horizontal space
-</pre></menucomment><menuentry leadingtext="* "><menunode 
separator="::">subnode</menunode><menudescription><pre xml:space="preserve">
+</pre></menucomment><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>subnode</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="subnode" spaces=" "><nodename>subnode</nodename><nodeprev 
automatic="on">Top</nodeprev><nodeup automatic="on">Top</nodeup></node>
diff --git a/tp/t/results/menu/missing_detailmenu_on_subnodes.pl 
b/tp/t/results/menu/missing_detailmenu_on_subnodes.pl
index 0c3b37b27a..61b548428d 100644
--- a/tp/t/results/menu/missing_detailmenu_on_subnodes.pl
+++ b/tp/t/results/menu/missing_detailmenu_on_subnodes.pl
@@ -1679,15 +1679,15 @@ 
$result_converted{'xml'}->{'missing_detailmenu_on_subnodes'} = '<node name="Top"
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">chapter</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">chapter 2</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chapter</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chapter 
2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
-</pre></menucomment><menuentry leadingtext="* "><menunode 
separator="::">section</menunode><menudescription><pre xml:space="preserve">
+</pre></menucomment><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>section</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
 Chap 2
 
-</pre></menucomment><menuentry leadingtext="* "><menunode 
separator="::">section chap 2</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">unnumberedsec</menunode><menudescription><pre 
xml:space="preserve">
+</pre></menucomment><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>section chap 
2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>unnumberedsec</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
@@ -1695,7 +1695,7 @@ Chap 2
 <chapter spaces=" "><sectiontitle>chapter</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">section</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>section</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="section" spaces=" "><nodename>section</nodename><nodenext 
automatic="on">section chap 2</nodenext><nodeprev automatic="on">chapter 
2</nodeprev><nodeup automatic="on">chapter</nodeup></node>
@@ -1707,8 +1707,8 @@ Chap 2
 <chapter spaces=" "><sectiontitle>chapter 2</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">section chap 
2</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">unnumberedsec</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>section chap 
2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>unnumberedsec</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="section-chap-2" spaces=" "><nodename>section chap 
2</nodename><nodenext automatic="on">unnumberedsec</nodenext><nodeprev 
automatic="on">section</nodeprev><nodeup automatic="on">chapter 
2</nodeup></node>
diff --git a/tp/t/results/menu/reference_to_external_manual.pl 
b/tp/t/results/menu/reference_to_external_manual.pl
index d26345f72b..581d9facaa 100644
--- a/tp/t/results/menu/reference_to_external_manual.pl
+++ b/tp/t/results/menu/reference_to_external_manual.pl
@@ -298,7 +298,7 @@ $result_converted{'xml'}->{'reference_to_external_manual'} 
= '
 <node name="Top" spaces=" "><nodename>Top</nodename><nodenext 
automatic="on">(info)</nodenext></node>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">(info)</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(info)</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 ';
 
diff --git a/tp/t/results/menu/sc_in_menu.pl b/tp/t/results/menu/sc_in_menu.pl
index abed91af5f..91517f3549 100644
--- a/tp/t/results/menu/sc_in_menu.pl
+++ b/tp/t/results/menu/sc_in_menu.pl
@@ -971,7 +971,7 @@ $result_converted{'xml'}->{'sc_in_menu'} = '
 <node name="Top" spaces=" "><nodename>Top</nodename><nodenext 
automatic="on"><sc>node</sc></nodenext></node>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menutitle 
separator=":"><sc>value</sc></menutitle><menunode separator=".   
"><sc>node</sc></menunode><menudescription><pre 
xml:space="preserve"><sc>descrip tion</sc>
+<menuentry><menuleadingtext>* 
</menuleadingtext><menutitle><sc>value</sc></menutitle><menuseparator>:</menuseparator><menunode><sc>node</sc></menunode><menuseparator>.
   </menuseparator><menudescription><pre xml:space="preserve"><sc>descrip 
tion</sc>
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
 <sc>menu comment</sc>
 
@@ -986,7 +986,7 @@ $result_converted{'xml'}->{'sc_in_menu'} = '
 
 <example endspaces=" ">
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menutitle separator=":"><sc>example 
value</sc></menutitle><menunode separator=".   ">(dir)<sc>example 
node</sc></menunode><menudescription><pre xml:space="preserve"><sc>example 
descrip tion</sc>
+<menuentry><menuleadingtext>* </menuleadingtext><menutitle><sc>example 
value</sc></menutitle><menuseparator>:</menuseparator><menunode>(dir)<sc>example
 node</sc></menunode><menuseparator>.   </menuseparator><menudescription><pre 
xml:space="preserve"><sc>example descrip tion</sc>
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
 <sc>example comment</sc>
 </pre></menucomment></menu>
diff --git a/tp/t/results/menu/simple.pl b/tp/t/results/menu/simple.pl
index 6c9a916c51..5ed3f403eb 100644
--- a/tp/t/results/menu/simple.pl
+++ b/tp/t/results/menu/simple.pl
@@ -561,15 +561,15 @@ $result_converted{'xml'}->{'simple'} = '
 </para>
 <menu endspaces=" ">
 <menucomment><pre xml:space="preserve">comment
-</pre></menucomment><menuentry leadingtext="* "><menutitle separator=": ">menu 
entry name </menutitle><menunode separator=".    
">node</menunode><menudescription><pre xml:space="preserve">description
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::                ">node name</menunode><menudescription><pre 
xml:space="preserve">description new
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">other entry</menutitle><menunode separator=",    
">node</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">last</menunode><menudescription><pre xml:space="preserve">
+</pre></menucomment><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>menu entry name </menutitle><menuseparator>: 
</menuseparator><menunode>node</menunode><menuseparator>.    
</menuseparator><menudescription><pre xml:space="preserve">description
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>node name</menunode><menuseparator>::               
 </menuseparator><menudescription><pre xml:space="preserve">description new
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>other entry</menutitle><menuseparator>: 
</menuseparator><menunode>node</menunode><menuseparator>,    
</menuseparator><menudescription><pre xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>last</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
                  description next line
                  still description
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
 new comment
-</pre></menucomment><menuentry leadingtext="* "><menunode separator="::">last 
node entry </menunode><menudescription><pre xml:space="preserve">
+</pre></menucomment><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>last node entry 
</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <para>After menu.
diff --git a/tp/t/results/menu/simple_no_menu.pl 
b/tp/t/results/menu/simple_no_menu.pl
index 123bf2c6ba..8f7fc0bf97 100644
--- a/tp/t/results/menu/simple_no_menu.pl
+++ b/tp/t/results/menu/simple_no_menu.pl
@@ -522,15 +522,15 @@ $result_converted{'xml'}->{'simple_no_menu'} = '
 </para>
 <menu endspaces=" ">
 <menucomment><pre xml:space="preserve">comment
-</pre></menucomment><menuentry leadingtext="* "><menutitle separator=": ">menu 
entry name </menutitle><menunode separator=".    
">node</menunode><menudescription><pre xml:space="preserve">description
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::                ">node name</menunode><menudescription><pre 
xml:space="preserve">description new
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">other entry</menutitle><menunode separator=",    
">node</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">last</menunode><menudescription><pre xml:space="preserve">
+</pre></menucomment><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>menu entry name </menutitle><menuseparator>: 
</menuseparator><menunode>node</menunode><menuseparator>.    
</menuseparator><menudescription><pre xml:space="preserve">description
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>node name</menunode><menuseparator>::               
 </menuseparator><menudescription><pre xml:space="preserve">description new
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>other entry</menutitle><menuseparator>: 
</menuseparator><menunode>node</menunode><menuseparator>,    
</menuseparator><menudescription><pre xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>last</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
                  description next line
                  still description
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
 new comment
-</pre></menucomment><menuentry leadingtext="* "><menunode separator="::">last 
node entry </menunode><menudescription><pre xml:space="preserve">
+</pre></menucomment><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>last node entry 
</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <para>After menu.
diff --git a/tp/t/results/menu/space_and_commands_in_menu_node.pl 
b/tp/t/results/menu/space_and_commands_in_menu_node.pl
index c46c19cf4f..e0a1594fb5 100644
--- a/tp/t/results/menu/space_and_commands_in_menu_node.pl
+++ b/tp/t/results/menu/space_and_commands_in_menu_node.pl
@@ -1122,15 +1122,15 @@ 
$result_converted{'xml'}->{'space_and_commands_in_menu_node'} = '<node name="Top
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">chap  
b</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">chap &noeos; b</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">chap b</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">chap<spacecmd type="spc"/><spacecmd 
type="spc"/>b</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">chap<spacecmd type="spc"/> b</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">chap <spacecmd type="spc"/>b</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">label</menutitle><menunode separator=".">chap &noeos; 
b</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">label</menutitle><menunode separator=".">chap 
b</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": ">label</menutitle><menunode separator=".">chap <spacecmd 
type="spc"/><spacecmd type="spc"/>b</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>chap  
b</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chap &noeos; 
b</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chap 
b</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chap<spacecmd type="spc"/><spacecmd 
type="spc"/>b</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chap<spacecmd type="spc"/> 
b</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chap <spacecmd 
type="spc"/>b</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>label</menutitle><menuseparator>: 
</menuseparator><menunode>chap &noeos; 
b</menunode><menuseparator>.</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>label</menutitle><menuseparator>: 
</menuseparator><menunode>chap 
b</menunode><menuseparator>.</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>label</menutitle><menuseparator>: 
</menuseparator><menunode>chap <spacecmd type="spc"/><spacecmd 
type="spc"/>b</menunode><menuseparator>.</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/menu/verb_in_menu_description.pl 
b/tp/t/results/menu/verb_in_menu_description.pl
index 4927d496b3..3a8431599b 100644
--- a/tp/t/results/menu/verb_in_menu_description.pl
+++ b/tp/t/results/menu/verb_in_menu_description.pl
@@ -411,7 +411,7 @@ $result_converted{'xml'}->{'verb_in_menu_description'} = 
'<node name="Top" space
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">(manual)</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>(manual)</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 <verb delimiter=":"> in verb
 
 </verb>
diff --git a/tp/t/results/sectioning/chapter_between_nodes.pl 
b/tp/t/results/sectioning/chapter_between_nodes.pl
index b8964c5f38..97c7472b09 100644
--- a/tp/t/results/sectioning/chapter_between_nodes.pl
+++ b/tp/t/results/sectioning/chapter_between_nodes.pl
@@ -685,7 +685,7 @@ $result_converted{'xml'}->{'chapter_between_nodes'} = 
'<node name="Top" spaces="
 <para>Top node
 </para>
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">section 
node</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>section 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/sectioning/chapter_node_before_and_after_part.pl 
b/tp/t/results/sectioning/chapter_node_before_and_after_part.pl
index 12d8dd3645..c80151d818 100644
--- a/tp/t/results/sectioning/chapter_node_before_and_after_part.pl
+++ b/tp/t/results/sectioning/chapter_node_before_and_after_part.pl
@@ -653,7 +653,7 @@ 
$result_converted{'xml'}->{'chapter_node_before_and_after_part'} = '
 <chapter spaces=" "><sectiontitle>chapter</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">after</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>after</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </chapter>
diff --git a/tp/t/results/sectioning/double_part.pl 
b/tp/t/results/sectioning/double_part.pl
index 19fcc04f5d..f04261303b 100644
--- a/tp/t/results/sectioning/double_part.pl
+++ b/tp/t/results/sectioning/double_part.pl
@@ -1132,7 +1132,7 @@ $result_converted{'xml'}->{'double_part'} = '<node 
name="Top" spaces=" "><nodena
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">node 
chapter</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>node 
chapter</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/sectioning/explicit_node_directions.pl 
b/tp/t/results/sectioning/explicit_node_directions.pl
index b95583ef8d..9243e4b78a 100644
--- a/tp/t/results/sectioning/explicit_node_directions.pl
+++ b/tp/t/results/sectioning/explicit_node_directions.pl
@@ -927,8 +927,8 @@ 
$result_converted_errors{'html'}->{'explicit_node_directions'} = [
 $result_converted{'xml'}->{'explicit_node_directions'} = '<node name="Top" 
spaces=" "><nodename>Top</nodename><nodenext automatic="on">second 
node</nodenext></node>
 <para>Top node
 </para><menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">second 
node</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">third node</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>second 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>third 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="second-node" spaces=" "><nodename>second node</nodename><nodenext 
spaces=" ">third 
node</nodenext><nodeprev>Top</nodeprev><nodeup>Top</nodeup></node>
diff --git a/tp/t/results/sectioning/more_sections_than_nodes.pl 
b/tp/t/results/sectioning/more_sections_than_nodes.pl
index 4a0e905170..bd6bd420bc 100644
--- a/tp/t/results/sectioning/more_sections_than_nodes.pl
+++ b/tp/t/results/sectioning/more_sections_than_nodes.pl
@@ -1538,9 +1538,9 @@ $result_converted{'xml'}->{'more_sections_than_nodes'} = 
'<node name="Top" space
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">n 
c2</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">n c3</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">n c3 s1 s2</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>n 
c2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>n 
c3</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>n c3 s1 
s2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
@@ -1558,7 +1558,7 @@ $result_converted{'xml'}->{'more_sections_than_nodes'} = 
'<node name="Top" space
 <chapter spaces=" "><sectiontitle>c3</sectiontitle>
 
 <menu endspaces=" "> 
-<menuentry leadingtext="* "><menunode separator="::">n c3 s 
2</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>n c3 s 
2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <section spaces=" "><sectiontitle>C3 s1</sectiontitle>
diff --git a/tp/t/results/sectioning/node_part_chapter_after_chapter.pl 
b/tp/t/results/sectioning/node_part_chapter_after_chapter.pl
index 34f33bf905..582ee5cd15 100644
--- a/tp/t/results/sectioning/node_part_chapter_after_chapter.pl
+++ b/tp/t/results/sectioning/node_part_chapter_after_chapter.pl
@@ -1343,8 +1343,8 @@ 
$result_converted{'xml'}->{'node_part_chapter_after_chapter'} = '<node name="Top
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">chapter 
node</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">part chapter node</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>chapter 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>part chapter 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/sectioning/node_part_chapter_after_top.pl 
b/tp/t/results/sectioning/node_part_chapter_after_top.pl
index 05643f3ad0..c7dbf0552d 100644
--- a/tp/t/results/sectioning/node_part_chapter_after_top.pl
+++ b/tp/t/results/sectioning/node_part_chapter_after_top.pl
@@ -869,7 +869,7 @@ $result_converted{'xml'}->{'node_part_chapter_after_top'} = 
'<node name="Top" sp
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">chapter 
node</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>chapter 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/sectioning/nodes_after_top_before_chapter_nodes.pl 
b/tp/t/results/sectioning/nodes_after_top_before_chapter_nodes.pl
index 8100220067..9c8de67301 100644
--- a/tp/t/results/sectioning/nodes_after_top_before_chapter_nodes.pl
+++ b/tp/t/results/sectioning/nodes_after_top_before_chapter_nodes.pl
@@ -1091,8 +1091,8 @@ 
$result_converted_errors{'html'}->{'nodes_after_top_before_chapter_nodes'} = [
 $result_converted{'xml'}->{'nodes_after_top_before_chapter_nodes'} = '<node 
name="Top" spaces=" "><nodename>Top</nodename><nodenext automatic="on">second 
node</nodenext></node>
 <para>Top node
 </para><menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">second 
node</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">third node</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>second 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>third 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="second-node" spaces=" "><nodename>second node</nodename><nodenext 
spaces=" ">third 
node</nodenext><nodeprev>Top</nodeprev><nodeup>Top</nodeup></node>
diff --git a/tp/t/results/sectioning/nodes_no_node_top_explicit_directions.pl 
b/tp/t/results/sectioning/nodes_no_node_top_explicit_directions.pl
index 9416ebea8e..6d90490858 100644
--- a/tp/t/results/sectioning/nodes_no_node_top_explicit_directions.pl
+++ b/tp/t/results/sectioning/nodes_no_node_top_explicit_directions.pl
@@ -678,7 +678,7 @@ 
$result_converted{'xml'}->{'nodes_no_node_top_explicit_directions'} = '<node nam
 <para>first node
 </para>
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">second 
node</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>second 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="second-node" spaces=" "><nodename>second 
node</nodename><nodenext></nodenext><nodeprev>first</nodeprev><nodeup>first</nodeup></node>
diff --git a/tp/t/results/sectioning/part_chapter_after_top.pl 
b/tp/t/results/sectioning/part_chapter_after_top.pl
index d819ba0c7f..680b665afc 100644
--- a/tp/t/results/sectioning/part_chapter_after_top.pl
+++ b/tp/t/results/sectioning/part_chapter_after_top.pl
@@ -863,7 +863,7 @@ $result_converted{'xml'}->{'part_chapter_after_top'} = 
'<node name="Top" spaces=
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">chapter</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chapter</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/sectioning/part_node_after_top.pl 
b/tp/t/results/sectioning/part_node_after_top.pl
index 65c2755a2c..842c9f8136 100644
--- a/tp/t/results/sectioning/part_node_after_top.pl
+++ b/tp/t/results/sectioning/part_node_after_top.pl
@@ -748,7 +748,7 @@ $result_converted{'xml'}->{'part_node_after_top'} = '<node 
name="Top" spaces=" "
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">part node after 
top</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>part node after 
top</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="part-node-after-top" spaces=" "><nodename>part node after 
top</nodename><nodeprev automatic="on">Top</nodeprev><nodeup 
automatic="on">Top</nodeup></node>
diff --git a/tp/t/results/sectioning/part_node_before_top.pl 
b/tp/t/results/sectioning/part_node_before_top.pl
index 16bb0b7de2..5690207321 100644
--- a/tp/t/results/sectioning/part_node_before_top.pl
+++ b/tp/t/results/sectioning/part_node_before_top.pl
@@ -690,7 +690,7 @@ $result_converted{'xml'}->{'part_node_before_top'} = '<node 
name="part-node-befo
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">part node before 
top</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>part node before 
top</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 </top>
 ';
diff --git a/tp/t/results/sectioning/part_node_chapter_after_top.pl 
b/tp/t/results/sectioning/part_node_chapter_after_top.pl
index b31c63b169..3c1c076585 100644
--- a/tp/t/results/sectioning/part_node_chapter_after_top.pl
+++ b/tp/t/results/sectioning/part_node_chapter_after_top.pl
@@ -1127,8 +1127,8 @@ $result_converted{'xml'}->{'part_node_chapter_after_top'} 
= '<node name="Top" sp
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">a node after 
part</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">chapter</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>a node after 
part</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chapter</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/sectioning/part_node_chapter_appendix.pl 
b/tp/t/results/sectioning/part_node_chapter_appendix.pl
index 87c9879c25..9b2afe0d03 100644
--- a/tp/t/results/sectioning/part_node_chapter_appendix.pl
+++ b/tp/t/results/sectioning/part_node_chapter_appendix.pl
@@ -1065,7 +1065,7 @@ $result_converted{'xml'}->{'part_node_chapter_appendix'} 
= '<node name="Top" spa
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">chapter 
node</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>chapter 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/sectioning/part_node_chapter_node_appendix.pl 
b/tp/t/results/sectioning/part_node_chapter_node_appendix.pl
index 0e8efbe89d..8cb1b0f63f 100644
--- a/tp/t/results/sectioning/part_node_chapter_node_appendix.pl
+++ b/tp/t/results/sectioning/part_node_chapter_node_appendix.pl
@@ -1262,8 +1262,8 @@ 
$result_converted{'xml'}->{'part_node_chapter_node_appendix'} = '<node name="Top
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">chapter 
node</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">appendix node</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>chapter 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>appendix 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/sectioning/part_node_node_part_appendix.pl 
b/tp/t/results/sectioning/part_node_node_part_appendix.pl
index d26a92f355..1e06d2f6b6 100644
--- a/tp/t/results/sectioning/part_node_node_part_appendix.pl
+++ b/tp/t/results/sectioning/part_node_node_part_appendix.pl
@@ -1361,8 +1361,8 @@ 
$result_converted{'xml'}->{'part_node_node_part_appendix'} = '<node name="Top" s
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">chapter 
node</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">appendix part</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>chapter 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>appendix 
part</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/sectioning/part_node_part_appendix.pl 
b/tp/t/results/sectioning/part_node_part_appendix.pl
index df083f4242..e70f738455 100644
--- a/tp/t/results/sectioning/part_node_part_appendix.pl
+++ b/tp/t/results/sectioning/part_node_part_appendix.pl
@@ -1155,7 +1155,7 @@ $result_converted{'xml'}->{'part_node_part_appendix'} = 
'<node name="Top" spaces
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">chapter 
node</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>chapter 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/sectioning/part_node_part_node_appendix.pl 
b/tp/t/results/sectioning/part_node_part_node_appendix.pl
index 580d786623..eb0955bee5 100644
--- a/tp/t/results/sectioning/part_node_part_node_appendix.pl
+++ b/tp/t/results/sectioning/part_node_part_node_appendix.pl
@@ -1355,8 +1355,8 @@ 
$result_converted{'xml'}->{'part_node_part_node_appendix'} = '<node name="Top" s
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">chapter 
node</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">appendix node</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>chapter 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>appendix 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/sectioning/section_before_top.pl 
b/tp/t/results/sectioning/section_before_top.pl
index edd95c1b2a..f92842b12b 100644
--- a/tp/t/results/sectioning/section_before_top.pl
+++ b/tp/t/results/sectioning/section_before_top.pl
@@ -524,7 +524,7 @@ $result_converted{'xml'}->{'section_before_top'} = '<node 
name="section-node" sp
 <unnumberedsec originalcommand="top" spaces=" 
"><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">section 
node</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>section 
node</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 </unnumberedsec>
 ';
diff --git a/tp/t/results/sectioning/section_in_unnumbered_plaintext.pl 
b/tp/t/results/sectioning/section_in_unnumbered_plaintext.pl
index db6f596c5f..f985767afa 100644
--- a/tp/t/results/sectioning/section_in_unnumbered_plaintext.pl
+++ b/tp/t/results/sectioning/section_in_unnumbered_plaintext.pl
@@ -7452,11 +7452,11 @@ 
$result_converted{'xml'}->{'section_in_unnumbered_plaintext'} = '<preamblebefore
 <para>Menu:
 </para>
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode 
separator="::">chapter</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">unnumbered</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">chapter 2</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">chapter 3</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">unnumbered 4</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chapter</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>unnumbered</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chapter 
2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chapter 
3</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>unnumbered 
4</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
@@ -7464,7 +7464,7 @@ 
$result_converted{'xml'}->{'section_in_unnumbered_plaintext'} = '<preamblebefore
 <chapter spaces=" "><sectiontitle>chapter</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">section in 
chapter</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>section in 
chapter</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="section-in-chapter" spaces=" "><nodename>section in 
chapter</nodename><nodeup automatic="on">chapter</nodeup></node>
@@ -7476,7 +7476,7 @@ 
$result_converted{'xml'}->{'section_in_unnumbered_plaintext'} = '<preamblebefore
 <unnumbered spaces=" "><sectiontitle>unnumbered</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">section in 
unnumbered</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>section in 
unnumbered</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="section-in-unnumbered" spaces=" "><nodename>section in 
unnumbered</nodename><nodeup automatic="on">unnumbered</nodeup></node>
@@ -7488,18 +7488,18 @@ 
$result_converted{'xml'}->{'section_in_unnumbered_plaintext'} = '<preamblebefore
 <chapter spaces=" "><sectiontitle>chapter 2</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">unnumberedsec 
2</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">unnumberedsec 2-1</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>unnumberedsec 
2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>unnumberedsec 
2-1</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="unnumberedsec-2" spaces=" "><nodename>unnumberedsec 
2</nodename><nodenext automatic="on">unnumberedsec 2-1</nodenext><nodeup 
automatic="on">chapter 2</nodeup></node>
 <unnumberedsec spaces=" "><sectiontitle>unnumbered section 2</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">unnumbered sub 
2</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">numbered sub 2</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">unnumbered sub2 2</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">numbered sub2 2</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>unnumbered sub 
2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>numbered sub 
2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>unnumbered sub2 
2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>numbered sub2 
2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="unnumbered-sub-2" spaces=" "><nodename>unnumbered sub 
2</nodename><nodenext automatic="on">numbered sub 2</nodenext><nodeup 
automatic="on">unnumberedsec 2</nodeup></node>
@@ -7523,7 +7523,7 @@ 
$result_converted{'xml'}->{'section_in_unnumbered_plaintext'} = '<preamblebefore
 <unnumberedsec spaces=" "><sectiontitle>unnumberedsec 2-1</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">numbered sub 
2-1</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>numbered sub 
2-1</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="numbered-sub-2_002d1" spaces=" "><nodename>numbered sub 
2-1</nodename><nodeup automatic="on">unnumberedsec 2-1</nodeup></node>
@@ -7537,21 +7537,21 @@ 
$result_converted{'xml'}->{'section_in_unnumbered_plaintext'} = '<preamblebefore
 <chapter spaces=" "><sectiontitle>chapter 3</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">unnumberedsec 
3</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">section 3-1</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">unnumberedsec 3-2</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">section 3-3</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">unnumberedsec 3-4</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>unnumberedsec 
3</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>section 
3-1</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>unnumberedsec 
3-2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>section 
3-3</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>unnumberedsec 
3-4</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="unnumberedsec-3" spaces=" "><nodename>unnumberedsec 
3</nodename><nodenext automatic="on">section 3-1</nodenext><nodeup 
automatic="on">chapter 3</nodeup></node>
 <unnumberedsec spaces=" "><sectiontitle>unnumbered section 3</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">unnumbered sub 
3</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">numbered sub 3</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">unnumbered sub2 3</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">numbered sub2 3</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>unnumbered sub 
3</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>numbered sub 
3</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>unnumbered sub2 
3</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>numbered sub2 
3</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="unnumbered-sub-3" spaces=" "><nodename>unnumbered sub 
3</nodename><nodenext automatic="on">numbered sub 3</nodenext><nodeup 
automatic="on">unnumberedsec 3</nodeup></node>
@@ -7579,7 +7579,7 @@ 
$result_converted{'xml'}->{'section_in_unnumbered_plaintext'} = '<preamblebefore
 <unnumberedsec spaces=" "><sectiontitle>unnumberedsec 3-2</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">numbered sub 
3-2</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>numbered sub 
3-2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="numbered-sub-3_002d2" spaces=" "><nodename>numbered sub 
3-2</nodename><nodeup automatic="on">unnumberedsec 3-2</nodeup></node>
@@ -7591,7 +7591,7 @@ 
$result_converted{'xml'}->{'section_in_unnumbered_plaintext'} = '<preamblebefore
 <section spaces=" "><sectiontitle>section 3-3</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">subsection 
3-3</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>subsection 
3-3</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="subsection-3_002d3" spaces=" "><nodename>subsection 
3-3</nodename><nodeup automatic="on">section 3-3</nodeup></node>
@@ -7603,7 +7603,7 @@ 
$result_converted{'xml'}->{'section_in_unnumbered_plaintext'} = '<preamblebefore
 <unnumberedsec spaces=" "><sectiontitle>unnumberedsec 3-4</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">numbered sub 
3-4</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>numbered sub 
3-4</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="numbered-sub-3_002d4" spaces=" "><nodename>numbered sub 
3-4</nodename><nodeup automatic="on">unnumberedsec 3-4</nodeup></node>
@@ -7616,17 +7616,17 @@ 
$result_converted{'xml'}->{'section_in_unnumbered_plaintext'} = '<preamblebefore
 <unnumbered spaces=" "><sectiontitle>unnumbered  4</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">unnumberedsec 
4</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>unnumberedsec 
4</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="unnumberedsec-4" spaces=" "><nodename>unnumberedsec 
4</nodename><nodeup automatic="on">unnumbered 4</nodeup></node>
 <unnumberedsec spaces=" "><sectiontitle>unnumbered section 4</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">unnumbered sub 
4</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">numbered sub 4</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">unnumbered sub2 4</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">numbered sub2 4</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>unnumbered sub 
4</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>numbered sub 
4</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>unnumbered sub2 
4</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>numbered sub2 
4</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <node name="unnumbered-sub-4" spaces=" "><nodename>unnumbered sub 
4</nodename><nodenext automatic="on">numbered sub 4</nodenext><nodeup 
automatic="on">unnumberedsec 4</nodeup></node>
diff --git a/tp/t/results/sectioning/two_nodes_between_chapters.pl 
b/tp/t/results/sectioning/two_nodes_between_chapters.pl
index 991db7afc6..d1e55d238d 100644
--- a/tp/t/results/sectioning/two_nodes_between_chapters.pl
+++ b/tp/t/results/sectioning/two_nodes_between_chapters.pl
@@ -1374,9 +1374,9 @@ $result_converted{'xml'}->{'two_nodes_between_chapters'} 
= '<node name="Top" spa
 <top spaces=" "><sectiontitle>top</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">chapter 
1</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">node between chapters</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">chapter 2</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>chapter 
1</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>node between 
chapters</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chapter 
2</menunode><menuseparator>::</menuseparator><menudescription><pre 
xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 </top>
diff --git a/tp/t/results/xml_tests/image_inline_or_not.pl 
b/tp/t/results/xml_tests/image_inline_or_not.pl
index 2e03a9cebc..7ed0b3080d 100644
--- a/tp/t/results/xml_tests/image_inline_or_not.pl
+++ b/tp/t/results/xml_tests/image_inline_or_not.pl
@@ -1731,8 +1731,8 @@ T
 </tableitem></tableentry></table>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator=":: "><image 
where="inline"><imagefile>node_image</imagefile></image></menunode><menudescription><pre
 xml:space="preserve"><image 
where="inline"><imagefile>image_in_description</imagefile></image>
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": "><image 
where="inline"><imagefile>in_menu_entry_name</imagefile></image></menutitle><menunode
 separator=".">(somewhere)<image 
where="inline"><imagefile>extnode</imagefile></image></menunode><menudescription><pre
 xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode><image 
where="inline"><imagefile>node_image</imagefile></image></menunode><menuseparator>::
 </menuseparator><menudescription><pre xml:space="preserve"><image 
where="inline"><imagefile>image_in_description</imagefile></image>
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle><image 
where="inline"><imagefile>in_menu_entry_name</imagefile></image></menutitle><menuseparator>:
 </menuseparator><menunode>(somewhere)<image 
where="inline"><imagefile>extnode</imagefile></image></menunode><menuseparator>.</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
 <image where="inline"><imagefile>in_menu_comment</imagefile></image>
 </pre></menucomment></menu>
diff --git a/tp/tests/layout/res_parser/formatting_xml/formatting.xml 
b/tp/tests/layout/res_parser/formatting_xml/formatting.xml
index 92ce507d59..0f1dd354a2 100644
--- a/tp/tests/layout/res_parser/formatting_xml/formatting.xml
+++ b/tp/tests/layout/res_parser/formatting_xml/formatting.xml
@@ -11,8 +11,8 @@
 
 <dircategory spaces=" ">Formatting <accent type="acute" 
bracketed="off">e</accent> <code>&arobase; &tex;</code> test</dircategory>
 <direntry endspaces=" ">
-<menuentry leadingtext="* "><menutitle separator=": 
">Truc</menutitle><menunode separator=".           
">(formatting)</menunode><menudescription><pre xml:space="preserve">The GNU 
documentation truc.
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menutitle 
separator=": "><code>&arobase; <accent type="acute" bracketed="off">e</accent> 
&equiv;</code></menutitle><menunode separator=".  
">(formatting)</menunode><menudescription><pre 
xml:space="preserve">&textldquo;<asis>&textmdash; something</asis>&textrdquo; 
+<menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>Truc</menutitle><menuseparator>: 
</menuseparator><menunode>(formatting)</menunode><menuseparator>.           
</menuseparator><menudescription><pre xml:space="preserve">The GNU 
documentation truc.
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle><code>&arobase; <accent type="acute" 
bracketed="off">e</accent> &equiv;</code></menutitle><menuseparator>: 
</menuseparator><menunode>(formatting)</menunode><menuseparator>.  
</menuseparator><menudescription><pre 
xml:space="preserve">&textldquo;<asis>&textmdash; something</asis>&textrdquo; 
                            <command>cmd</command> <accent type="grave" 
bracketed="off">a</accent>
 </pre></menudescription></menuentry></direntry>
 
@@ -3528,11 +3528,11 @@ in verbatim ''
 <top spaces=" "><sectiontitle>Top section</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::               
">chapter</menunode><menudescription><pre xml:space="preserve">chapter
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>chapter</menunode><menuseparator>::               
</menuseparator><menudescription><pre xml:space="preserve">chapter
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
 Menu comment
 
-</pre></menucomment><menuentry leadingtext="* "><menutitle 
separator=":">description</menutitle><menunode separator=".   
">chapter2</menunode><menudescription><pre xml:space="preserve">Chapter 2
+</pre></menucomment><menuentry><menuleadingtext>* 
</menuleadingtext><menutitle>description</menutitle><menuseparator>:</menuseparator><menunode>chapter2</menunode><menuseparator>.
   </menuseparator><menudescription><pre xml:space="preserve">Chapter 2
 </pre></menudescription></menuentry></menu>
 
 
@@ -5933,7 +5933,7 @@ Various deff lines
 </para>
 <format endspaces=" ">
 <menu endspaces=" "> 
-<menuentry leadingtext="* "><menunode separator=":: 
">s--ect&comma;ion</menunode><menudescription><pre 
xml:space="preserve">s&textndash;ect&comma;ion
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>s--ect&comma;ion</menunode><menuseparator>:: 
</menuseparator><menudescription><pre 
xml:space="preserve">s&textndash;ect&comma;ion
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
 Menu comment
 
&textldquo;simple-double&textndash;three&textmdash;four&textmdash;-&textrdquo;&linebreak;
@@ -5945,13 +5945,13 @@ Menu comment
 <section spaces=" "><sectiontitle>A section</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator=":: 
">subsection</menunode><menudescription><pre xml:space="preserve">
+<menuentry><menuleadingtext>* 
</menuleadingtext><menunode>subsection</menunode><menuseparator>:: 
</menuseparator><menudescription><pre xml:space="preserve">
 </pre></menudescription></menuentry><menucomment><pre xml:space="preserve">
 </pre></menucomment><detailmenu endspaces=" ">
 <menucomment><pre xml:space="preserve">In detailmenu
 
-</pre></menucomment><menuentry leadingtext="* "><menunode 
separator="::">subsubsection ``simple-double--</menunode><menudescription><pre 
xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">subsubsection three---four----''</menunode><menudescription><pre 
xml:space="preserve">
+</pre></menucomment><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>subsubsection 
``simple-double--</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>subsubsection 
three---four----''</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></detailmenu>
 </menu>
 
@@ -5959,8 +5959,8 @@ Menu comment
 <subsection spaces=" "><sectiontitle>subsection</sectiontitle>
 
 <menu endspaces=" ">
-<menuentry leadingtext="* "><menunode separator="::">subsubsection 
``simple-double--</menunode><menudescription><pre xml:space="preserve">
-</pre></menudescription></menuentry><menuentry leadingtext="* "><menunode 
separator="::">subsubsection three---four----''</menunode><menudescription><pre 
xml:space="preserve">
+<menuentry><menuleadingtext>* </menuleadingtext><menunode>subsubsection 
``simple-double--</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
+</pre></menudescription></menuentry><menuentry><menuleadingtext>* 
</menuleadingtext><menunode>subsubsection 
three---four----''</menunode><menuseparator>::</menuseparator><menudescription><pre
 xml:space="preserve">
 </pre></menudescription></menuentry></menu>
 
 <anchor name="anchor">anchor</anchor>
diff --git a/util/texinfo.dtd b/util/texinfo.dtd
index 1556014eec..060e89dde7 100644
--- a/util/texinfo.dtd
+++ b/util/texinfo.dtd
@@ -703,15 +703,13 @@
 <!ELEMENT direntry (menuentry | menucomment)*>
 <!ATTLIST direntry
           %spacesblockattr;>
-<!ELEMENT menuentry (menutitle?, menunode?, menudescription?)>
-<!ATTLIST menuentry
-          leadingtext CDATA #REQUIRED>
+<!ELEMENT menuentry (menuleadingtext,
+                     ((menutitle, menuseparator, menunode, menuseparator?)
+                     | (menunode, menuseparator)), menudescription?)>
+<!ELEMENT menuleadingtext (#PCDATA)>
 <!ELEMENT menunode (#PCDATA | %Inline.line;)*>
-<!ATTLIST menunode
-          separator CDATA #IMPLIED>
 <!ELEMENT menutitle (#PCDATA | %Inline.line;)*>
-<!ATTLIST menutitle
-          separator CDATA #IMPLIED>
+<!ELEMENT menuseparator (#PCDATA)>
 <!ELEMENT menudescription (%block;)*>
 <!ELEMENT menucomment (%block;)*>
 
@@ -738,11 +736,13 @@
 <!ELEMENT macro (#PCDATA | formalarg | macro | rmacro)*>
 <!ATTLIST macro
           name CDATA #REQUIRED
-          line CDATA #REQUIRED>
+          line CDATA #REQUIRED
+          endspaces CDATA #IMPLIED>
 <!ELEMENT rmacro (#PCDATA | formalarg | macro | rmacro)*>
 <!ATTLIST rmacro
           name CDATA #REQUIRED
-          line CDATA #REQUIRED>
+          line CDATA #REQUIRED
+          endspaces CDATA #IMPLIED>
 
 <!ELEMENT formalarg (#PCDATA)>
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]