my $AlwaysWrite = 0;
my $UseDir = "";
my $FileList = "$0.lst";
+my $MakeList = 0;
while (@ARGV)
{
$FileList = "";
} elsif ($arg eq '-maketest') {
$MakeTestScript = 1;
+ } elsif ($arg eq '-makelist') {
+ $MakeList = 1;
} elsif ($arg eq '-C' && defined ($UseDir = shift)) {
-d $UseDir or die "Unknown directory '$UseDir'";
} elsif ($arg eq '-L' && defined ($FileList = shift)) {
-e $FileList or die "Filelist '$FileList' doesn't appear to exist!";
} else {
- die "usage: $0 [-v|-q|-C dir|-L filelist] [-maketest]\n";
+ die "usage: $0 [-v|-q|-w|-C dir|-L filelist] [-maketest] [-makelist]\n",
+ " -v : Verbose Mode\n",
+ " -q : Quiet Mode\n",
+ " -w : Write files regardless\n",
+ " -maketest : Make test script\n",
+ " -makelist : Rewrite the file list based on current setup\n",
+ " -L filelist : Use this file list, (defaults to $0)\n",
+ " -C dir : Change to this directory before proceding\n";
}
}
close $fh;
die "No input or output files in '$FileList'!"
if !@input or !@output;
+ if ( $MakeList ) {
+ foreach my $file (@output) {
+ unlink $file;
+ }
+ }
if ( $Verbose ) {
print "Expecting ".scalar( @input )." input files. ",
"Checking ".scalar( @output )." output files.\n";
SpecialCasing_txt();
CaseFolding_txt();
+if ( $FileList and $MakeList ) {
+
+ print "Updating '$FileList'\n"
+ if ($Verbose);
+
+ open my $ofh,">",$FileList
+ or die "Can't write to '$FileList':$!";
+ print $ofh <<"EOFHEADER";
+#
+# mktables.lst -- File list for mktables.
+#
+# Autogenerated on @{[scalar localtime]}
+#
+# - First section is input files
+# (mktables itself is automatically included)
+# - Section seperator is /^=+\$/
+# - Second section is a list of output files.
+# - Lines matching /^\\s*#/ are treated as comments
+# which along with blank lines are ignored.
+#
+
+# Input files:
+
+EOFHEADER
+ my @input=("version",glob('*.txt'));
+ print $ofh "$_\n" for
+ @input,
+ "\n=================================\n",
+ "# Output files:\n",
+ # special files
+ "Properties";
+
+
+ require File::Find;
+ my $count=0;
+ File::Find::find({
+ no_chdir=>1,
+ wanted=>sub {
+ if (/\.pl$/) {
+ s!^\./!!;
+ print $ofh "$_\n";
+ $count++;
+ }
+ },
+ },".");
+
+ print $ofh "\n# ",scalar(@input)," input files\n",
+ "# ",scalar($count+1)," output files\n\n",
+ "# End list\n";
+ close $ofh
+ or warn "Failed to close $ofh: $!";
+
+ print "Filelist has ",scalar(@input)," input files and ",
+ scalar($count+1)," output files\n"
+ if $Verbose;
+}
+print "All done\n" if $Verbose;
exit(0);
## TRAILING CODE IS USED BY MakePropTestScript()
#
# mktables.lst -- File list for mktables.
#
+# Autogenerated on Sun Apr 24 21:25:22 2005
+#
# - First section is input files
# (mktables itself is automatically included)
# - Section seperator is /^=+$/
# Input files:
-PropertyAliases.txt
-PropValueAliases.txt
-UnicodeData.txt
-LineBreak.txt
+version
ArabicShaping.txt
+BidiMirroring.txt
+Blocks.txt
+CaseFolding.txt
+CompositionExclusions.txt
EastAsianWidth.txt
HangulSyllableType.txt
+Index.txt
Jamo.txt
-Scripts.txt
-Blocks.txt
+LineBreak.txt
+NamedSequences.txt
+NamesList.txt
+NormalizationCorrections.txt
+PropertyAliases.txt
PropList.txt
+PropValueAliases.txt
+ReadMe.txt
+Scripts.txt
SpecialCasing.txt
-CaseFolding.txt
+StandardizedVariants.txt
+UnicodeData.txt
=================================
# Output files:
+Properties
Canonical.pl
CombiningClass.pl
Decomposition.pl
Exact.pl
Name.pl
PVA.pl
-Properties
-To/Digit.pl
-To/Fold.pl
-To/Lower.pl
-To/Title.pl
-To/Upper.pl
lib/bc/AL.pl
lib/bc/AN.pl
lib/bc/B.pl
lib/ea/Na.pl
lib/ea/W.pl
lib/gc_sc/AHex.pl
-lib/gc_sc/ASCII.pl
lib/gc_sc/Alnum.pl
lib/gc_sc/Alpha.pl
lib/gc_sc/Alphabet.pl
lib/gc_sc/Any.pl
lib/gc_sc/Arab.pl
lib/gc_sc/Armn.pl
+lib/gc_sc/ASCII.pl
lib/gc_sc/AsciiHex.pl
lib/gc_sc/Assigned.pl
lib/gc_sc/Beng.pl
lib/gc_sc/Blank.pl
lib/gc_sc/Bopo.pl
lib/gc_sc/Brai.pl
+lib/gc_sc/Bugi.pl
lib/gc_sc/Buhd.pl
lib/gc_sc/C.pl
lib/gc_sc/Canadian.pl
lib/gc_sc/Cn.pl
lib/gc_sc/Cntrl.pl
lib/gc_sc/Co.pl
+lib/gc_sc/Copt.pl
lib/gc_sc/Cprt.pl
lib/gc_sc/Cs.pl
lib/gc_sc/Cyrl.pl
lib/gc_sc/Ext.pl
lib/gc_sc/Extender.pl
lib/gc_sc/Geor.pl
+lib/gc_sc/Glag.pl
lib/gc_sc/Goth.pl
-lib/gc_sc/GrLink.pl
lib/gc_sc/Graph.pl
lib/gc_sc/Grapheme.pl
lib/gc_sc/Grek.pl
+lib/gc_sc/GrLink.pl
lib/gc_sc/Gujr.pl
lib/gc_sc/Guru.pl
lib/gc_sc/Hang.pl
lib/gc_sc/Hira.pl
lib/gc_sc/Hyphen.pl
lib/gc_sc/Hyphen2.pl
-lib/gc_sc/IDSB.pl
-lib/gc_sc/IDST.pl
lib/gc_sc/IdContin.pl
-lib/gc_sc/IdStart.pl
lib/gc_sc/Ideo.pl
lib/gc_sc/Ideograp.pl
+lib/gc_sc/IDSB.pl
lib/gc_sc/IdsBinar.pl
+lib/gc_sc/IDST.pl
+lib/gc_sc/IdStart.pl
lib/gc_sc/IdsTrina.pl
lib/gc_sc/InAegean.pl
lib/gc_sc/InAlphab.pl
+lib/gc_sc/InAncie2.pl
+lib/gc_sc/InAncien.pl
lib/gc_sc/InArabi2.pl
lib/gc_sc/InArabi3.pl
+lib/gc_sc/InArabi4.pl
lib/gc_sc/InArabic.pl
lib/gc_sc/InArmeni.pl
lib/gc_sc/InArrows.pl
lib/gc_sc/InBopomo.pl
lib/gc_sc/InBoxDra.pl
lib/gc_sc/InBraill.pl
+lib/gc_sc/InBugine.pl
lib/gc_sc/InBuhid.pl
lib/gc_sc/InByzant.pl
lib/gc_sc/InCherok.pl
lib/gc_sc/InCjkCo4.pl
lib/gc_sc/InCjkCom.pl
lib/gc_sc/InCjkRad.pl
+lib/gc_sc/InCjkStr.pl
lib/gc_sc/InCjkSym.pl
lib/gc_sc/InCjkUn2.pl
lib/gc_sc/InCjkUn3.pl
lib/gc_sc/InCjkUni.pl
lib/gc_sc/InCombi2.pl
lib/gc_sc/InCombi3.pl
+lib/gc_sc/InCombi4.pl
lib/gc_sc/InCombin.pl
lib/gc_sc/InContro.pl
+lib/gc_sc/InCoptic.pl
lib/gc_sc/InCurren.pl
lib/gc_sc/InCyprio.pl
lib/gc_sc/InCyril2.pl
lib/gc_sc/InDingba.pl
lib/gc_sc/InEnclo2.pl
lib/gc_sc/InEnclos.pl
+lib/gc_sc/InEthio2.pl
+lib/gc_sc/InEthio3.pl
lib/gc_sc/InEthiop.pl
lib/gc_sc/InGenera.pl
lib/gc_sc/InGeomet.pl
+lib/gc_sc/InGeorg2.pl
lib/gc_sc/InGeorgi.pl
+lib/gc_sc/InGlagol.pl
lib/gc_sc/InGothic.pl
lib/gc_sc/InGreekA.pl
lib/gc_sc/InGreekE.pl
lib/gc_sc/InKannad.pl
lib/gc_sc/InKatak2.pl
lib/gc_sc/InKataka.pl
+lib/gc_sc/InKharos.pl
lib/gc_sc/InKhmer.pl
lib/gc_sc/InKhmerS.pl
lib/gc_sc/InLao.pl
lib/gc_sc/InMisce4.pl
lib/gc_sc/InMisce5.pl
lib/gc_sc/InMiscel.pl
+lib/gc_sc/InModifi.pl
lib/gc_sc/InMongol.pl
lib/gc_sc/InMusica.pl
lib/gc_sc/InMyanma.pl
+lib/gc_sc/InNewTai.pl
lib/gc_sc/InNumber.pl
lib/gc_sc/InOgham.pl
lib/gc_sc/InOldIta.pl
+lib/gc_sc/InOldPer.pl
lib/gc_sc/InOptica.pl
lib/gc_sc/InOriya.pl
lib/gc_sc/InOsmany.pl
+lib/gc_sc/InPhone2.pl
lib/gc_sc/InPhonet.pl
lib/gc_sc/InPrivat.pl
lib/gc_sc/InRunic.pl
lib/gc_sc/InSuppl3.pl
lib/gc_sc/InSuppl4.pl
lib/gc_sc/InSuppl5.pl
+lib/gc_sc/InSuppl6.pl
lib/gc_sc/InSupple.pl
+lib/gc_sc/InSyloti.pl
lib/gc_sc/InSyriac.pl
lib/gc_sc/InTagalo.pl
lib/gc_sc/InTagban.pl
lib/gc_sc/InThaana.pl
lib/gc_sc/InThai.pl
lib/gc_sc/InTibeta.pl
+lib/gc_sc/InTifina.pl
lib/gc_sc/InUgarit.pl
lib/gc_sc/InUnifie.pl
lib/gc_sc/InVaria2.pl
lib/gc_sc/InVariat.pl
+lib/gc_sc/InVertic.pl
+lib/gc_sc/InYijing.pl
lib/gc_sc/InYiRadi.pl
lib/gc_sc/InYiSyll.pl
-lib/gc_sc/InYijing.pl
lib/gc_sc/JoinC.pl
lib/gc_sc/JoinCont.pl
lib/gc_sc/Kana.pl
-lib/gc_sc/Katakana.pl
+lib/gc_sc/Khar.pl
lib/gc_sc/Khmr.pl
lib/gc_sc/Knda.pl
lib/gc_sc/L.pl
-lib/gc_sc/LC.pl
-lib/gc_sc/LOE.pl
lib/gc_sc/Laoo.pl
lib/gc_sc/Latn.pl
+lib/gc_sc/LC.pl
lib/gc_sc/Limb.pl
lib/gc_sc/LinearB.pl
lib/gc_sc/Ll.pl
lib/gc_sc/Lm.pl
lib/gc_sc/Lo.pl
+lib/gc_sc/LOE.pl
lib/gc_sc/LogicalO.pl
lib/gc_sc/Lower.pl
lib/gc_sc/Lowercas.pl
lib/gc_sc/N.pl
lib/gc_sc/NChar.pl
lib/gc_sc/Nd.pl
+lib/gc_sc/NewTaiLu.pl
lib/gc_sc/Nl.pl
lib/gc_sc/No.pl
lib/gc_sc/Nonchara.pl
lib/gc_sc/OAlpha.pl
lib/gc_sc/ODI.pl
+lib/gc_sc/Ogam.pl
lib/gc_sc/OGrExt.pl
+lib/gc_sc/OIDC.pl
lib/gc_sc/OIDS.pl
+lib/gc_sc/OldItali.pl
+lib/gc_sc/OldPersi.pl
lib/gc_sc/OLower.pl
lib/gc_sc/OMath.pl
-lib/gc_sc/OUpper.pl
-lib/gc_sc/Ogam.pl
-lib/gc_sc/OldItali.pl
lib/gc_sc/Orya.pl
lib/gc_sc/Osma.pl
lib/gc_sc/OtherAlp.pl
lib/gc_sc/OtherDef.pl
lib/gc_sc/OtherGra.pl
+lib/gc_sc/OtherIdC.pl
lib/gc_sc/OtherIdS.pl
lib/gc_sc/OtherLow.pl
lib/gc_sc/OtherMat.pl
lib/gc_sc/OtherUpp.pl
+lib/gc_sc/OUpper.pl
lib/gc_sc/P.pl
+lib/gc_sc/PatSyn.pl
+lib/gc_sc/PatternS.pl
+lib/gc_sc/PatternW.pl
+lib/gc_sc/PatWS.pl
lib/gc_sc/Pc.pl
lib/gc_sc/Pd.pl
lib/gc_sc/Pe.pl
lib/gc_sc/Print.pl
lib/gc_sc/Ps.pl
lib/gc_sc/Punct.pl
-lib/gc_sc/QMark.pl
lib/gc_sc/Qaai.pl
+lib/gc_sc/QMark.pl
lib/gc_sc/Quotatio.pl
lib/gc_sc/Radical.pl
lib/gc_sc/Radical2.pl
lib/gc_sc/Runr.pl
lib/gc_sc/S.pl
-lib/gc_sc/SD.pl
-lib/gc_sc/STerm.pl
lib/gc_sc/Sc.pl
+lib/gc_sc/SD.pl
lib/gc_sc/Shaw.pl
lib/gc_sc/Sinh.pl
lib/gc_sc/Sk.pl
lib/gc_sc/SoftDott.pl
lib/gc_sc/Space.pl
lib/gc_sc/SpacePer.pl
+lib/gc_sc/STerm.pl
lib/gc_sc/Sterm2.pl
+lib/gc_sc/SylotiNa.pl
lib/gc_sc/Syrc.pl
lib/gc_sc/Tagb.pl
lib/gc_sc/TaiLe.pl
lib/gc_sc/Telu.pl
lib/gc_sc/Term.pl
lib/gc_sc/Terminal.pl
+lib/gc_sc/Tfng.pl
lib/gc_sc/Tglg.pl
lib/gc_sc/Thaa.pl
lib/gc_sc/Thai.pl
lib/gc_sc/Tibt.pl
lib/gc_sc/Title.pl
-lib/gc_sc/UIdeo.pl
lib/gc_sc/Ugar.pl
+lib/gc_sc/UIdeo.pl
lib/gc_sc/UnifiedI.pl
lib/gc_sc/Upper.pl
lib/gc_sc/Uppercas.pl
-lib/gc_sc/VS.pl
lib/gc_sc/Variatio.pl
-lib/gc_sc/WSpace.pl
+lib/gc_sc/VS.pl
lib/gc_sc/WhiteSpa.pl
lib/gc_sc/Word.pl
+lib/gc_sc/WSpace.pl
lib/gc_sc/XDigit.pl
lib/gc_sc/Yiii.pl
lib/gc_sc/Z.pl
lib/lb/CR.pl
lib/lb/EX.pl
lib/lb/GL.pl
+lib/lb/H2.pl
+lib/lb/H3.pl
lib/lb/HY.pl
lib/lb/ID.pl
lib/lb/IN.pl
lib/lb/IS.pl
+lib/lb/JL.pl
+lib/lb/JT.pl
+lib/lb/JV.pl
lib/lb/LF.pl
lib/lb/NL.pl
lib/lb/NS.pl
lib/nt/De.pl
lib/nt/Di.pl
lib/nt/Nu.pl
+To/Digit.pl
+To/Fold.pl
+To/Lower.pl
+To/Title.pl
+To/Upper.pl
+
+# 22 input files
+# 458 output files
+# End list