| #!/bin/sh | 
 |  | 
 | # Convert text files to compilable C arrays. | 
 | # | 
 | # Copyright (C) 2007 Free Software Foundation, Inc. | 
 | # | 
 | # This file is part of GDB. | 
 | # | 
 | # This program is free software; you can redistribute it and/or modify | 
 | # it under the terms of the GNU General Public License as published by | 
 | # the Free Software Foundation; either version 2 of the License, or | 
 | # (at your option) any later version. | 
 | # | 
 | # This program is distributed in the hope that it will be useful, | 
 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 | # GNU General Public License for more details. | 
 | # | 
 | # You should have received a copy of the GNU General Public License | 
 | # along with this program; if not, see <http://www.gnu.org/licenses/>. | 
 |  | 
 | if test -z "$1"; then | 
 |   echo "Usage: $0 INPUTFILE..." | 
 |   exit 1 | 
 | fi | 
 |  | 
 | for input; do | 
 |   arrayname=xml_feature_$(echo $input | sed 's,.*/,,; s/[-.]/_/g') | 
 |  | 
 |   ${AWK:-awk} 'BEGIN { n = 0 | 
 |       printf "#include \"qemu/osdep.h\"\n" | 
 |       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 (_ord_[c] >= 32 && _ord_[c] < 127) { | 
 | 	  printf "'\''%s'\'', ", c | 
 |         } else { | 
 |           printf "'\''\\%03o'\'', ", _ord_[c] | 
 |         } | 
 |         if (i % 10 == 0) | 
 |           printf "\n   " | 
 |       } | 
 |       printf "'\''\\n'\'', \n" | 
 |     } END { | 
 |       print "  0 };" | 
 |     }' < $input | 
 | done | 
 |  | 
 | echo | 
 | echo '#include "exec/gdbstub.h"' | 
 | echo "const char *const xml_builtin[][2] = {" | 
 |  | 
 | for input; do | 
 |   basename=$(echo $input | sed 's,.*/,,') | 
 |   arrayname=xml_feature_$(echo $input | sed 's,.*/,,; s/[-.]/_/g') | 
 |   echo "  { \"$basename\", $arrayname }," | 
 | done | 
 |  | 
 | echo "  { (char *)0, (char *)0 }" | 
 | echo "};" |