Apache/2.4.7 (Ubuntu) Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) safemode : OFF MySQL: ON | Perl: ON | cURL: OFF | WGet: ON > / usr / share / perl / 5.18.2 / ExtUtils / ParseXS / | server ip : 104.21.89.46 your ip : 172.70.80.99 H O M E |
Filename | /usr/share/perl/5.18.2/ExtUtils/ParseXS/CountLines.pm |
Size | 971 |
Permission | rw-r--r-- |
Owner | root : root |
Create time | 27-Apr-2025 10:10 |
Last modified | 21-Nov-2018 01:11 |
Last accessed | 07-Jul-2025 02:23 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
package ExtUtils::ParseXS::CountLines;
use strict;
our $VERSION = '3.18';
our $SECTION_END_MARKER;
sub TIEHANDLE {
my ($class, $cfile, $fh) = @_;
$cfile =~ s/\\/\\\\/g;
$cfile =~ s/"/\\"/g;
$SECTION_END_MARKER = qq{#line --- "$cfile"};
return bless {
buffer => '',
fh => $fh,
line_no => 1,
}, $class;
}
sub PRINT {
my $self = shift;
for (@_) {
$self->{buffer} .= $_;
while ($self->{buffer} =~ s/^([^\n]*\n)//) {
my $line = $1;
++$self->{line_no};
$line =~ s|^\#line\s+---(?=\s)|#line $self->{line_no}|;
print {$self->{fh}} $line;
}
}
}
sub PRINTF {
my $self = shift;
my $fmt = shift;
$self->PRINT(sprintf($fmt, @_));
}
sub DESTROY {
# Not necessary if we're careful to end with a "\n"
my $self = shift;
print {$self->{fh}} $self->{buffer};
}
sub UNTIE {
# This sub does nothing, but is necessary for references to be released.
}
sub end_marker {
return $SECTION_END_MARKER;
}
1;
use strict;
our $VERSION = '3.18';
our $SECTION_END_MARKER;
sub TIEHANDLE {
my ($class, $cfile, $fh) = @_;
$cfile =~ s/\\/\\\\/g;
$cfile =~ s/"/\\"/g;
$SECTION_END_MARKER = qq{#line --- "$cfile"};
return bless {
buffer => '',
fh => $fh,
line_no => 1,
}, $class;
}
sub PRINT {
my $self = shift;
for (@_) {
$self->{buffer} .= $_;
while ($self->{buffer} =~ s/^([^\n]*\n)//) {
my $line = $1;
++$self->{line_no};
$line =~ s|^\#line\s+---(?=\s)|#line $self->{line_no}|;
print {$self->{fh}} $line;
}
}
}
sub PRINTF {
my $self = shift;
my $fmt = shift;
$self->PRINT(sprintf($fmt, @_));
}
sub DESTROY {
# Not necessary if we're careful to end with a "\n"
my $self = shift;
print {$self->{fh}} $self->{buffer};
}
sub UNTIE {
# This sub does nothing, but is necessary for references to be released.
}
sub end_marker {
return $SECTION_END_MARKER;
}
1;