qemu/hxtool
<<
>>
Prefs
   1#!/bin/sh
   2
   3hxtoh()
   4{
   5    flag=1
   6    while read -r str; do
   7        case $str in
   8            HXCOMM*)
   9            ;;
  10            STEXI*|ETEXI*|SQMP*|EQMP*) flag=$(($flag^1))
  11            ;;
  12            *)
  13            test $flag -eq 1 && printf "%s\n" "$str"
  14            ;;
  15        esac
  16    done
  17}
  18
  19hxtotexi()
  20{
  21    flag=0
  22    line=1
  23    while read -r str; do
  24        case "$str" in
  25            HXCOMM*)
  26            ;;
  27            STEXI*)
  28            if test $flag -eq 1 ; then
  29                echo "line $line: syntax error: expected ETEXI, found $str" >&2
  30                exit 1
  31            fi
  32            flag=1
  33            ;;
  34            ETEXI*)
  35            if test $flag -ne 1 ; then
  36                echo "line $line: syntax error: expected STEXI, found $str" >&2
  37                exit 1
  38            fi
  39            flag=0
  40            ;;
  41            SQMP*|EQMP*)
  42            if test $flag -eq 1 ; then
  43                echo "line $line: syntax error: expected ETEXI, found $str" >&2
  44                exit 1
  45            fi
  46            ;;
  47            DEFHEADING*)
  48            echo "$(expr "$str" : "DEFHEADING(\(.*\))")"
  49            ;;
  50            *)
  51            test $flag -eq 1 && echo "$str"
  52            ;;
  53        esac
  54        line=$((line+1))
  55    done
  56}
  57
  58hxtoqmp()
  59{
  60    IFS=
  61    flag=0
  62    line=1
  63    while read -r str; do
  64        case "$str" in
  65            HXCOMM*)
  66            ;;
  67            SQMP*)
  68            if test $flag -eq 1 ; then
  69                echo "line $line: syntax error: expected EQMP, found $str" >&2
  70                exit 1
  71            fi
  72            flag=1
  73            ;;
  74            EQMP*)
  75            if test $flag -ne 1 ; then
  76                echo "line $line: syntax error: expected SQMP, found $str" >&2
  77                exit 1
  78            fi
  79            flag=0
  80            ;;
  81            STEXI*|ETEXI*)
  82            if test $flag -eq 1 ; then
  83                echo "line $line: syntax error: expected EQMP, found $str" >&2
  84                exit 1
  85            fi
  86            ;;
  87            *)
  88            test $flag -eq 1 && echo "$str"
  89            ;;
  90        esac
  91        line=$((line+1))
  92    done
  93}
  94
  95case "$1" in
  96"-h") hxtoh ;;
  97"-t") hxtotexi ;;
  98"-q") hxtoqmp ;;
  99*) exit 1 ;;
 100esac
 101
 102exit 0
 103