mirror of
https://github.com/mpv-player/mpv
synced 2024-12-27 01:22:30 +00:00
fae7307931
file2string.pl and vdpau_functions.pl are direct ports. matroska.py was reimplemented as the Parse::Matroska module in CPAN, and matroska.pl was made a client of Parse::Matroska. A copy of Parse::Matroska is included in TOOLS/lib, and matroska.pl looks there first when trying to load the module. osxbundle.py was not ported since I have no means to verify it. Python is always available on OSX though, so there is no harm in removing the check for it on configure.
25 lines
755 B
Perl
Executable File
25 lines
755 B
Perl
Executable File
#! /usr/bin/env perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
# Convert the contents of a file into a C string constant.
|
|
# Note that the compiler will implicitly add an extra 0 byte at the end
|
|
# of every string, so code using the string may need to remove that to get
|
|
# the exact contents of the original file.
|
|
# FIXME: why not a char array?
|
|
|
|
# treat only alphanumeric and not-" punctuation as safe
|
|
my $unsafe_chars = qr{[^][A-Za-z0-9!#%&'()*+,./:;<=>?^_{|}~ -]};
|
|
|
|
for my $file (@ARGV) {
|
|
open my $fh, '<:raw', $file or next;
|
|
print "/* Generated from $file */\n";
|
|
while (<$fh>) {
|
|
# replace unsafe chars with their equivalent octal escapes
|
|
s/($unsafe_chars)/\\@{[sprintf '%03o', ord($1)]}/gos;
|
|
print "\"$_\"\n"
|
|
}
|
|
close $fh;
|
|
}
|