%PDF- %PDF-
Direktori : /lib/x86_64-linux-gnu/perl-base/Text/ |
Current File : //lib/x86_64-linux-gnu/perl-base/Text/Tabs.pm |
use strict; use warnings; package Text::Tabs; BEGIN { require Exporter; *import = \&Exporter::import } our @EXPORT = qw( expand unexpand $tabstop ); our $VERSION = '2021.0814'; our $SUBVERSION = 'modern'; # back-compat vestige our $tabstop = 8; sub expand { my @l; my $pad; for ( @_ ) { defined or do { push @l, ''; next }; my $s = ''; for (split(/^/m, $_, -1)) { my $offs; for (split(/\t/, $_, -1)) { if (defined $offs) { $pad = $tabstop - $offs % $tabstop; $s .= " " x $pad; } $s .= $_; $offs = () = /\PM/g; } } 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) { defined $x or next; @lines = split("\n", $x, -1); for $line (@lines) { $line = expand($line); @e = split(/((?:\PM\pM*){$tabstop})/,$line,-1); $lastbit = pop(@e); $lastbit = '' unless defined $lastbit; $lastbit = "\t" if $lastbit eq $ts_as_space; for $_ (@e) { s/ +$/\t/; } $line = join('',@e, $lastbit); } $x = join("\n", @lines); } return @l if wantarray; return $l[0]; } 1; __END__