+2024-01-31 Bruno Haible <bruno@clisp.org>
+
+ Implement 3 new properties, added by Unicode 15.1.0.
+ * lib/gen-uni-tables.c (is_property_id_compat_math_start,
+ is_property_id_compat_math_continue, is_property_ids_unary_operator):
+ New functions.
+ (output_properties): Output also the properties id_compat_math_start,
+ id_compat_math_continue, ids_unary_operator.
+ * lib/unictype.in.h (UC_PROPERTY_ID_COMPAT_MATH_START,
+ UC_PROPERTY_ID_COMPAT_MATH_CONTINUE, UC_PROPERTY_IDS_UNARY_OPERATOR,
+ uc_is_property_id_compat_math_start,
+ uc_is_property_id_compat_math_continue,
+ uc_is_property_ids_unary_operator): New declarations.
+ * m4/unictype_h.m4 (gl_UNICTYPE_H_REQUIRE_DEFAULTS): Initialize
+ GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_DLL_VARIABLE,
+ GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_DLL_VARIABLE,
+ GNULIB_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_DLL_VARIABLE.
+ * modules/unictype/base (Makefile.am): Substitute
+ GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_DLL_VARIABLE,
+ GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_DLL_VARIABLE,
+ GNULIB_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_DLL_VARIABLE.
+ * lib/unictype/pr_id_compat_math_continue.c: New file.
+ * lib/unictype/pr_id_compat_math_continue.h: New generated file.
+ * lib/unictype/pr_id_compat_math_start.c: New file.
+ * lib/unictype/pr_id_compat_math_start.h: New generated file.
+ * lib/unictype/pr_ids_unary_operator.c: New file.
+ * modules/unictype/property-id-compat-math-continue: New file.
+ * modules/unictype/property-id-compat-math-start: New file.
+ * modules/unictype/property-ids-unary-operator: New file.
+ * tests/unictype/test-pr_id_compat_math_continue.c: New generated file.
+ * tests/unictype/test-pr_id_compat_math_start.c: New generated file.
+ * tests/unictype/test-pr_ids_unary_operator.c: New generated file.
+ * modules/unictype/property-id-compat-math-continue-tests: New file.
+ * modules/unictype/property-id-compat-math-start-tests: New file.
+ * modules/unictype/property-ids-unary-operator-tests: New file.
+ * lib/unictype/pr_byname.gperf: Add id_compat_math_start,
+ id_compat_math_continue, ids_unary_operator.
+ * lib/unictype/pr_byname.c (UC_PROPERTY_INDEX_ID_COMPAT_MATH_START,
+ UC_PROPERTY_INDEX_ID_COMPAT_MATH_CONTINUE,
+ UC_PROPERTY_INDEX_IDS_UNARY_OPERATOR): New enum items.
+ (uc_property_byname): Handle them.
+ * modules/unictype/property-byname (Depends-on): Add
+ unictype/property-id-compat-math-continue,
+ unictype/property-id-compat-math-start,
+ unictype/property-ids-unary-operator.
+ * modules/unictype/property-all (Depends-on): Likewise.
+ * MODULES.html.sh (func_all_modules): Add
+ unictype/property-id-compat-math-continue,
+ unictype/property-id-compat-math-start,
+ unictype/property-ids-unary-operator.
+
2024-01-30 Bruno Haible <bruno@clisp.org>
Update to Unicode 15.1.0.
func_module unictype/property-grapheme-link
func_module unictype/property-hex-digit
func_module unictype/property-hyphen
+ func_module unictype/property-id-compat-math-continue
+ func_module unictype/property-id-compat-math-start
func_module unictype/property-id-continue
func_module unictype/property-id-start
func_module unictype/property-ideographic
func_module unictype/property-ids-binary-operator
func_module unictype/property-ids-trinary-operator
+ func_module unictype/property-ids-unary-operator
func_module unictype/property-ignorable-control
func_module unictype/property-iso-control
func_module unictype/property-join-control
return ((unicode_properties[ch] & (1ULL << PROP_XID_CONTINUE)) != 0);
}
+/* See PropList.txt, UCD.html. */
+static bool
+is_property_id_compat_math_start (unsigned int ch)
+{
+ return ((unicode_properties[ch] & (1ULL << PROP_ID_COMPAT_MATH_START)) != 0);
+}
+
+/* See PropList.txt, UCD.html. */
+static bool
+is_property_id_compat_math_continue (unsigned int ch)
+{
+ return ((unicode_properties[ch] & (1ULL << PROP_ID_COMPAT_MATH_CONTINUE)) != 0);
+}
+
/* See PropList.txt, UCD.html. */
static bool
is_property_pattern_white_space (unsigned int ch)
return ((unicode_properties[ch] & (1ULL << PROP_RADICAL)) != 0);
}
+/* See PropList.txt, UCD.html. */
+static bool
+is_property_ids_unary_operator (unsigned int ch)
+{
+ return ((unicode_properties[ch] & (1ULL << PROP_IDS_UNARY_OPERATOR)) != 0);
+}
+
/* See PropList.txt, UCD.html. */
static bool
is_property_ids_binary_operator (unsigned int ch)
PROPERTY(other_id_continue)
PROPERTY(xid_start)
PROPERTY(xid_continue)
+ PROPERTY(id_compat_math_start)
+ PROPERTY(id_compat_math_continue)
PROPERTY(pattern_white_space)
PROPERTY(pattern_syntax)
PROPERTY(join_control)
PROPERTY(ideographic)
PROPERTY(unified_ideograph)
PROPERTY(radical)
+ PROPERTY(ids_unary_operator)
PROPERTY(ids_binary_operator)
PROPERTY(ids_trinary_operator)
PROPERTY(zero_width)
extern @GNULIB_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_DLL_VARIABLE@ const uc_property_t UC_PROPERTY_OTHER_ID_CONTINUE;
extern @GNULIB_UNICTYPE_PROPERTY_XID_START_DLL_VARIABLE@ const uc_property_t UC_PROPERTY_XID_START;
extern @GNULIB_UNICTYPE_PROPERTY_XID_CONTINUE_DLL_VARIABLE@ const uc_property_t UC_PROPERTY_XID_CONTINUE;
+extern @GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_DLL_VARIABLE@ const uc_property_t UC_PROPERTY_ID_COMPAT_MATH_START;
+extern @GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_DLL_VARIABLE@ const uc_property_t UC_PROPERTY_ID_COMPAT_MATH_CONTINUE;
extern @GNULIB_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_DLL_VARIABLE@ const uc_property_t UC_PROPERTY_PATTERN_WHITE_SPACE;
extern @GNULIB_UNICTYPE_PROPERTY_PATTERN_SYNTAX_DLL_VARIABLE@ const uc_property_t UC_PROPERTY_PATTERN_SYNTAX;
/* Shaping and rendering. */
extern @GNULIB_UNICTYPE_PROPERTY_IDEOGRAPHIC_DLL_VARIABLE@ const uc_property_t UC_PROPERTY_IDEOGRAPHIC;
extern @GNULIB_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_DLL_VARIABLE@ const uc_property_t UC_PROPERTY_UNIFIED_IDEOGRAPH;
extern @GNULIB_UNICTYPE_PROPERTY_RADICAL_DLL_VARIABLE@ const uc_property_t UC_PROPERTY_RADICAL;
+extern @GNULIB_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_DLL_VARIABLE@ const uc_property_t UC_PROPERTY_IDS_UNARY_OPERATOR;
extern @GNULIB_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_DLL_VARIABLE@ const uc_property_t UC_PROPERTY_IDS_BINARY_OPERATOR;
extern @GNULIB_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_DLL_VARIABLE@ const uc_property_t UC_PROPERTY_IDS_TRINARY_OPERATOR;
/* Emoji. */
_UC_ATTRIBUTE_CONST;
extern bool uc_is_property_xid_continue (ucs4_t uc)
_UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_id_compat_math_start (ucs4_t uc)
+ _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_id_compat_math_continue (ucs4_t uc)
+ _UC_ATTRIBUTE_CONST;
extern bool uc_is_property_pattern_white_space (ucs4_t uc)
_UC_ATTRIBUTE_CONST;
extern bool uc_is_property_pattern_syntax (ucs4_t uc)
_UC_ATTRIBUTE_CONST;
extern bool uc_is_property_radical (ucs4_t uc)
_UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_ids_unary_operator (ucs4_t uc)
+ _UC_ATTRIBUTE_CONST;
extern bool uc_is_property_ids_binary_operator (ucs4_t uc)
_UC_ATTRIBUTE_CONST;
extern bool uc_is_property_ids_trinary_operator (ucs4_t uc)
UC_PROPERTY_INDEX_OTHER_ID_CONTINUE,
UC_PROPERTY_INDEX_XID_START,
UC_PROPERTY_INDEX_XID_CONTINUE,
+ UC_PROPERTY_INDEX_ID_COMPAT_MATH_START,
+ UC_PROPERTY_INDEX_ID_COMPAT_MATH_CONTINUE,
UC_PROPERTY_INDEX_PATTERN_WHITE_SPACE,
UC_PROPERTY_INDEX_PATTERN_SYNTAX,
/* Shaping and rendering. */
UC_PROPERTY_INDEX_IDEOGRAPHIC,
UC_PROPERTY_INDEX_UNIFIED_IDEOGRAPH,
UC_PROPERTY_INDEX_RADICAL,
+ UC_PROPERTY_INDEX_IDS_UNARY_OPERATOR,
UC_PROPERTY_INDEX_IDS_BINARY_OPERATOR,
UC_PROPERTY_INDEX_IDS_TRINARY_OPERATOR,
/* Misc. */
return UC_PROPERTY_XID_START;
case UC_PROPERTY_INDEX_XID_CONTINUE:
return UC_PROPERTY_XID_CONTINUE;
+ case UC_PROPERTY_INDEX_ID_COMPAT_MATH_START:
+ return UC_PROPERTY_ID_COMPAT_MATH_START;
+ case UC_PROPERTY_INDEX_ID_COMPAT_MATH_CONTINUE:
+ return UC_PROPERTY_ID_COMPAT_MATH_CONTINUE;
case UC_PROPERTY_INDEX_PATTERN_WHITE_SPACE:
return UC_PROPERTY_PATTERN_WHITE_SPACE;
case UC_PROPERTY_INDEX_PATTERN_SYNTAX:
return UC_PROPERTY_UNIFIED_IDEOGRAPH;
case UC_PROPERTY_INDEX_RADICAL:
return UC_PROPERTY_RADICAL;
+ case UC_PROPERTY_INDEX_IDS_UNARY_OPERATOR:
+ return UC_PROPERTY_IDS_UNARY_OPERATOR;
case UC_PROPERTY_INDEX_IDS_BINARY_OPERATOR:
return UC_PROPERTY_IDS_BINARY_OPERATOR;
case UC_PROPERTY_INDEX_IDS_TRINARY_OPERATOR:
xid_continue, UC_PROPERTY_INDEX_XID_CONTINUE
xidcontinue, UC_PROPERTY_INDEX_XID_CONTINUE
xidc, UC_PROPERTY_INDEX_XID_CONTINUE
+id_compat_math_start, UC_PROPERTY_INDEX_ID_COMPAT_MATH_START
+idcompatmathstart, UC_PROPERTY_INDEX_ID_COMPAT_MATH_START
+idcms, UC_PROPERTY_INDEX_ID_COMPAT_MATH_START
+id_compat_math_continue, UC_PROPERTY_INDEX_ID_COMPAT_MATH_CONTINUE
+idcompatmathcontinue, UC_PROPERTY_INDEX_ID_COMPAT_MATH_CONTINUE
+idcmc, UC_PROPERTY_INDEX_ID_COMPAT_MATH_CONTINUE
pattern_white_space, UC_PROPERTY_INDEX_PATTERN_WHITE_SPACE
patternwhitespace, UC_PROPERTY_INDEX_PATTERN_WHITE_SPACE
pat_ws, UC_PROPERTY_INDEX_PATTERN_WHITE_SPACE
unifiedideograph, UC_PROPERTY_INDEX_UNIFIED_IDEOGRAPH
uideo, UC_PROPERTY_INDEX_UNIFIED_IDEOGRAPH
radical, UC_PROPERTY_INDEX_RADICAL
+ids_unary_operator, UC_PROPERTY_INDEX_IDS_UNARY_OPERATOR
+idsunaryoperator, UC_PROPERTY_INDEX_IDS_UNARY_OPERATOR
+idsu, UC_PROPERTY_INDEX_IDS_UNARY_OPERATOR
ids_binary_operator, UC_PROPERTY_INDEX_IDS_BINARY_OPERATOR
idsbinaryoperator, UC_PROPERTY_INDEX_IDS_BINARY_OPERATOR
idsb, UC_PROPERTY_INDEX_IDS_BINARY_OPERATOR
--- /dev/null
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007, 2009-2024 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ This file is free software.
+ It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
+ You can redistribute it and/or modify it under either
+ - the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation, either version 3, or (at your
+ option) any later version, or
+ - the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option)
+ any later version, or
+ - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+".
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License and the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License and of the GNU General Public License along with this
+ program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_id_compat_math_continue table. */
+#include "pr_id_compat_math_continue.h"
+
+bool
+uc_is_property_id_compat_math_continue (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_id_compat_math_continue, uc);
+}
+
+const uc_property_t UC_PROPERTY_ID_COMPAT_MATH_CONTINUE =
+ { &uc_is_property_id_compat_math_continue };
--- /dev/null
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-uni-tables.c for Unicode 15.1.0. */
+
+/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+
+ This file is free software.
+ It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
+ You can redistribute it and/or modify it under either
+ - the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation, either version 3, or (at your
+ option) any later version, or
+ - the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option)
+ any later version, or
+ - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+".
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License and the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License and of the GNU General Public License along with this
+ program. If not, see <https://www.gnu.org/licenses/>. */
+
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ unsigned int level3[4 << 4];
+ }
+u_property_id_compat_math_continue =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x020C0000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x00000000U, 0x00000000U, 0x7FF10000U,
+ 0x00007FFFU, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x40000084U, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x00000000U, 0x08000002U, 0x08000000U,
+ 0x00200000U, 0x00200000U, 0x00008000U, 0x00008000U,
+ 0x00000200U, 0x00000200U, 0x00000008U, 0x00000000U
+ }
+};
--- /dev/null
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007, 2009-2024 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ This file is free software.
+ It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
+ You can redistribute it and/or modify it under either
+ - the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation, either version 3, or (at your
+ option) any later version, or
+ - the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option)
+ any later version, or
+ - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+".
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License and the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License and of the GNU General Public License along with this
+ program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_id_compat_math_start table. */
+#include "pr_id_compat_math_start.h"
+
+bool
+uc_is_property_id_compat_math_start (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_id_compat_math_start, uc);
+}
+
+const uc_property_t UC_PROPERTY_ID_COMPAT_MATH_START =
+ { &uc_is_property_id_compat_math_start };
--- /dev/null
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-uni-tables.c for Unicode 15.1.0. */
+
+/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+
+ This file is free software.
+ It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
+ You can redistribute it and/or modify it under either
+ - the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation, either version 3, or (at your
+ option) any later version, or
+ - the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option)
+ any later version, or
+ - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+".
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License and the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License and of the GNU General Public License along with this
+ program. If not, see <https://www.gnu.org/licenses/>. */
+
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ unsigned int level3[2 << 4];
+ }
+u_property_id_compat_math_start =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x40000084U, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+ 0x00000000U, 0x00000000U, 0x08000002U, 0x08000000U,
+ 0x00200000U, 0x00200000U, 0x00008000U, 0x00008000U,
+ 0x00000200U, 0x00000200U, 0x00000008U, 0x00000000U
+ }
+};
--- /dev/null
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007, 2009-2024 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ This file is free software.
+ It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
+ You can redistribute it and/or modify it under either
+ - the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation, either version 3, or (at your
+ option) any later version, or
+ - the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option)
+ any later version, or
+ - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+".
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License and the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License and of the GNU General Public License along with this
+ program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unictype.h"
+
+bool
+uc_is_property_ids_unary_operator (ucs4_t uc)
+{
+ return (uc >= 0x2FFE && uc <= 0x2FFF);
+}
+
+const uc_property_t UC_PROPERTY_IDS_UNARY_OPERATOR =
+ { &uc_is_property_ids_unary_operator };
-# unictype_h.m4 serial 1
+# unictype_h.m4 serial 2
dnl Copyright (C) 2023-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_XID_START_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_XID_CONTINUE_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_PATTERN_SYNTAX_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_JOIN_CONTROL_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_IDEOGRAPHIC_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_RADICAL_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNICTYPE_PROPERTY_EMOJI_DLL_VARIABLE], ['LIBUNISTRING_DLL_VARIABLE'])
-e 's/@''GNULIB_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_DLL_VARIABLE''@/$(GNULIB_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_DLL_VARIABLE)/g' \
-e 's/@''GNULIB_UNICTYPE_PROPERTY_XID_START_DLL_VARIABLE''@/$(GNULIB_UNICTYPE_PROPERTY_XID_START_DLL_VARIABLE)/g' \
-e 's/@''GNULIB_UNICTYPE_PROPERTY_XID_CONTINUE_DLL_VARIABLE''@/$(GNULIB_UNICTYPE_PROPERTY_XID_CONTINUE_DLL_VARIABLE)/g' \
+ -e 's/@''GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_DLL_VARIABLE''@/$(GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_DLL_VARIABLE)/g' \
+ -e 's/@''GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_DLL_VARIABLE''@/$(GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_DLL_VARIABLE)/g' \
-e 's/@''GNULIB_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_DLL_VARIABLE''@/$(GNULIB_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_DLL_VARIABLE)/g' \
-e 's/@''GNULIB_UNICTYPE_PROPERTY_PATTERN_SYNTAX_DLL_VARIABLE''@/$(GNULIB_UNICTYPE_PROPERTY_PATTERN_SYNTAX_DLL_VARIABLE)/g' \
-e 's/@''GNULIB_UNICTYPE_PROPERTY_JOIN_CONTROL_DLL_VARIABLE''@/$(GNULIB_UNICTYPE_PROPERTY_JOIN_CONTROL_DLL_VARIABLE)/g' \
-e 's/@''GNULIB_UNICTYPE_PROPERTY_IDEOGRAPHIC_DLL_VARIABLE''@/$(GNULIB_UNICTYPE_PROPERTY_IDEOGRAPHIC_DLL_VARIABLE)/g' \
-e 's/@''GNULIB_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_DLL_VARIABLE''@/$(GNULIB_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_DLL_VARIABLE)/g' \
-e 's/@''GNULIB_UNICTYPE_PROPERTY_RADICAL_DLL_VARIABLE''@/$(GNULIB_UNICTYPE_PROPERTY_RADICAL_DLL_VARIABLE)/g' \
+ -e 's/@''GNULIB_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_DLL_VARIABLE''@/$(GNULIB_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_DLL_VARIABLE)/g' \
-e 's/@''GNULIB_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_DLL_VARIABLE''@/$(GNULIB_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_DLL_VARIABLE)/g' \
-e 's/@''GNULIB_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_DLL_VARIABLE''@/$(GNULIB_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_DLL_VARIABLE)/g' \
-e 's/@''GNULIB_UNICTYPE_PROPERTY_EMOJI_DLL_VARIABLE''@/$(GNULIB_UNICTYPE_PROPERTY_EMOJI_DLL_VARIABLE)/g' \
unictype/property-grapheme-link
unictype/property-hex-digit
unictype/property-hyphen
+unictype/property-id-compat-math-continue
+unictype/property-id-compat-math-start
unictype/property-id-continue
unictype/property-id-start
unictype/property-ideographic
unictype/property-ids-binary-operator
unictype/property-ids-trinary-operator
+unictype/property-ids-unary-operator
unictype/property-ignorable-control
unictype/property-iso-control
unictype/property-join-control
unictype/property-grapheme-link
unictype/property-hex-digit
unictype/property-hyphen
+unictype/property-id-compat-math-continue
+unictype/property-id-compat-math-start
unictype/property-id-continue
unictype/property-id-start
unictype/property-ideographic
unictype/property-ids-binary-operator
unictype/property-ids-trinary-operator
+unictype/property-ids-unary-operator
unictype/property-ignorable-control
unictype/property-iso-control
unictype/property-join-control
--- /dev/null
+Description:
+Test whether a Unicode character is "id compat math continue".
+
+Files:
+lib/unictype/pr_id_compat_math_continue.c
+lib/unictype/pr_id_compat_math_continue.h
+lib/unictype/bitmap.h
+
+Depends-on:
+unictype/base
+
+configure.ac:
+AC_REQUIRE([AC_C_INLINE])
+gl_UNICTYPE_H_REQUIRE_DEFAULTS
+gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-id-compat-math-continue])
+
+Makefile.am:
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE
+lib_SOURCES += unictype/pr_id_compat_math_continue.c
+endif
+
+Include:
+"unictype.h"
+
+License:
+LGPLv3+ or GPLv2+
+
+Maintainer:
+all
--- /dev/null
+Files:
+tests/unictype/test-pr_id_compat_math_continue.c
+tests/unictype/test-predicate-part1.h
+tests/unictype/test-predicate-part2.h
+tests/macros.h
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-pr_id_compat_math_continue
+check_PROGRAMS += test-pr_id_compat_math_continue
+test_pr_id_compat_math_continue_SOURCES = unictype/test-pr_id_compat_math_continue.c
+test_pr_id_compat_math_continue_LDADD = $(LDADD) $(LIBUNISTRING)
--- /dev/null
+Description:
+Test whether a Unicode character is "id compat math start".
+
+Files:
+lib/unictype/pr_id_compat_math_start.c
+lib/unictype/pr_id_compat_math_start.h
+lib/unictype/bitmap.h
+
+Depends-on:
+unictype/base
+
+configure.ac:
+AC_REQUIRE([AC_C_INLINE])
+gl_UNICTYPE_H_REQUIRE_DEFAULTS
+gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-id-compat-math-start])
+
+Makefile.am:
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START
+lib_SOURCES += unictype/pr_id_compat_math_start.c
+endif
+
+Include:
+"unictype.h"
+
+License:
+LGPLv3+ or GPLv2+
+
+Maintainer:
+all
--- /dev/null
+Files:
+tests/unictype/test-pr_id_compat_math_start.c
+tests/unictype/test-predicate-part1.h
+tests/unictype/test-predicate-part2.h
+tests/macros.h
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-pr_id_compat_math_start
+check_PROGRAMS += test-pr_id_compat_math_start
+test_pr_id_compat_math_start_SOURCES = unictype/test-pr_id_compat_math_start.c
+test_pr_id_compat_math_start_LDADD = $(LDADD) $(LIBUNISTRING)
--- /dev/null
+Description:
+Test whether a Unicode character is "ids unary operator".
+
+Files:
+lib/unictype/pr_ids_unary_operator.c
+
+Depends-on:
+unictype/base
+
+configure.ac:
+AC_REQUIRE([AC_C_INLINE])
+gl_UNICTYPE_H_REQUIRE_DEFAULTS
+gl_LIBUNISTRING_MODULE_WITH_VARIABLE([1.2], [unictype/property-ids-unary-operator])
+
+Makefile.am:
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR
+lib_SOURCES += unictype/pr_ids_unary_operator.c
+endif
+
+Include:
+"unictype.h"
+
+License:
+LGPLv3+ or GPLv2+
+
+Maintainer:
+all
--- /dev/null
+Files:
+tests/unictype/test-pr_ids_unary_operator.c
+tests/unictype/test-predicate-part1.h
+tests/unictype/test-predicate-part2.h
+tests/macros.h
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-pr_ids_unary_operator
+check_PROGRAMS += test-pr_ids_unary_operator
+test_pr_ids_unary_operator_SOURCES = unictype/test-pr_ids_unary_operator.c
+test_pr_ids_unary_operator_LDADD = $(LDADD) $(LIBUNISTRING)
--- /dev/null
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2024 Free Software Foundation, Inc.
+
+ This file is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation, either version 3 of the License,
+ or (at your option) any later version.
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x00B2, 0x00B3 },
+ { 0x00B9, 0x00B9 },
+ { 0x2070, 0x2070 },
+ { 0x2074, 0x207E },
+ { 0x2080, 0x208E },
+ { 0x2202, 0x2202 },
+ { 0x2207, 0x2207 },
+ { 0x221E, 0x221E },
+ { 0x1D6C1, 0x1D6C1 },
+ { 0x1D6DB, 0x1D6DB },
+ { 0x1D6FB, 0x1D6FB },
+ { 0x1D715, 0x1D715 },
+ { 0x1D735, 0x1D735 },
+ { 0x1D74F, 0x1D74F },
+ { 0x1D76F, 0x1D76F },
+ { 0x1D789, 0x1D789 },
+ { 0x1D7A9, 0x1D7A9 },
+ { 0x1D7C3, 0x1D7C3 }
+
+#define PREDICATE(c) uc_is_property_id_compat_math_continue (c)
+#include "test-predicate-part2.h"
--- /dev/null
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2024 Free Software Foundation, Inc.
+
+ This file is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation, either version 3 of the License,
+ or (at your option) any later version.
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x2202, 0x2202 },
+ { 0x2207, 0x2207 },
+ { 0x221E, 0x221E },
+ { 0x1D6C1, 0x1D6C1 },
+ { 0x1D6DB, 0x1D6DB },
+ { 0x1D6FB, 0x1D6FB },
+ { 0x1D715, 0x1D715 },
+ { 0x1D735, 0x1D735 },
+ { 0x1D74F, 0x1D74F },
+ { 0x1D76F, 0x1D76F },
+ { 0x1D789, 0x1D789 },
+ { 0x1D7A9, 0x1D7A9 },
+ { 0x1D7C3, 0x1D7C3 }
+
+#define PREDICATE(c) uc_is_property_id_compat_math_start (c)
+#include "test-predicate-part2.h"
--- /dev/null
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2024 Free Software Foundation, Inc.
+
+ This file is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation, either version 3 of the License,
+ or (at your option) any later version.
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x2FFE, 0x2FFF }
+
+#define PREDICATE(c) uc_is_property_ids_unary_operator (c)
+#include "test-predicate-part2.h"