--- /home/janneke/texi2html/bin/texi2html.orig 2009-07-29 22:57:52.251368008 +0200 +++ /home/janneke/texi2html/bin/texi2html 2009-07-30 11:17:28.731367970 +0200 @@ -14399,11 +14399,12 @@ sub merge_element_before_anything($) } # find menu_prev, menu_up... for a node in menu -sub menu_entry_texi($$$) +sub menu_entry_texi($$$$) { my $node = shift; my $state = shift; my $line_nr = shift; + my $text = shift; my $node_menu_ref = {}; if (exists($nodes{$node})) { @@ -14415,6 +14416,8 @@ sub menu_entry_texi($$$) $node_menu_ref->{'texi'} = $node; $node_menu_ref->{'external_node'} = 1 if ($node =~ /^\(.+\)/); } + $node_menu_ref->{'text'} = $text; + $nodes{$node}->{'text'} = $text; return if ($state->{'detailmenu'}); if ($state->{'node_ref'}) { @@ -16066,9 +16069,11 @@ sub do_section_names($$) { my $number = shift; my $section = shift; - #$section->{'name'} = substitute_line($section->{'texi'}); + my $node = $nodes{$section->{'texi'}}; + my $text = substitute_line ($node->{'text'}); my $texi = &$Texi2HTML::Config::heading_texi($section->{'tag'}, $section->{'texi'}, $section->{'number'}); - $section->{'text'} = substitute_line($texi); + $text = substitute_line($texi) if ! $text || length $texi < length $text; + $section->{'text'} = substitute_line($text); $section->{'text_nonumber'} = substitute_line($section->{'texi'}); # backward compatibility $section->{'name'} = $section->{'text_nonumber'}; @@ -16091,7 +16096,7 @@ sub do_names() { my $texi = &$Texi2HTML::Config::heading_texi($nodes{$node}->{'tag'}, $nodes{$node}->{'texi'}, undef); - $nodes{$node}->{'text'} = substitute_line ($texi, {'code_style' => 1}); +# $nodes{$node}->{'text'} = substitute_line ($texi, {'code_style' => 1}); $nodes{$node}->{'text_nonumber'} = $nodes{$node}->{'text'}; # backward compatibility -> maybe used to have the name without code_style ? $nodes{$node}->{'name'} = substitute_line($texi); @@ -20537,18 +20542,26 @@ sub scan_structure($$$$;$) # new menu entry my $menu_line = $cline; my $node; - if ($cline =~ /^\*\s+($NODERE)::/) + my $text; + if ($cline =~ /^\*\s+($NODERE)::\s*(.+)\s*\./) + { + $node = $1; + $text = $2; + $text = $node if ! $text; + } + elsif ($cline =~ /^\*\s+($NODERE)::/) { $node = $1; + $text = $1; } elsif ($cline =~ /^\*\s+([^:]+):\s*([^\t,\n]*?)([\t,\n]|\.\s)/) { - #$name = $1; + $text = $2; $node = $2; } if ($node) { - menu_entry_texi(normalise_node($node), $state, $line_nr); + menu_entry_texi(normalise_node($node), $state, $line_nr, $text); } } }