add DXCIDR, fix version no tracking
[spider.git] / perl / Editable.pm
index b0b4e2627cbcf6d08f4789e1ce6b263635af8073..0655fcf6a1629050cf9b7fbbb64d75dff7261b1b 100644 (file)
@@ -8,23 +8,68 @@
 #
 # Copyright (c) 2001 Dirk Koopman G1TLH
 #
-# $Id$
+#
 #
 
 package Editable;
 
-use vars qw($VERSION $BRANCH);
-$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
-$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ ) || 0;
-$main::build += $VERSION;
-$main::branch += $BRANCH;
+use strict;
+
+use DXChannel;
+use DXDebug;
+use BadWords;
 
 sub new
 {
        my $pkg = shift;
        my $class = ref $pkg || $pkg;
        
-       return {}, $class; 
+       return {@_}, $class; 
+}
+
+sub copy
+{
+       my $self = shift;
+       return $self->new(%$self);
+}
+
+sub addline
+{
+       my $self = shift;
+       my $dxchan = shift;
+       my $line = shift;
+       
+       if (my @ans = BadWord::check($line)) {
+               return ($dxchan->msg('e17', @ans));
+       }
+       push @{$self->{lines}}, $line;
+       return ();
+}
+
+sub modline
+{
+       my $self = shift;
+       my $dxchan = shift;
+       my $no = shift;
+       my $line = shift;
+
+       if (my @ans = BadWord::check($line)) {
+               return ($dxchan->msg('e17', @ans));
+       }
+    ${$self->{lines}}[$no] = $line;
+       return ();
+}
+
+sub lines
+{
+       my $self = shift;
+       return exists $self->{lines} ? (@{$self->{lines}}) : ();
+}
+
+sub nolines
+{
+       my $self = shift;
+       return exists $self->{lines} ? scalar @{$self->{lines}} : 0;
 }
 
 1;