summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Muir Sharnoff <muir@idiom.com>1996-12-17 22:59:59 -0800
committerChip Salzenberg <chip@atlantic.net>1996-12-19 16:44:00 +1200
commit4fc6b8d8b1c6c2152c9aca876e60cc657bf252e6 (patch)
tree9aef8a5b1fffc3ec0df290259d16208e9dc80fd1
parentdf3ef7a9a68db503d1aecd7cb40d5f974fa0066b (diff)
downloadperl-4fc6b8d8b1c6c2152c9aca876e60cc657bf252e6.tar.gz
Please update Text::Wrap and Text::Tabs
In the next perl releae, please include the latest versions of Text::Wrap and Text::Tabs. They always be found in the nearest CPAN. Actually, I'm not sure how far behind (if any) the current source is, but I keep getting bug reports from old versions so I thought I should make sure... p5p-msgid: <199612180659.WAA24957@idiom.com>
-rw-r--r--lib/Text/Tabs.pm18
-rw-r--r--lib/Text/Wrap.pm39
2 files changed, 45 insertions, 12 deletions
diff --git a/lib/Text/Tabs.pm b/lib/Text/Tabs.pm
index 4024d7b685..acd7afb7d6 100644
--- a/lib/Text/Tabs.pm
+++ b/lib/Text/Tabs.pm
@@ -7,7 +7,7 @@ require Exporter;
@EXPORT = qw(expand unexpand $tabstop);
use vars qw($VERSION $tabstop $debug);
-$VERSION = 96.051501;
+$VERSION = 96.121201;
use strict;
@@ -27,7 +27,7 @@ sub expand
/sex;
}
return @l if wantarray;
- return @l[0];
+ return $l[0];
}
sub unexpand
@@ -60,7 +60,7 @@ sub unexpand
$x = join("\n", @lines);
}
return @l if wantarray;
- return @l[0];
+ return $l[0];
}
1;
@@ -69,15 +69,15 @@ __END__
=head1 NAME
-Text::Tabs - expand and unexpand tabs per the unix expand(1) and unexpand(1)
+Text::Tabs -- expand and unexpand tabs per the unix expand(1) and unexpand(1)
=head1 SYNOPSIS
- use Text::Tabs;
+use Text::Tabs;
- $tabstop = 4;
- @lines_without_tabs = expand(@lines_with_tabs);
- @lines_with_tabs = unexpand(@lines_without_tabs);
+$tabstop = 4;
+@lines_without_tabs = expand(@lines_with_tabs);
+@lines_with_tabs = unexpand(@lines_without_tabs);
=head1 DESCRIPTION
@@ -94,4 +94,4 @@ entire document in one string. Instead feed it an array of lines.
=head1 AUTHOR
-David Muir Sharnoff E<lt>F<muir@idiom.com>E<gt>
+David Muir Sharnoff <muir@idiom.com>
diff --git a/lib/Text/Wrap.pm b/lib/Text/Wrap.pm
index 2ffc69ec20..96ccf7ee2d 100644
--- a/lib/Text/Wrap.pm
+++ b/lib/Text/Wrap.pm
@@ -9,6 +9,7 @@ require Exporter;
$VERSION = 96.041801;
use vars qw($VERSION $columns $debug);
+use strict;
BEGIN {
$columns = 76; # <= screen width
@@ -16,7 +17,6 @@ BEGIN {
}
use Text::Tabs;
-use strict;
sub wrap
{
@@ -63,6 +63,7 @@ sub wrap
return $r;
}
+
1;
__DATA__
@@ -82,7 +83,7 @@ Text::Wrap - line wrapping to form simple paragraphs
=head1 DESCRIPTION
-Text::Wrap is a very simple paragraph formatter. It formats a
+Text::Wrap::wrap() is a very simple paragraph formatter. It formats a
single paragraph at a time by breaking lines at word boundries.
Indentation is controlled for the first line ($initial_tab) and
all subsquent lines ($subsequent_tab) independently. $Text::Wrap::columns
@@ -95,6 +96,38 @@ should be set to the full width of your output device.
=head1 AUTHOR
-David Muir Sharnoff E<lt>F<muir@idiom.com>E<gt>
+David Muir Sharnoff <muir@idiom.com> with help from Tim Pierce and
+others.
=cut
+
+ print fill($initial_tab, $subsequent_tab, @text);
+
+ print fill("", "", `cat book`);
+
+Text::Wrap::fill() is a simple multi-paragraph formatter. It formats
+each paragraph separately and then joins them together when it's done. It
+will destory any whitespace in the original text. It breaks text into
+paragraphs by looking for whitespace after a newline. In other respects
+it acts like wrap().
+
+# Tim Pierce did a faster version of this:
+
+sub fill
+{
+ my ($ip, $xp, @raw) = @_;
+ my @para;
+ my $pp;
+
+ for $pp (split(/\n\s+/, join("\n",@raw))) {
+ $pp =~ s/\s+/ /g;
+ my $x = wrap($ip, $xp, $pp);
+ push(@para, $x);
+ }
+
+ # if paragraph_indent is the same as line_indent,
+ # separate paragraphs with blank lines
+
+ return join ($ip eq $xp ? "\n\n" : "\n", @para);
+}
+