#
# This file is licensed under the MIT No Attribution license.
#

. /prelude.bash.tmp

main() {

  declare    d
  declare    edition
  declare    v
  declare    x

  v=$1
  readonly v

  for x in ./**/*.@(texi|texinfo|txi); do

    edition=$(
      sed -n '
        /^@set edition / {
          s/^@set edition *//
          p
          q
        }
      ' "$x"
    )

    perl -0 -i -p \
      -e 's/^\@sub(subsection \@code{\@\@syncodeindex})$/\@$1/gm;' \
      -e 's/^(\@settitle Texinfo) \@value{edition}/$1 '$edition'/gm;' \
      -e 's/^(\n\@item)x( \@key{PREVIOUS})/$1$2/gm;' \
      -e 's/^(\n\@item)x( \@\@afivepaper)$/$1$2/gm;' \
      -e 's/^(\n\@item)x( UTF-8)$/$1$2/gm;' \
      -e 's/^(\n\@item)x( ISO-8859-1\n\@itemx ISO-8859-15\n\@item)( ISO-8859-2)$/$1$2x$3/gm;' \
      -e 's/^(\n\@item)x( \@\@ifnotinfo)$/$1$2/gm;' \
      -e 's/^(This[^\n]*\n\@item)x( ISO-8859-1)$/$1$2/gm;' \
      "$x" \
    ;

    case $v in ([0-5].* | 6.[0-7])
      perl -0 -i -p \
        -e 's/^\@ifinfo/\@ifnottex/gm;' \
        -e 's/^\@end ifinfo/\@end ifnottex/gm;' \
        "$x" \
      ;
    esac

    if [[ $v == 3.12 ]]; then
      perl -0 -i -p \
        -e 's/^\* New Texinfo Mode Commands::/\@c $&/gm;' \
        -e 's/^\* New Commands::/\@c $&/gm;' \
        "$x" \
      ;
    fi

    if [[ $v == 4.1 ]]; then
      perl -0 -i -p \
        -e 's/^(\@appendix)sub(sec ADDENDUM)/$1$2/gm;' \
        "$x" \
      ;
    fi

    if [[ $v == 5.[0-2] || $v == 6.[0-8] ]]; then
      perl -0 -i -p \
        -e 's/^(\* Font substitution::[^\n]*)/$1\n* Other::/gm;' \
        "$x" \
      ;
    fi

    if [[ $v == 6.[2-6] ]]; then
      perl -0 -i -p \
        -e 's/^\@top GNU サンプル$/$&\n\@include version.texi/gm;' \
        "$x" \
      ;
    fi

  done

  for x in ./**/*.[1-9]; do

    perl -0 -i -p \
      -e 's/^\.so man1\//.so /gm;' \
      "$x" \
    ;

  done

}; readonly -f main

main "$@"
