diff options
Diffstat (limited to 'lib/Text/Tabs.pm')
-rw-r--r-- | lib/Text/Tabs.pm | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/lib/Text/Tabs.pm b/lib/Text/Tabs.pm deleted file mode 100644 index d3c06a08c1..0000000000 --- a/lib/Text/Tabs.pm +++ /dev/null @@ -1,136 +0,0 @@ - -package Text::Tabs; - -require Exporter; - -@ISA = (Exporter); -@EXPORT = qw(expand unexpand $tabstop); - -use vars qw($VERSION $tabstop $debug); -$VERSION = 2009.0305; - -use strict; - -BEGIN { - $tabstop = 8; - $debug = 0; -} - -sub expand { - my @l; - my $pad; - for ( @_ ) { - my $s = ''; - for (split(/^/m, $_, -1)) { - my $offs = 0; - s{\t}{ - $pad = $tabstop - (pos() + $offs) % $tabstop; - $offs += $pad - 1; - " " x $pad; - }eg; - $s .= $_; - } - push(@l, $s); - } - return @l if wantarray; - return $l[0]; -} - -sub unexpand -{ - my (@l) = @_; - my @e; - my $x; - my $line; - my @lines; - my $lastbit; - my $ts_as_space = " "x$tabstop; - for $x (@l) { - @lines = split("\n", $x, -1); - for $line (@lines) { - $line = expand($line); - @e = split(/(.{$tabstop})/,$line,-1); - $lastbit = pop(@e); - $lastbit = '' - unless defined $lastbit; - $lastbit = "\t" - if $lastbit eq $ts_as_space; - for $_ (@e) { - if ($debug) { - my $x = $_; - $x =~ s/\t/^I\t/gs; - print "sub on '$x'\n"; - } - s/ +$/\t/; - } - $line = join('',@e, $lastbit); - } - $x = join("\n", @lines); - } - return @l if wantarray; - return $l[0]; -} - -1; -__END__ - -sub expand -{ - my (@l) = @_; - for $_ (@l) { - 1 while s/(^|\n)([^\t\n]*)(\t+)/ - $1. $2 . (" " x - ($tabstop * length($3) - - (length($2) % $tabstop))) - /sex; - } - return @l if wantarray; - return $l[0]; -} - - -=head1 NAME - -Text::Tabs -- expand and unexpand tabs per the unix expand(1) and unexpand(1) - -=head1 SYNOPSIS - - use Text::Tabs; - - $tabstop = 4; # default = 8 - @lines_without_tabs = expand(@lines_with_tabs); - @lines_with_tabs = unexpand(@lines_without_tabs); - -=head1 DESCRIPTION - -Text::Tabs does about what the unix utilities expand(1) and unexpand(1) -do. Given a line with tabs in it, expand will replace the tabs with -the appropriate number of spaces. Given a line with or without tabs in -it, unexpand will add tabs when it can save bytes by doing so (just -like C<unexpand -a>). Invisible compression with plain ASCII! - -=head1 EXAMPLE - - #!perl - # unexpand -a - use Text::Tabs; - - while (<>) { - print unexpand $_; - } - -Instead of the C<expand> comand, use: - - perl -MText::Tabs -n -e 'print expand $_' - -Instead of the C<unexpand -a> command, use: - - perl -MText::Tabs -n -e 'print unexpand $_' - -=head1 LICENSE - -Copyright (C) 1996-2002,2005,2006 David Muir Sharnoff. -Copyright (C) 2005 Aristotle Pagaltzis -This module may be modified, used, copied, and redistributed at your own risk. -Publicly redistributed modified versions must use a different name. - |