| #!/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 |