#!/bin/sh | |
hxtoh() | |
{ | |
flag=1 | |
while read -r str; do | |
case $str in | |
HXCOMM*) | |
;; | |
STEXI*|ETEXI*) flag=$(($flag^1)) | |
;; | |
*) | |
test $flag -eq 1 && printf "%s\n" "$str" | |
;; | |
esac | |
done | |
} | |
print_texi_heading() | |
{ | |
if test "$*" != ""; then | |
title="$*" | |
printf "@subsection %s\n" "${title%:}" | |
fi | |
} | |
hxtotexi() | |
{ | |
flag=0 | |
line=1 | |
while read -r str; do | |
case "$str" in | |
HXCOMM*) | |
;; | |
STEXI*) | |
if test $flag -eq 1 ; then | |
printf "line %d: syntax error: expected ETEXI, found '%s'\n" "$line" "$str" >&2 | |
exit 1 | |
fi | |
flag=1 | |
;; | |
ETEXI*) | |
if test $flag -ne 1 ; then | |
printf "line %d: syntax error: expected STEXI, found '%s'\n" "$line" "$str" >&2 | |
exit 1 | |
fi | |
flag=0 | |
;; | |
DEFHEADING*) | |
print_texi_heading "$(expr "$str" : "DEFHEADING(\(.*\))")" | |
;; | |
ARCHHEADING*) | |
print_texi_heading "$(expr "$str" : "ARCHHEADING(\(.*\),.*)")" | |
;; | |
*) | |
test $flag -eq 1 && printf '%s\n' "$str" | |
;; | |
esac | |
line=$((line+1)) | |
done | |
} | |
case "$1" in | |
"-h") hxtoh ;; | |
"-t") hxtotexi ;; | |
*) exit 1 ;; | |
esac | |
exit 0 |