mirror of
https://github.com/git/git.git
synced 2024-12-01 22:13:45 +08:00
9c6c304d6a
"makeinfo" failed to generate gitman.info from gitman.texi input file because the combined manual page file contains several nodes with the same name (DESCRIPTION, OPTIONS, SEE ALSO etc.). An Info document should contain unique node names. This patch creates a simple (read: ugly) work-around by suppressing the validation of the final Info file. Jumping to nodes in the Info document still works but they are not very useful. Common man-page headings like DESCRIPTION and OPTIONS appear in the Info node list and they point to the man page where they appear first (that is git-add currently). Also, this patch adds directory-entry information for Info document to make the document appear in the top-level Info directory. Signed-off-by: Teemu Likonen <tlikonen@iki.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
43 lines
750 B
Perl
Executable File
43 lines
750 B
Perl
Executable File
#!/usr/bin/perl -w
|
|
|
|
my @menu = ();
|
|
my $output = $ARGV[0];
|
|
|
|
open TMP, '>', "$output.tmp";
|
|
|
|
while (<STDIN>) {
|
|
next if (/^\\input texinfo/../\@node Top/);
|
|
next if (/^\@bye/ || /^\.ft/);
|
|
if (s/^\@top (.*)/\@node $1,,,Top/) {
|
|
push @menu, $1;
|
|
}
|
|
s/\(\@pxref{\[(URLS|REMOTES)\]}\)//;
|
|
print TMP;
|
|
}
|
|
close TMP;
|
|
|
|
printf '\input texinfo
|
|
@setfilename gitman.info
|
|
@documentencoding UTF-8
|
|
@dircategory Development
|
|
@direntry
|
|
* Git Man Pages: (gitman). Manual pages for Git revision control system
|
|
@end direntry
|
|
@node Top,,, (dir)
|
|
@top Git Manual Pages
|
|
@documentlanguage en
|
|
@menu
|
|
', $menu[0];
|
|
|
|
for (@menu) {
|
|
print "* ${_}::\n";
|
|
}
|
|
print "\@end menu\n";
|
|
open TMP, '<', "$output.tmp";
|
|
while (<TMP>) {
|
|
print;
|
|
}
|
|
close TMP;
|
|
print "\@bye\n";
|
|
unlink "$output.tmp";
|