VCS-SCCS
view release on metacpan or search on metacpan
# ^Ac comment
# ^Ae
$_ = <$fh>;
while (m{^\cAs (\d+)/(\d+)/(\d+)$}) {
my @delta;
my ($l_ins, $l_del, $l_unc) = map { $_ + 0 } $1, $2, $3;
{ local $/ = "\cAe\n";
@delta = split m/\n/, scalar <$fh>;
}
my ($type, $vsn, $v_r, $v_l, $v_b, $v_s,
$date, $y, $m, $d, $time, $H, $M, $S,
$user, $rev, $prv) =
(shift (@delta) =~ m{
\cAd # Delta
\s+ ([DR]) # Type Delta/Remove?
\s+ ((\d+)\.(\d+)
(?:\.(\d+)(?:\.(\d+))?)?) # Vsn %R%.%L%[.%B%[.%S%]]
# Comment
# ^At comment
while (s/^\cA[tT]\s*//) {
m/\S/ and $sccs{comment} .= $_;
$_ = <$fh>;
}
# Body
local $/ = undef;
$sccs{body} = [ split m/\n/, $_ . <$fh> ];
close $fh;
return bless \%sccs, $class;
} # new
sub file {
my $self = shift;
return $self->{file};
} # file
if (m/^\cA(.*)/) {
carp "Unsupported SCCS control: ^A$1, line skipped";
next;
}
$want and push @body, $self->_tran ($_);
# printf STDERR "%2d.%04d/%s: %-29.29s |%s\n", $r, scalar @body, $want, $v->(), $_;
}
if ($self->{flags}{e} && @body && $body[0] =~ m/^[\x20-\x60]{1,61}$/) {
my $body = unpack "u" => join "\n" => @body;
$body and @body = split m/\n/ => $body;
}
return wantarray ? @body : join "\n", @body, "";
} # body
1;
__END__
=head1 NAME
( run in 0.524 second using v1.01-cache-2.11-cpan-71847e10f99 )