#!/usr/bin/perl

@W3M = split(' ', 'w3m');
$ENV{'DICT'} = 'dict';
$SCRIPT = 'file:///$LIB/w3mdict2html.cgi';

sub usage {
  ($_ = $0) =~ s@.*/@@;
  print STDERR "$_ [-d database] [-s server] <command>]\n";
  print STDERR "$_ [-d database] [-s server]\n";
  exit 1;
}

$query = "";
while (@ARGV) {
  $_ = shift @ARGV;
  if (/^-d$/) {
    @ARGV || &usage();
    if (! $query) {
        $query = "?dict=" . &form_encode(shift @ARGV);
    } else {
        $query = "$query&dict=" . &form_encode(shift @ARGV);
    }
  } elsif (/^-s$/) {
    @ARGV || &usage();
    if (! $query) {
        $query = "?server=" . &form_encode(shift @ARGV);
    } else {
        $query = "$query&server=" . &form_encode(shift @ARGV);
    }
  } elsif (/^-/) {
    &usage();
  } elsif (/^\d/ || $_ eq 'n') {
    @ARGV || &usage();
    if (! query) {
        $query = "?quit=ok&word=" . &form_encode(shift @ARGV);
    } else {
        $query = "$query&word=" . &form_encode(shift @ARGV);
    }
  } else {
    if (! query) {
        $query = "?quit=ok&word=" . &form_encode($_);
    } else {
        $query = "$query&word=" . &form_encode($_);
    }
  }
}

exec @W3M, "$SCRIPT$query";

sub form_encode {
  local($_) = @_;
  s/[\000-\040\+:#?&%<>"\177-\377]/sprintf('%%%02X', unpack('C', $&))/eg;
  return $_;
}

