diff options
Diffstat (limited to 'man')
-rwxr-xr-x | man/help2man | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/man/help2man b/man/help2man index c2251c34e..e3e5040c3 100755 --- a/man/help2man +++ b/man/help2man @@ -18,30 +18,22 @@ # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Written by Brendan O'Dea <bod@compusol.com.au> -# and François Pinard <pinard@IRO.UMontreal.CA> - -require 5.003; +use 5.004; use strict; use Getopt::Long; -use POSIX 'strftime'; +use POSIX qw(strftime setlocale LC_TIME); -my $RCS_Id = '$Id: help2man,v 1.3 1998/10/06 04:07:25 meyering Exp $'; my $this_program = 'help2man'; -my $this_version = '0.0'; - -if ($RCS_Id =~ /\$Id:\s+(\S+)\s+(\S+)/) -{ - $this_version = $2; - ($this_program = $1) =~ s/(\.\w+)?,v$//; -} - +my $this_version = '1.006'; my $version_info = <<EOT; $this_program $this_version Copyright (C) 1997, 98 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +Written by Brendan O'Dea <bod\@compusol.com.au> EOT my $help_info = <<EOT; @@ -53,14 +45,14 @@ Usage: $this_program [OPTION]... EXECUTABLE --include=FILE include material from `FILE' --opt-include=FILE include material from `FILE' if it exists --output=FILE send output to `FILE' + --no-info suppress pointer to Texinfo manual --help print this help, then exit --version print $this_program program version number, then exit EXECUTABLE should accept `--help' and `version' options. EOT -my ($include, $opt_name, $opt_include, $opt_output, $opt_help, - $opt_version); +my ($include, $opt_name, $opt_include, $opt_output, $opt_no_info); # Parse options. GetOptions ( @@ -68,6 +60,7 @@ GetOptions ( 'include=s' => \$include, 'opt-include=s' => \$opt_include, 'output=s' => \$opt_output, + 'no-info' => \$opt_no_info, help => sub { print $help_info; exit }, version => sub { print $version_info; exit }, ) or die $help_info; @@ -112,7 +105,7 @@ if ($include or $opt_include) die "$this_program: no valid information found in `$include'\n" unless %include; - # Compress trailing blank lines + # Compress trailing blank lines. for (keys %include) { $include{$_} =~ s/\n+$//; @@ -128,6 +121,9 @@ if ($include or $opt_include) # Turn off localisation of executable's ouput. @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3; +# Turn off localisation of date (for strftime) +setlocale LC_TIME, 'C'; + # Grab help and version paragraphs from executable my @help = split /\n\n+/, `$ARGV[0] --help 2>/dev/null` or die "$this_program: can't get `--help' info from $ARGV[0]\n"; @@ -183,6 +179,9 @@ else $program =~ s!.*/!!; +# no info for `info' itself +$opt_no_info = 1 if $program eq 'info'; + # --name overrides --include contents $include{NAME} = "$program \\- $opt_name" if $opt_name; @@ -228,14 +227,14 @@ for (@help) $accumulate = 0; } while s/^(?:Usage|\s*or):\s+\S+\s+(.*)\n?//; - # Include file overrides SYNOPSIS + # Include file overrides SYNOPSIS. print ".SH SYNOPSIS\n", $include{SYNOPSIS} || $synopsis; # Dump any accumulated description text. print ".SH DESCRIPTION\n"; print @description; - # Add additional description text from include file + # Add additional description text from include file. if ($include{DESCRIPTION}) { print ".PP\n" unless $include{DESCRIPTION} =~ /^\..P/; @@ -313,12 +312,12 @@ for (@include) } # Refer to the real documentation. -if ($include{'SEE ALSO'} or $program ne 'info') +if ($include{'SEE ALSO'} or !$opt_no_info) { print qq(.SH "SEE ALSO"\n); print $include{'SEE ALSO'}, ".PP\n" if $include{'SEE ALSO'}; - print <<EOT unless $program eq 'info'; + print <<EOT unless $opt_no_info; The full documentation for .B $program is maintained as a Texinfo manual. If the @@ -338,16 +337,19 @@ for (@version) { chomp; - # Convert copyright symbol or (c) to nroff character + # Join hyphenated lines. + s/([A-Za-z])-\n */$1/g; + + # Convert copyright symbol or (c) to nroff character. s/Copyright\s+(?:\xa9|\([Cc]\))/Copyright \\(co/g; - # Insert appropriate headings for copyright and author + # Insert appropriate headings for copyright and author. if (/^Copyright\s\\/) { print ".SH COPYRIGHT\n" } elsif (/^Written\s+by/) { print ".SH AUTHOR\n" } else { print ".PP\n"; } # Insert line breaks before additional copyright messages and the - # disclaimer + # disclaimer. s/(.)\n(Copyright\s|This is free software)/$1\n.br\n$2/g; print "$_\n"; |