X-Git-Url: http://git.ieval.ro/?p=xfishtank.git;a=blobdiff_plain;f=src%2Fgen_ui_xml.sh;fp=src%2Fgen_ui_xml.sh;h=a570d79b90bfd35fe462faa1c9b9cd153fb0f574;hp=0000000000000000000000000000000000000000;hb=4c1bd65b5f48075ff80be1e401beb5ff21b4b89e;hpb=4deccbc95c1e3e86669d84c2f6922ee6a5f5180a diff --git a/src/gen_ui_xml.sh b/src/gen_ui_xml.sh new file mode 100755 index 0000000..a570d79 --- /dev/null +++ b/src/gen_ui_xml.sh @@ -0,0 +1,45 @@ +#!/bin/sh +# -copyright- +#-# Copyright © 2021 Eric Bina, Dave Black, TJ Phan, +#-# Vincent Renardias, Willem Vermin +#-# +#-# Permission is hereby granted, free of charge, to any person +#-# obtaining a copy of this software and associated documentation +#-# files (the “Software”), to deal in the Software without +#-# restriction, including without limitation the rights to use, +#-# copy, modify, merge, publish, distribute, sublicense, and/or +#-# sell copies of the Software, and to permit persons to whom +#-# the Software is furnished to do so, subject to the following +#-# conditions: +#-# +#-# The above copyright notice and this permission notice shall +#-# be included in all copies or substantial portions of the Software. +#-# +#-# THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, +#-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +#-# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +#-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +#-# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +#-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +#-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +#-# OTHER DEALINGS IN THE SOFTWARE. +#-# +# create C code to get ui.xml in a string +# ISO C stipulates that the length of a string constant should +# not be larger than 4096, so we create a definition as in +# char xpenguins_xml[] = {60,63,120,109,108,32,118,101,0}; +# +root="${1:-..}" +in="ui.xml" +out="ui_xml.h" +echo "/* This file is generated from '$in' by '$0' */" > "$out" +echo "/* -copyright-" >> "$out" +echo "*/" >> "$out" +echo "#pragma once" >> "$out" +echo "char xfishtank_xml[] = {" >> "$out" +sed 's/^ *//' "$root/src/$in" | awk -v FS="" \ + 'BEGIN{for(n=0;n<256;n++)ord[sprintf("%c",n)]=n;} + {for (i=1;i<=NF;i++) printf "%d,", ord[$i]; + printf "%d,\n",ord["\n"];}' >> "$out" +echo "0};">> "$out" +if [ -x "$root/addcopyright.sh" ] ; then "$root/addcopyright.sh" "$out" ; fi