Diff for /loncom/debugging_tools/excise_from_db.pl between versions 1.1 and 1.3

version 1.1, 2004/01/27 18:42:25 version 1.3, 2006/06/27 14:37:40
Line 31 Line 31
 #################################################  #################################################
 use strict;  use strict;
 use GDBM_File;  use GDBM_File;
   use lib '/home/httpd/lib/perl/';
   use LONCAPA;
   
 #  #
 # Options  # Options
 my $fname = shift;  my $fname = shift;
 my $key = shift;  my $key = shift;
   
 my %db;  if (! defined($fname) || ! defined($key)) {
 if (! tie(%db,'GDBM_File',$fname,&GDBM_WRITER,0640)) {      print "Specify db file and key on command line.".$/.
           'excise_from_db.pl roles.db "a very long key"'.$/;
       exit;
   }
   
   my $dbref =&LONCAPA::locking_hash_tie($fname,&GDBM_WRCREAT());
   if (! $dbref) {
     warn "Unable to tie to $fname";      warn "Unable to tie to $fname";
     next;      next;
 }  }
 delete($db{$key});  delete($dbref->{$key});
 delete($db{&escape($key)});  delete($dbref->{&escape($key)});
   
 untie %db;  &LONCAPA::locking_hash_untie($dbref);
   
 exit;  exit;
   
 ######################################  
 sub escape {  
     my $str=shift;  
     $str =~ s/(\W)/"%".unpack('H2',$1)/eg;  
     return $str;  
 }  
   
 sub unescape {  
     my $str=shift;  
     $str =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;  
     return $str;  
 }  

Removed from v.1.1  
changed lines
  Added in v.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>