D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
cpanel
/
perl5
/
536
/
site_lib
/
Perl
/
Tidy
/
VerticalAligner
/
Filename :
Line.pm
back
Copy
##################################################################### # # The Perl::Tidy::VerticalAligner::Line class supplies an object to # contain a single output line. It allows manipulation of the # alignment columns on that line. # ##################################################################### package Perl::Tidy::VerticalAligner::Line; use strict; use warnings; use English qw( -no_match_vars ); our $VERSION = '20230912'; sub AUTOLOAD { # Catch any undefined sub calls so that we are sure to get # some diagnostic information. This sub should never be called # except for a programming error. our $AUTOLOAD; return if ( $AUTOLOAD =~ /\bDESTROY$/ ); my ( $pkg, $fname, $lno ) = caller(); my $my_package = __PACKAGE__; print {*STDERR} <<EOM; ====================================================================== Error detected in package '$my_package', version $VERSION Received unexpected AUTOLOAD call for sub '$AUTOLOAD' Called from package: '$pkg' Called from File '$fname' at line '$lno' This error is probably due to a recent programming change ====================================================================== EOM exit 1; } ## end sub AUTOLOAD { # Constructor may be called as a class method sub new { my ( $class, $ri ) = @_; my $self = bless $ri, $class; return $self; } sub get_column { my ( $self, $j ) = @_; my $alignment = $self->{ralignments}->[$j]; return unless defined($alignment); return $alignment->get_column(); } ## end sub get_column sub current_field_width { my ( $self, $j ) = @_; my $col_j = 0; my $col_jm = 0; my $alignment_j = $self->{ralignments}->[$j]; $col_j = $alignment_j->get_column() if defined($alignment_j); if ( $j > 0 ) { my $alignment_jm = $self->{ralignments}->[ $j - 1 ]; $col_jm = $alignment_jm->get_column() if defined($alignment_jm); } return $col_j - $col_jm; } ## end sub current_field_width sub increase_field_width { my ( $self, $j, $pad ) = @_; my $jmax = $self->{jmax}; foreach ( $j .. $jmax ) { my $alignment = $self->{ralignments}->[$_]; if ( defined($alignment) ) { $alignment->increment_column($pad); } } return; } ## end sub increase_field_width sub get_available_space_on_right { my $jmax = $_[0]->{jmax}; return $_[0]->{maximum_line_length} - $_[0]->get_column($jmax); } } 1;