#!/bin/sh

print_if_not_rst()
{
    test $in_rst -eq 0 && printf "%s\n" "$str"
}

hxtoh()
{
    in_rst=0
    # .name for HMP
    seen_name=0
    while read -r str; do
        case $str in
            HXCOMM*)
            ;;
            SRST*)
              if [ $in_rst -eq 1 ]
              then
                echo "Error: SRST inside another RST" >&2
                exit 1
              fi
              # consume the name
              seen_name=0
              in_rst=1
            ;;
            ERST*)
              if [ $in_rst -eq 0 ]
              then
                echo "Error: ERST already outside RST" >&2
                exit 1
              fi
              in_rst=0
            ;;
            # Note the space at the start - we need to exclude something.name
            ( .name*)
              if [ $seen_name -eq 1 ]
              then
                echo "Error: Seen another .name, maybe missing docs?" >&2
                exit 1
              fi
              seen_name=1
              print_if_not_rst
            ;;
            *)
            print_if_not_rst
            ;;
        esac
    done
}

case "$1" in
"-h") hxtoh ;;
*) exit 1 ;;
esac < "$2"

exit 0
