Module: wine Branch: master Commit: eb7d7ef86383c8ae1986876d8247ea9abfc27096 URL: https://source.winehq.org/git/wine.git/?a=commit;h=eb7d7ef86383c8ae1986876d8...
Author: Alexandre Julliard julliard@winehq.org Date: Fri Mar 13 11:55:59 2020 +0100
unicode: Read data files from inside the zip without extracting them.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
tools/make_unicode | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/tools/make_unicode b/tools/make_unicode index 60ca333a4f..ca7842c654 100755 --- a/tools/make_unicode +++ b/tools/make_unicode @@ -436,26 +436,28 @@ sub open_data_file($$) my ($base, $name) = @_; (my $dir = "data/$name") =~ s//[^/]+$//; local *FILE; - unless (-f "data/$name") + + if ($base =~ /.*/([^/]+).zip$/) { - system "mkdir", "-p", $dir; - if ($base =~ /.*/([^/]+.zip)$/) + my $zip = $1; + unless (-f "data/$zip") { - my $zip = $1; - unless (-f "data/$zip") - { - print "Fetching $base...\n"; - !system "wget", "-q", "-O", "data/$zip", "$base" or die "cannot fetch $base"; - } - !system "unzip", "-q", "-d", "data", "data/$zip", $name or die "cannot extract $name from $zip"; + mkdir "data"; + print "Fetching $base...\n"; + !system "wget", "-q", "-O", "data/$zip", $base or die "cannot fetch $base"; } - else + open FILE, "-|", "unzip", "-p", "data/$zip", $name or die "cannot extract $name from $zip"; + } + else + { + unless (-f "data/$name") { + system "mkdir", "-p", $dir; print "Fetching $base/$name...\n"; !system "wget", "-q", "-O", "data/$name", "$base/$name" or die "cannot fetch $base/$name"; } + open FILE, "<data/$name" or die "cannot open data/$name"; } - open FILE, "<data/$name" or die "cannot open data/$name"; return *FILE; }