| #!/bin/sh |
| |
| output=$1 |
| shift |
| |
| if test -z "$output" || test -z "$1"; then |
| echo "Usage: $0 OUTPUTFILE INPUTFILE..." |
| exit 1 |
| fi |
| |
| if test -e "$output"; then |
| echo "Output file \"$output\" already exists; refusing to overwrite." |
| exit 1 |
| fi |
| |
| for input in dummy "$@"; do |
| if test $input != dummy; then |
| arrayname=xml_feature_`echo $input | sed 's,.*/,,; s/[-.]/_/g'` |
| |
| gawk 'BEGIN { n = 0 |
| print "static const char '$arrayname'[] = {" |
| for (i = 0; i < 255; i++) |
| _ord_[sprintf("%c", i)] = i |
| } { |
| split($0, line, ""); |
| printf " " |
| for (i = 1; i <= length($0); i++) { |
| c = line[i] |
| if (c == "'\''") { |
| printf "'\''\\'\'''\'', " |
| } else if (c == "\\") { |
| printf "'\''\\\\'\'', " |
| } else if (match (c, "[[:print:]]") != 0) { |
| printf "'\''" c "'\'', " |
| } else { |
| printf "'\''\\%03o'\'', ", _ord_[c] |
| } |
| if (i % 10 == 0) |
| printf "\n " |
| } |
| printf "'\''\\n'\'', \n" |
| } END { |
| print " 0 };" |
| }' < $input >> $output |
| fi |
| done |
| |
| echo >> $output |
| echo "const char *const xml_builtin[][2] = {" >> $output |
| |
| for input in dummy "$@"; do |
| if test $input != dummy; then |
| basename=`echo $input | sed 's,.*/,,'` |
| arrayname=xml_feature_`echo $input | sed 's,.*/,,; s/[-.]/_/g'` |
| echo " { \"$basename\", $arrayname }," >> $output |
| fi |
| done |
| |
| echo " { 0, 0 }" >> $output |
| echo "};" >> $output |