mirror of
https://https.git.savannah.gnu.org/git/gettext.git
synced 2026-01-26 07:37:57 +00:00
Reported at <https://savannah.gnu.org/bugs/?67672>. * gettext-tools/src/message.h (enum syntax_check_type): Add sc_url, sc_email. (NSYNTAXCHECKS): Increase by 2. * gettext-tools/src/message.c (syntax_check_name): Update. * gettext-tools/src/xgettext.h (default_syntax_check): Add comment. * gettext-tools/src/xgettext.c (default_syntax_check): Add initializer. (main): Recognize --no-check option. (usage): Document --no-check option. * gettext-tools/src/xg-message.c (decide_syntax_check): Assume that default_syntax_check[i] != undecided. * gettext-tools/src/xg-check.c (syntax_check_function): Remove the second argument. (string_has_ascii_ellipsis): New function, extracted from syntax_check_ellipsis_unicode. (message_has_ascii_ellipsis): New function. (syntax_check_ellipsis_unicode): Remove the second argument. Simplify. Emit only a single error for both msgid and msgid_plural. (string_has_space_ellipsis): New function, extracted from syntax_check_space_ellipsis. (message_has_space_ellipsis): New function. (syntax_check_space_ellipsis): Remove the second argument. Simplify. Emit only a single error for both msgid and msgid_plural. (syntax_check_quote_unicode): Remove the second argument. (syntax_check_bullet_unicode_string): New function, extracted from syntax_check_bullet_unicode. (syntax_check_bullet_unicode): Remove the second argument. Simplify. (string_has_url): Don't recognize 'mailto:' URLs. (syntax_check_url, syntax_check_email): New functions, extracted from url_check_message. (url_check_message): Remove function. (sc_funcs): Add syntax_check_url, syntax_check_email. (syntax_check_message): Simplify. (xgettext_check_message_list): Don't invoke url_check_message. * gettext-tools/tests/xgettext-14: Update after xg-check.c changesd. * gettext-tools/tests/xgettext-20: Add more testcases. * gettext-tools/doc/xgettext.texi: Document the --no-check option. * gettext-tools/doc/gettext.texi: Bump copyright year. * NEWS: Mention the change.
76 lines
2.7 KiB
Bash
Executable File
76 lines
2.7 KiB
Bash
Executable File
#!/bin/sh
|
|
. "${srcdir=.}/init.sh"; path_prepend_ . ../src
|
|
|
|
# Test checking for URL.
|
|
# <https://savannah.gnu.org/bugs/?67000>
|
|
|
|
cat <<\EOF > xg-test20.c
|
|
gettext ("Using the browser to open a mailto: URI");
|
|
gettext ("Report bugs to <mailto:foobar@example.com>");
|
|
gettext ("Report bugs to: bug-foobar@gnu.org");
|
|
gettext ("Report bugs in the bug tracker at <https://savannah.gnu.org/projects/foobar>");
|
|
/* xgettext: no-email-check */
|
|
gettext ("M2: Report bugs to <mailto:foobar@example.com>");
|
|
/* xgettext: no-email-check */
|
|
gettext ("M2: Report bugs to: bug-foobar@gnu.org");
|
|
/* xgettext: no-url-check */
|
|
gettext ("M2: Report bugs in the bug tracker at <https://savannah.gnu.org/projects/foobar>");
|
|
/* xgettext: no-url-check */
|
|
gettext ("M3: Report bugs to: bug-foobar@gnu.org");
|
|
EOF
|
|
|
|
: ${XGETTEXT=xgettext}
|
|
LANGUAGE= LC_ALL=C ${XGETTEXT} --omit-header --add-comments -d xg-test20.tmp xg-test20.c 2>xg-test20.err \
|
|
|| Exit 1
|
|
cat xg-test20.err; echo
|
|
|
|
if grep "xg-test20.c:1:.*No-embedded-URLs.html" xg-test20.err >/dev/null; then
|
|
Exit 1
|
|
fi
|
|
|
|
grep "xg-test20.c:2:.*No-embedded-URLs.html" xg-test20.err >/dev/null || Exit 1
|
|
grep "xg-test20.c:3:.*No-embedded-URLs.html" xg-test20.err >/dev/null || Exit 1
|
|
grep "xg-test20.c:4:.*No-embedded-URLs.html" xg-test20.err >/dev/null || Exit 1
|
|
|
|
if grep "xg-test20.c:6:.*No-embedded-URLs.html" xg-test20.err >/dev/null; then
|
|
Exit 1
|
|
fi
|
|
if grep "xg-test20.c:8:.*No-embedded-URLs.html" xg-test20.err >/dev/null; then
|
|
Exit 1
|
|
fi
|
|
if grep "xg-test20.c:10:.*No-embedded-URLs.html" xg-test20.err >/dev/null; then
|
|
Exit 1
|
|
fi
|
|
|
|
grep "xg-test20.c:12:.*No-embedded-URLs.html" xg-test20.err >/dev/null || Exit 1
|
|
|
|
# Likewise, with --no-check=url option:
|
|
|
|
LANGUAGE= LC_ALL=C ${XGETTEXT} --omit-header --add-comments --no-check=url -d xg-test20.tmp xg-test20.c 2>xg-test20a.err \
|
|
|| Exit 1
|
|
cat xg-test20a.err; echo
|
|
|
|
grep "xg-test20.c:2:.*No-embedded-URLs.html" xg-test20a.err >/dev/null || Exit 1
|
|
grep "xg-test20.c:3:.*No-embedded-URLs.html" xg-test20a.err >/dev/null || Exit 1
|
|
if grep "xg-test20.c:4:.*No-embedded-URLs.html" xg-test20a.err >/dev/null; then
|
|
Exit 1
|
|
fi
|
|
grep "xg-test20.c:12:.*No-embedded-URLs.html" xg-test20a.err >/dev/null || Exit 1
|
|
|
|
# Likewise, with --no-check=email option:
|
|
|
|
LANGUAGE= LC_ALL=C ${XGETTEXT} --omit-header --add-comments --no-check=email -d xg-test20.tmp xg-test20.c 2>xg-test20b.err \
|
|
|| Exit 1
|
|
cat xg-test20b.err; echo
|
|
|
|
if grep "xg-test20.c:2:.*No-embedded-URLs.html" xg-test20b.err >/dev/null; then
|
|
Exit 1
|
|
fi
|
|
if grep "xg-test20.c:3:.*No-embedded-URLs.html" xg-test20b.err >/dev/null; then
|
|
Exit 1
|
|
fi
|
|
grep "xg-test20.c:4:.*No-embedded-URLs.html" xg-test20b.err >/dev/null || Exit 1
|
|
if grep "xg-test20.c:12:.*No-embedded-URLs.html" xg-test20b.err >/dev/null; then
|
|
Exit 1
|
|
fi
|