HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: //proc/37321/root/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__