Alexandre Julliard : make_unicode: Cache files under their full path name to avoid conflicts.

Alexandre Julliard julliard at winehq.org
Wed Jun 19 13:41:30 CDT 2013


Module: wine
Branch: master
Commit: 2c4e5ad1a9263ca8cbf69b5b3d33699d12b9ce7f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2c4e5ad1a9263ca8cbf69b5b3d33699d12b9ce7f

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Jun 19 16:05:18 2013 +0200

make_unicode: Cache files under their full path name to avoid conflicts.

---

 tools/make_unicode |   48 +++++++++++++++++++++++++-----------------------
 1 files changed, 25 insertions(+), 23 deletions(-)

diff --git a/tools/make_unicode b/tools/make_unicode
index 9d2d8a7..59c75ab 100755
--- a/tools/make_unicode
+++ b/tools/make_unicode
@@ -24,12 +24,14 @@ use strict;
 # base URLs for www.unicode.org files
 my $MAPPINGS = "http://www.unicode.org/Public/MAPPINGS";
 my $UNIDATA = "http://www.unicode.org/Public/6.0.0/ucd";
+my $REPORTS = "http://www.unicode.org/reports";
+my $RFCS = "http://www.rfc-editor.org/rfc";
 
 # Sort keys file
-my $SORTKEYS = "http://www.unicode.org/reports/tr10/allkeys.txt";
+my $SORTKEYS = "tr10/allkeys.txt";
 
 # RFC3454 (stringprep data)
-my $STRINGPREP = "http://www.rfc-editor.org/rfc/rfc3454.txt";
+my $STRINGPREP = "rfc3454.txt";
 
 # Defaults mapping
 my $DEFAULTS = "tools/unicode-defaults";
@@ -319,16 +321,16 @@ my %joining_forms =
 
 ################################################################
 # fetch a unicode.org file and open it
-sub open_data_file($)
+sub open_data_file($$)
 {
-    my $url = shift;
-    (my $name = $url) =~ s/^.*\///;
+    my ($base, $name) = @_;
+    (my $dir = "data/$name") =~ s/\/[^\/]+$//;
     local *FILE;
     unless (-f "data/$name")
     {
-        print "Fetching $url...\n";
-        mkdir "data";
-        !system "wget", "-q", "-O", "data/$name", $url or die "cannot fetch $url";
+        print "Fetching $base/$name...\n";
+        system "mkdir", "-p", $dir;
+        !system "wget", "-q", "-O", "data/$name", "$base/$name" or die "cannot fetch $base/$name";
     }
     open FILE, "<data/$name" or die "cannot open data/$name";
     return *FILE;
@@ -370,7 +372,7 @@ sub READ_DEFAULTS($)
 
     # now build mappings from the decomposition field of the Unicode database
 
-    my $UNICODE_DATA = open_data_file "$UNIDATA/UnicodeData.txt";
+    my $UNICODE_DATA = open_data_file( $UNIDATA, "UnicodeData.txt" );
     while (<$UNICODE_DATA>)
     {
 	# Decode the fields ...
@@ -497,7 +499,7 @@ sub READ_DEFAULTS($)
 sub READ_FILE($)
 {
     my $name = shift;
-    my $INPUT = open_data_file $name;
+    my $INPUT = open_data_file( $MAPPINGS, $name );
 
     while (<$INPUT>)
     {
@@ -623,7 +625,7 @@ sub READ_JIS0208_FILE($)
     $cp2uni[0xa1c0] = 0xff3c;
     $uni2cp[0xff3c] = 0xa1c0;
 
-    my $INPUT = open_data_file $name;
+    my $INPUT = open_data_file( $MAPPINGS, $name );
     while (<$INPUT>)
     {
         next if /^\#/;  # skip comments
@@ -650,7 +652,7 @@ sub READ_SORTKEYS_FILE()
     my @sortkeys = ();
     for (my $i = 0; $i < 65536; $i++) { $sortkeys[$i] = [ -1, 0, 0, 0, 0 ] };
 
-    my $INPUT = open_data_file $SORTKEYS;
+    my $INPUT = open_data_file( $REPORTS, $SORTKEYS );
     while (<$INPUT>)
     {
         next if /^\#/;  # skip comments
@@ -757,7 +759,7 @@ sub DUMP_SORTKEYS($@)
     open OUTPUT,">$filename.new" or die "Cannot create $filename";
     printf "Building $filename\n";
     printf OUTPUT "/* Unicode collation element table */\n";
-    printf OUTPUT "/* generated from %s */\n", $SORTKEYS;
+    printf OUTPUT "/* generated from %s */\n", "$REPORTS/$SORTKEYS";
     printf OUTPUT "/* DO NOT EDIT!! */\n\n";
 
     printf OUTPUT "const unsigned int collation_table[%d] =\n{\n", $ranges*256;
@@ -1062,7 +1064,7 @@ sub dump_indic($)
     my $filename = shift;
     my @indic_table = ($indic_types{'Other'}) x 65536;;
 
-    my $INPUT = open_data_file "$UNIDATA/IndicSyllabicCategory.txt";
+    my $INPUT = open_data_file( $UNIDATA, "IndicSyllabicCategory.txt" );
     while (<$INPUT>)
     {
         next if /^\#/;  # skip comments
@@ -1095,7 +1097,7 @@ sub dump_indic($)
     }
     close $INPUT;
 
-    $INPUT = open_data_file "$UNIDATA/IndicMatraCategory.txt";
+    $INPUT = open_data_file( $UNIDATA, "IndicMatraCategory.txt" );
     while (<$INPUT>)
     {
         next if /^\#/;  # skip comments
@@ -1144,7 +1146,7 @@ sub dump_linebreak($)
     my @break_table = ($break_types{'XX'}) x 65536;;
     my $next_group = 0;
 
-    my $INPUT = open_data_file "$UNIDATA/LineBreak.txt";
+    my $INPUT = open_data_file( $UNIDATA, "LineBreak.txt" );
     while (<$INPUT>)
     {
         next if /^\#/;  # skip comments
@@ -1192,7 +1194,7 @@ sub dump_mirroring($)
     my $filename = shift;
     my @mirror_table = ();
 
-    my $INPUT = open_data_file "$UNIDATA/BidiMirroring.txt";
+    my $INPUT = open_data_file( $UNIDATA, "BidiMirroring.txt" );
     while (<$INPUT>)
     {
         next if /^\#/;  # skip comments
@@ -1229,7 +1231,7 @@ sub dump_shaping($)
 
     $groups{"No_Joining_Group"} = $next_group++;
 
-    my $INPUT = open_data_file "$UNIDATA/ArabicShaping.txt";
+    my $INPUT = open_data_file( $UNIDATA, "ArabicShaping.txt" );
     while (<$INPUT>)
     {
         next if /^\#/;  # skip comments
@@ -1572,7 +1574,7 @@ sub dump_nameprep($)
     my @mapping_table = ();
     my @flags_table = (0) x 65536;
 
-    my $INPUT = open_data_file $STRINGPREP;
+    my $INPUT = open_data_file( $RFCS, $STRINGPREP );
     while (<$INPUT>)
     {
         next unless /Start\sTable/;
@@ -1598,7 +1600,7 @@ sub dump_nameprep($)
     open OUTPUT,">$filename.new" or die "Cannot create $filename";
     print "Building $filename\n";
     print OUTPUT "/* Nameprep algorithm related data */\n";
-    print OUTPUT "/* generated from $STRINGPREP */\n";
+    print OUTPUT "/* generated from $RFCS/$STRINGPREP */\n";
     print OUTPUT "/* DO NOT EDIT!! */\n\n";
     print OUTPUT "#include \"wine/unicode.h\"\n\n";
 
@@ -1857,7 +1859,7 @@ sub handle_bestfit_file($$$)
     my ($lb_cur, $lb_end);
     my @lb_ranges = ();
 
-    my $INPUT = open_data_file "$MAPPINGS/$filename" or die "Cannot open $filename";
+    my $INPUT = open_data_file( $MAPPINGS, $filename ) or die "Cannot open $filename";
 
     while (<$INPUT>)
     {
@@ -1961,14 +1963,14 @@ sub HANDLE_FILE(@)
     @uni2cp = ();
 
     # symbol codepage file is special
-    if ($codepage == 20932) { READ_JIS0208_FILE "$MAPPINGS/$filename"; }
+    if ($codepage == 20932) { READ_JIS0208_FILE( $filename ); }
     elsif ($codepage == 20127) { fill_20127_codepage(); }
     elsif ($filename =~ /\/bestfit/)
     {
         handle_bestfit_file( $filename, $has_glyphs, $comment );
         return;
     }
-    else { READ_FILE "$MAPPINGS/$filename"; }
+    else { READ_FILE( $filename ); }
 
     ADD_DEFAULT_MAPPINGS();
 




More information about the wine-cvs mailing list