#
# Copyright (c) - 1998 Dirk Koopman G1TLH
#
-# $Id$
+#
#
use strict;
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
{
my $pkg = shift;
my $size = shift;
- return bless [$size, 0, 0, 0, 0, []], (ref $pkg || $pkg);
+
+ # 0 - size
+ # 1 - lth
+ # 2 - end
+ # 3 - start
+ # 4 - pos
+ # 5 - buffer []
+ 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];