From da95f5d5c7275f6ea72110cf768939351424f18a Mon Sep 17 00:00:00 2001
From: "Reece H. Dunn" <msclrhd@gmail.com>
Date: Mon, 20 Aug 2018 18:48:51 +0100
Subject: [PATCH 1/4] Update the Unicode Data Files license.

---
 COPYING.UCD | 40 +++++++++++++++++++++++++++++-----------
 1 file changed, 29 insertions(+), 11 deletions(-)

diff --git a/COPYING.UCD b/COPYING.UCD
index 51608df18..38ff09a13 100644
--- a/COPYING.UCD
+++ b/COPYING.UCD
@@ -1,8 +1,29 @@
+Unicode Data Files include all data files under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/,
+http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and
+http://www.unicode.org/utility/trac/browser/.
+
+Unicode Data Files do not include PDF online code charts under the
+directory http://www.unicode.org/Public/.
+
+Software includes any source code published in the Unicode Standard
+or under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/,
+http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and
+http://www.unicode.org/utility/trac/browser/.
+
+NOTICE TO USER: Carefully read the following legal agreement.
+BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S
+DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"),
+YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
+TERMS AND CONDITIONS OF THIS AGREEMENT.
+IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE
+THE DATA FILES OR SOFTWARE.
+
 COPYRIGHT AND PERMISSION NOTICE
 
-Copyright © 1991-2014 Unicode, Inc. All rights reserved.
-Distributed under the Terms of Use in 
-http://www.unicode.org/copyright.html.
+Copyright © 1991-2018 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of the Unicode data files and any associated documentation
@@ -11,14 +32,11 @@ a copy of the Unicode data files and any associated documentation
 without restriction, including without limitation the rights to use,
 copy, modify, merge, publish, distribute, and/or sell copies of
 the Data Files or Software, and to permit persons to whom the Data Files
-or Software are furnished to do so, provided that
-(a) this copyright and permission notice appear with all copies 
-of the Data Files or Software,
-(b) this copyright and permission notice appear in associated 
-documentation, and
-(c) there is clear notice in each modified Data File or in the Software
-as well as in the documentation associated with the Data File(s) or
-Software that the data or software has been modified.
+or Software are furnished to do so, provided that either
+(a) this copyright and permission notice appear with all copies
+of the Data Files or Software, or
+(b) this copyright and permission notice appear in associated
+Documentation.
 
 THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
 ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE

From 1a895f37b9cb868234a2278a410a234259b08905 Mon Sep 17 00:00:00 2001
From: "Reece H. Dunn" <msclrhd@gmail.com>
Date: Tue, 4 May 2021 17:51:28 +0100
Subject: [PATCH 2/4] Fix running the tests with -fsanitize=address.

---
 src/case.c    | 8 ++++----
 tools/case.py | 6 +++---
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/ucd-tools/src/case.c b/src/ucd-tools/src/case.c
index 04c9736af..b11c869c5 100644
--- a/src/ucd-tools/src/case.c
+++ b/src/ucd-tools/src/case.c
@@ -1,6 +1,6 @@
 /* Unicode Case Conversion
  *
- * Copyright (C) 2012-2016 Reece H. Dunn
+ * Copyright (C) 2012-2018, 2021 Reece H. Dunn
  *
  * This file is part of ucd-tools.
  *
@@ -2664,7 +2664,7 @@ static const struct case_conversion_entry case_conversion_data[] =
 codepoint_t ucd_toupper(codepoint_t c)
 {
 	int begin = 0;
-	int end   = sizeof(case_conversion_data)/sizeof(case_conversion_data[0]);
+	int end   = sizeof(case_conversion_data)/sizeof(case_conversion_data[0]) - 1;
 	while (begin <= end)
 	{
 		int pos = (begin + end) / 2;
@@ -2682,7 +2682,7 @@ codepoint_t ucd_toupper(codepoint_t c)
 codepoint_t ucd_tolower(codepoint_t c)
 {
 	int begin = 0;
-	int end   = sizeof(case_conversion_data)/sizeof(case_conversion_data[0]);
+	int end   = sizeof(case_conversion_data)/sizeof(case_conversion_data[0]) - 1;
 	while (begin <= end)
 	{
 		int pos = (begin + end) / 2;
@@ -2700,7 +2700,7 @@ codepoint_t ucd_tolower(codepoint_t c)
 codepoint_t ucd_totitle(codepoint_t c)
 {
 	int begin = 0;
-	int end   = sizeof(case_conversion_data)/sizeof(case_conversion_data[0]);
+	int end   = sizeof(case_conversion_data)/sizeof(case_conversion_data[0]) - 1;
 	while (begin <= end)
 	{
 		int pos = (begin + end) / 2;
diff --git a/src/ucd-tools/tools/case.py b/src/ucd-tools/tools/case.py
index 9daa57409..33cd54721 100755
--- a/src/ucd-tools/tools/case.py
+++ b/src/ucd-tools/tools/case.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python
 
-# Copyright (C) 2012-2016 Reece H. Dunn
+# Copyright (C) 2012-2018, 2021 Reece H. Dunn
 #
 # This file is part of ucd-tools.
 #
@@ -33,7 +33,7 @@
 if __name__ == '__main__':
 	sys.stdout.write("""/* Unicode Case Conversion
  *
- * Copyright (C) 2012-2016 Reece H. Dunn
+ * Copyright (C) 2012-2018, 2021 Reece H. Dunn
  *
  * This file is part of ucd-tools.
  *
@@ -83,7 +83,7 @@
 		sys.stdout.write('codepoint_t ucd_to%s(codepoint_t c)\n' % case)
 		sys.stdout.write('{\n')
 		sys.stdout.write('\tint begin = 0;\n')
-		sys.stdout.write('\tint end   = sizeof(case_conversion_data)/sizeof(case_conversion_data[0]);\n')
+		sys.stdout.write('\tint end   = sizeof(case_conversion_data)/sizeof(case_conversion_data[0]) - 1;\n')
 		sys.stdout.write('\twhile (begin <= end)\n')
 		sys.stdout.write('\t{\n')
 		sys.stdout.write('\t\tint pos = (begin + end) / 2;\n')

From 2b2eac1d8bede4956b1c2aa51d418a956583801e Mon Sep 17 00:00:00 2001
From: "Reece H. Dunn" <msclrhd@gmail.com>
Date: Tue, 4 May 2021 17:54:15 +0100
Subject: [PATCH 3/4] Fix the note in case.py/case.c.

---
 src/case.c    | 2 +-
 tools/case.py | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/ucd-tools/src/case.c b/src/ucd-tools/src/case.c
index b11c869c5..dd17dc4ff 100644
--- a/src/ucd-tools/src/case.c
+++ b/src/ucd-tools/src/case.c
@@ -19,7 +19,7 @@
  */
 
 /* NOTE: This file is automatically generated from the UnicodeData.txt file in
- * the Unicode Character database by the ucd-tools/tools/categories.py script.
+ * the Unicode Character database by the ucd-tools/tools/case.py script.
  */
 
 #include "ucd/ucd.h"
diff --git a/src/ucd-tools/tools/case.py b/src/ucd-tools/tools/case.py
index 33cd54721..b6d15efd0 100755
--- a/src/ucd-tools/tools/case.py
+++ b/src/ucd-tools/tools/case.py
@@ -52,7 +52,7 @@
  */
 
 /* NOTE: This file is automatically generated from the UnicodeData.txt file in
- * the Unicode Character database by the ucd-tools/tools/categories.py script.
+ * the Unicode Character database by the ucd-tools/tools/case.py script.
  */
 
 #include "ucd/ucd.h"

