diff options
Diffstat (limited to 'doc/tools/bmenu/main.c')
-rw-r--r-- | doc/tools/bmenu/main.c | 40 |
1 files changed, 29 insertions, 11 deletions
diff --git a/doc/tools/bmenu/main.c b/doc/tools/bmenu/main.c index a204da1dbb..34d8719b99 100644 --- a/doc/tools/bmenu/main.c +++ b/doc/tools/bmenu/main.c @@ -721,6 +721,10 @@ void BuildTexinfoNodes( void ) strcpy( ChapterName, NodeName ); + } else if ( NodeNameIncludesChapter ) { + + sprintf( Buffer, "%s %s", ChapterName, NodeName ); + strcpy( NodeName, Buffer ); } /* @@ -828,9 +832,12 @@ continue_menu_loop: if ( up_node->level == (line->level - 1) ) { LineCopySectionName( up_node, Buffer ); - if (NodeNameIncludesChapter) - sprintf( UpNodeName, "%s %s", ChapterName, Buffer ); - else + if (NodeNameIncludesChapter) { + if (!strcmp(ChapterName, Buffer)) + sprintf( UpNodeName, "%s", Buffer ); + else + sprintf( UpNodeName, "%s %s", ChapterName, Buffer ); + } else sprintf( UpNodeName, "%s", Buffer ); break; } @@ -853,14 +860,25 @@ continue_menu_loop: #endif /* node_line was previously inserted */ - sprintf( - node_line->Contents, - "@node %s, %s, %s, %s", - NodeName, - NextNodeName, - PreviousNodeName, - UpNodeName - ); + if (!NodeNameIncludesChapter) { + sprintf( + node_line->Contents, + "@node %s, %s, %s, %s", + NodeName, + NextNodeName, + PreviousNodeName, + UpNodeName + ); + } else { + sprintf( + node_line->Contents, + "@node %s, %s, %s, %s", + NodeName, + NextNodeName, + PreviousNodeName, + UpNodeName + ); + } strcpy( PreviousNodeName, NodeName ); |