Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / bin / pod2text
CommitLineData
86530b38
AT
1#!/import/bw/tools/local/perl-5.8.0/bin/perl
2 eval 'exec /import/bw/tools/local/perl-5.8.0/bin/perl -S $0 ${1+"$@"}'
3 if $running_under_some_shell;
4
5# pod2text -- Convert POD data to formatted ASCII text.
6#
7# Copyright 1999, 2000, 2001 by Russ Allbery <rra@stanford.edu>
8#
9# This program is free software; you may redistribute it and/or modify it
10# under the same terms as Perl itself.
11#
12# The driver script for Pod::Text, Pod::Text::Termcap, and Pod::Text::Color,
13# invoked by perldoc -t among other things.
14
15require 5.004;
16
17use Getopt::Long qw(GetOptions);
18use Pod::Text ();
19use Pod::Usage qw(pod2usage);
20
21use strict;
22
23# Silence -w warnings.
24use vars qw($running_under_some_shell);
25
26# Take an initial pass through our options, looking for one of the form
27# -<number>. We turn that into -w <number> for compatibility with the
28# original pod2text script.
29for (my $i = 0; $i < @ARGV; $i++) {
30 last if $ARGV[$i] =~ /^--$/;
31 if ($ARGV[$i] =~ /^-(\d+)$/) {
32 splice (@ARGV, $i++, 1, '-w', $1);
33 }
34}
35
36# Insert -- into @ARGV before any single dash argument to hide it from
37# Getopt::Long; we want to interpret it as meaning stdin (which Pod::Parser
38# does correctly).
39my $stdin;
40@ARGV = map { $_ eq '-' && !$stdin++ ? ('--', $_) : $_ } @ARGV;
41
42# Parse our options. Use the same names as Pod::Text for simplicity, and
43# default to sentence boundaries turned off for compatibility.
44my %options;
45$options{sentence} = 0;
46Getopt::Long::config ('bundling');
47GetOptions (\%options, 'alt|a', 'code', 'color|c', 'help|h', 'indent|i=i',
48 'loose|l', 'overstrike|o', 'quotes|q=s', 'sentence|s',
49 'termcap|t', 'width|w=i') or exit 1;
50pod2usage (1) if $options{help};
51
52# Figure out what formatter we're going to use. -c overrides -t.
53my $formatter = 'Pod::Text';
54if ($options{color}) {
55 $formatter = 'Pod::Text::Color';
56 eval { require Term::ANSIColor };
57 if ($@) { die "-c (--color) requires Term::ANSIColor be installed\n" }
58 require Pod::Text::Color;
59} elsif ($options{termcap}) {
60 $formatter = 'Pod::Text::Termcap';
61 require Pod::Text::Termcap;
62} elsif ($options{overstrike}) {
63 $formatter = 'Pod::Text::Overstrike';
64 require Pod::Text::Overstrike;
65}
66delete @options{'color', 'termcap', 'overstrike'};
67
68# Initialize and run the formatter.
69my $parser = $formatter->new (%options);
70$parser->parse_from_file (@ARGV);
71
72__END__
73
74=head1 NAME
75
76pod2text - Convert POD data to formatted ASCII text
77
78=head1 SYNOPSIS
79
80pod2text [B<-aclost>] [B<--code>] [B<-i> I<indent>] S<[B<-q> I<quotes>]>
81S<[B<-w> I<width>]> [I<input> [I<output>]]
82
83pod2text B<-h>
84
85=head1 DESCRIPTION
86
87B<pod2text> is a front-end for Pod::Text and its subclasses. It uses them
88to generate formatted ASCII text from POD source. It can optionally use
89either termcap sequences or ANSI color escape sequences to format the text.
90
91I<input> is the file to read for POD source (the POD can be embedded in
92code). If I<input> isn't given, it defaults to STDIN. I<output>, if given,
93is the file to which to write the formatted output. If I<output> isn't
94given, the formatted output is written to STDOUT.
95
96=head1 OPTIONS
97
98=over 4
99
100=item B<-a>, B<--alt>
101
102Use an alternate output format that, among other things, uses a different
103heading style and marks C<=item> entries with a colon in the left margin.
104
105=item B<--code>
106
107Include any non-POD text from the input file in the output as well. Useful
108for viewing code documented with POD blocks with the POD rendered and the
109code left intact.
110
111=item B<-c>, B<--color>
112
113Format the output with ANSI color escape sequences. Using this option
114requires that Term::ANSIColor be installed on your system.
115
116=item B<-i> I<indent>, B<--indent=>I<indent>
117
118Set the number of spaces to indent regular text, and the default indentation
119for C<=over> blocks. Defaults to 4 spaces if this option isn't given.
120
121=item B<-h>, B<--help>
122
123Print out usage information and exit.
124
125=item B<-l>, B<--loose>
126
127Print a blank line after a C<=head1> heading. Normally, no blank line is
128printed after C<=head1>, although one is still printed after C<=head2>,
129because this is the expected formatting for manual pages; if you're
130formatting arbitrary text documents, using this option is recommended.
131
132=item B<-o>, B<--overstrike>
133
134Format the output with overstruck printing. Bold text is rendered as
135character, backspace, character. Italics and file names are rendered as
136underscore, backspace, character. Many pagers, such as B<less>, know how
137to convert this to bold or underlined text.
138
139=item B<-q> I<quotes>, B<--quotes>=I<quotes>
140
141Sets the quote marks used to surround CE<lt>> text to I<quotes>. If
142I<quotes> is a single character, it is used as both the left and right
143quote; if I<quotes> is two characters, the first character is used as the
144left quote and the second as the right quoted; and if I<quotes> is four
145characters, the first two are used as the left quote and the second two as
146the right quote.
147
148I<quotes> may also be set to the special value C<none>, in which case no
149quote marks are added around CE<lt>> text.
150
151=item B<-s>, B<--sentence>
152
153Assume each sentence ends with two spaces and try to preserve that spacing.
154Without this option, all consecutive whitespace in non-verbatim paragraphs
155is compressed into a single space.
156
157=item B<-t>, B<--termcap>
158
159Try to determine the width of the screen and the bold and underline
160sequences for the terminal from termcap, and use that information in
161formatting the output. Output will be wrapped at two columns less than the
162width of your terminal device. Using this option requires that your system
163have a termcap file somewhere where Term::Cap can find it and requires that
164your system support termios. With this option, the output of B<pod2text>
165will contain terminal control sequences for your current terminal type.
166
167=item B<-w>, B<--width=>I<width>, B<->I<width>
168
169The column at which to wrap text on the right-hand side. Defaults to 76,
170unless B<-t> is given, in which case it's two columns less than the width of
171your terminal device.
172
173=back
174
175=head1 DIAGNOSTICS
176
177If B<pod2text> fails with errors, see L<Pod::Text> and L<Pod::Parser> for
178information about what those errors might mean. Internally, it can also
179produce the following diagnostics:
180
181=over 4
182
183=item -c (--color) requires Term::ANSIColor be installed
184
185(F) B<-c> or B<--color> were given, but Term::ANSIColor could not be
186loaded.
187
188=item Unknown option: %s
189
190(F) An unknown command line option was given.
191
192=back
193
194In addition, other L<Getopt::Long|Getopt::Long> error messages may result
195from invalid command-line options.
196
197=head1 ENVIRONMENT
198
199=over 4
200
201=item COLUMNS
202
203If B<-t> is given, B<pod2text> will take the current width of your screen
204from this environment variable, if available. It overrides terminal width
205information in TERMCAP.
206
207=item TERMCAP
208
209If B<-t> is given, B<pod2text> will use the contents of this environment
210variable if available to determine the correct formatting sequences for your
211current terminal device.
212
213=back
214
215=head1 SEE ALSO
216
217L<Pod::Text>, L<Pod::Text::Color>, L<Pod::Text::Overstrike>,
218L<Pod::Text::Termcap>, L<Pod::Parser>
219
220The current version of this script is always available from its web site at
221L<http://www.eyrie.org/~eagle/software/podlators/>. It is also part of the
222Perl core distribution as of 5.6.0.
223
224=head1 AUTHOR
225
226Russ Allbery <rra@stanford.edu>.
227
228=head1 COPYRIGHT AND LICENSE
229
230Copyright 1999, 2000, 2001 by Russ Allbery <rra@stanford.edu>.
231
232This program is free software; you may redistribute it and/or modify it
233under the same terms as Perl itself.
234
235=cut