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

# Test of TypeScript Unicode support.

cat <<\EOF > xg-ts-5.ts
// The following excerpt is adapted from json2.js
const cx: RegExp = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
const escapable: RegExp = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
let gap: string | undefined;
const txt1: string = _("Expected translation string #1");
let indent: string | undefined;
const meta: Record<string, string> = {
    '\b': '\\b',
    '\t': '\\t',
    '\n': '\\n',
    '\f': '\\f',
    '\r': '\\r',
    '"': '\\"',
    '\\': '\\\\' + _("Expected translation string #2")
};
const txt2: string = _("Expected translation string #3");
let rep: any;
const matched: string = curnodepath.match(new RegExp(`^\\${path}\/([\\w\\s]+)`))
    + _("Expected translation string #4");
EOF

: ${XGETTEXT=xgettext}
${XGETTEXT} --add-comments --no-location -o xg-ts-5.tmp xg-ts-5.ts 2>xg-ts-5.err
test $? = 0 || { cat xg-ts-5.err; Exit 1; }
func_filter_POT_Creation_Date xg-ts-5.tmp xg-ts-5.pot

cat <<\EOF > xg-ts-5.ok
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

msgid "Expected translation string #1"
msgstr ""

msgid "Expected translation string #2"
msgstr ""

msgid "Expected translation string #3"
msgstr ""

msgid "Expected translation string #4"
msgstr ""
EOF

: ${DIFF=diff}
${DIFF} xg-ts-5.ok xg-ts-5.pot
result=$?

exit $result
