#! /bin/sh

trap 'rm -fr $tmpfiles' 1 2 3 15

tmpfiles="mm-test3.in1 mm-test3.in2"
cat <<EOF > mm-test3.in1
#
# def.po
#
#: file:100
msgid ""
"not existing"
msgstr "but with translation"

#: file2:101
msgid "not existing without translation"
msgstr ""

#: file3:102
msgid "still existing"
msgstr "translation"

#: should-not-be-here:10
#~ msgid "former obsolete"
#~ msgstr ""
#~ "but again useful"

#~ msgid "this stays obsolete"
#~ msgstr "even after running msgmerge"

#
# trailing comments should be removed
EOF

cat <<EOF > mm-test3.in2
#
# ref.po
#
#: file3:102
msgid "still existing"
msgstr "here is normally no comment"

#: file4:10
msgid ""
"former obsolete"
msgstr ""

#
# trailing comments should be removed, even here
EOF

tmpfiles="$tmpfiles mm-test3.out"
: ${MSGMERGE=msgmerge}
${MSGMERGE} -q mm-test3.in1 mm-test3.in2 -o mm-test3.out

tmpfiles="$tmpfiles mm-test3.ok"
cat << EOF > mm-test3.ok
#: file3:102
msgid "still existing"
msgstr "translation"

#: file4:10
msgid "former obsolete"
msgstr "but again useful"

#
# def.po
#
#~ msgid "not existing"
#~ msgstr "but with translation"

#~ msgid "this stays obsolete"
#~ msgstr "even after running msgmerge"
EOF

: ${DIFF=diff}
${DIFF} mm-test3.ok mm-test3.out
result=$?

rm -fr $tmpfiles

exit $result

# Preserve executable bits for this shell script.
# Thanks to Noah Friedman for this great trick.
Local Variables:
Eval: (defun frobme () (set-file-modes buffer-file-name file-mode))
Eval: (make-local-variable 'file-mode)
Eval: (setq file-mode (file-modes (buffer-file-name)))
Eval: (make-local-variable 'after-save-hook)
Eval: (add-hook 'after-save-hook 'frobme)
End:
