From abf81603ba137a98c84e7dd1d871c951659a4ea9 Mon Sep 17 00:00:00 2001 From: "Steven G. Johnson" Date: Sat, 30 Mar 2019 16:31:02 -0400 Subject: add utf8proc_unicode_version (#151) --- Makefile | 3 ++- data/Makefile | 2 +- test/misc.c | 4 ++++ utf8proc.c | 4 ++++ utf8proc.h | 5 +++++ 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 79dd8a8..e3310f7 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,7 @@ AR?=ar CC?=gcc INSTALL=install FIND=find +PERL=perl # compiler settings CFLAGS ?= -O2 @@ -154,7 +155,7 @@ test/custom: test/custom.c test/tests.o utf8proc.o utf8proc.h test/tests.h $(CC) $(UCFLAGS) $(LDFLAGS) test/custom.c test/tests.o utf8proc.o -o $@ test/misc: test/misc.c test/tests.o utf8proc.o utf8proc.h test/tests.h - $(CC) $(UCFLAGS) $(LDFLAGS) test/misc.c test/tests.o utf8proc.o -o $@ + $(CC) $(UCFLAGS) $(LDFLAGS) -DUNICODE_VERSION='"'`$(PERL) -ne "/^UNICODE_VERSION=/ and print $$';" data/Makefile`'"' test/misc.c test/tests.o utf8proc.o -o $@ check: test/normtest data/NormalizationTest.txt test/graphemetest data/GraphemeBreakTest.txt test/printproperty test/case test/custom test/charwidth test/misc test/valid test/iterate bench/bench.c bench/util.c bench/util.h utf8proc.o $(MAKE) -C bench diff --git a/data/Makefile b/data/Makefile index c824a9b..f5d1dd9 100644 --- a/data/Makefile +++ b/data/Makefile @@ -21,7 +21,7 @@ utf8proc_data.c.new: data_generator.rb UnicodeData.txt GraphemeBreakProperty.txt CharWidths.txt: charwidths.jl EastAsianWidth.txt $(JULIA) charwidths.jl > $@ -# Unicode data version +# Unicode data version (must also update utf8proc_unicode_version function) UNICODE_VERSION=12.0.0 UnicodeData.txt: diff --git a/test/misc.c b/test/misc.c index 56d81d5..8655233 100644 --- a/test/misc.c +++ b/test/misc.c @@ -41,6 +41,10 @@ int main(void) { issue128(); issue102(); +#ifdef UNICODE_VERSION + printf("Unicode version: Makefile has %s, has API %s\n", UNICODE_VERSION, utf8proc_unicode_version()); + check(!strcmp(UNICODE_VERSION, utf8proc_unicode_version()), "utf8proc_unicode_version mismatch"); +#endif printf("Misc tests SUCCEEDED.\n"); return 0; } diff --git a/utf8proc.c b/utf8proc.c index 98e754d..5de128a 100644 --- a/utf8proc.c +++ b/utf8proc.c @@ -100,6 +100,10 @@ UTF8PROC_DLLEXPORT const char *utf8proc_version(void) { return STRINGIZE(UTF8PROC_VERSION_MAJOR) "." STRINGIZE(UTF8PROC_VERSION_MINOR) "." STRINGIZE(UTF8PROC_VERSION_PATCH) ""; } +UTF8PROC_DLLEXPORT const char *utf8proc_unicode_version(void) { + return "12.0.0"; +} + UTF8PROC_DLLEXPORT const char *utf8proc_errmsg(utf8proc_ssize_t errcode) { switch (errcode) { case UTF8PROC_ERROR_NOMEM: diff --git a/utf8proc.h b/utf8proc.h index d12b721..9df1811 100644 --- a/utf8proc.h +++ b/utf8proc.h @@ -408,6 +408,11 @@ UTF8PROC_DLLEXPORT extern const utf8proc_int8_t utf8proc_utf8class[256]; */ UTF8PROC_DLLEXPORT const char *utf8proc_version(void); +/** + * Returns the utf8proc supported Unicode version as a string MAJOR.MINOR.PATCH. + */ +UTF8PROC_DLLEXPORT const char *utf8proc_unicode_version(void); + /** * Returns an informative error string for the given utf8proc error code * (e.g. the error codes returned by @ref utf8proc_map). -- cgit v1.2.3