GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — livecode/util/encode_data.pl at develop · livecode/livecode
This repository was archived by the owner on Aug 31, 2021. It is now read-only.
Expand file tree/ Copy pathencode_data.plMore file actions executable file ·48 lines (41 loc) · 1019 Bytes / Copy pathencode_data.plFile metadata and controlsexecutable file ·48 lines (41 loc) · 1019 Bytes 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 #!/usr/bin/env perl use warnings; # Incoming arguments my $sourceFile = $ARGV[0]; my $destFile = $ARGV[1]; my $varName = $ARGV[2]; # Read in the source file open INPUT, "<$sourceFile" or die "Could not open source file \"$sourceFile\": $!"; binmode INPUT; my $input = do { local( $/ ) ; <INPUT> } ; close INPUT; # Split into bytes my @bytes = unpack('C*', $input); # Convert to a list of uint8_t values appropriate for an array in C my $cArray = ""; my $index; my $length = scalar @bytes; for ($index = 0; $index < $length; $index++) { $cArray .= sprintf("0x%02x, ", $bytes[$index]); if ($index % 16 == 15) { $cArray .= "\n\t"; } } # Tidy up the output if ($index % 16 == 0) { substr($cArray, -4) = ""; } else { substr($cArray, -2) = ""; } # Write to the output file open OUTPUT, ">$destFile" or die "Could not open output file \"$destFile\": $!"; print OUTPUT "alignas(16) unsigned char ${varName}[] = \n{\n\t$cArray\n};\n"; print OUTPUT "unsigned int ${varName}_length = $length;\n"; close OUTPUT; |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |