summaryrefslogtreecommitdiff
path: root/lib/unilbrk
diff options
context:
space:
mode:
Diffstat (limited to 'lib/unilbrk')
-rw-r--r--lib/unilbrk/internal.h2
-rw-r--r--lib/unilbrk/lbrkprop1.h4
-rw-r--r--lib/unilbrk/lbrkprop2.h236
-rw-r--r--lib/unilbrk/lbrktables.c81
-rw-r--r--lib/unilbrk/lbrktables.h71
-rw-r--r--lib/unilbrk/u16-possible-linebreaks.c67
-rw-r--r--lib/unilbrk/u16-width-linebreaks.c9
-rw-r--r--lib/unilbrk/u32-possible-linebreaks.c66
-rw-r--r--lib/unilbrk/u32-width-linebreaks.c9
-rw-r--r--lib/unilbrk/u8-possible-linebreaks.c67
-rw-r--r--lib/unilbrk/u8-width-linebreaks.c9
-rw-r--r--lib/unilbrk/ulc-common.c2
-rw-r--r--lib/unilbrk/ulc-common.h2
-rw-r--r--lib/unilbrk/ulc-possible-linebreaks.c9
-rw-r--r--lib/unilbrk/ulc-width-linebreaks.c9
15 files changed, 432 insertions, 211 deletions
diff --git a/lib/unilbrk/internal.h b/lib/unilbrk/internal.h
index d5843fb5..b1e9ba09 100644
--- a/lib/unilbrk/internal.h
+++ b/lib/unilbrk/internal.h
@@ -1,5 +1,5 @@
/* Internal functions for line breaking of Unicode strings.
- Copyright (C) 2001-2003, 2005-2022 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2024 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2021.
This file is free software.
diff --git a/lib/unilbrk/lbrkprop1.h b/lib/unilbrk/lbrkprop1.h
index 7ba04130..d4afed86 100644
--- a/lib/unilbrk/lbrkprop1.h
+++ b/lib/unilbrk/lbrkprop1.h
@@ -1,8 +1,8 @@
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
/* Line breaking properties of Unicode characters. */
-/* Generated automatically by gen-uni-tables.c for Unicode 15.0.0. */
+/* Generated automatically by gen-uni-tables.c for Unicode 15.1.0. */
-/* Copyright (C) 2000-2022 Free Software Foundation, Inc.
+/* 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+".
diff --git a/lib/unilbrk/lbrkprop2.h b/lib/unilbrk/lbrkprop2.h
index 3424be98..fb4c18af 100644
--- a/lib/unilbrk/lbrkprop2.h
+++ b/lib/unilbrk/lbrkprop2.h
@@ -1,8 +1,8 @@
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
/* Line breaking properties of Unicode characters. */
-/* Generated automatically by gen-uni-tables.c for Unicode 15.0.0. */
+/* Generated automatically by gen-uni-tables.c for Unicode 15.1.0. */
-/* Copyright (C) 2000-2022 Free Software Foundation, Inc.
+/* 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+".
@@ -294,7 +294,7 @@ const lbrkprop_t unilbrkprop =
LBP_CM, LBP_BA, LBP_LF, LBP_BK, LBP_BK, LBP_CR, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
- LBP_SP, LBP_EX, LBP_QU, LBP_AL, LBP_PR, LBP_PO, LBP_AL, LBP_QU,
+ LBP_SP, LBP_EX, LBP_QU1, LBP_AL, LBP_PR, LBP_PO, LBP_AL, LBP_QU1,
LBP_OP1, LBP_CP1, LBP_AL, LBP_PR, LBP_IS, LBP_HY, LBP_IS, LBP_SY,
LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
LBP_NU, LBP_NU, LBP_IS, LBP_IS, LBP_AL, LBP_AL, LBP_AL, LBP_EX,
@@ -311,9 +311,9 @@ const lbrkprop_t unilbrkprop =
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
LBP_GL, LBP_OP1, LBP_PO, LBP_PR, LBP_PR, LBP_PR, LBP_AL, LBP_AI,
- LBP_AI, LBP_AL, LBP_AI, LBP_QU, LBP_AL, LBP_BA, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AL, LBP_AI, LBP_QU2, LBP_AL, LBP_BA, LBP_AL, LBP_AL,
LBP_PO, LBP_PR, LBP_AI, LBP_AI, LBP_BB, LBP_AL, LBP_AI, LBP_AI,
- LBP_AI, LBP_AI, LBP_AI, LBP_QU, LBP_AI, LBP_AI, LBP_AI, LBP_OP1,
+ LBP_AI, LBP_AI, LBP_AI, LBP_QU3, LBP_AI, LBP_AI, LBP_AI, LBP_OP1,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
@@ -434,7 +434,7 @@ const lbrkprop_t unilbrkprop =
LBP_HL, LBP_HL, LBP_HL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_HL,
LBP_HL, LBP_HL, LBP_HL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_AL, LBP_AL,
LBP_AL, LBP_PO, LBP_PO, LBP_PO, LBP_IS, LBP_IS, LBP_AL, LBP_AL,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_EX, LBP_CM, LBP_EX, LBP_EX, LBP_EX,
@@ -461,7 +461,7 @@ const lbrkprop_t unilbrkprop =
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_EX, LBP_AL, LBP_CM, LBP_CM,
- LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_NU, LBP_AL, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_CM,
LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL,
LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
@@ -516,7 +516,7 @@ const lbrkprop_t unilbrkprop =
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
- LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -526,7 +526,7 @@ const lbrkprop_t unilbrkprop =
LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
- LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_NU, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
@@ -1042,22 +1042,22 @@ const lbrkprop_t unilbrkprop =
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
- LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
- LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
- LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
- LBP_NU, LBP_NU, LBP_BA, LBP_BA, LBP_AL, LBP_BA, LBP_BA, LBP_BA,
- LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
- LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_BA, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_VI, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
+ LBP_ID1, LBP_ID1, LBP_BA, LBP_BA, LBP_ID1, LBP_BA, LBP_BA, LBP_BA,
+ LBP_BA, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
+ LBP_ID1, LBP_ID1, LBP_ID1, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
+ LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_BA, LBP_BA, LBP_XX,
LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1066,13 +1066,13 @@ const lbrkprop_t unilbrkprop =
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL,
LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM,
+ LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS,
+ LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS,
+ LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS,
+ LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS,
+ LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
- LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_VF, LBP_VF, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1157,11 +1157,11 @@ const lbrkprop_t unilbrkprop =
LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_GL,
LBP_BA, LBP_BA, LBP_BA, LBP_ZW, LBP_CM, LBP_ZWJ, LBP_CM, LBP_CM,
LBP_BA, LBP_GL, LBP_BA, LBP_BA, LBP_B2, LBP_AI, LBP_AI, LBP_AL,
- LBP_QU, LBP_QU, LBP_OP1, LBP_QU, LBP_QU, LBP_QU, LBP_OP1, LBP_QU,
+ LBP_QU2, LBP_QU3, LBP_OP1, LBP_QU2, LBP_QU2, LBP_QU3, LBP_OP1, LBP_QU2,
LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_IN, LBP_IN, LBP_IN, LBP_BA,
LBP_BK, LBP_BK, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_GL,
LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO,
- LBP_AL, LBP_QU, LBP_QU, LBP_AI, LBP_NS, LBP_NS, LBP_AL, LBP_AL,
+ LBP_AL, LBP_QU2, LBP_QU3, LBP_AI, LBP_NS, LBP_NS, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_IS, LBP_OP1, LBP_CL, LBP_NS,
LBP_NS, LBP_NS, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_PO,
@@ -1389,8 +1389,8 @@ const lbrkprop_t unilbrkprop =
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
- LBP_AL, LBP_AL, LBP_AL, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU,
- LBP_QU, LBP_AL, LBP_EX, LBP_EX, LBP_ID1, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_QU1, LBP_QU1, LBP_QU1, LBP_QU1, LBP_QU1,
+ LBP_QU1, LBP_AL, LBP_EX, LBP_EX, LBP_ID1, LBP_AL, LBP_AL, LBP_AL,
LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL,
LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_AI, LBP_AI,
LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
@@ -1506,11 +1506,11 @@ const lbrkprop_t unilbrkprop =
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
- LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU,
- LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_BA, LBP_BA,
+ LBP_QU1, LBP_QU1, LBP_QU2, LBP_QU3, LBP_QU2, LBP_QU3, LBP_QU1, LBP_QU1,
+ LBP_QU1, LBP_QU2, LBP_QU3, LBP_QU1, LBP_QU2, LBP_QU3, LBP_BA, LBP_BA,
LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_BA,
- LBP_OP1, LBP_BA, LBP_AL, LBP_AL, LBP_QU, LBP_QU, LBP_AL, LBP_AL,
- LBP_QU, LBP_QU, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL,
+ LBP_OP1, LBP_BA, LBP_AL, LBP_AL, LBP_QU2, LBP_QU3, LBP_AL, LBP_AL,
+ LBP_QU2, LBP_QU3, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL,
LBP_OP1, LBP_CL, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_EX, LBP_AL,
LBP_BA, LBP_BA, LBP_AL, LBP_BA, LBP_BA, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_B2, LBP_B2, LBP_BA, LBP_BA, LBP_BA, LBP_AL,
@@ -1569,7 +1569,7 @@ const lbrkprop_t unilbrkprop =
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
- LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
LBP_BA, LBP_CL, LBP_CL, LBP_ID1, LBP_ID1, LBP_NS, LBP_ID1, LBP_ID1,
LBP_OP2, LBP_CL, LBP_OP2, LBP_CL, LBP_OP2, LBP_CL, LBP_OP2, LBP_CL,
LBP_OP2, LBP_CL, LBP_ID1, LBP_ID1, LBP_OP2, LBP_CL, LBP_OP2, LBP_CL,
@@ -1631,7 +1631,7 @@ const lbrkprop_t unilbrkprop =
LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
- LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_ID1,
LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS,
LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS,
LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
@@ -1794,34 +1794,34 @@ const lbrkprop_t unilbrkprop =
LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_XX, LBP_XX, LBP_XX,
- LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
- LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
- LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA,
- LBP_BA, LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
- LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
- LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_VI, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_BA,
+ LBP_BA, LBP_BA, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, LBP_BA,
+ LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
+ LBP_ID1, LBP_ID1, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_ID1, LBP_ID1,
LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
LBP_NU, LBP_NU, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS,
+ LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS,
+ LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS,
+ LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS,
+ LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS,
+ LBP_AS, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
- LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
- LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
- LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_AL, LBP_BA, LBP_BA, LBP_BA,
+ LBP_BA, LBP_BA, LBP_BA, LBP_CM, LBP_BA, LBP_BA, LBP_BA, LBP_BA,
+ LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
+ LBP_ID1, LBP_ID1, LBP_XX, LBP_XX, LBP_ID1, LBP_BA, LBP_BA, LBP_BA,
LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
@@ -2562,22 +2562,22 @@ const lbrkprop_t unilbrkprop =
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
- LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_CM, LBP_CM, LBP_CM, LBP_AP, LBP_AP, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
- LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BA,
- LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
- LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_NU, LBP_NU,
- LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
- LBP_CM, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_AL, LBP_XX, LBP_XX,
- LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_VI, LBP_BA,
+ LBP_BA, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
+ LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
+ LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AS, LBP_AS,
+ LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS,
+ LBP_CM, LBP_AK, LBP_AK, LBP_CM, LBP_CM, LBP_AK, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_GL,
LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -2585,9 +2585,9 @@ const lbrkprop_t unilbrkprop =
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
- LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_BA,
+ LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_NU, LBP_BA, LBP_BA,
LBP_BA, LBP_BA, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
- LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_XX, LBP_XX,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -2658,19 +2658,19 @@ const lbrkprop_t unilbrkprop =
LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
- LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL,
- LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_XX, LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_XX, LBP_XX, LBP_AK,
+ LBP_AK, LBP_XX, LBP_XX, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_XX, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_XX, LBP_AK, LBP_AK, LBP_XX, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_XX, LBP_CM, LBP_CM, LBP_BA, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_CM,
- LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
- LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
- LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_VI, LBP_XX, LBP_XX,
+ LBP_AS, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_BA, LBP_AS, LBP_AS,
+ LBP_AK, LBP_AK, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -2802,18 +2802,18 @@ const lbrkprop_t unilbrkprop =
LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
- LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_XX,
+ LBP_XX, LBP_AK, LBP_XX, LBP_XX, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_XX, LBP_AK, LBP_AK, LBP_XX,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM,
- LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL,
- LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_BA, LBP_BA, LBP_BA, LBP_XX,
+ LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_VI, LBP_AP,
+ LBP_CM, LBP_AP, LBP_CM, LBP_CM, LBP_BA, LBP_BA, LBP_BA, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
- LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
- LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
+ LBP_ID1, LBP_ID1, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -2958,22 +2958,22 @@ const lbrkprop_t unilbrkprop =
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL,
- LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
- LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS,
+ LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS,
+ LBP_AS, LBP_AS, LBP_BA, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BA,
+ LBP_BA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_AP, LBP_CM, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_XX, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_AK,
+ LBP_AK, LBP_AK, LBP_AK, LBP_AK, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
- LBP_CM, LBP_CM, LBP_CM, LBP_BA, LBP_BA, LBP_ID1, LBP_ID1, LBP_ID1,
+ LBP_CM, LBP_CM, LBP_VI, LBP_BA, LBP_BA, LBP_ID1, LBP_ID1, LBP_ID1,
LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
- LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
- LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS, LBP_AS,
+ LBP_AS, LBP_AS, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -3111,7 +3111,7 @@ const lbrkprop_t unilbrkprop =
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP1,
LBP_GL, LBP_GL, LBP_GL, LBP_GL, LBP_GL, LBP_GL, LBP_GL, LBP_OP1,
LBP_CL, LBP_GL, LBP_GL, LBP_GL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL,
LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM,
@@ -4048,8 +4048,8 @@ const lbrkprop_t unilbrkprop =
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
- LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_QU, LBP_QU,
- LBP_QU, LBP_NS, LBP_NS, LBP_NS, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_QU1, LBP_QU1,
+ LBP_QU1, LBP_NS, LBP_NS, LBP_NS, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1,
diff --git a/lib/unilbrk/lbrktables.c b/lib/unilbrk/lbrktables.c
index 2cc72a21..e0595966 100644
--- a/lib/unilbrk/lbrktables.c
+++ b/lib/unilbrk/lbrktables.c
@@ -1,8 +1,8 @@
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
/* Table that encodes several line breaking rules. */
-/* Generated automatically by gen-uni-tables.c for Unicode 15.0.0. */
+/* Generated automatically by gen-uni-tables.c for Unicode 15.1.0. */
-/* Copyright (C) 2001-2022 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -33,43 +33,50 @@
/* Define unilbrkprop, table of line breaking properties. */
#include "unilbrk/lbrkprop2.h"
-const unsigned char unilbrk_table[33][33] =
+const unsigned char unilbrk_table[40][40] =
{
/* after */
- /* WJ GL B2 BA BB HY CL CP1 CP2 EX IN NS OP1 OP2 QU IS NU PO PR SY AL H2 H3 ID1 ID2 JL JV JT HL RI ZWJ EB EM */
-/* WJ */ { P, I, I, I, I, I, P, P, P, P, I, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, },
-/* GL */ { P, I, I, I, I, I, P, P, P, P, I, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, },
-/* B2 */ { P, I, P, I, D, I, P, P, P, P, I, I, D, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, },
-/* BA */ { P, D, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, },
-/* BB */ { P, I, I, I, I, I, P, P, P, P, I, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, },
-/* HY */ { P, D, D, I, D, I, P, P, P, P, I, I, D, D, I, P, I, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, },
-/* CL */ { P, I, D, I, D, I, P, P, P, P, I, P, D, D, I, P, D, I, I, P, D, D, D, D, D, D, D, D, D, D, D, D, D, },
-/* CP1 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, I, I, I, P, I, D, D, D, D, D, D, D, I, D, I, D, D, },
-/* CP2 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, I, P, D, D, D, D, D, D, D, D, D, D, D, D, D, },
-/* EX */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, },
-/* IN */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, },
-/* NS */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, },
-/* OP1 */ { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, },
-/* OP2 */ { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, },
-/* QU */ { P, I, I, I, I, I, P, P, P, P, I, I, P, P, I, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, },
-/* IS */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, I, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, },
-/* NU */ { P, I, D, I, D, I, P, P, P, P, I, I, I, D, I, P, I, I, I, P, I, D, D, D, D, D, D, D, I, D, I, D, D, },
-/* PO */ { P, I, D, I, D, I, P, P, P, P, I, I, I, I, I, P, I, D, D, P, I, D, D, D, D, D, D, D, I, D, I, D, D, },
-/* PR */ { P, I, D, I, D, I, P, P, P, P, I, I, I, I, I, P, I, D, D, P, I, I, I, I, I, I, I, I, I, D, I, I, I, },
-/* SY */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, I, D, D, P, D, D, D, D, D, D, D, D, I, D, D, D, D, },
-/* AL */ { P, I, D, I, D, I, P, P, P, P, I, I, I, D, I, P, I, I, I, P, I, D, D, D, D, D, D, D, I, D, I, D, D, },
-/* H2 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, I, I, D, D, D, D, D, },
-/* H3 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, D, I, D, D, D, D, D, },
-/* ID1 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, },
-/* ID2 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, I, },
-/* JL */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, I, I, D, D, I, I, D, D, D, D, D, D, },
-/* JV */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, I, I, D, D, D, D, D, },
-/* JT */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, D, I, D, D, D, D, D, },
-/* HL */ { P, I, D, I, D, I, P, P, P, P, I, I, I, D, I, P, I, I, I, P, I, D, D, D, D, D, D, D, I, D, I, D, D, },
-/* RI */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, },
-/* ZWJ */ { P, I, D, I, D, I, P, P, P, P, I, I, I, D, I, P, I, I, I, P, I, D, D, I, I, D, D, D, I, D, I, I, I, },
-/* EB */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, I, },
-/* EM */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+ /* WJ GL B2 BA BB HY CL CP1 CP2 EX IN NS OP1 OP2 QU1 QU2 QU3 IS NU PO PR SY AL H2 H3 ID1 ID2 JL JV JT HL AP AK AS VI VF RI ZWJ EB EM */
+/* WJ */ { P, I, I, I, I, I, P, P, P, P, I, I, I, I, I, I, P, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, },
+/* GL */ { P, I, I, I, I, I, P, P, P, P, I, I, I, I, I, I, P, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, },
+/* B2 */ { P, I, P, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* BA */ { P, D, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* BB */ { P, I, I, I, I, I, P, P, P, P, I, I, I, I, I, I, P, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, },
+/* HY */ { P, D, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, I, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* CL */ { P, I, D, I, D, I, P, P, P, P, I, P, D, D, I, I, P, P, D, I, I, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* CP1 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, I, I, I, P, I, D, D, D, D, D, D, D, I, D, D, D, D, D, D, I, D, D, },
+/* CP2 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, I, I, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* EX */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* IN */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* NS */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* OP1 */ { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, },
+/* OP2 */ { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, },
+/* QU1 */ { P, I, I, I, I, I, P, P, P, P, I, I, I, I, I, I, P, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, },
+/* QU2 */ { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, },
+/* QU3 */ { P, I, I, I, I, I, P, P, P, P, I, I, I, I, I, I, P, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, },
+/* IS */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, I, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* NU */ { P, I, D, I, D, I, P, P, P, P, I, I, I, D, I, I, P, P, I, I, I, P, I, D, D, D, D, D, D, D, I, D, D, D, D, D, D, I, D, D, },
+/* PO */ { P, I, D, I, D, I, P, P, P, P, I, I, I, I, I, I, P, P, I, D, D, P, I, D, D, D, D, D, D, D, I, D, D, D, D, D, D, I, D, D, },
+/* PR */ { P, I, D, I, D, I, P, P, P, P, I, I, I, I, I, I, P, P, I, D, D, P, I, I, I, I, I, I, I, I, I, D, D, D, D, D, D, I, I, I, },
+/* SY */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, I, D, D, P, D, D, D, D, D, D, D, D, I, D, D, D, D, D, D, D, D, D, },
+/* AL */ { P, I, D, I, D, I, P, P, P, P, I, I, I, D, I, I, P, P, I, I, I, P, I, D, D, D, D, D, D, D, I, D, D, D, D, D, D, I, D, D, },
+/* H2 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, I, D, P, D, D, D, D, D, D, I, I, D, D, D, D, D, D, D, D, D, D, },
+/* H3 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, I, D, P, D, D, D, D, D, D, D, I, D, D, D, D, D, D, D, D, D, D, },
+/* ID1 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* ID2 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, I, },
+/* JL */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, I, D, P, D, I, I, D, D, I, I, D, D, D, D, D, D, D, D, D, D, D, },
+/* JV */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, I, D, P, D, D, D, D, D, D, I, I, D, D, D, D, D, D, D, D, D, D, },
+/* JT */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, I, D, P, D, D, D, D, D, D, D, I, D, D, D, D, D, D, D, D, D, D, },
+/* HL */ { P, I, D, I, D, I, P, P, P, P, I, I, I, D, I, I, P, P, I, I, I, P, I, D, D, D, D, D, D, D, I, D, D, D, D, D, D, I, D, D, },
+/* AP */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* AK */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* AS */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* VI */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* VF */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* RI */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* ZWJ */ { P, I, D, I, D, I, P, P, P, P, I, I, I, D, I, I, P, P, I, I, I, P, I, D, D, I, I, D, D, D, I, D, D, D, D, D, D, I, I, I, },
+/* EB */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, I, },
+/* EM */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, I, P, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
/* "" */
/* before */
};
diff --git a/lib/unilbrk/lbrktables.h b/lib/unilbrk/lbrktables.h
index 2f23ea8c..85116575 100644
--- a/lib/unilbrk/lbrktables.h
+++ b/lib/unilbrk/lbrktables.h
@@ -1,5 +1,5 @@
/* Line breaking auxiliary tables.
- Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2024 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -29,22 +29,22 @@
enum
{
- /* Values >= 33 are resolved at run time. */
- LBP_BK = 33, /* mandatory break */
- LBP_CR = 34, /* carriage return */
- LBP_LF = 35, /* line feed */
- LBP_CM = 36, /* attached characters and combining marks */
+ /* Values >= 40 are resolved at run time. */
+ LBP_BK = 40, /* mandatory break */
+ LBP_CR = 41, /* carriage return */
+ LBP_LF = 42, /* line feed */
+ LBP_CM = 43, /* attached characters and combining marks */
/*LBP_NL, next line - not used here because it's equivalent to LBP_BK */
/*LBP_SG, surrogates - not used here because they are not characters */
LBP_WJ = 0, /* word joiner */
- LBP_ZW = 37, /* zero width space */
+ LBP_ZW = 44, /* zero width space */
LBP_GL = 1, /* non-breaking (glue) */
- LBP_SP = 38, /* space */
+ LBP_SP = 45, /* space */
LBP_B2 = 2, /* break opportunity before and after */
LBP_BA = 3, /* break opportunity after */
LBP_BB = 4, /* break opportunity before */
LBP_HY = 5, /* hyphen */
- LBP_CB = 39, /* contingent break opportunity */
+ LBP_CB = 46, /* contingent break opportunity */
LBP_CL = 6, /* closing punctuation */
LBP_CP1 = 7, /* closing parenthesis, non-EastAsian character */
LBP_CP2 = 8, /* closing parenthesis, EastAsian character */
@@ -53,29 +53,36 @@ enum
LBP_NS = 11, /* non starter */
LBP_OP1 = 12, /* opening punctuation, non-EastAsian character */
LBP_OP2 = 13, /* opening punctuation, EastAsian character */
- LBP_QU = 14, /* ambiguous quotation */
- LBP_IS = 15, /* infix separator (numeric) */
- LBP_NU = 16, /* numeric */
- LBP_PO = 17, /* postfix (numeric) */
- LBP_PR = 18, /* prefix (numeric) */
- LBP_SY = 19, /* symbols allowing breaks */
- LBP_AI = 40, /* ambiguous (alphabetic or ideograph) */
- LBP_AL = 20, /* ordinary alphabetic and symbol characters */
+ LBP_QU1 = 14, /* ambiguous quotation, neither initial nor final punctuation */
+ LBP_QU2 = 15, /* ambiguous quotation, initial punctuation */
+ LBP_QU3 = 16, /* ambiguous quotation, final punctuation */
+ LBP_IS = 17, /* infix separator (numeric) */
+ LBP_NU = 18, /* numeric */
+ LBP_PO = 19, /* postfix (numeric) */
+ LBP_PR = 20, /* prefix (numeric) */
+ LBP_SY = 21, /* symbols allowing breaks */
+ LBP_AI = 47, /* ambiguous (alphabetic or ideograph) */
+ LBP_AL = 22, /* ordinary alphabetic and symbol characters */
/*LBP_CJ, conditional Japanese starter, resolved to NS */
- LBP_H2 = 21, /* Hangul LV syllable */
- LBP_H3 = 22, /* Hangul LVT syllable */
- LBP_HL = 28, /* Hebrew letter */
- LBP_ID1 = 23, /* ideographic */
- LBP_ID2 = 24, /* ideographic and potential future emoji */
- LBP_JL = 25, /* Hangul L Jamo */
- LBP_JV = 26, /* Hangul V Jamo */
- LBP_JT = 27, /* Hangul T Jamo */
- LBP_RI = 29, /* regional indicator */
- LBP_SA = 41, /* complex context (South East Asian) */
- LBP_ZWJ = 30, /* zero width joiner */
- LBP_EB = 31, /* emoji base */
- LBP_EM = 32, /* emoji modifier */
- LBP_XX = 42, /* unknown */
+ LBP_H2 = 23, /* Hangul LV syllable */
+ LBP_H3 = 24, /* Hangul LVT syllable */
+ LBP_HL = 30, /* Hebrew letter */
+ LBP_ID1 = 25, /* ideographic */
+ LBP_ID2 = 26, /* ideographic and potential future emoji */
+ LBP_JL = 27, /* Hangul L Jamo */
+ LBP_JV = 28, /* Hangul V Jamo */
+ LBP_JT = 29, /* Hangul T Jamo */
+ LBP_AP = 31, /* Brahmic scripts: pre-base repha */
+ LBP_AK = 32, /* Brahmic scripts: consonants */
+ LBP_AS = 33, /* Brahmic scripts: independent vowels */
+ LBP_VI = 34, /* Brahmic scripts: conjoining viramas */
+ LBP_VF = 35, /* Brahmic scripts: viramas for final consonants */
+ LBP_RI = 36, /* regional indicator */
+ LBP_SA = 48, /* complex context (South East Asian) */
+ LBP_ZWJ = 37, /* zero width joiner */
+ LBP_EB = 38, /* emoji base */
+ LBP_EM = 39, /* emoji modifier */
+ LBP_XX = 49, /* unknown */
/* Artificial values that exist only at runtime, not in the tables. */
LBP_HL_BA = 100
};
@@ -108,7 +115,7 @@ unilbrkprop_lookup (ucs4_t uc)
#define I 2 /* indirect break opportunity, '%' in table 7.3 of UTR #14 */
#define P 3 /* prohibited break, '^' in table 7.3 of UTR #14 */
-extern const unsigned char unilbrk_table[33][33];
+extern const unsigned char unilbrk_table[40][40];
/* We don't support line breaking of complex-context dependent characters
(Thai, Lao, Myanmar, Khmer) yet, because it requires dictionary lookup. */
diff --git a/lib/unilbrk/u16-possible-linebreaks.c b/lib/unilbrk/u16-possible-linebreaks.c
index 2b79d6aa..6a9c15b7 100644
--- a/lib/unilbrk/u16-possible-linebreaks.c
+++ b/lib/unilbrk/u16-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-16 strings.
- Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2024 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -62,6 +62,7 @@ u16_possible_linebreaks_loop (const uint16_t *s, size_t n, const char *encoding,
{
ucs4_t uc;
int count = u16_mbtouc_unsafe (&uc, s, s_end - s);
+ s += count;
int prop = unilbrkprop_lookup (uc);
if (prop == LBP_BK || prop == LBP_LF || prop == LBP_CR)
@@ -96,6 +97,62 @@ u16_possible_linebreaks_loop (const uint16_t *s, size_t n, const char *encoding,
/* This is arbitrary. */
prop = LBP_AL;
break;
+ case LBP_QU2:
+ /* For (LB15a): Replace LBP_QU2 with LBP_QU1 if the previous
+ character's line break property was not one of
+ BK, CR, LF, OP, QU, GL, SP, ZW. */
+ switch (prev_prop)
+ {
+ case LBP_BK:
+ case LBP_CR:
+ case LBP_LF:
+ case LBP_OP1: case LBP_OP2:
+ case LBP_QU1: case LBP_QU2: case LBP_QU3:
+ case LBP_GL:
+ case LBP_SP:
+ case LBP_ZW:
+ break;
+ default:
+ prop = LBP_QU1;
+ break;
+ }
+ break;
+ case LBP_QU3:
+ /* For (LB15b): Replace LBP_QU3 with LBP_QU1 if the next
+ character's line break property is not one of
+ BK, CR, LF, SP, GL, WJ, CL, QU, CP, EX, IS, SY, ZW. */
+ {
+ int next_prop;
+ if (s < s_end)
+ {
+ ucs4_t next_uc;
+ (void) u16_mbtouc_unsafe (&next_uc, s, s_end - s);
+ next_prop = unilbrkprop_lookup (next_uc);
+ }
+ else
+ next_prop = LBP_BK;
+ switch (next_prop)
+ {
+ case LBP_BK:
+ case LBP_CR:
+ case LBP_LF:
+ case LBP_SP:
+ case LBP_GL:
+ case LBP_WJ:
+ case LBP_CL:
+ case LBP_QU1: case LBP_QU2: case LBP_QU3:
+ case LBP_CP1: case LBP_CP2:
+ case LBP_EX:
+ case LBP_IS:
+ case LBP_SY:
+ case LBP_ZW:
+ break;
+ default:
+ prop = LBP_QU1;
+ break;
+ }
+ }
+ break;
}
/* Deal with spaces and combining characters. */
@@ -209,14 +266,16 @@ u16_possible_linebreaks_loop (const uint16_t *s, size_t n, const char *encoding,
else
ri_count = 0;
- s += count;
p += count;
}
while (s < s_end);
}
}
-#undef u16_possible_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring. */
+
+# undef u16_possible_linebreaks
void
u16_possible_linebreaks (const uint16_t *s, size_t n, const char *encoding,
@@ -225,6 +284,8 @@ u16_possible_linebreaks (const uint16_t *s, size_t n, const char *encoding,
u16_possible_linebreaks_loop (s, n, encoding, -1, p);
}
+#endif
+
void
u16_possible_linebreaks_v2 (const uint16_t *s, size_t n, const char *encoding,
char *p)
diff --git a/lib/unilbrk/u16-width-linebreaks.c b/lib/unilbrk/u16-width-linebreaks.c
index fed5282c..cdf46111 100644
--- a/lib/unilbrk/u16-width-linebreaks.c
+++ b/lib/unilbrk/u16-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-16 strings.
- Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2024 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -118,7 +118,10 @@ u16_width_linebreaks_internal (const uint16_t *s, size_t n,
return last_column + piece_width;
}
-#undef u16_width_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring. */
+
+# undef u16_width_linebreaks
int
u16_width_linebreaks (const uint16_t *s, size_t n,
@@ -131,6 +134,8 @@ u16_width_linebreaks (const uint16_t *s, size_t n,
o, encoding, -1, p);
}
+#endif
+
int
u16_width_linebreaks_v2 (const uint16_t *s, size_t n,
int width, int start_column, int at_end_columns,
diff --git a/lib/unilbrk/u32-possible-linebreaks.c b/lib/unilbrk/u32-possible-linebreaks.c
index 05fda96e..eb28891d 100644
--- a/lib/unilbrk/u32-possible-linebreaks.c
+++ b/lib/unilbrk/u32-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-32 strings.
- Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2024 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -56,6 +56,7 @@ u32_possible_linebreaks_loop (const uint32_t *s, size_t n, const char *encoding,
do
{
ucs4_t uc = *s;
+ s++;
int prop = unilbrkprop_lookup (uc);
if (prop == LBP_BK || prop == LBP_LF || prop == LBP_CR)
@@ -90,6 +91,61 @@ u32_possible_linebreaks_loop (const uint32_t *s, size_t n, const char *encoding,
/* This is arbitrary. */
prop = LBP_AL;
break;
+ case LBP_QU2:
+ /* For (LB15a): Replace LBP_QU2 with LBP_QU1 if the previous
+ character's line break property was not one of
+ BK, CR, LF, OP, QU, GL, SP, ZW. */
+ switch (prev_prop)
+ {
+ case LBP_BK:
+ case LBP_CR:
+ case LBP_LF:
+ case LBP_OP1: case LBP_OP2:
+ case LBP_QU1: case LBP_QU2: case LBP_QU3:
+ case LBP_GL:
+ case LBP_SP:
+ case LBP_ZW:
+ break;
+ default:
+ prop = LBP_QU1;
+ break;
+ }
+ break;
+ case LBP_QU3:
+ /* For (LB15b): Replace LBP_QU3 with LBP_QU1 if the next
+ character's line break property is not one of
+ BK, CR, LF, SP, GL, WJ, CL, QU, CP, EX, IS, SY, ZW. */
+ {
+ int next_prop;
+ if (s < s_end)
+ {
+ ucs4_t next_uc = *s;
+ next_prop = unilbrkprop_lookup (next_uc);
+ }
+ else
+ next_prop = LBP_BK;
+ switch (next_prop)
+ {
+ case LBP_BK:
+ case LBP_CR:
+ case LBP_LF:
+ case LBP_SP:
+ case LBP_GL:
+ case LBP_WJ:
+ case LBP_CL:
+ case LBP_QU1: case LBP_QU2: case LBP_QU3:
+ case LBP_CP1: case LBP_CP2:
+ case LBP_EX:
+ case LBP_IS:
+ case LBP_SY:
+ case LBP_ZW:
+ break;
+ default:
+ prop = LBP_QU1;
+ break;
+ }
+ }
+ break;
}
/* Deal with spaces and combining characters. */
@@ -203,14 +259,16 @@ u32_possible_linebreaks_loop (const uint32_t *s, size_t n, const char *encoding,
else
ri_count = 0;
- s++;
p++;
}
while (s < s_end);
}
}
-#undef u32_possible_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring. */
+
+# undef u32_possible_linebreaks
void
u32_possible_linebreaks (const uint32_t *s, size_t n, const char *encoding,
@@ -219,6 +277,8 @@ u32_possible_linebreaks (const uint32_t *s, size_t n, const char *encoding,
u32_possible_linebreaks_loop (s, n, encoding, -1, p);
}
+#endif
+
void
u32_possible_linebreaks_v2 (const uint32_t *s, size_t n, const char *encoding,
char *p)
diff --git a/lib/unilbrk/u32-width-linebreaks.c b/lib/unilbrk/u32-width-linebreaks.c
index 554ef915..c731ff5e 100644
--- a/lib/unilbrk/u32-width-linebreaks.c
+++ b/lib/unilbrk/u32-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-32 strings.
- Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2024 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -116,7 +116,10 @@ u32_width_linebreaks_internal (const uint32_t *s, size_t n,
return last_column + piece_width;
}
-#undef u32_width_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring. */
+
+# undef u32_width_linebreaks
int
u32_width_linebreaks (const uint32_t *s, size_t n,
@@ -129,6 +132,8 @@ u32_width_linebreaks (const uint32_t *s, size_t n,
o, encoding, -1, p);
}
+#endif
+
int
u32_width_linebreaks_v2 (const uint32_t *s, size_t n,
int width, int start_column, int at_end_columns,
diff --git a/lib/unilbrk/u8-possible-linebreaks.c b/lib/unilbrk/u8-possible-linebreaks.c
index bc19f801..72d0749b 100644
--- a/lib/unilbrk/u8-possible-linebreaks.c
+++ b/lib/unilbrk/u8-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-8 strings.
- Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2024 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -62,6 +62,7 @@ u8_possible_linebreaks_loop (const uint8_t *s, size_t n, const char *encoding,
{
ucs4_t uc;
int count = u8_mbtouc_unsafe (&uc, s, s_end - s);
+ s += count;
int prop = unilbrkprop_lookup (uc);
if (prop == LBP_BK || prop == LBP_LF || prop == LBP_CR)
@@ -96,6 +97,62 @@ u8_possible_linebreaks_loop (const uint8_t *s, size_t n, const char *encoding,
/* This is arbitrary. */
prop = LBP_AL;
break;
+ case LBP_QU2:
+ /* For (LB15a): Replace LBP_QU2 with LBP_QU1 if the previous
+ character's line break property was not one of
+ BK, CR, LF, OP, QU, GL, SP, ZW. */
+ switch (prev_prop)
+ {
+ case LBP_BK:
+ case LBP_CR:
+ case LBP_LF:
+ case LBP_OP1: case LBP_OP2:
+ case LBP_QU1: case LBP_QU2: case LBP_QU3:
+ case LBP_GL:
+ case LBP_SP:
+ case LBP_ZW:
+ break;
+ default:
+ prop = LBP_QU1;
+ break;
+ }
+ break;
+ case LBP_QU3:
+ /* For (LB15b): Replace LBP_QU3 with LBP_QU1 if the next
+ character's line break property is not one of
+ BK, CR, LF, SP, GL, WJ, CL, QU, CP, EX, IS, SY, ZW. */
+ {
+ int next_prop;
+ if (s < s_end)
+ {
+ ucs4_t next_uc;
+ (void) u8_mbtouc_unsafe (&next_uc, s, s_end - s);
+ next_prop = unilbrkprop_lookup (next_uc);
+ }
+ else
+ next_prop = LBP_BK;
+ switch (next_prop)
+ {
+ case LBP_BK:
+ case LBP_CR:
+ case LBP_LF:
+ case LBP_SP:
+ case LBP_GL:
+ case LBP_WJ:
+ case LBP_CL:
+ case LBP_QU1: case LBP_QU2: case LBP_QU3:
+ case LBP_CP1: case LBP_CP2:
+ case LBP_EX:
+ case LBP_IS:
+ case LBP_SY:
+ case LBP_ZW:
+ break;
+ default:
+ prop = LBP_QU1;
+ break;
+ }
+ }
+ break;
}
/* Deal with spaces and combining characters. */
@@ -209,14 +266,16 @@ u8_possible_linebreaks_loop (const uint8_t *s, size_t n, const char *encoding,
else
ri_count = 0;
- s += count;
p += count;
}
while (s < s_end);
}
}
-#undef u8_possible_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring. */
+
+# undef u8_possible_linebreaks
void
u8_possible_linebreaks (const uint8_t *s, size_t n, const char *encoding,
@@ -225,6 +284,8 @@ u8_possible_linebreaks (const uint8_t *s, size_t n, const char *encoding,
u8_possible_linebreaks_loop (s, n, encoding, -1, p);
}
+#endif
+
void
u8_possible_linebreaks_v2 (const uint8_t *s, size_t n, const char *encoding,
char *p)
diff --git a/lib/unilbrk/u8-width-linebreaks.c b/lib/unilbrk/u8-width-linebreaks.c
index 9e11ca87..f86ce4a9 100644
--- a/lib/unilbrk/u8-width-linebreaks.c
+++ b/lib/unilbrk/u8-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-8 strings.
- Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2024 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -118,7 +118,10 @@ u8_width_linebreaks_internal (const uint8_t *s, size_t n,
return last_column + piece_width;
}
-#undef u8_width_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring. */
+
+# undef u8_width_linebreaks
int
u8_width_linebreaks (const uint8_t *s, size_t n,
@@ -131,6 +134,8 @@ u8_width_linebreaks (const uint8_t *s, size_t n,
o, encoding, -1, p);
}
+#endif
+
int
u8_width_linebreaks_v2 (const uint8_t *s, size_t n,
int width, int start_column, int at_end_columns,
diff --git a/lib/unilbrk/ulc-common.c b/lib/unilbrk/ulc-common.c
index f859dae6..2eb0fc38 100644
--- a/lib/unilbrk/ulc-common.c
+++ b/lib/unilbrk/ulc-common.c
@@ -1,5 +1,5 @@
/* Line breaking auxiliary functions.
- Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2024 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unilbrk/ulc-common.h b/lib/unilbrk/ulc-common.h
index d4e422e5..d2d9f2ec 100644
--- a/lib/unilbrk/ulc-common.h
+++ b/lib/unilbrk/ulc-common.h
@@ -1,5 +1,5 @@
/* Line breaking auxiliary functions.
- Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2024 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unilbrk/ulc-possible-linebreaks.c b/lib/unilbrk/ulc-possible-linebreaks.c
index 7b81685e..4be1f987 100644
--- a/lib/unilbrk/ulc-possible-linebreaks.c
+++ b/lib/unilbrk/ulc-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of strings.
- Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2024 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -132,7 +132,10 @@ ulc_possible_linebreaks_internal (const char *s, size_t n, const char *encoding,
}
}
-#undef ulc_possible_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring. */
+
+# undef ulc_possible_linebreaks
void
ulc_possible_linebreaks (const char *s, size_t n, const char *encoding,
@@ -141,6 +144,8 @@ ulc_possible_linebreaks (const char *s, size_t n, const char *encoding,
ulc_possible_linebreaks_internal (s, n, encoding, -1, p);
}
+#endif
+
void
ulc_possible_linebreaks_v2 (const char *s, size_t n, const char *encoding,
char *p)
diff --git a/lib/unilbrk/ulc-width-linebreaks.c b/lib/unilbrk/ulc-width-linebreaks.c
index dc72306c..bae6a57f 100644
--- a/lib/unilbrk/ulc-width-linebreaks.c
+++ b/lib/unilbrk/ulc-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of strings.
- Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2024 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -151,7 +151,10 @@ ulc_width_linebreaks_internal (const char *s, size_t n,
return start_column;
}
-#undef ulc_width_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring. */
+
+# undef ulc_width_linebreaks
int
ulc_width_linebreaks (const char *s, size_t n,
@@ -164,6 +167,8 @@ ulc_width_linebreaks (const char *s, size_t n,
o, encoding, -1, p);
}
+#endif
+
int
ulc_width_linebreaks_v2 (const char *s, size_t n,
int width, int start_column, int at_end_columns,