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