-----BEGIN PGP SIGNATURE----- iQJGBAABCgAwFiEE17ttnf0k1mk3Hh9j2/yJx+jh20MFAmCRgnsSHG1zY2xyaGRA Z21haWwuY29tAAoJENv8icfo4dtDgUAQAIdSkajPSJi+fjW9ZxgYW5wjCufd9CXU xAAR4WfIFzxHvwkXN0H8J7vICgczy3bfYABXpiSbfQO2t0KacKw9Mq/Z92PusPho 9qWfFIREasdwgnk347IHW79Pzh6K45D32VIun1uOWvH5iJSlJO7p8S8PEHjz0my3 W+YVONy4gJnvqLPwdZZdXhz+UxjtVl0qWicbNXZOmZxwW+BHVmr+Ew1QYv4sVNzi sVHhOlaxuv/sVh/9w6dLU39lz0HTicZkJuOvxPRVIxbbCpAyuSUIry+JHdzc7zWG d7ql+VSov8hYYB2xbe+9j75b44zGpJH41J+eZfbPBEdZ0H10oSmsS6iWDsXcdyFE FBf6/qW4yDFrpLstN0f0sCgjo1Jn421+YAM2NQhrIPn2brr6mp/6SMV/nw+id4ch BLNW2r6gesrk3P5iveeijzI006K50n1Bq0Z/3j+PsmK3+/gIKtSqzoU857QkwRdB rWlTcVOkJwrmfDV39GjL9/zFcrIq1N2IvKcLOllPIypU3Kwe58x/ePzZFQ0noHhG BcfSshoUW51Xk1r7Mic+BGBem/iNr4tiIcylDW2NXkVpcq5XORHr9+RKRRj+B2sg 5XPzKSr8Fv8pX/ZllCMfFQQt7z6CXhvdsVhZSSDjz52XmETbKMLhDBGCLFjH5rwO /30WRwlsWx3r =hRU7 -----END PGP SIGNATURE----- Merge tag 'de5e36b4ad69c4acfdd728b2ca3e0e472d91afd1' ucd-tools 11.0.0.1master
* `data/espeak-ng` data files for eSpeak NG extended data. | * `data/espeak-ng` data files for eSpeak NG extended data. | ||||
* espeak-ng PropList property lookup as part of the `ucd_property` API. | * espeak-ng PropList property lookup as part of the `ucd_property` API. | ||||
## 11.0.0.1 - 2021-05-04 | |||||
* Fix -fsanitize=address issues in case.c. | |||||
## 11.0.0 - 2018-07-08 | ## 11.0.0 - 2018-07-08 | ||||
* Make the ispunct ctype compatibility implementation conformant. | * Make the ispunct ctype compatibility implementation conformant. |
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 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 | Permission is hereby granted, free of charge, to any person obtaining | ||||
a copy of the Unicode data files and any associated documentation | a copy of the Unicode data files and any associated documentation | ||||
without restriction, including without limitation the rights to use, | without restriction, including without limitation the rights to use, | ||||
copy, modify, merge, publish, distribute, and/or sell copies of | copy, modify, merge, publish, distribute, and/or sell copies of | ||||
the Data Files or Software, and to permit persons to whom the Data Files | 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 | THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF | ||||
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE |
/* Unicode Case Conversion | /* Unicode Case Conversion | ||||
* | * | ||||
* Copyright (C) 2012-2018 Reece H. Dunn | |||||
* Copyright (C) 2012-2018, 2021 Reece H. Dunn | |||||
* | * | ||||
* This file is part of ucd-tools. | * This file is part of ucd-tools. | ||||
* | * | ||||
*/ | */ | ||||
/* NOTE: This file is automatically generated from the UnicodeData.txt file in | /* 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" | #include "ucd/ucd.h" | ||||
codepoint_t ucd_toupper(codepoint_t c) | codepoint_t ucd_toupper(codepoint_t c) | ||||
{ | { | ||||
int begin = 0; | 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) | while (begin <= end) | ||||
{ | { | ||||
int pos = (begin + end) / 2; | int pos = (begin + end) / 2; | ||||
codepoint_t ucd_tolower(codepoint_t c) | codepoint_t ucd_tolower(codepoint_t c) | ||||
{ | { | ||||
int begin = 0; | 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) | while (begin <= end) | ||||
{ | { | ||||
int pos = (begin + end) / 2; | int pos = (begin + end) / 2; | ||||
codepoint_t ucd_totitle(codepoint_t c) | codepoint_t ucd_totitle(codepoint_t c) | ||||
{ | { | ||||
int begin = 0; | 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) | while (begin <= end) | ||||
{ | { | ||||
int pos = (begin + end) / 2; | int pos = (begin + end) / 2; |
#!/usr/bin/python | #!/usr/bin/python | ||||
# Copyright (C) 2012-2018 Reece H. Dunn | |||||
# Copyright (C) 2012-2018, 2021 Reece H. Dunn | |||||
# | # | ||||
# This file is part of ucd-tools. | # This file is part of ucd-tools. | ||||
# | # | ||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
sys.stdout.write("""/* Unicode Case Conversion | sys.stdout.write("""/* Unicode Case Conversion | ||||
* | * | ||||
* Copyright (C) 2012-2018 Reece H. Dunn | |||||
* Copyright (C) 2012-2018, 2021 Reece H. Dunn | |||||
* | * | ||||
* This file is part of ucd-tools. | * This file is part of ucd-tools. | ||||
* | * | ||||
*/ | */ | ||||
/* NOTE: This file is automatically generated from the UnicodeData.txt file in | /* 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" | #include "ucd/ucd.h" | ||||
sys.stdout.write('codepoint_t ucd_to%s(codepoint_t c)\n' % case) | sys.stdout.write('codepoint_t ucd_to%s(codepoint_t c)\n' % case) | ||||
sys.stdout.write('{\n') | sys.stdout.write('{\n') | ||||
sys.stdout.write('\tint begin = 0;\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('\twhile (begin <= end)\n') | ||||
sys.stdout.write('\t{\n') | sys.stdout.write('\t{\n') | ||||
sys.stdout.write('\t\tint pos = (begin + end) / 2;\n') | sys.stdout.write('\t\tint pos = (begin + end) / 2;\n') |