mktables.lst and related stuff (was Re: [PATCH] Unicode 4.1.0)
authorYves Orton <demerphq@gmail.com>
Sun, 24 Apr 2005 21:35:35 +0000 (23:35 +0200)
committerNicholas Clark <nick@ccl4.org>
Mon, 25 Apr 2005 11:41:01 +0000 (11:41 +0000)
Message-ID: <9b18b31105042412352fcf2bc5@mail.gmail.com>
Date: Sun, 24 Apr 2005 21:35:35 +0200

p4raw-id: //depot/perl@24320

lib/unicore/README.perl
lib/unicore/mktables
lib/unicore/mktables.lst

index 409e105..47517fc 100644 (file)
@@ -16,6 +16,13 @@ To be 8.3-friendly, the lib/unicore/PropertyValueAliases.txt was
 renamed to be lib/unicore/PropValueAliases.txt, since otherwise
 it would have conflicted with lib/unicore/PropertyAliases.txt.
 
+NOTE: If you modify the input file set you should also run
+    mktables -makelist
+    
+which will recreate the mktables.lst file which is used to speed up
+the build process.    
+
 FOR PUMPKINS
 
 The *.pl files are generated from the *.txt files by the mktables script,
index e5480ca..2267443 100644 (file)
@@ -33,6 +33,7 @@ my $MakeTestScript = 0;
 my $AlwaysWrite    = 0;
 my $UseDir         = "";
 my $FileList       = "$0.lst";
+my $MakeList       = 0;
 
 while (@ARGV)
 {
@@ -46,12 +47,21 @@ 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";   
     }
 }
 
@@ -75,6 +85,11 @@ if ($FileList) {
     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";
@@ -2069,6 +2084,63 @@ Jamo_txt();
 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()
index 4ff43bf..c3b6dc8 100644 (file)
@@ -1,6 +1,8 @@
 #
 # 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
@@ -103,13 +109,13 @@ lib/ea/N.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
@@ -118,6 +124,7 @@ lib/gc_sc/BidiCont.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
@@ -127,6 +134,7 @@ lib/gc_sc/Cher.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
@@ -143,11 +151,12 @@ lib/gc_sc/Ethi.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
@@ -159,18 +168,21 @@ lib/gc_sc/HexDigit.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
@@ -181,6 +193,7 @@ lib/gc_sc/InBopom2.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
@@ -189,14 +202,17 @@ lib/gc_sc/InCjkCo3.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
@@ -206,10 +222,14 @@ lib/gc_sc/InDevana.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
@@ -231,6 +251,7 @@ lib/gc_sc/InKangxi.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
@@ -251,15 +272,19 @@ lib/gc_sc/InMisce3.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
@@ -273,7 +298,9 @@ lib/gc_sc/InSuppl2.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
@@ -285,29 +312,31 @@ lib/gc_sc/InTelugu.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
@@ -324,28 +353,36 @@ lib/gc_sc/Mymr.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
@@ -355,16 +392,15 @@ lib/gc_sc/Po.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
@@ -373,7 +409,9 @@ lib/gc_sc/So.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
@@ -381,21 +419,22 @@ lib/gc_sc/Taml.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
@@ -427,10 +466,15 @@ lib/lb/CM.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
@@ -449,4 +493,13 @@ lib/lb/ZW.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