summaryrefslogtreecommitdiff
path: root/gdb/features/feature_to_c.sh
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/features/feature_to_c.sh')
-rw-r--r--gdb/features/feature_to_c.sh78
1 files changed, 48 insertions, 30 deletions
diff --git a/gdb/features/feature_to_c.sh b/gdb/features/feature_to_c.sh
index 0617b05dd50..764297725ee 100644
--- a/gdb/features/feature_to_c.sh
+++ b/gdb/features/feature_to_c.sh
@@ -1,37 +1,55 @@
#!/bin/sh
-input=$1
-output=$2
+output=$1
+shift
-if test -z "$input" || test -z "$output"; then
- echo "Usage: $0 INPUTFILE OUTPUTFILE"
+if test -z "$output" || test -z "$1"; then
+ echo "Usage: $0 OUTPUTFILE INPUTFILE..."
exit 1
fi
-arrayname=xml_feature_`echo $input | sed 's,.*/,,; s/[-.]/_/g'`
+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(line); 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
+ 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(line); 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