#!/bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src

# Test for --check option.

# --check=ellipsis-unicode
cat <<\EOF > xg-ellipsis-u.c
gettext ("This is a sentence...");

ngettext ("This is a sentence", "These are sentences...", 2);

/* xgettext: no-ellipsis-unicode-check */
gettext ("This is another sentence...");

gettext ("This is a multi-sentence example.  This is the first sentence. "
         "This is the second..., no it's not, this is the second sentence...\n"
	 "This is the third sentence...? Perhaps.\n");
EOF

: ${XGETTEXT=xgettext}
LANGUAGE= LC_ALL=C ${XGETTEXT} --omit-header --add-comments --check=ellipsis-unicode -d xg-ellipsis-u.tmp xg-ellipsis-u.c 2>xg-ellipsis-u.err

test `grep -c 'ASCII ellipsis' xg-ellipsis-u.err` = 4 || Exit 1

LANGUAGE= LC_ALL=C ${XGETTEXT} --omit-header --add-comments --check=ellipsis-unicode --sentence-end=double-space -d xg-ellipsis-ud.tmp xg-ellipsis-u.c 2>xg-ellipsis-ud.err

test `grep -c 'ASCII ellipsis' xg-ellipsis-ud.err` = 3 || Exit 1

# --check=space-ellipsis
cat <<\EOF > xg-space-e.c
gettext ("This is a sentence ...");

/* xgettext: no-space-ellipsis-check, no-ellipsis-unicode-check */
gettext ("This is another sentence ...");

gettext ("This is a multi-sentence example.  This is the first sentence. "
         "This is the second..., no it's not, this is the second sentence ...\n"
	 "This is the third sentence \u2026? Perhaps.\n");
EOF

LANGUAGE= LC_ALL=C ${XGETTEXT} --omit-header --add-comments --check=space-ellipsis -d xg-space-e.tmp xg-space-e.c 2>xg-space-e.err

test `grep -c 'space before ellipsis' xg-space-e.err` = 3 || Exit 1

# --check=quote-unicode
cat <<\EOF > xg-quote-u.c
gettext ("\"double quoted\"");

/* xgettext: no-quote-unicode-check */
gettext ("\"double quoted but ignored\"");

gettext ("double quoted but empty \"\"");

gettext ("\"\" double quoted but empty");

gettext ("\"foo\" \"bar\" \"baz\"");

gettext ("'single quoted'");

/* xgettext: no-quote-unicode-check */
gettext ("'single quoted but ignored'");

gettext ("'foo' 'bar' 'baz'");

gettext ("prefix'single quoted without surrounding spaces'suffix");

gettext ("prefix 'single quoted with surrounding spaces' suffix");

gettext ("single quoted with apostrophe, empty '' ");

gettext ("'single quoted at the beginning of string' ");

gettext (" 'single quoted at the end of string'");

gettext ("line 1\n"
"'single quoted at the beginning of line' \n"
"line 3");

gettext ("line 1\n"
" 'single quoted at the end of line'\n"
"line 3");

gettext ("`single quoted with grave'");

/* xgettext: no-quote-unicode-check */
gettext ("`single quoted with grave but ignored'");

gettext ("single quoted with grave, empty `'");

gettext ("`' single quoted with grave, empty");

gettext ("`double grave`");
EOF

LANGUAGE= LC_ALL=C ${XGETTEXT} --omit-header --add-comments --check=quote-unicode -d xg-quote-u.tmp xg-quote-u.c 2>xg-quote-u.err

test `grep -c 'ASCII double quote' xg-quote-u.err` = 4 || Exit 1
test `grep -c 'ASCII single quote' xg-quote-u.err` = 12 || Exit 1

# --check=bullet-unicode
cat <<\EOF > xg-bullet-u1.c
gettext ("The following is a list of items:\n\
* item 1\n\
* item 2\n\
* item 3\n");
EOF

: ${XGETTEXT=xgettext}
LANGUAGE= LC_ALL=C ${XGETTEXT} --omit-header --add-comments --check=bullet-unicode -d xg-bullet-u1.tmp xg-bullet-u1.c 2>xg-bullet-u1.err

test `grep -c 'ASCII bullet' xg-bullet-u1.err` = 1 || { cat xg-bullet-u1.err; Exit 1; }

cat <<\EOF > xg-bullet-u2.c
gettext ("The following is a list of items:\n\
* item 1\n\
 - item 2\n\
* item 3\n");
EOF

: ${XGETTEXT=xgettext}
LANGUAGE= LC_ALL=C ${XGETTEXT} --omit-header --add-comments --check=bullet-unicode -d xg-bullet-u2.tmp xg-bullet-u2.c 2>xg-bullet-u2.err

test `grep -c 'ASCII bullet' xg-bullet-u2.err` = 1 || { cat xg-bullet-u2.err; Exit 1; }

cat <<\EOF > xg-bullet-u3.c
gettext ("The following is NOT a list of items:\n\
* item 1\n\
- item 2\n\
* item 3\n");
EOF

: ${XGETTEXT=xgettext}
LANGUAGE= LC_ALL=C ${XGETTEXT} --omit-header --add-comments --check=bullet-unicode -d xg-bullet-u3.tmp xg-bullet-u3.c 2>xg-bullet-u3.err

test `grep -c 'ASCII bullet' xg-bullet-u3.err` = 0 || { cat xg-bullet-u3.err; Exit 1; }
