summaryrefslogtreecommitdiff
path: root/lib/unicase
diff options
context:
space:
mode:
Diffstat (limited to 'lib/unicase')
-rw-r--r--lib/unicase/cased.c2
-rw-r--r--lib/unicase/casefold.h2
-rw-r--r--lib/unicase/caseprop.h2
-rw-r--r--lib/unicase/context.h2
-rw-r--r--lib/unicase/empty-prefix-context.c2
-rw-r--r--lib/unicase/empty-suffix-context.c2
-rw-r--r--lib/unicase/ignorable.c2
-rw-r--r--lib/unicase/invariant.h2
-rw-r--r--lib/unicase/locale-language.c2
-rw-r--r--lib/unicase/locale-languages.h4
-rw-r--r--lib/unicase/simple-mapping.h2
-rw-r--r--lib/unicase/special-casing-table.h246
-rw-r--r--lib/unicase/special-casing.c2
-rw-r--r--lib/unicase/special-casing.in.h2
-rw-r--r--lib/unicase/tocasefold.c2
-rw-r--r--lib/unicase/tolower.c2
-rw-r--r--lib/unicase/totitle.c2
-rw-r--r--lib/unicase/toupper.c2
-rw-r--r--lib/unicase/u-casecmp.h2
-rw-r--r--lib/unicase/u-casecoll.h2
-rw-r--r--lib/unicase/u-casefold.h2
-rw-r--r--lib/unicase/u-casemap.h2
-rw-r--r--lib/unicase/u-casexfrm.h2
-rw-r--r--lib/unicase/u-ct-casefold.h2
-rw-r--r--lib/unicase/u-ct-totitle.h2
-rw-r--r--lib/unicase/u-is-cased.h2
-rw-r--r--lib/unicase/u-is-invariant.h2
-rw-r--r--lib/unicase/u-prefix-context.h101
-rw-r--r--lib/unicase/u-suffix-context.h99
-rw-r--r--lib/unicase/u-totitle.h2
-rw-r--r--lib/unicase/u16-casecmp.c2
-rw-r--r--lib/unicase/u16-casecoll.c2
-rw-r--r--lib/unicase/u16-casefold.c2
-rw-r--r--lib/unicase/u16-casemap.c2
-rw-r--r--lib/unicase/u16-casexfrm.c2
-rw-r--r--lib/unicase/u16-ct-casefold.c2
-rw-r--r--lib/unicase/u16-ct-tolower.c2
-rw-r--r--lib/unicase/u16-ct-totitle.c2
-rw-r--r--lib/unicase/u16-ct-toupper.c2
-rw-r--r--lib/unicase/u16-is-cased.c2
-rw-r--r--lib/unicase/u16-is-casefolded.c2
-rw-r--r--lib/unicase/u16-is-invariant.c2
-rw-r--r--lib/unicase/u16-is-lowercase.c2
-rw-r--r--lib/unicase/u16-is-titlecase.c2
-rw-r--r--lib/unicase/u16-is-uppercase.c2
-rw-r--r--lib/unicase/u16-prefix-context.c42
-rw-r--r--lib/unicase/u16-suffix-context.c41
-rw-r--r--lib/unicase/u16-tolower.c2
-rw-r--r--lib/unicase/u16-totitle.c2
-rw-r--r--lib/unicase/u16-toupper.c2
-rw-r--r--lib/unicase/u32-casecmp.c2
-rw-r--r--lib/unicase/u32-casecoll.c2
-rw-r--r--lib/unicase/u32-casefold.c2
-rw-r--r--lib/unicase/u32-casemap.c2
-rw-r--r--lib/unicase/u32-casexfrm.c2
-rw-r--r--lib/unicase/u32-ct-casefold.c2
-rw-r--r--lib/unicase/u32-ct-tolower.c2
-rw-r--r--lib/unicase/u32-ct-totitle.c2
-rw-r--r--lib/unicase/u32-ct-toupper.c2
-rw-r--r--lib/unicase/u32-is-cased.c2
-rw-r--r--lib/unicase/u32-is-casefolded.c2
-rw-r--r--lib/unicase/u32-is-invariant.c2
-rw-r--r--lib/unicase/u32-is-lowercase.c2
-rw-r--r--lib/unicase/u32-is-titlecase.c2
-rw-r--r--lib/unicase/u32-is-uppercase.c2
-rw-r--r--lib/unicase/u32-prefix-context.c42
-rw-r--r--lib/unicase/u32-suffix-context.c41
-rw-r--r--lib/unicase/u32-tolower.c2
-rw-r--r--lib/unicase/u32-totitle.c2
-rw-r--r--lib/unicase/u32-toupper.c2
-rw-r--r--lib/unicase/u8-casecmp.c2
-rw-r--r--lib/unicase/u8-casecoll.c2
-rw-r--r--lib/unicase/u8-casefold.c2
-rw-r--r--lib/unicase/u8-casemap.c2
-rw-r--r--lib/unicase/u8-casexfrm.c2
-rw-r--r--lib/unicase/u8-ct-casefold.c2
-rw-r--r--lib/unicase/u8-ct-tolower.c2
-rw-r--r--lib/unicase/u8-ct-totitle.c2
-rw-r--r--lib/unicase/u8-ct-toupper.c2
-rw-r--r--lib/unicase/u8-is-cased.c2
-rw-r--r--lib/unicase/u8-is-casefolded.c2
-rw-r--r--lib/unicase/u8-is-invariant.c2
-rw-r--r--lib/unicase/u8-is-lowercase.c2
-rw-r--r--lib/unicase/u8-is-titlecase.c2
-rw-r--r--lib/unicase/u8-is-uppercase.c2
-rw-r--r--lib/unicase/u8-prefix-context.c42
-rw-r--r--lib/unicase/u8-suffix-context.c41
-rw-r--r--lib/unicase/u8-tolower.c2
-rw-r--r--lib/unicase/u8-totitle.c2
-rw-r--r--lib/unicase/u8-toupper.c2
-rw-r--r--lib/unicase/ulc-casecmp.c2
-rw-r--r--lib/unicase/ulc-casecoll.c2
-rw-r--r--lib/unicase/ulc-casexfrm.c2
-rw-r--r--lib/unicase/unicasemap.h2
94 files changed, 658 insertions, 209 deletions
diff --git a/lib/unicase/cased.c b/lib/unicase/cased.c
index cb7fb6d..51b821e 100644
--- a/lib/unicase/cased.c
+++ b/lib/unicase/cased.c
@@ -1,5 +1,5 @@
/* Test whether a Unicode character is cased.
- Copyright (C) 2002, 2006-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/casefold.h b/lib/unicase/casefold.h
index 5dec959..6e6fad4 100644
--- a/lib/unicase/casefold.h
+++ b/lib/unicase/casefold.h
@@ -1,5 +1,5 @@
/* Casefolding of Unicode characters.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/caseprop.h b/lib/unicase/caseprop.h
index 6c630ab..7b7ece4 100644
--- a/lib/unicase/caseprop.h
+++ b/lib/unicase/caseprop.h
@@ -1,5 +1,5 @@
/* Case related properties of Unicode characters.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/context.h b/lib/unicase/context.h
index bc2b353..e99e8fc 100644
--- a/lib/unicase/context.h
+++ b/lib/unicase/context.h
@@ -1,5 +1,5 @@
/* Case-mapping contexts of UTF-8/UTF-16/UTF-32 substring.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/empty-prefix-context.c b/lib/unicase/empty-prefix-context.c
index 1b65766..979d067 100644
--- a/lib/unicase/empty-prefix-context.c
+++ b/lib/unicase/empty-prefix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of empty prefix string.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/empty-suffix-context.c b/lib/unicase/empty-suffix-context.c
index 7eb34d1..f63ed7f 100644
--- a/lib/unicase/empty-suffix-context.c
+++ b/lib/unicase/empty-suffix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of empty suffix string.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/ignorable.c b/lib/unicase/ignorable.c
index 47d7787..24cf895 100644
--- a/lib/unicase/ignorable.c
+++ b/lib/unicase/ignorable.c
@@ -1,5 +1,5 @@
/* Test whether a Unicode character is case-ignorable.
- Copyright (C) 2002, 2006-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/invariant.h b/lib/unicase/invariant.h
index f139f04..0f260ee 100644
--- a/lib/unicase/invariant.h
+++ b/lib/unicase/invariant.h
@@ -1,5 +1,5 @@
/* Internal functions for Unicode character case mappings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/locale-language.c b/lib/unicase/locale-language.c
index 6ff8010..f562ee9 100644
--- a/lib/unicase/locale-language.c
+++ b/lib/unicase/locale-language.c
@@ -1,5 +1,5 @@
/* Language code of current locale.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/locale-languages.h b/lib/unicase/locale-languages.h
index 3a4add3..70a5d7b 100644
--- a/lib/unicase/locale-languages.h
+++ b/lib/unicase/locale-languages.h
@@ -1,5 +1,5 @@
/* ANSI-C code produced by gperf version 3.1 */
-/* Command-line: gperf -m 10 ../../lib/unicase/locale-languages.gperf */
+/* Command-line: gperf -m 10 ./unicase/locale-languages.gperf */
/* Computed positions: -k'1-3' */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -1026,7 +1026,7 @@ uc_locale_languages_lookup (register const char *str, register size_t len)
}
return 0;
}
-#line 271 "../../lib/unicase/locale-languages.gperf"
+#line 271 "./unicase/locale-languages.gperf"
/*
* Local Variables:
diff --git a/lib/unicase/simple-mapping.h b/lib/unicase/simple-mapping.h
index 8574b70..249355f 100644
--- a/lib/unicase/simple-mapping.h
+++ b/lib/unicase/simple-mapping.h
@@ -1,5 +1,5 @@
/* Simple case mapping for Unicode characters.
- Copyright (C) 2002, 2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/special-casing-table.h b/lib/unicase/special-casing-table.h
index 8417e0a..4943541 100644
--- a/lib/unicase/special-casing-table.h
+++ b/lib/unicase/special-casing-table.h
@@ -1,5 +1,5 @@
/* ANSI-C code produced by gperf version 3.1 */
-/* Command-line: gperf -m 10 ../../lib/unicase/special-casing-table.gperf */
+/* Command-line: gperf -m 10 ./unicase/special-casing-table.gperf */
/* Computed positions: -k'1-3' */
@@ -70,249 +70,249 @@ gl_unicase_special_lookup (register const char *str, register size_t len)
};
static const struct special_casing_rule wordlist[] =
{
-#line 126 "../../lib/unicase/special-casing-table.gperf"
+#line 126 "./unicase/special-casing-table.gperf"
{"\373\001\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0049, 0 }, { 0xFB01, 0, 0 }, { 0x0046, 0x0069, 0 }, { 0x0066, 0x0069, 0 }},
-#line 31 "../../lib/unicase/special-casing-table.gperf"
+#line 31 "./unicase/special-casing-table.gperf"
{"\001I\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x02BC, 0x004E, 0 }, { 0x0149, 0, 0 }, { 0x02BC, 0x004E, 0 }, { 0x02BC, 0x006E, 0 }},
-#line 125 "../../lib/unicase/special-casing-table.gperf"
+#line 125 "./unicase/special-casing-table.gperf"
{"\373\000\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0046, 0 }, { 0xFB00, 0, 0 }, { 0x0046, 0x0066, 0 }, { 0x0066, 0x0066, 0 }},
-#line 15 "../../lib/unicase/special-casing-table.gperf"
+#line 15 "./unicase/special-casing-table.gperf"
{"\000I\000", 1, SCC_MORE_ABOVE , { 'l', 't' }, { 0x0049, 0, 0 }, { 0x0069, 0x0307, 0 }, { 0x0049, 0, 0 }, { 0x0069, 0, 0 }},
-#line 127 "../../lib/unicase/special-casing-table.gperf"
+#line 127 "./unicase/special-casing-table.gperf"
{"\373\002\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x004C, 0 }, { 0xFB02, 0, 0 }, { 0x0046, 0x006C, 0 }, { 0x0066, 0x006C, 0 }},
-#line 128 "../../lib/unicase/special-casing-table.gperf"
+#line 128 "./unicase/special-casing-table.gperf"
{"\373\003\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0046, 0x0049 }, { 0xFB03, 0, 0 }, { 0x0046, 0x0066, 0x0069 }, { 0x0066, 0x0066, 0x0069 }},
-#line 28 "../../lib/unicase/special-casing-table.gperf"
+#line 28 "./unicase/special-casing-table.gperf"
{"\0010\000", 1, SCC_ALWAYS , { 't', 'r' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }},
-#line 16 "../../lib/unicase/special-casing-table.gperf"
+#line 16 "./unicase/special-casing-table.gperf"
{"\000I\001", 1, -SCC_BEFORE_DOT , { 't', 'r' }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }},
-#line 17 "../../lib/unicase/special-casing-table.gperf"
+#line 17 "./unicase/special-casing-table.gperf"
{"\000I\002", 1, -SCC_BEFORE_DOT , { 'a', 'z' }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }},
-#line 33 "../../lib/unicase/special-casing-table.gperf"
+#line 33 "./unicase/special-casing-table.gperf"
{"\003\007\000", 1, SCC_AFTER_SOFT_DOTTED, { 'l', 't' }, { 0, 0, 0 }, { 0x0307, 0, 0 }, { 0, 0, 0 }, { 0x0307, 0, 0 }},
-#line 29 "../../lib/unicase/special-casing-table.gperf"
+#line 29 "./unicase/special-casing-table.gperf"
{"\0010\001", 1, SCC_ALWAYS , { 'a', 'z' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }},
-#line 30 "../../lib/unicase/special-casing-table.gperf"
+#line 30 "./unicase/special-casing-table.gperf"
{"\0010\002", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0130, 0, 0 }, { 0x0069, 0x0307, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0x0307, 0 }},
-#line 130 "../../lib/unicase/special-casing-table.gperf"
+#line 130 "./unicase/special-casing-table.gperf"
{"\373\005\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0053, 0x0054, 0 }, { 0xFB05, 0, 0 }, { 0x0053, 0x0074, 0 }, { 0x0073, 0x0074, 0 }},
-#line 34 "../../lib/unicase/special-casing-table.gperf"
+#line 34 "./unicase/special-casing-table.gperf"
{"\003\007\001", 1, SCC_AFTER_I , { 't', 'r' }, { 0x0307, 0, 0 }, { 0, 0, 0 }, { 0x0307, 0, 0 }, { 0x0307, 0, 0 }},
-#line 35 "../../lib/unicase/special-casing-table.gperf"
+#line 35 "./unicase/special-casing-table.gperf"
{"\003\007\002", 0, SCC_AFTER_I , { 'a', 'z' }, { 0x0307, 0, 0 }, { 0, 0, 0 }, { 0x0307, 0, 0 }, { 0x0307, 0, 0 }},
-#line 19 "../../lib/unicase/special-casing-table.gperf"
+#line 19 "./unicase/special-casing-table.gperf"
{"\000I\004", 0, SCC_ALWAYS , { 'a', 'z' }, { 0x0049, 0, 0 }, { 0x0069, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }},
-#line 23 "../../lib/unicase/special-casing-table.gperf"
+#line 23 "./unicase/special-casing-table.gperf"
{"\000\314\000", 0, SCC_ALWAYS , { 'l', 't' }, { 0x00CC, 0, 0 }, { 0x0069, 0x0307, 0x0300 }, { 0x00CC, 0, 0 }, { 0x00EC, 0, 0 }},
-#line 109 "../../lib/unicase/special-casing-table.gperf"
+#line 109 "./unicase/special-casing-table.gperf"
{"\037\314\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0399, 0 }, { 0x1FC3, 0, 0 }, { 0x1FCC, 0, 0 }, { 0x03B7, 0x03B9, 0 }},
-#line 85 "../../lib/unicase/special-casing-table.gperf"
+#line 85 "./unicase/special-casing-table.gperf"
{"\037\243\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6B, 0x0399, 0 }, { 0x1FA3, 0, 0 }, { 0x1FAB, 0, 0 }, { 0x1F63, 0x03B9, 0 }},
-#line 80 "../../lib/unicase/special-casing-table.gperf"
+#line 80 "./unicase/special-casing-table.gperf"
{"\037\236\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2E, 0x0399, 0 }, { 0x1F96, 0, 0 }, { 0x1F9E, 0, 0 }, { 0x1F26, 0x03B9, 0 }},
-#line 37 "../../lib/unicase/special-casing-table.gperf"
+#line 37 "./unicase/special-casing-table.gperf"
{"\003\243\000", 0, SCC_FINAL_SIGMA , { '\0', '\0' }, { 0x03A3, 0, 0 }, { 0x03C2, 0, 0 }, { 0x03A3, 0, 0 }, { 0x03C3, 0, 0 }},
-#line 45 "../../lib/unicase/special-casing-table.gperf"
+#line 45 "./unicase/special-casing-table.gperf"
{"\036\236\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1E9E, 0, 0 }, { 0x00DF, 0, 0 }, { 0x1E9E, 0, 0 }, { 0x0073, 0x0073, 0 }},
-#line 76 "../../lib/unicase/special-casing-table.gperf"
+#line 76 "./unicase/special-casing-table.gperf"
{"\037\232\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2A, 0x0399, 0 }, { 0x1F92, 0, 0 }, { 0x1F9A, 0, 0 }, { 0x1F22, 0x03B9, 0 }},
-#line 75 "../../lib/unicase/special-casing-table.gperf"
+#line 75 "./unicase/special-casing-table.gperf"
{"\037\231\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F29, 0x0399, 0 }, { 0x1F91, 0, 0 }, { 0x1F99, 0, 0 }, { 0x1F21, 0x03B9, 0 }},
-#line 44 "../../lib/unicase/special-casing-table.gperf"
+#line 44 "./unicase/special-casing-table.gperf"
{"\036\232\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0041, 0x02BE, 0 }, { 0x1E9A, 0, 0 }, { 0x0041, 0x02BE, 0 }, { 0x0061, 0x02BE, 0 }},
-#line 43 "../../lib/unicase/special-casing-table.gperf"
+#line 43 "./unicase/special-casing-table.gperf"
{"\036\231\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0059, 0x030A, 0 }, { 0x1E99, 0, 0 }, { 0x0059, 0x030A, 0 }, { 0x0079, 0x030A, 0 }},
-#line 74 "../../lib/unicase/special-casing-table.gperf"
+#line 74 "./unicase/special-casing-table.gperf"
{"\037\230\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F28, 0x0399, 0 }, { 0x1F90, 0, 0 }, { 0x1F98, 0, 0 }, { 0x1F20, 0x03B9, 0 }},
-#line 73 "../../lib/unicase/special-casing-table.gperf"
+#line 73 "./unicase/special-casing-table.gperf"
{"\037\227\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2F, 0x0399, 0 }, { 0x1F97, 0, 0 }, { 0x1F9F, 0, 0 }, { 0x1F27, 0x03B9, 0 }},
-#line 42 "../../lib/unicase/special-casing-table.gperf"
+#line 42 "./unicase/special-casing-table.gperf"
{"\036\230\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0057, 0x030A, 0 }, { 0x1E98, 0, 0 }, { 0x0057, 0x030A, 0 }, { 0x0077, 0x030A, 0 }},
-#line 41 "../../lib/unicase/special-casing-table.gperf"
+#line 41 "./unicase/special-casing-table.gperf"
{"\036\227\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0054, 0x0308, 0 }, { 0x1E97, 0, 0 }, { 0x0054, 0x0308, 0 }, { 0x0074, 0x0308, 0 }},
-#line 72 "../../lib/unicase/special-casing-table.gperf"
+#line 72 "./unicase/special-casing-table.gperf"
{"\037\226\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2E, 0x0399, 0 }, { 0x1F96, 0, 0 }, { 0x1F9E, 0, 0 }, { 0x1F26, 0x03B9, 0 }},
-#line 66 "../../lib/unicase/special-casing-table.gperf"
+#line 66 "./unicase/special-casing-table.gperf"
{"\037\220\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F28, 0x0399, 0 }, { 0x1F90, 0, 0 }, { 0x1F98, 0, 0 }, { 0x1F20, 0x03B9, 0 }},
-#line 40 "../../lib/unicase/special-casing-table.gperf"
+#line 40 "./unicase/special-casing-table.gperf"
{"\036\226\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0048, 0x0331, 0 }, { 0x1E96, 0, 0 }, { 0x0048, 0x0331, 0 }, { 0x0068, 0x0331, 0 }},
-#line 36 "../../lib/unicase/special-casing-table.gperf"
+#line 36 "./unicase/special-casing-table.gperf"
{"\003\220\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0301 }, { 0x0390, 0, 0 }, { 0x0399, 0x0308, 0x0301 }, { 0x03B9, 0x0308, 0x0301 }},
-#line 57 "../../lib/unicase/special-casing-table.gperf"
+#line 57 "./unicase/special-casing-table.gperf"
{"\037\207\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0F, 0x0399, 0 }, { 0x1F87, 0, 0 }, { 0x1F8F, 0, 0 }, { 0x1F07, 0x03B9, 0 }},
-#line 21 "../../lib/unicase/special-casing-table.gperf"
+#line 21 "./unicase/special-casing-table.gperf"
{"\000i\000", 1, SCC_ALWAYS , { 't', 'r' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }},
-#line 124 "../../lib/unicase/special-casing-table.gperf"
+#line 124 "./unicase/special-casing-table.gperf"
{"\037\374\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0399, 0 }, { 0x1FF3, 0, 0 }, { 0x1FFC, 0, 0 }, { 0x03C9, 0x03B9, 0 }},
-#line 129 "../../lib/unicase/special-casing-table.gperf"
+#line 129 "./unicase/special-casing-table.gperf"
{"\373\004\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0046, 0x004C }, { 0xFB04, 0, 0 }, { 0x0046, 0x0066, 0x006C }, { 0x0066, 0x0066, 0x006C }},
-#line 123 "../../lib/unicase/special-casing-table.gperf"
+#line 123 "./unicase/special-casing-table.gperf"
{"\037\367\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0342, 0x0399 }, { 0x1FF7, 0, 0 }, { 0x03A9, 0x0342, 0x0345 }, { 0x03C9, 0x0342, 0x03B9 }},
-#line 22 "../../lib/unicase/special-casing-table.gperf"
+#line 22 "./unicase/special-casing-table.gperf"
{"\000i\001", 0, SCC_ALWAYS , { 'a', 'z' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }},
-#line 18 "../../lib/unicase/special-casing-table.gperf"
+#line 18 "./unicase/special-casing-table.gperf"
{"\000I\003", 1, SCC_ALWAYS , { 't', 'r' }, { 0x0049, 0, 0 }, { 0x0069, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }},
-#line 122 "../../lib/unicase/special-casing-table.gperf"
+#line 122 "./unicase/special-casing-table.gperf"
{"\037\366\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0342, 0 }, { 0x1FF6, 0, 0 }, { 0x03A9, 0x0342, 0 }, { 0x03C9, 0x0342, 0 }},
-#line 121 "../../lib/unicase/special-casing-table.gperf"
+#line 121 "./unicase/special-casing-table.gperf"
{"\037\364\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x038F, 0x0399, 0 }, { 0x1FF4, 0, 0 }, { 0x038F, 0x0345, 0 }, { 0x03CE, 0x03B9, 0 }},
-#line 39 "../../lib/unicase/special-casing-table.gperf"
+#line 39 "./unicase/special-casing-table.gperf"
{"\005\207\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0535, 0x0552, 0 }, { 0x0587, 0, 0 }, { 0x0535, 0x0582, 0 }, { 0x0565, 0x0582, 0 }},
-#line 120 "../../lib/unicase/special-casing-table.gperf"
+#line 120 "./unicase/special-casing-table.gperf"
{"\037\363\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0399, 0 }, { 0x1FF3, 0, 0 }, { 0x1FFC, 0, 0 }, { 0x03C9, 0x03B9, 0 }},
-#line 119 "../../lib/unicase/special-casing-table.gperf"
+#line 119 "./unicase/special-casing-table.gperf"
{"\037\362\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1FFA, 0x0399, 0 }, { 0x1FF2, 0, 0 }, { 0x1FFA, 0x0345, 0 }, { 0x1F7C, 0x03B9, 0 }},
-#line 32 "../../lib/unicase/special-casing-table.gperf"
+#line 32 "./unicase/special-casing-table.gperf"
{"\001\360\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x004A, 0x030C, 0 }, { 0x01F0, 0, 0 }, { 0x004A, 0x030C, 0 }, { 0x006A, 0x030C, 0 }},
-#line 118 "../../lib/unicase/special-casing-table.gperf"
+#line 118 "./unicase/special-casing-table.gperf"
{"\037\347\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0342 }, { 0x1FE7, 0, 0 }, { 0x03A5, 0x0308, 0x0342 }, { 0x03C5, 0x0308, 0x0342 }},
-#line 117 "../../lib/unicase/special-casing-table.gperf"
+#line 117 "./unicase/special-casing-table.gperf"
{"\037\346\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0342, 0 }, { 0x1FE6, 0, 0 }, { 0x03A5, 0x0342, 0 }, { 0x03C5, 0x0342, 0 }},
-#line 116 "../../lib/unicase/special-casing-table.gperf"
+#line 116 "./unicase/special-casing-table.gperf"
{"\037\344\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A1, 0x0313, 0 }, { 0x1FE4, 0, 0 }, { 0x03A1, 0x0313, 0 }, { 0x03C1, 0x0313, 0 }},
-#line 115 "../../lib/unicase/special-casing-table.gperf"
+#line 115 "./unicase/special-casing-table.gperf"
{"\037\343\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0301 }, { 0x1FE3, 0, 0 }, { 0x03A5, 0x0308, 0x0301 }, { 0x03C5, 0x0308, 0x0301 }},
-#line 114 "../../lib/unicase/special-casing-table.gperf"
+#line 114 "./unicase/special-casing-table.gperf"
{"\037\342\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0300 }, { 0x1FE2, 0, 0 }, { 0x03A5, 0x0308, 0x0300 }, { 0x03C5, 0x0308, 0x0300 }},
-#line 25 "../../lib/unicase/special-casing-table.gperf"
+#line 25 "./unicase/special-casing-table.gperf"
{"\000\337\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0053, 0x0053, 0 }, { 0x00DF, 0, 0 }, { 0x0053, 0x0073, 0 }, { 0x0073, 0x0073, 0 }},
-#line 113 "../../lib/unicase/special-casing-table.gperf"
+#line 113 "./unicase/special-casing-table.gperf"
{"\037\327\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0342 }, { 0x1FD7, 0, 0 }, { 0x0399, 0x0308, 0x0342 }, { 0x03B9, 0x0308, 0x0342 }},
-#line 112 "../../lib/unicase/special-casing-table.gperf"
+#line 112 "./unicase/special-casing-table.gperf"
{"\037\326\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0342, 0 }, { 0x1FD6, 0, 0 }, { 0x0399, 0x0342, 0 }, { 0x03B9, 0x0342, 0 }},
-#line 111 "../../lib/unicase/special-casing-table.gperf"
+#line 111 "./unicase/special-casing-table.gperf"
{"\037\323\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0301 }, { 0x1FD3, 0, 0 }, { 0x0399, 0x0308, 0x0301 }, { 0x03B9, 0x0308, 0x0301 }},
-#line 110 "../../lib/unicase/special-casing-table.gperf"
+#line 110 "./unicase/special-casing-table.gperf"
{"\037\322\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0300 }, { 0x1FD2, 0, 0 }, { 0x0399, 0x0308, 0x0300 }, { 0x03B9, 0x0308, 0x0300 }},
-#line 24 "../../lib/unicase/special-casing-table.gperf"
+#line 24 "./unicase/special-casing-table.gperf"
{"\000\315\000", 0, SCC_ALWAYS , { 'l', 't' }, { 0x00CD, 0, 0 }, { 0x0069, 0x0307, 0x0301 }, { 0x00CD, 0, 0 }, { 0x00ED, 0, 0 }},
-#line 108 "../../lib/unicase/special-casing-table.gperf"
+#line 108 "./unicase/special-casing-table.gperf"
{"\037\307\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0342, 0x0399 }, { 0x1FC7, 0, 0 }, { 0x0397, 0x0342, 0x0345 }, { 0x03B7, 0x0342, 0x03B9 }},
-#line 107 "../../lib/unicase/special-casing-table.gperf"
+#line 107 "./unicase/special-casing-table.gperf"
{"\037\306\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0342, 0 }, { 0x1FC6, 0, 0 }, { 0x0397, 0x0342, 0 }, { 0x03B7, 0x0342, 0 }},
-#line 106 "../../lib/unicase/special-casing-table.gperf"
+#line 106 "./unicase/special-casing-table.gperf"
{"\037\304\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0389, 0x0399, 0 }, { 0x1FC4, 0, 0 }, { 0x0389, 0x0345, 0 }, { 0x03AE, 0x03B9, 0 }},
-#line 105 "../../lib/unicase/special-casing-table.gperf"
+#line 105 "./unicase/special-casing-table.gperf"
{"\037\303\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0399, 0 }, { 0x1FC3, 0, 0 }, { 0x1FCC, 0, 0 }, { 0x03B7, 0x03B9, 0 }},
-#line 104 "../../lib/unicase/special-casing-table.gperf"
+#line 104 "./unicase/special-casing-table.gperf"
{"\037\302\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1FCA, 0x0399, 0 }, { 0x1FC2, 0, 0 }, { 0x1FCA, 0x0345, 0 }, { 0x1F74, 0x03B9, 0 }},
-#line 103 "../../lib/unicase/special-casing-table.gperf"
+#line 103 "./unicase/special-casing-table.gperf"
{"\037\274\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0399, 0 }, { 0x1FB3, 0, 0 }, { 0x1FBC, 0, 0 }, { 0x03B1, 0x03B9, 0 }},
-#line 102 "../../lib/unicase/special-casing-table.gperf"
+#line 102 "./unicase/special-casing-table.gperf"
{"\037\267\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0342, 0x0399 }, { 0x1FB7, 0, 0 }, { 0x0391, 0x0342, 0x0345 }, { 0x03B1, 0x0342, 0x03B9 }},
-#line 101 "../../lib/unicase/special-casing-table.gperf"
+#line 101 "./unicase/special-casing-table.gperf"
{"\037\266\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0342, 0 }, { 0x1FB6, 0, 0 }, { 0x0391, 0x0342, 0 }, { 0x03B1, 0x0342, 0 }},
-#line 100 "../../lib/unicase/special-casing-table.gperf"
+#line 100 "./unicase/special-casing-table.gperf"
{"\037\264\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0386, 0x0399, 0 }, { 0x1FB4, 0, 0 }, { 0x0386, 0x0345, 0 }, { 0x03AC, 0x03B9, 0 }},
-#line 99 "../../lib/unicase/special-casing-table.gperf"
+#line 99 "./unicase/special-casing-table.gperf"
{"\037\263\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0399, 0 }, { 0x1FB3, 0, 0 }, { 0x1FBC, 0, 0 }, { 0x03B1, 0x03B9, 0 }},
-#line 98 "../../lib/unicase/special-casing-table.gperf"
+#line 98 "./unicase/special-casing-table.gperf"
{"\037\262\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1FBA, 0x0399, 0 }, { 0x1FB2, 0, 0 }, { 0x1FBA, 0x0345, 0 }, { 0x1F70, 0x03B9, 0 }},
-#line 38 "../../lib/unicase/special-casing-table.gperf"
+#line 38 "./unicase/special-casing-table.gperf"
{"\003\260\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0301 }, { 0x03B0, 0, 0 }, { 0x03A5, 0x0308, 0x0301 }, { 0x03C5, 0x0308, 0x0301 }},
-#line 97 "../../lib/unicase/special-casing-table.gperf"
+#line 97 "./unicase/special-casing-table.gperf"
{"\037\257\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6F, 0x0399, 0 }, { 0x1FA7, 0, 0 }, { 0x1FAF, 0, 0 }, { 0x1F67, 0x03B9, 0 }},
-#line 96 "../../lib/unicase/special-casing-table.gperf"
+#line 96 "./unicase/special-casing-table.gperf"
{"\037\256\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6E, 0x0399, 0 }, { 0x1FA6, 0, 0 }, { 0x1FAE, 0, 0 }, { 0x1F66, 0x03B9, 0 }},
-#line 95 "../../lib/unicase/special-casing-table.gperf"
+#line 95 "./unicase/special-casing-table.gperf"
{"\037\255\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6D, 0x0399, 0 }, { 0x1FA5, 0, 0 }, { 0x1FAD, 0, 0 }, { 0x1F65, 0x03B9, 0 }},
-#line 94 "../../lib/unicase/special-casing-table.gperf"
+#line 94 "./unicase/special-casing-table.gperf"
{"\037\254\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6C, 0x0399, 0 }, { 0x1FA4, 0, 0 }, { 0x1FAC, 0, 0 }, { 0x1F64, 0x03B9, 0 }},
-#line 93 "../../lib/unicase/special-casing-table.gperf"
+#line 93 "./unicase/special-casing-table.gperf"
{"\037\253\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6B, 0x0399, 0 }, { 0x1FA3, 0, 0 }, { 0x1FAB, 0, 0 }, { 0x1F63, 0x03B9, 0 }},
-#line 92 "../../lib/unicase/special-casing-table.gperf"
+#line 92 "./unicase/special-casing-table.gperf"
{"\037\252\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6A, 0x0399, 0 }, { 0x1FA2, 0, 0 }, { 0x1FAA, 0, 0 }, { 0x1F62, 0x03B9, 0 }},
-#line 91 "../../lib/unicase/special-casing-table.gperf"
+#line 91 "./unicase/special-casing-table.gperf"
{"\037\251\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F69, 0x0399, 0 }, { 0x1FA1, 0, 0 }, { 0x1FA9, 0, 0 }, { 0x1F61, 0x03B9, 0 }},
-#line 90 "../../lib/unicase/special-casing-table.gperf"
+#line 90 "./unicase/special-casing-table.gperf"
{"\037\250\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F68, 0x0399, 0 }, { 0x1FA0, 0, 0 }, { 0x1FA8, 0, 0 }, { 0x1F60, 0x03B9, 0 }},
-#line 89 "../../lib/unicase/special-casing-table.gperf"
+#line 89 "./unicase/special-casing-table.gperf"
{"\037\247\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6F, 0x0399, 0 }, { 0x1FA7, 0, 0 }, { 0x1FAF, 0, 0 }, { 0x1F67, 0x03B9, 0 }},
-#line 88 "../../lib/unicase/special-casing-table.gperf"
+#line 88 "./unicase/special-casing-table.gperf"
{"\037\246\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6E, 0x0399, 0 }, { 0x1FA6, 0, 0 }, { 0x1FAE, 0, 0 }, { 0x1F66, 0x03B9, 0 }},
-#line 87 "../../lib/unicase/special-casing-table.gperf"
+#line 87 "./unicase/special-casing-table.gperf"
{"\037\245\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6D, 0x0399, 0 }, { 0x1FA5, 0, 0 }, { 0x1FAD, 0, 0 }, { 0x1F65, 0x03B9, 0 }},
-#line 86 "../../lib/unicase/special-casing-table.gperf"
+#line 86 "./unicase/special-casing-table.gperf"
{"\037\244\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6C, 0x0399, 0 }, { 0x1FA4, 0, 0 }, { 0x1FAC, 0, 0 }, { 0x1F64, 0x03B9, 0 }},
-#line 84 "../../lib/unicase/special-casing-table.gperf"
+#line 84 "./unicase/special-casing-table.gperf"
{"\037\242\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6A, 0x0399, 0 }, { 0x1FA2, 0, 0 }, { 0x1FAA, 0, 0 }, { 0x1F62, 0x03B9, 0 }},
-#line 83 "../../lib/unicase/special-casing-table.gperf"
+#line 83 "./unicase/special-casing-table.gperf"
{"\037\241\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F69, 0x0399, 0 }, { 0x1FA1, 0, 0 }, { 0x1FA9, 0, 0 }, { 0x1F61, 0x03B9, 0 }},
-#line 82 "../../lib/unicase/special-casing-table.gperf"
+#line 82 "./unicase/special-casing-table.gperf"
{"\037\240\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F68, 0x0399, 0 }, { 0x1FA0, 0, 0 }, { 0x1FA8, 0, 0 }, { 0x1F60, 0x03B9, 0 }},
-#line 81 "../../lib/unicase/special-casing-table.gperf"
+#line 81 "./unicase/special-casing-table.gperf"
{"\037\237\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2F, 0x0399, 0 }, { 0x1F97, 0, 0 }, { 0x1F9F, 0, 0 }, { 0x1F27, 0x03B9, 0 }},
-#line 79 "../../lib/unicase/special-casing-table.gperf"
+#line 79 "./unicase/special-casing-table.gperf"
{"\037\235\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2D, 0x0399, 0 }, { 0x1F95, 0, 0 }, { 0x1F9D, 0, 0 }, { 0x1F25, 0x03B9, 0 }},
-#line 78 "../../lib/unicase/special-casing-table.gperf"
+#line 78 "./unicase/special-casing-table.gperf"
{"\037\234\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2C, 0x0399, 0 }, { 0x1F94, 0, 0 }, { 0x1F9C, 0, 0 }, { 0x1F24, 0x03B9, 0 }},
-#line 77 "../../lib/unicase/special-casing-table.gperf"
+#line 77 "./unicase/special-casing-table.gperf"
{"\037\233\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2B, 0x0399, 0 }, { 0x1F93, 0, 0 }, { 0x1F9B, 0, 0 }, { 0x1F23, 0x03B9, 0 }},
-#line 71 "../../lib/unicase/special-casing-table.gperf"
+#line 71 "./unicase/special-casing-table.gperf"
{"\037\225\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2D, 0x0399, 0 }, { 0x1F95, 0, 0 }, { 0x1F9D, 0, 0 }, { 0x1F25, 0x03B9, 0 }},
-#line 70 "../../lib/unicase/special-casing-table.gperf"
+#line 70 "./unicase/special-casing-table.gperf"
{"\037\224\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2C, 0x0399, 0 }, { 0x1F94, 0, 0 }, { 0x1F9C, 0, 0 }, { 0x1F24, 0x03B9, 0 }},
-#line 69 "../../lib/unicase/special-casing-table.gperf"
+#line 69 "./unicase/special-casing-table.gperf"
{"\037\223\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2B, 0x0399, 0 }, { 0x1F93, 0, 0 }, { 0x1F9B, 0, 0 }, { 0x1F23, 0x03B9, 0 }},
-#line 68 "../../lib/unicase/special-casing-table.gperf"
+#line 68 "./unicase/special-casing-table.gperf"
{"\037\222\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2A, 0x0399, 0 }, { 0x1F92, 0, 0 }, { 0x1F9A, 0, 0 }, { 0x1F22, 0x03B9, 0 }},
-#line 67 "../../lib/unicase/special-casing-table.gperf"
+#line 67 "./unicase/special-casing-table.gperf"
{"\037\221\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F29, 0x0399, 0 }, { 0x1F91, 0, 0 }, { 0x1F99, 0, 0 }, { 0x1F21, 0x03B9, 0 }},
-#line 65 "../../lib/unicase/special-casing-table.gperf"
+#line 65 "./unicase/special-casing-table.gperf"
{"\037\217\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0F, 0x0399, 0 }, { 0x1F87, 0, 0 }, { 0x1F8F, 0, 0 }, { 0x1F07, 0x03B9, 0 }},
-#line 64 "../../lib/unicase/special-casing-table.gperf"
+#line 64 "./unicase/special-casing-table.gperf"
{"\037\216\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0E, 0x0399, 0 }, { 0x1F86, 0, 0 }, { 0x1F8E, 0, 0 }, { 0x1F06, 0x03B9, 0 }},
-#line 63 "../../lib/unicase/special-casing-table.gperf"
+#line 63 "./unicase/special-casing-table.gperf"
{"\037\215\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0D, 0x0399, 0 }, { 0x1F85, 0, 0 }, { 0x1F8D, 0, 0 }, { 0x1F05, 0x03B9, 0 }},
-#line 62 "../../lib/unicase/special-casing-table.gperf"
+#line 62 "./unicase/special-casing-table.gperf"
{"\037\214\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0C, 0x0399, 0 }, { 0x1F84, 0, 0 }, { 0x1F8C, 0, 0 }, { 0x1F04, 0x03B9, 0 }},
-#line 61 "../../lib/unicase/special-casing-table.gperf"
+#line 61 "./unicase/special-casing-table.gperf"
{"\037\213\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0B, 0x0399, 0 }, { 0x1F83, 0, 0 }, { 0x1F8B, 0, 0 }, { 0x1F03, 0x03B9, 0 }},
-#line 60 "../../lib/unicase/special-casing-table.gperf"
+#line 60 "./unicase/special-casing-table.gperf"
{"\037\212\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0A, 0x0399, 0 }, { 0x1F82, 0, 0 }, { 0x1F8A, 0, 0 }, { 0x1F02, 0x03B9, 0 }},
-#line 59 "../../lib/unicase/special-casing-table.gperf"
+#line 59 "./unicase/special-casing-table.gperf"
{"\037\211\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F09, 0x0399, 0 }, { 0x1F81, 0, 0 }, { 0x1F89, 0, 0 }, { 0x1F01, 0x03B9, 0 }},
-#line 58 "../../lib/unicase/special-casing-table.gperf"
+#line 58 "./unicase/special-casing-table.gperf"
{"\037\210\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F08, 0x0399, 0 }, { 0x1F80, 0, 0 }, { 0x1F88, 0, 0 }, { 0x1F00, 0x03B9, 0 }},
-#line 56 "../../lib/unicase/special-casing-table.gperf"
+#line 56 "./unicase/special-casing-table.gperf"
{"\037\206\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0E, 0x0399, 0 }, { 0x1F86, 0, 0 }, { 0x1F8E, 0, 0 }, { 0x1F06, 0x03B9, 0 }},
-#line 55 "../../lib/unicase/special-casing-table.gperf"
+#line 55 "./unicase/special-casing-table.gperf"
{"\037\205\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0D, 0x0399, 0 }, { 0x1F85, 0, 0 }, { 0x1F8D, 0, 0 }, { 0x1F05, 0x03B9, 0 }},
-#line 54 "../../lib/unicase/special-casing-table.gperf"
+#line 54 "./unicase/special-casing-table.gperf"
{"\037\204\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0C, 0x0399, 0 }, { 0x1F84, 0, 0 }, { 0x1F8C, 0, 0 }, { 0x1F04, 0x03B9, 0 }},
-#line 53 "../../lib/unicase/special-casing-table.gperf"
+#line 53 "./unicase/special-casing-table.gperf"
{"\037\203\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0B, 0x0399, 0 }, { 0x1F83, 0, 0 }, { 0x1F8B, 0, 0 }, { 0x1F03, 0x03B9, 0 }},
-#line 52 "../../lib/unicase/special-casing-table.gperf"
+#line 52 "./unicase/special-casing-table.gperf"
{"\037\202\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0A, 0x0399, 0 }, { 0x1F82, 0, 0 }, { 0x1F8A, 0, 0 }, { 0x1F02, 0x03B9, 0 }},
-#line 51 "../../lib/unicase/special-casing-table.gperf"
+#line 51 "./unicase/special-casing-table.gperf"
{"\037\201\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F09, 0x0399, 0 }, { 0x1F81, 0, 0 }, { 0x1F89, 0, 0 }, { 0x1F01, 0x03B9, 0 }},
-#line 50 "../../lib/unicase/special-casing-table.gperf"
+#line 50 "./unicase/special-casing-table.gperf"
{"\037\200\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F08, 0x0399, 0 }, { 0x1F80, 0, 0 }, { 0x1F88, 0, 0 }, { 0x1F00, 0x03B9, 0 }},
-#line 49 "../../lib/unicase/special-casing-table.gperf"
+#line 49 "./unicase/special-casing-table.gperf"
{"\037V\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0x0342 }, { 0x1F56, 0, 0 }, { 0x03A5, 0x0313, 0x0342 }, { 0x03C5, 0x0313, 0x0342 }},
-#line 48 "../../lib/unicase/special-casing-table.gperf"
+#line 48 "./unicase/special-casing-table.gperf"
{"\037T\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0x0301 }, { 0x1F54, 0, 0 }, { 0x03A5, 0x0313, 0x0301 }, { 0x03C5, 0x0313, 0x0301 }},
-#line 47 "../../lib/unicase/special-casing-table.gperf"
+#line 47 "./unicase/special-casing-table.gperf"
{"\037R\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0x0300 }, { 0x1F52, 0, 0 }, { 0x03A5, 0x0313, 0x0300 }, { 0x03C5, 0x0313, 0x0300 }},
-#line 46 "../../lib/unicase/special-casing-table.gperf"
+#line 46 "./unicase/special-casing-table.gperf"
{"\037P\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0 }, { 0x1F50, 0, 0 }, { 0x03A5, 0x0313, 0 }, { 0x03C5, 0x0313, 0 }},
-#line 20 "../../lib/unicase/special-casing-table.gperf"
+#line 20 "./unicase/special-casing-table.gperf"
{"\000J\000", 0, SCC_MORE_ABOVE , { 'l', 't' }, { 0x004A, 0, 0 }, { 0x006A, 0x0307, 0 }, { 0x004A, 0, 0 }, { 0x006A, 0, 0 }},
-#line 27 "../../lib/unicase/special-casing-table.gperf"
+#line 27 "./unicase/special-casing-table.gperf"
{"\001.\000", 0, SCC_MORE_ABOVE , { 'l', 't' }, { 0x012E, 0, 0 }, { 0x012F, 0x0307, 0 }, { 0x012E, 0, 0 }, { 0x012F, 0, 0 }},
-#line 26 "../../lib/unicase/special-casing-table.gperf"
+#line 26 "./unicase/special-casing-table.gperf"
{"\001(\000", 0, SCC_ALWAYS , { 'l', 't' }, { 0x0128, 0, 0 }, { 0x0069, 0x0307, 0x0303 }, { 0x0128, 0, 0 }, { 0x0129, 0, 0 }},
-#line 136 "../../lib/unicase/special-casing-table.gperf"
+#line 136 "./unicase/special-casing-table.gperf"
{"\373\027\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x053D, 0 }, { 0xFB17, 0, 0 }, { 0x0544, 0x056D, 0 }, { 0x0574, 0x056D, 0 }},
-#line 135 "../../lib/unicase/special-casing-table.gperf"
+#line 135 "./unicase/special-casing-table.gperf"
{"\373\026\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x054E, 0x0546, 0 }, { 0xFB16, 0, 0 }, { 0x054E, 0x0576, 0 }, { 0x057E, 0x0576, 0 }},
-#line 134 "../../lib/unicase/special-casing-table.gperf"
+#line 134 "./unicase/special-casing-table.gperf"
{"\373\025\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x053B, 0 }, { 0xFB15, 0, 0 }, { 0x0544, 0x056B, 0 }, { 0x0574, 0x056B, 0 }},
-#line 133 "../../lib/unicase/special-casing-table.gperf"
+#line 133 "./unicase/special-casing-table.gperf"
{"\373\024\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x0535, 0 }, { 0xFB14, 0, 0 }, { 0x0544, 0x0565, 0 }, { 0x0574, 0x0565, 0 }},
-#line 132 "../../lib/unicase/special-casing-table.gperf"
+#line 132 "./unicase/special-casing-table.gperf"
{"\373\023\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x0546, 0 }, { 0xFB13, 0, 0 }, { 0x0544, 0x0576, 0 }, { 0x0574, 0x0576, 0 }},
-#line 131 "../../lib/unicase/special-casing-table.gperf"
+#line 131 "./unicase/special-casing-table.gperf"
{"\373\006\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0053, 0x0054, 0 }, { 0xFB06, 0, 0 }, { 0x0053, 0x0074, 0 }, { 0x0073, 0x0074, 0 }}
};
diff --git a/lib/unicase/special-casing.c b/lib/unicase/special-casing.c
index 709b6a2..69ebd69 100644
--- a/lib/unicase/special-casing.c
+++ b/lib/unicase/special-casing.c
@@ -1,5 +1,5 @@
/* Special casing table.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/special-casing.in.h b/lib/unicase/special-casing.in.h
index d98049b..12601af 100644
--- a/lib/unicase/special-casing.in.h
+++ b/lib/unicase/special-casing.in.h
@@ -1,5 +1,5 @@
/* Special casing table.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/tocasefold.c b/lib/unicase/tocasefold.c
index d93afbe..e567d8a 100644
--- a/lib/unicase/tocasefold.c
+++ b/lib/unicase/tocasefold.c
@@ -1,5 +1,5 @@
/* Casefold mapping for Unicode characters (locale and context independent).
- Copyright (C) 2002, 2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/tolower.c b/lib/unicase/tolower.c
index a4026d2..d01296e 100644
--- a/lib/unicase/tolower.c
+++ b/lib/unicase/tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for Unicode characters (locale and context independent).
- Copyright (C) 2002, 2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/totitle.c b/lib/unicase/totitle.c
index f45bf3c..24877d6 100644
--- a/lib/unicase/totitle.c
+++ b/lib/unicase/totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for Unicode characters (locale and context independent).
- Copyright (C) 2002, 2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/toupper.c b/lib/unicase/toupper.c
index 9eaddf5..3b5cfc5 100644
--- a/lib/unicase/toupper.c
+++ b/lib/unicase/toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for Unicode characters (locale and context independent).
- Copyright (C) 2002, 2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u-casecmp.h b/lib/unicase/u-casecmp.h
index d21e8fb..52d3c6e 100644
--- a/lib/unicase/u-casecmp.h
+++ b/lib/unicase/u-casecmp.h
@@ -1,5 +1,5 @@
/* Case and normalization insensitive comparison of Unicode strings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u-casecoll.h b/lib/unicase/u-casecoll.h
index 4d75dc6..259e046 100644
--- a/lib/unicase/u-casecoll.h
+++ b/lib/unicase/u-casecoll.h
@@ -1,6 +1,6 @@
/* Locale dependent, case and normalization insensitive comparison of Unicode
strings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u-casefold.h b/lib/unicase/u-casefold.h
index 34648aa..37d56c0 100644
--- a/lib/unicase/u-casefold.h
+++ b/lib/unicase/u-casefold.h
@@ -1,5 +1,5 @@
/* Casefolding mapping for Unicode strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u-casemap.h b/lib/unicase/u-casemap.h
index 9107136..c6559b0 100644
--- a/lib/unicase/u-casemap.h
+++ b/lib/unicase/u-casemap.h
@@ -1,5 +1,5 @@
/* Case mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u-casexfrm.h b/lib/unicase/u-casexfrm.h
index e657dc2..fe73262 100644
--- a/lib/unicase/u-casexfrm.h
+++ b/lib/unicase/u-casexfrm.h
@@ -1,6 +1,6 @@
/* Locale dependent transformation for case insensitive comparison of Unicode
strings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u-ct-casefold.h b/lib/unicase/u-ct-casefold.h
index 77058e1..c2cb0f2 100644
--- a/lib/unicase/u-ct-casefold.h
+++ b/lib/unicase/u-ct-casefold.h
@@ -1,5 +1,5 @@
/* Casefolding mapping for Unicode substrings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u-ct-totitle.h b/lib/unicase/u-ct-totitle.h
index 4f039a0..6c138a5 100644
--- a/lib/unicase/u-ct-totitle.h
+++ b/lib/unicase/u-ct-totitle.h
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-8/UTF-16/UTF-32 substrings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u-is-cased.h b/lib/unicase/u-is-cased.h
index fadd7bd..bb1749b 100644
--- a/lib/unicase/u-is-cased.h
+++ b/lib/unicase/u-is-cased.h
@@ -1,5 +1,5 @@
/* Test whether case matters for a Unicode string.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u-is-invariant.h b/lib/unicase/u-is-invariant.h
index 33beac0..e9705ad 100644
--- a/lib/unicase/u-is-invariant.h
+++ b/lib/unicase/u-is-invariant.h
@@ -1,5 +1,5 @@
/* Test whether a Unicode string is invariant under a given case mapping.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u-prefix-context.h b/lib/unicase/u-prefix-context.h
new file mode 100644
index 0000000..b30ed6b
--- /dev/null
+++ b/lib/unicase/u-prefix-context.h
@@ -0,0 +1,101 @@
+/* Case-mapping context of prefix UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ This program is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+ This program 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 for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+casing_prefix_context_t
+FUNC1 (const UNIT *s, size_t n)
+{
+ return FUNC2 (s, n, unicase_empty_prefix_context);
+}
+
+casing_prefix_context_t
+FUNC2 (const UNIT *s, size_t n, casing_prefix_context_t a_context)
+{
+#if 0
+ /* Forward iteration. Slow for long strings. */
+ casing_prefix_context_t context = a_context;
+ const UNIT *s_end = s + n;
+
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int count = U_MBTOUC_UNSAFE (&uc, s, s_end - s);
+
+ if (!uc_is_case_ignorable (uc))
+ context.last_char_except_ignorable = uc;
+
+ {
+ int ccc = uc_combining_class (uc);
+ if (ccc == UC_CCC_A || ccc == UC_CCC_NR)
+ context.last_char_normal_or_above = uc;
+ }
+
+ s += count;
+ }
+
+ return context;
+#else
+ /* Iterate backwards, only as far as needed. */
+ casing_prefix_context_t context;
+ ucs4_t last_char_except_ignorable = (ucs4_t)(-1);
+ ucs4_t last_char_normal_or_above = (ucs4_t)(-1);
+ const UNIT *p = s + n;
+
+ for (;;)
+ {
+ ucs4_t uc;
+ p = U_PREV (&uc, p, s);
+ if (p == NULL)
+ break;
+
+ if (last_char_except_ignorable == (ucs4_t)(-1))
+ {
+ if (!uc_is_case_ignorable (uc))
+ last_char_except_ignorable = uc;
+ }
+
+ if (last_char_normal_or_above == (ucs4_t)(-1))
+ {
+ int ccc = uc_combining_class (uc);
+ if (ccc == UC_CCC_A || ccc == UC_CCC_NR)
+ last_char_normal_or_above = uc;
+ }
+
+ if (last_char_except_ignorable != (ucs4_t)(-1)
+ && last_char_normal_or_above != (ucs4_t)(-1))
+ break;
+ }
+ context.last_char_except_ignorable =
+ (last_char_except_ignorable != (ucs4_t)(-1)
+ ? last_char_except_ignorable
+ : a_context.last_char_except_ignorable);
+ context.last_char_normal_or_above =
+ (last_char_normal_or_above != (ucs4_t)(-1)
+ ? last_char_normal_or_above
+ : a_context.last_char_normal_or_above);
+
+ return context;
+#endif
+}
diff --git a/lib/unicase/u-suffix-context.h b/lib/unicase/u-suffix-context.h
new file mode 100644
index 0000000..01ee18e
--- /dev/null
+++ b/lib/unicase/u-suffix-context.h
@@ -0,0 +1,99 @@
+/* Case-mapping context of suffix UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ This program is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+ This program 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 for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+casing_suffix_context_t
+FUNC1 (const UNIT *s, size_t n)
+{
+ return FUNC2 (s, n, unicase_empty_suffix_context);
+}
+
+casing_suffix_context_t
+FUNC2 (const UNIT *s, size_t n, casing_suffix_context_t a_context)
+{
+ casing_suffix_context_t context;
+ /* Evaluate all three conditions in a single pass through the string S.
+ The three variables are -1 as long as the value of the condition has
+ not been determined. */
+ ucs4_t first_char_except_ignorable = (ucs4_t)(-1);
+ int scc_MORE_ABOVE = -1;
+ int scc_BEFORE_DOT = -1;
+ const UNIT *s_end = s + n;
+
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int count = U_MBTOUC_UNSAFE (&uc, s, s_end - s);
+
+ if (first_char_except_ignorable == (ucs4_t)(-1))
+ {
+ if (!uc_is_case_ignorable (uc))
+ first_char_except_ignorable = uc;
+ }
+
+ if (scc_MORE_ABOVE < 0)
+ {
+ int ccc = uc_combining_class (uc);
+ if (ccc == UC_CCC_A)
+ scc_MORE_ABOVE = SCC_MORE_ABOVE_MASK;
+ else if (ccc == UC_CCC_NR)
+ scc_MORE_ABOVE = 0;
+ }
+
+ if (scc_BEFORE_DOT < 0)
+ {
+ if (uc == 0x0307) /* COMBINING DOT ABOVE */
+ scc_BEFORE_DOT = SCC_BEFORE_DOT_MASK;
+ else
+ {
+ int ccc = uc_combining_class (uc);
+ if (ccc == UC_CCC_A || ccc == UC_CCC_NR)
+ scc_BEFORE_DOT = 0;
+ }
+ }
+
+ if (first_char_except_ignorable != (ucs4_t)(-1)
+ && (scc_MORE_ABOVE | scc_BEFORE_DOT) >= 0)
+ /* All conditions have been determined. */
+ break;
+
+ s += count;
+ }
+
+ /* For those conditions that have not been determined so far, use the
+ value from the argument context. */
+ context.first_char_except_ignorable =
+ (first_char_except_ignorable != (ucs4_t)(-1)
+ ? first_char_except_ignorable
+ : a_context.first_char_except_ignorable);
+ context.bits =
+ (scc_MORE_ABOVE >= 0
+ ? scc_MORE_ABOVE
+ : a_context.bits & SCC_MORE_ABOVE_MASK)
+ | (scc_BEFORE_DOT >= 0
+ ? scc_BEFORE_DOT
+ : a_context.bits & SCC_BEFORE_DOT_MASK);
+ return context;
+}
diff --git a/lib/unicase/u-totitle.h b/lib/unicase/u-totitle.h
index b838433..67bbed8 100644
--- a/lib/unicase/u-totitle.h
+++ b/lib/unicase/u-totitle.h
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-casecmp.c b/lib/unicase/u16-casecmp.c
index 07b6a51..fb7f0f3 100644
--- a/lib/unicase/u16-casecmp.c
+++ b/lib/unicase/u16-casecmp.c
@@ -1,5 +1,5 @@
/* Case and normalization insensitive comparison of UTF-16 strings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-casecoll.c b/lib/unicase/u16-casecoll.c
index cdc0a13..de1af86 100644
--- a/lib/unicase/u16-casecoll.c
+++ b/lib/unicase/u16-casecoll.c
@@ -1,6 +1,6 @@
/* Locale dependent, case and normalization insensitive comparison of UTF-16
strings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-casefold.c b/lib/unicase/u16-casefold.c
index 662a342..458875e 100644
--- a/lib/unicase/u16-casefold.c
+++ b/lib/unicase/u16-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-16 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-casemap.c b/lib/unicase/u16-casemap.c
index f76e29f..0663c7f 100644
--- a/lib/unicase/u16-casemap.c
+++ b/lib/unicase/u16-casemap.c
@@ -1,5 +1,5 @@
/* Case mapping for UTF-16 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-casexfrm.c b/lib/unicase/u16-casexfrm.c
index 73aead6..db0b530 100644
--- a/lib/unicase/u16-casexfrm.c
+++ b/lib/unicase/u16-casexfrm.c
@@ -1,6 +1,6 @@
/* Locale dependent transformation for case insensitive comparison of UTF-16
strings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-ct-casefold.c b/lib/unicase/u16-ct-casefold.c
index ade3ed4..b8f5f5f 100644
--- a/lib/unicase/u16-ct-casefold.c
+++ b/lib/unicase/u16-ct-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-16 substrings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-ct-tolower.c b/lib/unicase/u16-ct-tolower.c
index 5100a5a..9475ba1 100644
--- a/lib/unicase/u16-ct-tolower.c
+++ b/lib/unicase/u16-ct-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-16 substrings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-ct-totitle.c b/lib/unicase/u16-ct-totitle.c
index ee18b2e..9e3539b 100644
--- a/lib/unicase/u16-ct-totitle.c
+++ b/lib/unicase/u16-ct-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-16 substrings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-ct-toupper.c b/lib/unicase/u16-ct-toupper.c
index 697b4e8..85a3a43 100644
--- a/lib/unicase/u16-ct-toupper.c
+++ b/lib/unicase/u16-ct-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-16 substrings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-is-cased.c b/lib/unicase/u16-is-cased.c
index 3790608..91932c4 100644
--- a/lib/unicase/u16-is-cased.c
+++ b/lib/unicase/u16-is-cased.c
@@ -1,5 +1,5 @@
/* Test whether case matters for an UTF-16 string.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-is-casefolded.c b/lib/unicase/u16-is-casefolded.c
index f20d569..c6b22f1 100644
--- a/lib/unicase/u16-is-casefolded.c
+++ b/lib/unicase/u16-is-casefolded.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-16 string is already case-folded.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-is-invariant.c b/lib/unicase/u16-is-invariant.c
index 42253fd..6855ccc 100644
--- a/lib/unicase/u16-is-invariant.c
+++ b/lib/unicase/u16-is-invariant.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-16 string is invariant under a given case mapping.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-is-lowercase.c b/lib/unicase/u16-is-lowercase.c
index 97aefda..2ad72ff 100644
--- a/lib/unicase/u16-is-lowercase.c
+++ b/lib/unicase/u16-is-lowercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-16 string is entirely lower case.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-is-titlecase.c b/lib/unicase/u16-is-titlecase.c
index d49091d..6e1332e 100644
--- a/lib/unicase/u16-is-titlecase.c
+++ b/lib/unicase/u16-is-titlecase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-16 string is entirely title case.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-is-uppercase.c b/lib/unicase/u16-is-uppercase.c
index 10a5ed3..396de36 100644
--- a/lib/unicase/u16-is-uppercase.c
+++ b/lib/unicase/u16-is-uppercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-16 string is entirely upper case.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-prefix-context.c b/lib/unicase/u16-prefix-context.c
new file mode 100644
index 0000000..8fe060d
--- /dev/null
+++ b/lib/unicase/u16-prefix-context.c
@@ -0,0 +1,42 @@
+/* Case-mapping context of prefix UTF-16 string.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ This program is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+ This program 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 for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unictype.h"
+#include "unistr.h"
+#include "caseprop.h"
+#include "context.h"
+
+#define FUNC1 u16_casing_prefix_context
+#define FUNC2 u16_casing_prefixes_context
+#define UNIT uint16_t
+#define U_MBTOUC_UNSAFE u16_mbtouc_unsafe
+#define U_PREV u16_prev
+#include "u-prefix-context.h"
diff --git a/lib/unicase/u16-suffix-context.c b/lib/unicase/u16-suffix-context.c
new file mode 100644
index 0000000..53c9a94
--- /dev/null
+++ b/lib/unicase/u16-suffix-context.c
@@ -0,0 +1,41 @@
+/* Case-mapping context of suffix UTF-16 string.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ This program is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+ This program 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 for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unictype.h"
+#include "unistr.h"
+#include "caseprop.h"
+#include "context.h"
+
+#define FUNC1 u16_casing_suffix_context
+#define FUNC2 u16_casing_suffixes_context
+#define UNIT uint16_t
+#define U_MBTOUC_UNSAFE u16_mbtouc_unsafe
+#include "u-suffix-context.h"
diff --git a/lib/unicase/u16-tolower.c b/lib/unicase/u16-tolower.c
index 133a572..1c32f4c 100644
--- a/lib/unicase/u16-tolower.c
+++ b/lib/unicase/u16-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-16 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-totitle.c b/lib/unicase/u16-totitle.c
index 493a763..0486890 100644
--- a/lib/unicase/u16-totitle.c
+++ b/lib/unicase/u16-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-16 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u16-toupper.c b/lib/unicase/u16-toupper.c
index d20f863..65d46da 100644
--- a/lib/unicase/u16-toupper.c
+++ b/lib/unicase/u16-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-16 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-casecmp.c b/lib/unicase/u32-casecmp.c
index 05d38c5..9723b90 100644
--- a/lib/unicase/u32-casecmp.c
+++ b/lib/unicase/u32-casecmp.c
@@ -1,5 +1,5 @@
/* Case and normalization insensitive comparison of UTF-32 strings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-casecoll.c b/lib/unicase/u32-casecoll.c
index ff52d5d..d4b4abf 100644
--- a/lib/unicase/u32-casecoll.c
+++ b/lib/unicase/u32-casecoll.c
@@ -1,6 +1,6 @@
/* Locale dependent, case and normalization insensitive comparison of UTF-32
strings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-casefold.c b/lib/unicase/u32-casefold.c
index 09878ef..9b90097 100644
--- a/lib/unicase/u32-casefold.c
+++ b/lib/unicase/u32-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-32 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-casemap.c b/lib/unicase/u32-casemap.c
index 98c64ce..e248488 100644
--- a/lib/unicase/u32-casemap.c
+++ b/lib/unicase/u32-casemap.c
@@ -1,5 +1,5 @@
/* Case mapping for UTF-32 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-casexfrm.c b/lib/unicase/u32-casexfrm.c
index 82fec7b..e5ef9e3 100644
--- a/lib/unicase/u32-casexfrm.c
+++ b/lib/unicase/u32-casexfrm.c
@@ -1,6 +1,6 @@
/* Locale dependent transformation for case insensitive comparison of UTF-32
strings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-ct-casefold.c b/lib/unicase/u32-ct-casefold.c
index 5d30cec..c752bfa 100644
--- a/lib/unicase/u32-ct-casefold.c
+++ b/lib/unicase/u32-ct-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-32 substrings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-ct-tolower.c b/lib/unicase/u32-ct-tolower.c
index 2445745..71a8f4a 100644
--- a/lib/unicase/u32-ct-tolower.c
+++ b/lib/unicase/u32-ct-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-32 substrings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-ct-totitle.c b/lib/unicase/u32-ct-totitle.c
index 82e8a2c..7b8cc1e 100644
--- a/lib/unicase/u32-ct-totitle.c
+++ b/lib/unicase/u32-ct-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-32 substrings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-ct-toupper.c b/lib/unicase/u32-ct-toupper.c
index 8ff1219..77a55aa 100644
--- a/lib/unicase/u32-ct-toupper.c
+++ b/lib/unicase/u32-ct-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-32 substrings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-is-cased.c b/lib/unicase/u32-is-cased.c
index 96874d7..e4a7287 100644
--- a/lib/unicase/u32-is-cased.c
+++ b/lib/unicase/u32-is-cased.c
@@ -1,5 +1,5 @@
/* Test whether case matters for an UTF-32 string.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-is-casefolded.c b/lib/unicase/u32-is-casefolded.c
index f7f8398..2f71348 100644
--- a/lib/unicase/u32-is-casefolded.c
+++ b/lib/unicase/u32-is-casefolded.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-32 string is already case-folded.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-is-invariant.c b/lib/unicase/u32-is-invariant.c
index 4fba421..7dce1dc 100644
--- a/lib/unicase/u32-is-invariant.c
+++ b/lib/unicase/u32-is-invariant.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-32 string is invariant under a given case mapping.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-is-lowercase.c b/lib/unicase/u32-is-lowercase.c
index 1c4ec5b..11e12c6 100644
--- a/lib/unicase/u32-is-lowercase.c
+++ b/lib/unicase/u32-is-lowercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-32 string is entirely lower case.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-is-titlecase.c b/lib/unicase/u32-is-titlecase.c
index c7d0d35..5315759 100644
--- a/lib/unicase/u32-is-titlecase.c
+++ b/lib/unicase/u32-is-titlecase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-32 string is entirely title case.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-is-uppercase.c b/lib/unicase/u32-is-uppercase.c
index 26e121d..cbf4dcf 100644
--- a/lib/unicase/u32-is-uppercase.c
+++ b/lib/unicase/u32-is-uppercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-32 string is entirely upper case.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-prefix-context.c b/lib/unicase/u32-prefix-context.c
new file mode 100644
index 0000000..9f34a2a
--- /dev/null
+++ b/lib/unicase/u32-prefix-context.c
@@ -0,0 +1,42 @@
+/* Case-mapping context of prefix UTF-32 string.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ This program is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+ This program 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 for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unictype.h"
+#include "unistr.h"
+#include "caseprop.h"
+#include "context.h"
+
+#define FUNC1 u32_casing_prefix_context
+#define FUNC2 u32_casing_prefixes_context
+#define UNIT uint32_t
+#define U_MBTOUC_UNSAFE u32_mbtouc_unsafe
+#define U_PREV u32_prev
+#include "u-prefix-context.h"
diff --git a/lib/unicase/u32-suffix-context.c b/lib/unicase/u32-suffix-context.c
new file mode 100644
index 0000000..af6fc10
--- /dev/null
+++ b/lib/unicase/u32-suffix-context.c
@@ -0,0 +1,41 @@
+/* Case-mapping context of suffix UTF-32 string.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ This program is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+ This program 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 for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unictype.h"
+#include "unistr.h"
+#include "caseprop.h"
+#include "context.h"
+
+#define FUNC1 u32_casing_suffix_context
+#define FUNC2 u32_casing_suffixes_context
+#define UNIT uint32_t
+#define U_MBTOUC_UNSAFE u32_mbtouc_unsafe
+#include "u-suffix-context.h"
diff --git a/lib/unicase/u32-tolower.c b/lib/unicase/u32-tolower.c
index e519c21..b6da4c1 100644
--- a/lib/unicase/u32-tolower.c
+++ b/lib/unicase/u32-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-32 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-totitle.c b/lib/unicase/u32-totitle.c
index 7bbcd24..19172ac 100644
--- a/lib/unicase/u32-totitle.c
+++ b/lib/unicase/u32-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-32 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u32-toupper.c b/lib/unicase/u32-toupper.c
index 4c135e1..da93944 100644
--- a/lib/unicase/u32-toupper.c
+++ b/lib/unicase/u32-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-32 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-casecmp.c b/lib/unicase/u8-casecmp.c
index 6188738..2495ef3 100644
--- a/lib/unicase/u8-casecmp.c
+++ b/lib/unicase/u8-casecmp.c
@@ -1,5 +1,5 @@
/* Case and normalization insensitive comparison of UTF-8 strings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-casecoll.c b/lib/unicase/u8-casecoll.c
index 16195a3..44e0e91 100644
--- a/lib/unicase/u8-casecoll.c
+++ b/lib/unicase/u8-casecoll.c
@@ -1,6 +1,6 @@
/* Locale dependent, case and normalization insensitive comparison of UTF-8
strings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-casefold.c b/lib/unicase/u8-casefold.c
index b0fb7fd..f15bad3 100644
--- a/lib/unicase/u8-casefold.c
+++ b/lib/unicase/u8-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-8 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-casemap.c b/lib/unicase/u8-casemap.c
index 99a5934..3035e27 100644
--- a/lib/unicase/u8-casemap.c
+++ b/lib/unicase/u8-casemap.c
@@ -1,5 +1,5 @@
/* Case mapping for UTF-8 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-casexfrm.c b/lib/unicase/u8-casexfrm.c
index 3e803ed..8c5ab36 100644
--- a/lib/unicase/u8-casexfrm.c
+++ b/lib/unicase/u8-casexfrm.c
@@ -1,6 +1,6 @@
/* Locale dependent transformation for case insensitive comparison of UTF-8
strings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-ct-casefold.c b/lib/unicase/u8-ct-casefold.c
index 7be93d5..c6f190b 100644
--- a/lib/unicase/u8-ct-casefold.c
+++ b/lib/unicase/u8-ct-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-8 substrings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-ct-tolower.c b/lib/unicase/u8-ct-tolower.c
index f9ea2a6..4096e40 100644
--- a/lib/unicase/u8-ct-tolower.c
+++ b/lib/unicase/u8-ct-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-8 substrings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-ct-totitle.c b/lib/unicase/u8-ct-totitle.c
index b813b91..9fa7c61 100644
--- a/lib/unicase/u8-ct-totitle.c
+++ b/lib/unicase/u8-ct-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-8 substrings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-ct-toupper.c b/lib/unicase/u8-ct-toupper.c
index 8e4e92c..38f8c33 100644
--- a/lib/unicase/u8-ct-toupper.c
+++ b/lib/unicase/u8-ct-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-8 substrings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-is-cased.c b/lib/unicase/u8-is-cased.c
index 9cadec4..863888f 100644
--- a/lib/unicase/u8-is-cased.c
+++ b/lib/unicase/u8-is-cased.c
@@ -1,5 +1,5 @@
/* Test whether case matters for an UTF-8 string.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-is-casefolded.c b/lib/unicase/u8-is-casefolded.c
index fe5ec1a..877d1cd 100644
--- a/lib/unicase/u8-is-casefolded.c
+++ b/lib/unicase/u8-is-casefolded.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-8 string is already case-folded.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-is-invariant.c b/lib/unicase/u8-is-invariant.c
index 5a85caf..11b35cd 100644
--- a/lib/unicase/u8-is-invariant.c
+++ b/lib/unicase/u8-is-invariant.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-8 string is invariant under a given case mapping.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-is-lowercase.c b/lib/unicase/u8-is-lowercase.c
index 007e42c..9036a1b 100644
--- a/lib/unicase/u8-is-lowercase.c
+++ b/lib/unicase/u8-is-lowercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-8 string is entirely lower case.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-is-titlecase.c b/lib/unicase/u8-is-titlecase.c
index 41c5965..8d7a1da 100644
--- a/lib/unicase/u8-is-titlecase.c
+++ b/lib/unicase/u8-is-titlecase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-8 string is entirely title case.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-is-uppercase.c b/lib/unicase/u8-is-uppercase.c
index 7b87a66..c21f2a4 100644
--- a/lib/unicase/u8-is-uppercase.c
+++ b/lib/unicase/u8-is-uppercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-8 string is entirely upper case.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-prefix-context.c b/lib/unicase/u8-prefix-context.c
new file mode 100644
index 0000000..abe70eb
--- /dev/null
+++ b/lib/unicase/u8-prefix-context.c
@@ -0,0 +1,42 @@
+/* Case-mapping context of prefix UTF-8 string.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ This program is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+ This program 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 for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unictype.h"
+#include "unistr.h"
+#include "caseprop.h"
+#include "context.h"
+
+#define FUNC1 u8_casing_prefix_context
+#define FUNC2 u8_casing_prefixes_context
+#define UNIT uint8_t
+#define U_MBTOUC_UNSAFE u8_mbtouc_unsafe
+#define U_PREV u8_prev
+#include "u-prefix-context.h"
diff --git a/lib/unicase/u8-suffix-context.c b/lib/unicase/u8-suffix-context.c
new file mode 100644
index 0000000..5fec165
--- /dev/null
+++ b/lib/unicase/u8-suffix-context.c
@@ -0,0 +1,41 @@
+/* Case-mapping context of suffix UTF-8 string.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ This program is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+ This program 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 for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unictype.h"
+#include "unistr.h"
+#include "caseprop.h"
+#include "context.h"
+
+#define FUNC1 u8_casing_suffix_context
+#define FUNC2 u8_casing_suffixes_context
+#define UNIT uint8_t
+#define U_MBTOUC_UNSAFE u8_mbtouc_unsafe
+#include "u-suffix-context.h"
diff --git a/lib/unicase/u8-tolower.c b/lib/unicase/u8-tolower.c
index e15e488..62c2576 100644
--- a/lib/unicase/u8-tolower.c
+++ b/lib/unicase/u8-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-8 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-totitle.c b/lib/unicase/u8-totitle.c
index 424a3e2..22c0944 100644
--- a/lib/unicase/u8-totitle.c
+++ b/lib/unicase/u8-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-8 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/u8-toupper.c b/lib/unicase/u8-toupper.c
index f343958..102f3f2 100644
--- a/lib/unicase/u8-toupper.c
+++ b/lib/unicase/u8-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-8 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/ulc-casecmp.c b/lib/unicase/ulc-casecmp.c
index d333b5b..6fb8330 100644
--- a/lib/unicase/ulc-casecmp.c
+++ b/lib/unicase/ulc-casecmp.c
@@ -1,5 +1,5 @@
/* Case and normalization insensitive comparison of strings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/ulc-casecoll.c b/lib/unicase/ulc-casecoll.c
index 70cd989..e41e54d 100644
--- a/lib/unicase/ulc-casecoll.c
+++ b/lib/unicase/ulc-casecoll.c
@@ -1,5 +1,5 @@
/* Locale dependent, case and normalization insensitive comparison of strings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/ulc-casexfrm.c b/lib/unicase/ulc-casexfrm.c
index 57966b5..e03baa5 100644
--- a/lib/unicase/ulc-casexfrm.c
+++ b/lib/unicase/ulc-casexfrm.c
@@ -1,5 +1,5 @@
/* Locale dependent transformation for case insensitive comparison of strings.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or
diff --git a/lib/unicase/unicasemap.h b/lib/unicase/unicasemap.h
index 0b9269a..34a002e 100644
--- a/lib/unicase/unicasemap.h
+++ b/lib/unicase/unicasemap.h
@@ -1,5 +1,5 @@
/* Case mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or