aboutsummaryrefslogtreecommitdiffstats
path: root/hxtool
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@android.com>2010-12-22 17:39:19 +0100
committerDavid 'Digit' Turner <digit@android.com>2011-01-02 22:02:41 +0100
commiteccfd661905bb0b073c4acba561da85c8ddfeb9e (patch)
treece90090e754b9611b700ed3bb9f721046c4fa315 /hxtool
parent1cea2fb59edca80938ae42c2b8c2af0aba8016b4 (diff)
downloadexternal_qemu-eccfd661905bb0b073c4acba561da85c8ddfeb9e.zip
external_qemu-eccfd661905bb0b073c4acba561da85c8ddfeb9e.tar.gz
external_qemu-eccfd661905bb0b073c4acba561da85c8ddfeb9e.tar.bz2
upstream: update hxtool
Change-Id: Ie94426766f3a59af46ddee6d3e53a56e9f8766a3
Diffstat (limited to 'hxtool')
-rwxr-xr-xhxtool62
1 files changed, 60 insertions, 2 deletions
diff --git a/hxtool b/hxtool
index 0fdbc64..7ca83ed 100755
--- a/hxtool
+++ b/hxtool
@@ -7,7 +7,7 @@ hxtoh()
case $str in
HXCOMM*)
;;
- STEXI*|ETEXI*) flag=$(($flag^1))
+ STEXI*|ETEXI*|SQMP*|EQMP*) flag=$(($flag^1))
;;
*)
test $flag -eq 1 && printf "%s\n" "$str"
@@ -19,11 +19,30 @@ hxtoh()
hxtotexi()
{
flag=0
+ line=1
while read -r str; do
case "$str" in
HXCOMM*)
;;
- STEXI*|ETEXI*) flag=$(($flag^1))
+ STEXI*)
+ if test $flag -eq 1 ; then
+ echo "line $line: syntax error: expected ETEXI, found $str" >&2
+ exit 1
+ fi
+ flag=1
+ ;;
+ ETEXI*)
+ if test $flag -ne 1 ; then
+ echo "line $line: syntax error: expected STEXI, found $str" >&2
+ exit 1
+ fi
+ flag=0
+ ;;
+ SQMP*|EQMP*)
+ if test $flag -eq 1 ; then
+ echo "line $line: syntax error: expected ETEXI, found $str" >&2
+ exit 1
+ fi
;;
DEFHEADING*)
echo "$(expr "$str" : "DEFHEADING(\(.*\))")"
@@ -32,12 +51,51 @@ hxtotexi()
test $flag -eq 1 && echo "$str"
;;
esac
+ line=$((line+1))
+ done
+}
+
+hxtoqmp()
+{
+ IFS=
+ flag=0
+ line=1
+ while read -r str; do
+ case "$str" in
+ HXCOMM*)
+ ;;
+ SQMP*)
+ if test $flag -eq 1 ; then
+ echo "line $line: syntax error: expected EQMP, found $str" >&2
+ exit 1
+ fi
+ flag=1
+ ;;
+ EQMP*)
+ if test $flag -ne 1 ; then
+ echo "line $line: syntax error: expected SQMP, found $str" >&2
+ exit 1
+ fi
+ flag=0
+ ;;
+ STEXI*|ETEXI*)
+ if test $flag -eq 1 ; then
+ echo "line $line: syntax error: expected EQMP, found $str" >&2
+ exit 1
+ fi
+ ;;
+ *)
+ test $flag -eq 1 && echo "$str"
+ ;;
+ esac
+ line=$((line+1))
done
}
case "$1" in
"-h") hxtoh ;;
"-t") hxtotexi ;;
+"-q") hxtoqmp ;;
*) exit 1 ;;
esac