|
Server : LiteSpeed System : Linux srv104790275 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64 User : dewac4139 ( 1077) PHP Version : 8.0.30 Disable Function : 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_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /proc/thread-self/root/usr/share/perl5/Archive/Cpio/ |
Upload File : |
package Archive::Cpio::FileHandle_with_pushback;
sub new {
my ($class, $F) = @_;
bless { F => $F, already_read => '' }, $class;
}
sub pushback {
my ($FHwp, $s) = @_;
$FHwp->{already_read} .= $s;
}
sub read {
my ($FHwp, $size) = @_;
$size or return;
$size =~ /^\d+$/ or die "bad size $size\n";
my $tmp = '';
if ($FHwp->{already_read}) {
$tmp = substr($FHwp->{already_read}, 0, $size);
substr($FHwp->{already_read}, 0, $size) = '';
$size -= length($tmp);
}
read($FHwp->{F}, $tmp, $size, length($tmp)) == $size or die "unexpected end of file while reading (got $tmp)\n";
$tmp;
}
sub read_ahead {
my ($FHwp, $size) = @_;
my $s = $FHwp->read($size);
$FHwp->pushback($s);
$s;
}
1;