blob: 7ca83ed1ff7feee5c734a16d34b94fa4cf122049 [file] [log] [blame]
David 'Digit' Turner5d8f37a2009-09-14 14:32:27 -07001#!/bin/sh
2
3hxtoh()
4{
5 flag=1
6 while read -r str; do
7 case $str in
8 HXCOMM*)
9 ;;
David 'Digit' Turnereccfd662010-12-22 17:39:19 +010010 STEXI*|ETEXI*|SQMP*|EQMP*) flag=$(($flag^1))
David 'Digit' Turner5d8f37a2009-09-14 14:32:27 -070011 ;;
12 *)
13 test $flag -eq 1 && printf "%s\n" "$str"
14 ;;
15 esac
16 done
17}
18
19hxtotexi()
20{
21 flag=0
David 'Digit' Turnereccfd662010-12-22 17:39:19 +010022 line=1
David 'Digit' Turner5d8f37a2009-09-14 14:32:27 -070023 while read -r str; do
24 case "$str" in
25 HXCOMM*)
26 ;;
David 'Digit' Turnereccfd662010-12-22 17:39:19 +010027 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
David 'Digit' Turner5d8f37a2009-09-14 14:32:27 -070046 ;;
47 DEFHEADING*)
David 'Digit' Turner2910f182010-05-10 18:48:35 -070048 echo "$(expr "$str" : "DEFHEADING(\(.*\))")"
David 'Digit' Turner5d8f37a2009-09-14 14:32:27 -070049 ;;
50 *)
David 'Digit' Turner2910f182010-05-10 18:48:35 -070051 test $flag -eq 1 && echo "$str"
David 'Digit' Turner5d8f37a2009-09-14 14:32:27 -070052 ;;
53 esac
David 'Digit' Turnereccfd662010-12-22 17:39:19 +010054 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))
David 'Digit' Turner5d8f37a2009-09-14 14:32:27 -070092 done
93}
94
95case "$1" in
96"-h") hxtoh ;;
97"-t") hxtotexi ;;
David 'Digit' Turnereccfd662010-12-22 17:39:19 +010098"-q") hxtoqmp ;;
David 'Digit' Turner5d8f37a2009-09-14 14:32:27 -070099*) exit 1 ;;
100esac
101
102exit 0