Index: /trunk/gsdl/perllib/plugins/ConvertToPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/ConvertToPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/ConvertToPlug.pm	(revision 11090)
@@ -331,7 +331,4 @@
     my $self = shift (@_);
     my ($pluginfo, $base_dir, $file, $metadata, $processor, $maxdocs, $total_count, $gli) = @_;
-    #if ($self->is_recursive()) {
-    #   die "BasPlug::read function must be implemented in sub-class for recursive plugins\n";
-    # }
 
     my $outhandle = $self->{'outhandle'};
Index: /trunk/gsdl/perllib/plugins/ConvertToRogPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/ConvertToRogPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/ConvertToRogPlug.pm	(revision 11090)
@@ -313,20 +313,11 @@
     my $self = shift (@_);
     my ($pluginfo, $base_dir, $file, $metadata, $processor, $maxdocs, $total_count, $gli) = @_;
-#    if ($self->is_recursive()) {
-#        die "BasPlug::read function must be implemented in sub-class for recursive plugins\n";
-#    }
 
     my $outhandle = $self->{'outhandle'};
 
-    my $filename = $file;
-    $filename = &util::filename_cat ($base_dir, $file) if $base_dir =~ /\w/;
-
-    if ($self->{'block_exp'} ne "" && $filename =~ /$self->{'block_exp'}/) {
-	$self->{'num_blocked'} ++;
-	return 0;
-    }
-    if ($filename !~ /$self->{'process_exp'}/ || !-f $filename) {
-        return undef;
-    }
+    # check process_exp, block_exp, associate_ext etc
+    my ($block_status,$filename) = $self->read_block(@_);    
+    return $block_status if ((!defined $block_status) || ($block_status==0));
+ 
     $file =~ s/^[\/\\]+//; # $file often begins with / so we'll tidy it up
 
Index: /trunk/gsdl/perllib/plugins/DBPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/DBPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/DBPlug.pm	(revision 11090)
@@ -88,10 +88,6 @@
 
     # see if we can handle the passed file...
-    my $filename = $file;
-    $filename = &util::filename_cat ($base_dir, $file) if $base_dir =~ /\w/;
-    if ($filename !~ /$self->{'process_exp'}/ || !-f $filename) {
-	# this plugin can't process this file type...
-        return undef;
-    }
+    my ($block_status,$filename) = $self->read_block(@_);    
+    return $block_status if ((!defined $block_status) || ($block_status==0));
 
     my $outhandle = $self->{'outhandle'};
Index: /trunk/gsdl/perllib/plugins/FOXPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/FOXPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/FOXPlug.pm	(revision 11090)
@@ -69,10 +69,16 @@
 }
 
-sub is_recursive {
-    my $self = shift (@_);
-
-    return 0; # this is not a recursive plugin
-}
-
+sub get_default_process_exp {
+    my $self = shift (@_);
+
+    return q^(?i)\.dbf$^;
+}
+
+#dbt files are processed at the same time as dbf files
+sub get_default_block_exp {
+    my $self = shift (@_);
+
+    return q^(?i)\.dbt$^;
+}
 
 # return number of files processed, undef if can't process
@@ -82,11 +88,11 @@
     my $self = shift (@_);
     my ($pluginfo, $base_dir, $file, $metadata, $processor, $maxdocs, $total_count, $gli) = @_;
-    my $fullname = &util::filename_cat ($base_dir, $file);
-
-    # dbt files are processed at the same time as dbf files
-    return 0 if ($fullname =~ /\.dbt$/i);
-
-    # see if this is a foxbase database
-    return undef unless (-f $fullname && $fullname =~ /\.dbf$/i);
+ 
+    #check for associate_ext, blocking etc, are we processing this file?
+    my ($block_status,$fullname) = $self->read_block(@_);    
+    return $block_status if ((!defined $block_status) || ($block_status==0));
+
+    print STDERR "<Processing n='$file' p='FOXPlug'>\n" if ($gli);
+    print STDERR "FOXPlug: processing $file\n" if $self->{'verbosity'} > 1;
 
     my ($parent_dir) = $fullname =~ /^(.*)\/[^\/]+\.dbf$/i;
@@ -100,8 +106,4 @@
 	return -1; # error in processing
     }
-
-    print STDERR "<Processing n='$file' p='FOXPlug'>\n" if ($gli);
-    
-    print STDERR "FOXPlug: processing $file\n";
 
     # read in the database header
Index: /trunk/gsdl/perllib/plugins/GMLPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/GMLPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/GMLPlug.pm	(revision 11090)
@@ -82,11 +82,8 @@
     my $outhandle = $self->{'outhandle'};
 
-    my $filename = $file;
-    $filename = &util::filename_cat ($base_dir, $file) if $base_dir =~ /\w/;
-
-    return 0 if $self->{'block_exp'} ne "" && $filename =~ /$self->{'block_exp'}/;
-    if ($filename !~ /$self->{'process_exp'}/ || !-f $filename) {
-	return undef;
-    }
+    #check process and block exps, smart block, etc
+    my ($block_status,$filename) = $self->read_block(@_);    
+    return $block_status if ((!defined $block_status) || ($block_status==0));
+
     $file =~ s/^[\/\\]+//; # $file often begins with / so we'll tidy it up
 
Index: /trunk/gsdl/perllib/plugins/ImagePlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/ImagePlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/ImagePlug.pm	(revision 11090)
@@ -337,10 +337,5 @@
 
 
-# The ImagePlug read() function. This function does all the right things
-# to make general options work for a given plugin. It calls the process()
-# function which does all the work specific to a plugin (like the old
-# read functions used to do). Most plugins should define their own 
-# process() function and let this read() function keep control.
-#
+# The ImagePlug read() function. 
 # ImagePlug overrides read() because there is no need to read the actual 
 # text of the file in, because the contents of the file is not text...
@@ -356,9 +351,7 @@
     my $outhandle = $self->{'outhandle'};
 
-    my $filename = &util::filename_cat($base_dir, $file);
-    return 0 if $self->{'block_exp'} ne "" && $filename =~ /$self->{'block_exp'}/;
-    if ($filename !~ /$self->{'process_exp'}/ || !-f $filename) {
-	return undef;
-    }
+    #check process and block exps, smart block, etc
+    my ($block_status,$filename) = $self->read_block(@_);    
+    return $block_status if ((!defined $block_status) || ($block_status==0));
 
     print STDERR "<Processing n='$file' p='ImagePlug'>\n" if ($gli);
Index: /trunk/gsdl/perllib/plugins/MP3Plug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/MP3Plug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/MP3Plug.pm	(revision 11090)
@@ -307,10 +307,8 @@
     my $outhandle = $self->{'outhandle'};
 
-    # Make sure we're processing the correct file
-    my $filename = &util::filename_cat($base_dir, $file);
-    return 0 if $self->{'block_exp'} ne "" && $filename =~ /$self->{'block_exp'}/;
-    if ($filename !~ /$self->{'process_exp'}/ || !-f $filename) {
-	return undef;
-    }
+    #check for associate_ext, blocking etc
+    my ($block_status,$filename) = $self->read_block(@_);    
+    return $block_status if ((!defined $block_status) || ($block_status==0));
+
     print STDERR "<Processing n='$file' p='MP3Plug'>\n" if ($gli);
     print $outhandle "MP3Plug processing \"$filename\"\n"
Index: /trunk/gsdl/perllib/plugins/NULPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/NULPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/NULPlug.pm	(revision 11090)
@@ -95,10 +95,8 @@
     my $outhandle = $self->{'outhandle'};
 
-    # Make sure we're processing the correct file
-    my $filename = &util::filename_cat($base_dir, $file);
-    return 0 if $self->{'block_exp'} ne "" && $filename =~ /$self->{'block_exp'}/;
-    if ($filename !~ /$self->{'process_exp'}/ || !-f $filename) {
-	return undef;
-    }
+    #check for associate_ext, blocking etc
+    my ($block_status,$filename) = $self->read_block(@_);    
+    return $block_status if ((!defined $block_status) || ($block_status==0));
+
     print STDERR "<Processing n='$file' p='NULPlug'>\n" if ($gli);
     print $outhandle "NULPlug processing \"$filename\"\n"
Index: /trunk/gsdl/perllib/plugins/OggVorbisPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/OggVorbisPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/OggVorbisPlug.pm	(revision 11090)
@@ -87,12 +87,9 @@
     my $outhandle = $self->{'outhandle'};
 
-    # filename is the full pathname of the file
-    my $filename = &util::filename_cat($base_dir, $file);
-    return 0 if $self->{block_exp} ne "" && $filename =~ /$self->{'block_exp'}/;
-    if ($filename !~ /$self->{'process_exp'}/ || !-f $filename) {
-	return undef;
-    }
+    #check process and block exps, smart block, etc
+    my ($block_status,$filename) = $self->read_block(@_);    
+    return $block_status if ((!defined $block_status) || ($block_status==0));
 
-    # Report that we're processing the file
+     # Report that we're processing the file
     print STDERR "<Processing n='$file' p='OggVorbisPlug'>\n" if ($gli);
     print $outhandle "OggVorbisPlug: processing $file\n"
Index: /trunk/gsdl/perllib/plugins/OpenDocumentPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/OpenDocumentPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/OpenDocumentPlug.pm	(revision 11090)
@@ -148,14 +148,7 @@
     my ($pluginfo, $base_dir, $file, $metadata, $processor, $maxdocs, $total_count, $gli) = @_;
 
-    my $filename = $file;
-    $filename = &util::filename_cat ($base_dir, $file) if $base_dir =~ /\w/;
-
-    if ($self->{'block_exp'} ne "" && $filename =~ /$self->{'block_exp'}/) {
-	$self->{'num_blocked'} ++;
-	return 0;
-    }
-    if ($filename !~ /$self->{'process_exp'}/ || !-f $filename) {
-	return undef;
-    }
+    # check process and block exps, smart block, associate_ext etc
+    my ($block_status,$filename) = $self->read_block(@_);    
+    return $block_status if ((!defined $block_status) || ($block_status==0));
 
     $file =~ s/^[\/\\]+//; # $file often begins with / so we'll tidy it up
Index: /trunk/gsdl/perllib/plugins/PagedImgPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/PagedImgPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/PagedImgPlug.pm	(revision 11090)
@@ -539,27 +539,8 @@
     my ($pluginfo, $base_dir, $file, $metadata, $processor, $maxdocs, $total_count, $gli) = @_;
     my $outhandle   = $self->{'outhandle'};
-    my $smart_block = $self->{'smart_block'};
-    
-    my $filename = &util::filename_cat($base_dir, $file);
-    
-    if ($self->associate_with($file,$filename,$metadata)) {
-	# a form of smart block
-	$self->{'num_blocked'} ++;
-	return 0; # blocked
-    }
-    
-    if ($smart_block) {
-	if (defined $self->{'file_blocks'}->{$filename} && $self->{'file_blocks'}->{$filename} == 1){
-	    $self->{'num_blocked'} ++;
-	    return 0; # blocked
-	}
-    } elsif ($self->{'block_exp'} ne "" && $filename =~ /$self->{'block_exp'}/) {
-	$self->{'num_blocked'} ++;
-	return 0; # blocked
-    }
-    
-    if ($filename !~ /$self->{'process_exp'}/ || !-f $filename) {
-	return undef;
-    }
+    
+    #check process and block exps, smart block, etc
+    my ($block_status,$filename) = $self->read_block(@_);    
+    return $block_status if ((!defined $block_status) || ($block_status==0));
     
     print $outhandle "PagedImgPlug processing \"$filename\"\n"
@@ -731,5 +712,7 @@
 	# assign pagenum as  what??
 	my $pagenum = $_{'pagenum'}; #TODO!!
-	$doc_obj->set_utf8_metadata_element($self->{'current_section'}, 'PageNum', $pagenum);
+	if (defined $pagenum) {
+	    $doc_obj->set_utf8_metadata_element($self->{'current_section'}, 'PageNum', $pagenum);
+	}
 	my ($imgfile) = $_{'imgfile'};
 	if (defined $imgfile) {
@@ -832,4 +815,6 @@
     $doc_obj->set_OIDtype ($processor->{'OIDtype'});
     my $topsection = $doc_obj->get_top_section();
+    $doc_obj->add_utf8_metadata($topsection, "Plugin", "$self->{'plugin_type'}");
+    $doc_obj->add_metadata($topsection, "FileFormat", "PagedImg");
 
     if ($self->{'documenttype'} eq 'paged') {
@@ -849,4 +834,5 @@
 	next unless $line =~ /\w/;
 	chomp $line;
+	next if $line =~ /^#/; # ignore comment lines
 	if ($line =~ /^<([^>]*)>\s*(.*?)\s*$/) {
 	    $doc_obj->set_utf8_metadata_element ($topsection, $1, $2);
Index: /trunk/gsdl/perllib/plugins/RealMediaPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/RealMediaPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/RealMediaPlug.pm	(revision 11090)
@@ -86,10 +86,7 @@
     my $outhandle = $self->{'outhandle'};
 
-    # filename is the full pathname of the file
-    my $filename = &util::filename_cat($base_dir, $file);
-    return 0 if $self->{block_exp} ne "" && $filename =~ /$self->{'block_exp'}/;
-    if ($filename !~ /$self->{'process_exp'}/ || !-f $filename) {
-	return undef;
-    }
+    #check process and block exps, smart block, etc
+    my ($block_status,$filename) = $self->read_block(@_);    
+    return $block_status if ((!defined $block_status) || ($block_status==0));
 
     # Report that we're processing the file
Index: /trunk/gsdl/perllib/plugins/RogPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/RogPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/RogPlug.pm	(revision 11090)
@@ -64,10 +64,4 @@
 
     return bless $self, $class;
-}
-
-sub is_recursive {
-    my $self = shift (@_);
-
-    return 0; # this is not a recursive plugin
 }
 
Index: /trunk/gsdl/perllib/plugins/SplitPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/SplitPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/SplitPlug.pm	(revision 11090)
@@ -93,5 +93,5 @@
 	$self->{'process_exp'} = $self->get_default_process_exp ();
 	if ($self->{'process_exp'} eq "") {
-	    warn ref($self) . " Warning: Non-recursive plugin has no process_exp\n";
+	    warn ref($self) . " Warning: plugin has no process_exp\n";
 	}
     }
@@ -185,11 +185,8 @@
     my $verbosity = $self->{'verbosity'};
 
-    # Figure out the exact filename of this file (and maybe block it)
-    my $filename = &util::filename_cat($base_dir, $file);
-    my $block_exp = $self->{'block_exp'};
-    return 0 if $self->{'block_exp'} ne "" && $filename =~ /$self->{'block_exp'}/;
-    if ($filename !~ /$self->{'process_exp'}/ || !-f $filename) {
-	return undef;
-    }
+    #check process and block exps, smart block, etc
+    my ($block_status,$filename) = $self->read_block(@_);    
+    return $block_status if ((!defined $block_status) || ($block_status==0));
+
     $file =~ s/^[\/\\]+//; # $file often begins with / so we'll tidy it up
 
@@ -228,5 +225,5 @@
 	$doc_obj->add_utf8_metadata($doc_obj->get_top_section(), "SourceSegment", "$segment");
 	if ($self->{'cover_image'}) {
-	  $self->associate_cover_image($doc_obj, $filename);
+	    $self->associate_cover_image($doc_obj, $filename);
 	}
 	$doc_obj->add_utf8_metadata($doc_obj->get_top_section(), "Plugin", "$self->{'plugin_type'}");
Index: /trunk/gsdl/perllib/plugins/UnknownPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/UnknownPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/UnknownPlug.pm	(revision 11090)
@@ -179,9 +179,7 @@
 
     # Make sure we're processing the correct file
-    my $filename = &util::filename_cat($base_dir, $file);
-    return 0 if $self->{'block_exp'} ne "" && $filename =~ /$self->{'block_exp'}/;
-    if ($filename !~ /$self->{'process_exp'}/ || !-f $filename) {
-	return undef;
-    }
+    my ($block_status,$filename) = $self->read_block(@_);    
+    return $block_status if ((!defined $block_status) || ($block_status==0));
+
     print STDERR "<Processing n='$file' p='UnknownPlug'>\n" if ($gli);
     print $outhandle "UnknownPlug processing \"$filename\"\n"
Index: /trunk/gsdl/perllib/plugins/W3ImgPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/W3ImgPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/W3ImgPlug.pm	(revision 11090)
@@ -250,8 +250,8 @@
 # image extraction done through read()
 sub process {
-    my ($self, $textref, $pluginfo, $base_dir, $file, $metadata, $doc_obj) = @_;
+    my ($self, $textref, $pluginfo, $base_dir, $file, $metadata, $doc_obj, $gli) = @_;
     $self->{'imglist'} = ();
     if ( $self->{'index_pages'} ) {
-	my $ok = $self->SUPER::process($textref, $pluginfo, $base_dir, $file, $metadata, $doc_obj);
+	my $ok = $self->SUPER::process($textref, $pluginfo, $base_dir, $file, $metadata, $doc_obj, $gli);
 	if ( ! $ok ) { return $ok }
 	$self->{'htdoc_obj'} = $doc_obj;
Index: /trunk/gsdl/perllib/plugins/XMLPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/XMLPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/XMLPlug.pm	(revision 11090)
@@ -69,4 +69,9 @@
     $self = (defined $hashArgOptLists)? new BasPlug($pluginlist,$inputargs,$hashArgOptLists): new BasPlug($pluginlist,$inputargs);
 
+    if ($self->{'info_only'}) {
+	# don't worry about any options etc
+	return bless $self, $class;
+    }
+
     my $parser = new XML::Parser('Style' => 'Stream',
 				 'Handlers' => {'Char' => \&Char,
@@ -153,14 +158,7 @@
     my ($pluginfo, $base_dir, $file, $metadata, $processor, $maxdocs, $total_count, $gli) = @_;
 
-    my $filename = $file;
-    $filename = &util::filename_cat ($base_dir, $file) if $base_dir =~ /\w/;
-
-    if ($self->{'block_exp'} ne "" && $filename =~ /$self->{'block_exp'}/) {
-	$self->{'num_blocked'} ++;
-	return 0;
-    }
-    if ($filename !~ /$self->{'process_exp'}/ || !-f $filename) {
-	return undef;
-    }
+    # Make sure we're processing the correct file, do blocking etc
+    my ($block_status,$filename) = $self->read_block(@_);    
+    return $block_status if ((!defined $block_status) || ($block_status==0));
 
     $file =~ s/^[\/\\]+//; # $file often begins with / so we'll tidy it up
Index: /trunk/gsdl/perllib/plugins/ZIPPlug.pm
===================================================================
--- /trunk/gsdl/perllib/plugins/ZIPPlug.pm	(revision 11089)
+++ /trunk/gsdl/perllib/plugins/ZIPPlug.pm	(revision 11090)
@@ -82,13 +82,4 @@
     my $self = (defined $hashArgOptLists)? new BasPlug($pluginlist,$inputargs,$hashArgOptLists): new BasPlug($pluginlist,$inputargs);
 
-    # BasPlug is explicitly set not to set process_exp if recursive plugin
-    # Not sure of this reasoning.  Want it to be set in ZIPPlug, so explicitly
-    # pass it in as default value
-    
-    ## do we need this???? --kjdon
-    if (!$self->{'process_exp'}) {
-	$self->{'process_exp'} = get_default_process_exp();
-    }
-
     return bless $self, $class;
 }
@@ -113,49 +104,41 @@
     my $outhandle = $self->{'outhandle'};
 
-    if ($file =~ /$self->{'process_exp'}/) {
-
-	my $filename = $file;
-	$filename = &util::filename_cat ($base_dir, $file) if $base_dir =~ /\w/;
-	if (!-e $filename) {
-	    print $outhandle "ZIPPLug: WARNING: $filename does not exist\n";
-	    return undef;
-	}
+    # check process_exp, block_exp, associate_ext etc
+    my ($block_status,$filename) = $self->read_block(@_);    
+    return $block_status if ((!defined $block_status) || ($block_status==0));
 	
-	my ($file_only) = $file =~ /([^\\\/]*)$/;
-	my $tmpdir = &util::get_tmp_filename ();
-	&util::mk_all_dir ($tmpdir);
-
-	print $outhandle "ZIPPlug: extracting $file_only to $tmpdir\n"
-	    if $self->{'verbosity'} > 1;
-
-	# save current working directory
-	my $cwd = cwd();
-	chdir ($tmpdir) || die "Unable to change to $tmpdir";
-	&util::cp ($filename, $tmpdir);
-	
-	if ($file =~ /\.bz$/i) {
-	    $self->bunzip ($file_only);
-	} elsif ($file =~ /\.bz2$/i) {
-	    $self->bunzip2 ($file_only);
-	} elsif ($file =~ /\.(zip|jar)$/i) {
-	    $self->unzip ($file_only);
-	} elsif ($file =~ /\.tar$/i) {
-	    $self->untar ($file_only);
-	} else {
-	    $self->gunzip ($file_only);
-	}
-
-	chdir ($cwd) || die "Unable to change back to $cwd";
-
-	my $numdocs = &plugin::read ($pluginfo, "", $tmpdir, $metadata, $processor, $maxdocs, $total_count, $gli);
-	&util::rm_r ($tmpdir);
-
-	$self->{'num_archives'} ++;
-
-	return $numdocs;
-
+    my ($file_only) = $file =~ /([^\\\/]*)$/;
+    my $tmpdir = &util::get_tmp_filename ();
+    &util::mk_all_dir ($tmpdir);
+    
+    print $outhandle "ZIPPlug: extracting $file_only to $tmpdir\n"
+	if $self->{'verbosity'} > 1;
+    
+    # save current working directory
+    my $cwd = cwd();
+    chdir ($tmpdir) || die "Unable to change to $tmpdir";
+    &util::cp ($filename, $tmpdir);
+    
+    if ($file =~ /\.bz$/i) {
+	$self->bunzip ($file_only);
+    } elsif ($file =~ /\.bz2$/i) {
+	$self->bunzip2 ($file_only);
+    } elsif ($file =~ /\.(zip|jar)$/i) {
+	$self->unzip ($file_only);
+    } elsif ($file =~ /\.tar$/i) {
+	$self->untar ($file_only);
     } else {
-	return undef;
+	$self->gunzip ($file_only);
     }
+    
+    chdir ($cwd) || die "Unable to change back to $cwd";
+    
+    my $numdocs = &plugin::read ($pluginfo, "", $tmpdir, $metadata, $processor, $maxdocs, $total_count, $gli);
+    &util::rm_r ($tmpdir);
+    
+    $self->{'num_archives'} ++;
+    
+    return $numdocs;
+    
 }
 
