#!/usr/bin/perl # # This perl script fixes up a chatdb corrupted in pennmush 1.7.7p21 # (the corruption bug went away in p23) # # Usage: # # Uncompress chatdb if necessary # cp chatdb chatdb.bak # perl chatdb-fixer < chatdb.bak > chatdb # Compress chatdb if necessary # restart # # No warranty expressed or implied. Make backups. # Written by Javelin, 13 October 2003 # my $count = <>; print $count; chomp $count; warn "$count channels here...\n"; my @file; @file = <>; while ($count--) { my $name = shift @file; print $name; warn "Channel named $name"; while ($_ = shift @file) { print; last if /^key/; } while ($_ = shift @file) { last unless /^key/; print; } chomp; my $users = $_; my @users; while ($file[0] =~ /^\d/) { push(@users, shift @file); push(@users, shift @file); push(@users, shift @file); } $real = scalar(@users) / 3; warn "Supposedly $users, actually $real users\n" unless $real == $users; print "$real\n"; print @users; } print @file;