#!/bin/sh
txt2c_fallback () {
# consumes stdin
# declaration
echo "unsigned char $1[] = "
# initializer - filter out unwanted characters, then convert problematic
# or odd-looking sequences. The result is a sequence of quote-bounded
# C strings, which the compiler concatenates into a single C string.
tr -c '\011\012\015\040[!-~]' '?' |
sed \
-e 's/\\/\\\\/g' \
-e 's/"/\\"/g' \
-e 's/??/\\?\\?/g' \
-e 's/ /\\t/g' \
-e 's/
/\\r/g' \
-e 's/^/ "/g' \
-e 's/$/\\n"/g'
echo ";"
}
if ./txt2c test </dev/null >/dev/null 2>&1; then
./txt2c "$1"
else
txt2c_fallback "$1"
fi