@EXPORT = qw(expand unexpand $tabstop);
use vars qw($VERSION $tabstop $debug);
for (split(/^/m, $_, -1)) {
$pad = $tabstop - (pos() + $offs) % $tabstop;
@lines = split("\n", $x, -1);
@e = split(/(.{$tabstop})/,$line,-1);
$lastbit = '' unless defined $lastbit;
if $lastbit eq " "x$tabstop;
$line = join('',@e, $lastbit);
1 while s/(^|\n)([^\t\n]*)(\t+)/
- (length($2) % $tabstop)))
Text::Tabs -- expand and unexpand tabs per the unix expand(1) and unexpand(1)
@lines_without_tabs = expand(@lines_with_tabs);
@lines_with_tabs = unexpand(@lines_without_tabs);
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. Invisible
compression with plain ascii!
expand doesn't handle newlines very quickly -- do not feed it an
entire document in one string. Instead feed it an array of lines.
Copyright (C) 1996-2002,2005 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.