package RingBuf;
-use vars qw($VERSION $BRANCH);
-$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
-$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0));
-$main::build += $VERSION;
-$main::branch += $BRANCH;
-
sub new
{
# 3 - start
# 4 - pos
# 5 - buffer []
- return bless [$size, 0, 0, 0, 0, []], (ref $pkg || $pkg);
+ return bless [$size+1, 0, 0, 0, 0, []], (ref $pkg || $pkg);
}
sub write
$self->[5]->[$self->[2]++] = shift;
$self->[2] = 0 if $self->[2] >= $self->[0];
- if ($self->[1] < $self->[0]) {
- $self->[1] = ++$self->[1];
- }
- $self->[2] = $self->[2];
+ $self->[1]++ if $self->[1] < $self->[0];
if ($self->[1] == $self->[0] && $self->[2] == $self->[3]) {
$self->[3] = $self->[2]+1;
$self->[3] = 0 if $self->[3] >= $self->[0];