eudora-mac/Bits/ProcessStrings

1 line
1.7 KiB
Plaintext
Executable File

Perl -x "{0}" {"parameters"} ; exit
#!/usr/local/bin/perl
open(DEFS,">:include:$ARGV[0].h") || die;
open(RFIL,">$ARGV[0].strn") || die;
open(DOC,">$ARGV[0]H.strn") || die;
open(ACAP,">$ARGV[0].acap") || die;
open(XSET,">$ARGV[0].xset") || die;
$str=5400;
$gran=20;
$elem=$gran+1;
print DEFS "#ifndef STRINGDEFS_H\n#define STRINGDEFS_H\n\n";
#print DOC "Type 'STH#' as 'STR#' ;\n";
while (<>)
{
if (/^#/)
{
if ($elem && $elem<=$gran)
{
print RFIL '}};' . "\n";
print DOC '}};' . "\n";
}
$elem=$gran+1;
print RFIL;
print DOC;
print DEFS;
}
elsif (/^=/)
{
if ($elem && $elem<=$gran)
{
print RFIL '}};' . "\n";
print DOC '}};' . "\n";
}
chop;
split;
$str = $_[1]-200;
if ($str>32000) {$gran = 99;}
$elem = $gran+1;
}
else
{
if ($elem>=$gran)
{
if ($elem && $elem<=$gran)
{
print RFIL '}};' . "\n";
print DOC '}};' . "\n";
}
$elem = 0;
$str += 200;
printf RFIL "resource 'STR#' (%d,purgeable) {{\n",$str;
printf DOC "resource 'STH#' (%d,purgeable) {{\n",$str;
}
chop;
split(/\t/);
($name,$acap,$func) = split('Ľ',$_[0]);
printf DEFS "#define %s\t%d\t/*%s*/\t//%s\n",$name,$str + ++$elem,$_[1],$_[2];
($help,$geek) = split('ŠŠ',$_[2]);
print RFIL ' "' . $_[1] . '",' . "\n";
print DOC '/*' . ($str+$elem) . '*/ "' . $help . '",' . "\n";
if ($_[2] ne "" && !($_[2] =~ /don.t touch/i)) {print XSET '<x-eudora-setting:' . ($str+$elem) . "> $_[2]\n";}
if ($acap ne "") {print ACAP ($str+$elem) . "\t$acap\t$func\n";}
if ($geek ne "") {$geekList .= "resource 'GSTR' (" . ($str+$elem). ",purgeable) {\"$geek\"};\n";}
}
}
if ($elem && $elem<=$gran)
{
print RFIL '}};' . "\n";
print DOC '}};' . "\n";
}
if ($geekList ne "") {print DOC $geekList;}
print DEFS "\n\n#endif\n";