wine/libs/unicode cpmap.pl
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Nov 17 05:43:10 CST 2005
ChangeSet ID: 21315
CVSROOT: /opt/cvs-commit
Module name: wine
Changes by: julliard at winehq.org 2005/11/17 05:43:10
Modified files:
libs/unicode : cpmap.pl
Log message:
Only update modified files.
Patch: http://cvs.winehq.org/patch.py?id=21315
Old revision New revision Changes Path
1.9 1.10 +28 -6 wine/libs/unicode/cpmap.pl
Index: wine/libs/unicode/cpmap.pl
diff -u -p wine/libs/unicode/cpmap.pl:1.9 wine/libs/unicode/cpmap.pl:1.10
--- wine/libs/unicode/cpmap.pl:1.9 17 Nov 2005 11:43:10 -0000
+++ wine/libs/unicode/cpmap.pl 17 Nov 2005 11:43:10 -0000
@@ -577,7 +577,7 @@ sub DUMP_SORTKEYS
# output the range offsets
- open OUTPUT,">collation.c" or die "Cannot create collation.c";
+ open OUTPUT,">collation.c.new" or die "Cannot create collation.c";
printf "Building collation.c\n";
printf OUTPUT "/* Unicode collation element table */\n";
printf OUTPUT "/* generated from %s */\n", $SORTKEYS;
@@ -602,6 +602,7 @@ sub DUMP_SORTKEYS
}
printf OUTPUT "\n};\n";
close OUTPUT;
+ save_file("collation.c");
}
@@ -870,7 +871,7 @@ sub DUMP_LB_RANGES
# dump the case mapping tables
sub DUMP_CASE_MAPPINGS
{
- open OUTPUT,">casemap.c" or die "Cannot create casemap.c";
+ open OUTPUT,">casemap.c.new" or die "Cannot create casemap.c";
printf "Building casemap.c\n";
printf OUTPUT "/* Unicode case mappings */\n";
printf OUTPUT "/* Automatically generated; DO NOT EDIT!! */\n\n";
@@ -881,6 +882,7 @@ sub DUMP_CASE_MAPPINGS
DUMP_CASE_TABLE( "wine_digitmap", @digitmap_table );
DUMP_CASE_TABLE( "wine_compatmap", @compatmap_table );
close OUTPUT;
+ save_file("casemap.c");
}
@@ -957,7 +959,7 @@ sub DUMP_CASE_TABLE
# dump the ctype tables
sub DUMP_CTYPE_TABLES
{
- open OUTPUT,">wctype.c" or die "Cannot create wctype.c";
+ open OUTPUT,">wctype.c.new" or die "Cannot create wctype.c";
printf "Building wctype.c\n";
printf OUTPUT "/* Unicode ctype tables */\n";
printf OUTPUT "/* Automatically generated; DO NOT EDIT!! */\n\n";
@@ -994,6 +996,7 @@ sub DUMP_CTYPE_TABLES
printf OUTPUT " /* values */\n%s\n};\n", DUMP_ARRAY( "0x%04x", 0, @array[256..$#array] );
close OUTPUT;
+ save_file("wctype.c");
}
@@ -1001,7 +1004,7 @@ sub DUMP_CTYPE_TABLES
# dump the char composition tables
sub DUMP_COMPOSE_TABLES
{
- open OUTPUT,">compose.c" or die "Cannot create compose.c";
+ open OUTPUT,">compose.c.new" or die "Cannot create compose.c";
printf "Building compose.c\n";
printf OUTPUT "/* Unicode char composition */\n";
printf OUTPUT "/* Automatically generated; DO NOT EDIT!! */\n\n";
@@ -1131,6 +1134,7 @@ sub DUMP_COMPOSE_TABLES
printf OUTPUT "\n};\n";
close OUTPUT;
+ save_file("compose.c");
}
@@ -1150,7 +1154,7 @@ sub HANDLE_FILE
ADD_DEFAULT_MAPPINGS();
my $output = sprintf "c_%03d.c", $codepage;
- open OUTPUT,">$output" or die "Cannot create $output";
+ open OUTPUT,">$output.new" or die "Cannot create $output";
printf "Building %s from %s (%s)\n", $output, $filename, $comment;
@@ -1164,6 +1168,23 @@ sub HANDLE_FILE
if ($#lead_bytes == -1) { DUMP_SBCS_TABLE( $codepage, $comment ); }
else { DUMP_DBCS_TABLE( $codepage, $comment ); }
close OUTPUT;
+ save_file($output);
+}
+
+
+################################################################
+# save a file if modified
+sub save_file($)
+{
+ my $file = shift;
+ if (!system "cmp $file $file.new >/dev/null")
+ {
+ unlink "$file.new";
+ }
+ else
+ {
+ rename "$file.new", "$file";
+ }
}
@@ -1209,7 +1230,8 @@ sub REPLACE_IN_FILE
if (/\#\#\# cpmap end \#\#\#/) { push @lines, "\n", $_; last; }
}
push @lines, <FILE>;
- open(FILE,">$name") or die "Can't modify $name";
+ open(FILE,">$name.new") or die "Can't modify $name";
print FILE @lines;
close(FILE);
+ save_file($name);
}
More information about the wine-cvs
mailing list