#!/bin/sh
# Ensure that we accept relatively new ChangeLog syntax.

. "${srcdir=.}/init.sh"; path_prepend_ ..
print_ver_ vc-dwim

require_git_

cat <<EOF > ChangeLog || framework_failure_
2011-05-31  R. Andom  <random@example.com>

	* not-checked.c: Irrelevant.

EOF
git init > /dev/null || framework_failure_
touch foo || framework_failure_
git add . || framework_failure_
git commit -m m . > /dev/null || framework_failure_

cat <<EOF > ChangeLog
2011-05-31  R. Andom  <random@example.com>

	summary
	* foo (zoo, bar)
	(a, b)
        (qux): Comment.
	* not-checked.c: Irrelevant.

EOF

fail=0

echo a > foo || framework_failure_
vc-dwim ChangeLog || fail=1

# Ensure that we fail for a "date  name  email" line that uses
# just one space for either separator.

for invalid in \
  '2011-05-31 R. Andom  <random@example.com>' \
  '2011-05-31  R. Andom <random@example.com>'; do

  printf '%s\n' \
    "vc-dwim:ChangeLog: invalid 'date  name  <email>' line:" "+$invalid" \
    > exp.err || framework_failure_

  { echo "$invalid"
    printf '\t%s\n' '' one-line '* foo: xx'; }  > ChangeLog \
      || framework_failure_

  echo b > foo || framework_failure_
  vc-dwim ChangeLog 2> err && fail=1
  compare exp.err err || fail=1
done

Exit $fail
