From: [email protected]
Subject: perl bookmark conversion

------------------------------<cut here>------------------------------------
#!/usr/local/bin/perl
#
# bookmark-convert.perl
# v.1
#

print "1) UNIX .gopherrc  -> Mac Turbogopher\n";
print "2) Mac Turbogopher -> UNIX .gopherrc\n";
print "Operation: ";
chop($op = <STDIN>);

($op == 1) && &tomac;
($op == 2) && &tounix;

sub openfiles {
   print "Input Filename [$in]: ";
   chop($reply = <STDIN>);
   if ($reply ne "") {
       $in = $reply;
   }
   open(IN, "$in") || die "$!\n";

   print "Output Filename [$out]: ";
   chop($reply = <STDIN>);
   if ($reply ne "") {
       $out = $reply;
   }
   open(OUT, ">$out") || die "$!\n";
}

sub tomac {
   $in = ".gopherrc";
   $out = "mac.bookmarks";
   &openfiles;

   while(<IN>) {
       if (1 .. /^#$/) {
           next;
       }
       if (s/^Type.*=//i) {
           if (s/\+//) {
               $plus = "+";
           }
           chop($type = $_);
           next;
       }
       if (s/^Name.*=//i) { chop($name = $_); next; }
       if (s/^Path.*=//i) { chop($path = $_); next; }
       if (s/^Host.*=//i) { chop($host = $_); next; }
       if (s/^Port.*=//i) { chop($port = $_); next; }
       if (/^#/) {
           print OUT "${type}${name}\t${path}\t${host}\t${port}\t${plus}\n";
           $type = $name = $path = $port = $host = $plus = "";
           $lastwrite = $.
       }
   }
   if (($. - $lastwrite) >= 5) {
       # last bookmark, no ending '#'
       print OUT "${type}${name}\t${path}\t${host}\t${port}\t${plus}\n";
   }
}

sub tounix {
   $in = "mac.bookmarks";
   $out = ".gopherrc";
   &openfiles;

   while(<IN>) {
       $type = $name = $path = $port = $host = $plus = "";
       ($name, $path, $host, $port, $plus) = split('\t');
       $type = ($name =~ /^\d/); # 1 digit in length?
       ($plus =~ /\+/) && $type .= '+';
       $name =~ s/^\d//;
       print OUT "#\n";
       print OUT "Type=${type}\n";
       print OUT "Name=${name}\n";
       print OUT "Path=${path}\n";
       print OUT "Host=${host}\n";
       print OUT "Port=${port}\n";
   }
}