blob: 7ca83ed1ff7feee5c734a16d34b94fa4cf122049 [file] [log] [blame]
blueswir15824d652009-03-28 06:44:27 +00001#!/bin/sh
2
3hxtoh()
4{
5 flag=1
blueswir1fb21ced2009-03-29 09:06:43 +00006 while read -r str; do
blueswir15824d652009-03-28 06:44:27 +00007 case $str in
8 HXCOMM*)
9 ;;
Jan Kiszkab40292e2010-05-31 14:43:31 -030010 STEXI*|ETEXI*|SQMP*|EQMP*) flag=$(($flag^1))
blueswir15824d652009-03-28 06:44:27 +000011 ;;
12 *)
blueswir1004efc92009-03-29 10:50:43 +000013 test $flag -eq 1 && printf "%s\n" "$str"
blueswir15824d652009-03-28 06:44:27 +000014 ;;
15 esac
16 done
17}
18
19hxtotexi()
20{
21 flag=0
Jan Kiszka6c913ba2010-05-20 09:16:33 +020022 line=1
blueswir1fb21ced2009-03-29 09:06:43 +000023 while read -r str; do
blueswir15824d652009-03-28 06:44:27 +000024 case "$str" in
25 HXCOMM*)
26 ;;
Jan Kiszka6c913ba2010-05-20 09:16:33 +020027 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
blueswir15824d652009-03-28 06:44:27 +000040 ;;
Jan Kiszkab40292e2010-05-31 14:43:31 -030041 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 ;;
blueswir15824d652009-03-28 06:44:27 +000047 DEFHEADING*)
Stefan Weil7d69c522009-07-01 23:13:34 +020048 echo "$(expr "$str" : "DEFHEADING(\(.*\))")"
blueswir15824d652009-03-28 06:44:27 +000049 ;;
50 *)
Stefan Weil7d69c522009-07-01 23:13:34 +020051 test $flag -eq 1 && echo "$str"
blueswir15824d652009-03-28 06:44:27 +000052 ;;
53 esac
Jan Kiszka6c913ba2010-05-20 09:16:33 +020054 line=$((line+1))
blueswir15824d652009-03-28 06:44:27 +000055 done
56}
57
Jan Kiszkab40292e2010-05-31 14:43:31 -030058hxtoqmp()
59{
60 IFS=
61 flag=0
Jan Kiszka02e95912010-06-02 09:06:03 +020062 line=1
Jan Kiszkab40292e2010-05-31 14:43:31 -030063 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
Jan Kiszka02e95912010-06-02 09:06:03 +020091 line=$((line+1))
Jan Kiszkab40292e2010-05-31 14:43:31 -030092 done
93}
94
blueswir15824d652009-03-28 06:44:27 +000095case "$1" in
96"-h") hxtoh ;;
97"-t") hxtotexi ;;
Jan Kiszkab40292e2010-05-31 14:43:31 -030098"-q") hxtoqmp ;;
blueswir15824d652009-03-28 06:44:27 +000099*) exit 1 ;;
100esac
blueswir15c2f8d22009-03-28 08:13:56 +0000101
102exit 0