1 line
2.0 KiB
Plaintext
Executable File
1 line
2.0 KiB
Plaintext
Executable File
perl -x "{0}" {"parameters"} ; exit
|
|
#!/usr/local/bin/perl
|
|
open(SRC,"<$ARGV[0]") || die;
|
|
open(HFIL,">$ARGV[0].hdlg") || die;
|
|
open(SFIL,">$ARGV[0].strn") || die;
|
|
open(EFIL,"<$ARGV[0].extras") || die;
|
|
$str=$ARGV[1];
|
|
$gran=90;
|
|
$elem=$gran+1;
|
|
|
|
#
|
|
# read extras
|
|
#
|
|
while (<EFIL>)
|
|
{
|
|
if (/^#/ || /^\W*$/) {next;}
|
|
chop;
|
|
($cmd,$rest) = split(/\t/,$_,2);
|
|
if ($cmd eq "DLOG")
|
|
{
|
|
($id) = split(/\t/,$rest);
|
|
$l = 0;
|
|
}
|
|
else
|
|
{
|
|
$l++;
|
|
$Extras{"d$id"."l$l"} = $_;
|
|
}
|
|
}
|
|
|
|
|
|
$id = 0;
|
|
while (<SRC>)
|
|
{
|
|
if (/^#/ || /^\W*$/) {next;}
|
|
chop;
|
|
$l++;
|
|
($cmd,$rest) = split(/\t/,$_,2);
|
|
if ($cmd eq "DLOG")
|
|
{
|
|
if ($id != 0) {print HFIL "}};\n";}
|
|
($id,$nSkip) = split(/\t/,$rest,2);
|
|
if ($nSkip eq "") {$nSkip = "0";}
|
|
print HFIL "resource 'hdlg' ($id,purgeable) { HelpMgrVersion,$nSkip,hmDefaultOptions,0,3,\n";
|
|
$notfirst = 0;
|
|
$l = 0;
|
|
}
|
|
else
|
|
{
|
|
if ($Extras{"d$id"."l$l"} ne "")
|
|
{
|
|
$_ = $Extras{"d$id"."l$l"};
|
|
($cmd,$rest) = split(/\t/,$_,2);
|
|
}
|
|
if ($cmd eq "SKIP")
|
|
{
|
|
print HFIL "HMSkipItem {},\n";
|
|
if ($notfirst == 0)
|
|
{
|
|
print HFIL "{\n";
|
|
$notfirst = 1;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
print HFIL "HMStringResItem {{5,5},{0,0,0,0},\n";
|
|
@strings = split('##',$rest);
|
|
$rep = $strings[0];
|
|
for ($i=0;$i<=$#strings;$i++)
|
|
{
|
|
if ($strings[$i] eq "")
|
|
{
|
|
print HFIL "0,0,\n";
|
|
}
|
|
else
|
|
{
|
|
if ($elem>=$gran)
|
|
{
|
|
if ($elem==$gran) {print SFIL '}};' . "\n";}
|
|
$elem = 0;
|
|
$str += 100;
|
|
printf SFIL "resource 'STR#' (%d,purgeable) {{\n",$str;
|
|
}
|
|
printf HFIL "%d,%d,\n",$str,++$elem;
|
|
$toprint = $strings[$i];
|
|
($rp,$rest) = split(' ',$toprint,2);
|
|
if ($rp eq "REPEAT") {$toprint = $rep; if ($rest ne "") {$toprint .= "\\n" . $rest;}}
|
|
print SFIL "\"$toprint\",\n";
|
|
}
|
|
}
|
|
for (;$i<4;$i++)
|
|
{
|
|
print HFIL "0,0,\n";
|
|
}
|
|
print HFIL "},\n";
|
|
if ($notfirst == 0)
|
|
{
|
|
print HFIL "{\n";
|
|
$notfirst = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($elem>0 && $elem<=$gran) {print SFIL '}};' . "\n";}
|
|
if ($id != 0) {print HFIL "}};\n";} |