#!/usr/local/bin/perl

# update.pl - change qz version 1 files to qz version 2 files

# Copyright (C) 1996 by John J. Chew, III <jjchew@math.utoronto.ca>
# All rights reserved.

$gkVersion = '1.0.0a1';
sub Usage { 
  die "Usage: $0 [-v] file...\n".
  "  -v  display version number\n";
  }

require 'getopts.pl';

$opt_v = 0;
&Getopts('v') || &Usage;
if ($opt_v) { print "$gkVersion\n"; exit 0; }
$#ARGV >= 0 || &Usage;

$_ = $ENV{'PATH'};
if (/^\//) { $gEnvironment = 'unix'; $gDBMSuffix = '.dir'; }
elsif (/^[A-Z]:\\/) { $gEnvironment = 'dos'; $gDBMSuffix = '.db'; }
else { die "Unknown environment, please contact jjchew\@math.utoronto.ca\n"; }

$flags = 'CO';
for $file (@ARGV) {
  $file =~ s/\.(db|dir|pag)$//;
  dbmopen(DB, $file, 0600);
  $time = (stat("$file$gDBMSuffix"))[9];
  open(FILE, ">$file.qz") || die "can't create $file.qz ($!)";
  $found = 0;
  while (($key, $val) = (each %DB)) {
    ($rating, $answer) = split(/\t/, $val);
    $rating = '+100' if $rating eq 'new';
    print FILE "$key\t$answer\t$rating\t$time\t$flags\t\n";
    $found = 1;
    }
  close(FILE);
  dbmclose(DB);
  unless ($found) {
    unlink "$file.qz";
    die "$file is empty.\n";
    }
  }
