From 9f3bc40f7f0c5a9b809bd8870c5d63c98cc45777 Mon Sep 17 00:00:00 2001 From: Dan Fandrich Date: Thu, 9 Mar 2017 22:15:54 +0100 Subject: mkhelp: simplified the gzip code This eliminates the need for an external gzip program, which wasn't working with Busybox's gzip, anyway. It now compresses using perl's IO::Compress::Gzip --- src/mkhelp.pl | 59 ++++++++++++++++------------------------------------------- 1 file changed, 16 insertions(+), 43 deletions(-) (limited to 'src') diff --git a/src/mkhelp.pl b/src/mkhelp.pl index 74a4b82e2..8b7f72157 100644 --- a/src/mkhelp.pl +++ b/src/mkhelp.pl @@ -102,39 +102,6 @@ while() { } close(READ); -# if compressed -if($c) { - my @test = `gzip --version 2>&1`; - if($test[0] =~ /gzip/) { - open(GZIP, ">dumpit") || - die "can't create the dumpit file, try without -c"; - binmode GZIP; - for(@out) { - print GZIP $_; - $gzip += length($_); - } - close(GZIP); - - system("gzip --best --no-name dumpit"); - - open(GZIP, ") { - push @gzip, $_; - $gzipped += length($_); - } - close(GZIP); - - unlink("dumpit.gz"); - } - else { - # no gzip, no compression! - undef $c; - print STDERR "MEEEP: Couldn't find gzip, disable compression\n"; - } -} - $now = localtime; print < 9, TextFlag => 1) or die "gzip failed:"; + $gzip = length($content); + $gzipped = length($gzippedContent); + print < #include "memdebug.h" /* keep this as LAST include */ static const unsigned char hugehelpgz[] = { /* This mumbo-jumbo is the huge help text compressed with gzip. - Thanks to this operation, the size of this data shrunk from $gzip + Thanks to this operation, the size of this data shrank from $gzip to $gzipped bytes. You can disable the use of compressed help texts by NOT passing -c to the mkhelp.pl tool. */ HEAD ; + my $c=0; print " "; - for(@gzip) { - my @all=split(//, $_); - for(@all) { - my $num=ord($_); - printf(" 0x%02x,", 0+$num); - if(++$c>11) { - print "\n "; - $c=0; - } + for(split(//, $gzippedContent)) { + my $num=ord($_); + printf(" 0x%02x,", 0+$num); + if(!(++$c % 12)) { + print "\n "; } } print "\n};\n"; -- cgit v1.2.3