symbian-qemu-0.9.1-12/qemu-symbian-svp/feature_to_c.sh
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 #!/bin/sh
       
     2 
       
     3 # Convert text files to compilable C arrays.
       
     4 #
       
     5 # Copyright (C) 2007 Free Software Foundation, Inc.
       
     6 #
       
     7 # This file is part of GDB.
       
     8 #
       
     9 # This program is free software; you can redistribute it and/or modify
       
    10 # it under the terms of the GNU General Public License as published by
       
    11 # the Free Software Foundation; either version 2 of the License, or
       
    12 # (at your option) any later version.
       
    13 #
       
    14 # This program is distributed in the hope that it will be useful,
       
    15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       
    17 # GNU General Public License for more details.
       
    18 #
       
    19 # You should have received a copy of the GNU General Public License
       
    20 # along with this program; if not, write to the Free Software
       
    21 # Foundation, Inc., 51 Franklin Street, Fifth Floor,
       
    22 # Boston, MA 02110-1301, USA.
       
    23 
       
    24 output=$1
       
    25 shift
       
    26 
       
    27 if test -z "$output" || test -z "$1"; then
       
    28   echo "Usage: $0 OUTPUTFILE INPUTFILE..."
       
    29   exit 1
       
    30 fi
       
    31 
       
    32 if test -e "$output"; then
       
    33   echo "Output file \"$output\" already exists; refusing to overwrite."
       
    34   exit 1
       
    35 fi
       
    36 
       
    37 for input; do
       
    38   arrayname=xml_feature_`echo $input | sed 's,.*/,,; s/[-.]/_/g'`
       
    39 
       
    40   ${AWK:-awk} 'BEGIN { n = 0
       
    41       print "static const char '$arrayname'[] = {"
       
    42       for (i = 0; i < 255; i++)
       
    43         _ord_[sprintf("%c", i)] = i
       
    44     } {
       
    45       split($0, line, "");
       
    46       printf "  "
       
    47       for (i = 1; i <= length($0); i++) {
       
    48         c = line[i]
       
    49         if (c == "'\''") {
       
    50           printf "'\''\\'\'''\'', "
       
    51         } else if (c == "\\") {
       
    52           printf "'\''\\\\'\'', "
       
    53         } else if (_ord_[c] >= 32 && _ord_[c] < 127) {
       
    54 	  printf "'\''%s'\'', ", c
       
    55         } else {
       
    56           printf "'\''\\%03o'\'', ", _ord_[c]
       
    57         }
       
    58         if (i % 10 == 0)
       
    59           printf "\n   "
       
    60       }
       
    61       printf "'\''\\n'\'', \n"
       
    62     } END {
       
    63       print "  0 };"
       
    64     }' < $input >> $output
       
    65 done
       
    66 
       
    67 echo >> $output
       
    68 echo "extern const char *const xml_builtin[][2];" >> $output
       
    69 echo "const char *const xml_builtin[][2] = {" >> $output
       
    70 
       
    71 for input; do
       
    72   basename=`echo $input | sed 's,.*/,,'`
       
    73   arrayname=xml_feature_`echo $input | sed 's,.*/,,; s/[-.]/_/g'`
       
    74   echo "  { \"$basename\", $arrayname }," >> $output
       
    75 done
       
    76 
       
    77 echo "  { 0, 0 }" >> $output
       
    78 echo "};" >> $output