|
|
1.1 root 1: #!/bin/sh
2:
3: hxtoh()
4: {
5: flag=1
6: while read -r str; do
7: case $str in
8: HXCOMM*)
9: ;;
1.1.1.2 ! root 10: STEXI*|ETEXI*|SQMP*|EQMP*) flag=$(($flag^1))
1.1 root 11: ;;
12: *)
13: test $flag -eq 1 && printf "%s\n" "$str"
14: ;;
15: esac
16: done
17: }
18:
19: hxtotexi()
20: {
21: flag=0
1.1.1.2 ! root 22: line=1
1.1 root 23: while read -r str; do
24: case "$str" in
25: HXCOMM*)
26: ;;
1.1.1.2 ! root 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
1.1 root 46: ;;
47: DEFHEADING*)
48: echo "$(expr "$str" : "DEFHEADING(\(.*\))")"
49: ;;
50: *)
51: test $flag -eq 1 && echo "$str"
52: ;;
53: esac
1.1.1.2 ! root 54: line=$((line+1))
! 55: done
! 56: }
! 57:
! 58: hxtoqmp()
! 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))
1.1 root 92: done
93: }
94:
95: case "$1" in
96: "-h") hxtoh ;;
97: "-t") hxtotexi ;;
1.1.1.2 ! root 98: "-q") hxtoqmp ;;
1.1 root 99: *) exit 1 ;;
100: esac
101:
102: exit 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.