15d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#!/bin/sh 25d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 35d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerhxtoh() 45d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ 55d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner flag=1 65d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner while read -r str; do 75d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner case $str in 85d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner HXCOMM*) 95d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner ;; 10eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner STEXI*|ETEXI*|SQMP*|EQMP*) flag=$(($flag^1)) 115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner ;; 125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *) 135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner test $flag -eq 1 && printf "%s\n" "$str" 145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner ;; 155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner esac 165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner done 175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner} 185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerhxtotexi() 205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ 215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner flag=0 22eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner line=1 235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner while read -r str; do 245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner case "$str" in 255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner HXCOMM*) 265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner ;; 27eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner STEXI*) 28eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner if test $flag -eq 1 ; then 29eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner echo "line $line: syntax error: expected ETEXI, found $str" >&2 30eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner exit 1 31eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner fi 32eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner flag=1 33eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner ;; 34eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner ETEXI*) 35eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner if test $flag -ne 1 ; then 36eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner echo "line $line: syntax error: expected STEXI, found $str" >&2 37eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner exit 1 38eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner fi 39eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner flag=0 40eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner ;; 41eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner SQMP*|EQMP*) 42eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner if test $flag -eq 1 ; then 43eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner echo "line $line: syntax error: expected ETEXI, found $str" >&2 44eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner exit 1 45eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner fi 465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner ;; 475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner DEFHEADING*) 482910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner echo "$(expr "$str" : "DEFHEADING(\(.*\))")" 495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner ;; 505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *) 512910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner test $flag -eq 1 && echo "$str" 525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner ;; 535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner esac 54eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner line=$((line+1)) 55eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner done 56eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner} 57eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner 58eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turnerhxtoqmp() 59eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner{ 60eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner IFS= 61eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner flag=0 62eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner line=1 63eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner while read -r str; do 64eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner case "$str" in 65eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner HXCOMM*) 66eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner ;; 67eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner SQMP*) 68eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner if test $flag -eq 1 ; then 69eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner echo "line $line: syntax error: expected EQMP, found $str" >&2 70eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner exit 1 71eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner fi 72eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner flag=1 73eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner ;; 74eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner EQMP*) 75eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner if test $flag -ne 1 ; then 76eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner echo "line $line: syntax error: expected SQMP, found $str" >&2 77eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner exit 1 78eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner fi 79eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner flag=0 80eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner ;; 81eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner STEXI*|ETEXI*) 82eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner if test $flag -eq 1 ; then 83eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner echo "line $line: syntax error: expected EQMP, found $str" >&2 84eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner exit 1 85eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner fi 86eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner ;; 87eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner *) 88eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner test $flag -eq 1 && echo "$str" 89eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner ;; 90eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner esac 91eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner line=$((line+1)) 925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner done 935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner} 945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnercase "$1" in 965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner"-h") hxtoh ;; 975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner"-t") hxtotexi ;; 98eccfd661905bb0b073c4acba561da85c8ddfeb9eDavid 'Digit' Turner"-q") hxtoqmp ;; 995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner*) exit 1 ;; 1005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turneresac 1015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerexit 0 103