Prepare for git repository
[spider.git] / perl / RingBuf.pm
index 82b534e41d2081887c4cee814cade8dee0a4286a..ae36dab715123d4917dc5ec59f54486dd07f5e4b 100644 (file)
@@ -10,18 +10,19 @@ 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
@@ -30,10 +31,7 @@ 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];