]>
Commit | Line | Data |
---|---|---|
1d09f67e TL |
1 | # utf8proc release history # |
2 | ||
3 | ## Version 2.2 ## | |
4 | ||
5 | 2018-07-24 | |
6 | ||
7 | - Unicode 11 support ([#132] and [#140]). | |
8 | ||
9 | - `utf8proc_NFKC_Casefold` convenience function for `NFKC_Casefold` | |
10 | normalization ([#133]). | |
11 | ||
12 | - `UTF8PROC_STRIPNA` option to strip unassigned codepoints ([#133]). | |
13 | ||
14 | - Support building static libraries on Windows (callers need to | |
15 | `#define UTF8PROC_STATIC`) ([#123]). | |
16 | ||
17 | - `cmake` fix to avoid defining `UTF8PROC_EXPORTS` globally ([#121]). | |
18 | ||
19 | - `toupper` of ß (U+00df) now yields ẞ (U+1E9E) ([#134]), similar to musl; | |
20 | case-folding still yields the standard "ss" mapping. | |
21 | ||
22 | - `utf8proc_charwidth` now returns `1` for U+00AD (soft hyphen) and | |
23 | for unassigned/PUA codepoints ([#135]). | |
24 | ||
25 | ## Version 2.1.1 ## | |
26 | ||
27 | 2018-04-27 | |
28 | ||
29 | - Fixed composition bug ([#128]). | |
30 | ||
31 | - Minor build fixes ([#94], [#99], [#113], [#125]). | |
32 | ||
33 | ## Version 2.1 ## | |
34 | ||
35 | 2016-12-26: | |
36 | ||
37 | - New functions `utf8proc_map_custom` and `utf8proc_decompose_custom` | |
38 | to allow user-supplied transformations of codepoints, in conjunction | |
39 | with other transformations ([#89]). | |
40 | ||
41 | - New function `utf8proc_normalize_utf32` to apply normalizations | |
42 | directly to UTF-32 data (not just UTF-8) ([#88]). | |
43 | ||
44 | - Fixed stack overflow that could occur due to incorrect definition | |
45 | of `UINT16_MAX` with some compilers ([#84]). | |
46 | ||
47 | - Fixed conflict with `stdbool.h` in Visual Studio ([#90]). | |
48 | ||
49 | - Updated font metrics to use Unifont 9.0.04. | |
50 | ||
51 | ## Version 2.0.2 ## | |
52 | ||
53 | 2016-07-27: | |
54 | ||
55 | - Move `-Wmissing-prototypes` warning flag from `Makefile` to `.travis.yml` | |
56 | since MSVC does not understand this flag and it is occasionally useful to | |
57 | build using MSVC through the `Makefile` ([#79]). | |
58 | ||
59 | - Use a different variable name for a nested loop in `bench/bench.c`, and | |
60 | declare it in a C89 way rather than inside the `for` to avoid "error: | |
61 | 'for' loop initial declarations are only allowed in C99 mode" ([#80]). | |
62 | ||
63 | ## Version 2.0.1 ## | |
64 | ||
65 | 2016-07-13: | |
66 | ||
67 | - Bug fix in `utf8proc_grapheme_break_stateful` ([#77]). | |
68 | ||
69 | - Tests now use versioned Unicode files, so they will no longer | |
70 | break when a new version of Unicode is released ([#78]). | |
71 | ||
72 | ## Version 2.0 ## | |
73 | ||
74 | 2016-07-13: | |
75 | ||
76 | - Updated for Unicode 9.0 ([#70]). | |
77 | ||
78 | - New `utf8proc_grapheme_break_stateful` to handle the complicated | |
79 | grapheme-breaking rules in Unicode 9. The old `utf8proc_grapheme_break` | |
80 | is still provided, but may incorrectly identify grapheme breaks | |
81 | in some Unicode-9 sequences. | |
82 | ||
83 | - Smaller Unicode tables ([#62], [#68]). This required changes | |
84 | in the `utf8proc_property_t` structure, which breaks backward | |
85 | compatibility if you access this `struct` directly. The | |
86 | functions in the API remain backward-compatible, however. | |
87 | ||
88 | - Buffer overrun fix ([#66]). | |
89 | ||
90 | ## Version 1.3.1 ## | |
91 | ||
92 | 2015-11-02: | |
93 | ||
94 | - Do not export symbol for internal function `unsafe_encode_char()` ([#55]). | |
95 | ||
96 | - Install relative symbolic links for shared libraries ([#58]). | |
97 | ||
98 | - Enable and fix compiler warnings ([#55], [#58]). | |
99 | ||
100 | - Add missing files to `make clean` ([#58]). | |
101 | ||
102 | ## Version 1.3 ## | |
103 | ||
104 | 2015-07-06: | |
105 | ||
106 | - Updated for Unicode 8.0 ([#45]). | |
107 | ||
108 | - New `utf8proc_tolower` and `utf8proc_toupper` functions, portable | |
109 | replacements for `towlower` and `towupper` in the C library ([#40]). | |
110 | ||
111 | - Don't treat Unicode "non-characters" as invalid, and improved | |
112 | validity checking in general ([#35]). | |
113 | ||
114 | - Prefix all typedefs with `utf8proc_`, e.g. `utf8proc_int32_t`, | |
115 | to avoid collisions with other libraries ([#32]). | |
116 | ||
117 | - Rename `DLLEXPORT` to `UTF8PROC_DLLEXPORT` to prevent collisions. | |
118 | ||
119 | - Fix build breakage in the benchmark routines. | |
120 | ||
121 | - More fine-grained Makefile variables (`PICFLAG` etcetera), so that | |
122 | compilation flags can be selectively overridden, and in particular | |
123 | so that `CFLAGS` can be changed without accidentally eliminating | |
124 | necessary flags like `-fPIC` and `-std=c99` ([#43]). | |
125 | ||
126 | - Updated character-width tables based on Unifont 8.0.01 ([#51]) and | |
127 | the Unicode 8 character categories ([#47]). | |
128 | ||
129 | ## Version 1.2 ## | |
130 | ||
131 | 2015-03-28: | |
132 | ||
133 | - Updated for Unicode 7.0 ([#6]). | |
134 | ||
135 | - New function `utf8proc_grapheme_break(c1,c2)` that returns whether | |
136 | there is a grapheme break between `c1` and `c2` ([#20]). | |
137 | ||
138 | - New function `utf8proc_charwidth(c)` that returns the number of | |
139 | column-positions that should be required for `c`; essentially a | |
140 | portable replacment for `wcwidth(c)` ([#27]). | |
141 | ||
142 | - New function `utf8proc_category(c)` that returns the Unicode | |
143 | category of `c` (as one of the constants `UTF8PROC_CATEGORY_xx`). | |
144 | Also, a function `utf8proc_category_string(c)` that returns the Unicode | |
145 | category of `c` as a two-character string. | |
146 | ||
147 | - `cmake` script `CMakeLists.txt`, in addition to `Makefile`, for | |
148 | easier compilation on Windows ([#28]). | |
149 | ||
150 | - Various `Makefile` improvements: a `make check` target to perform | |
151 | tests ([#13]), `make install`, a rule to automate updating the Unicode | |
152 | tables, etcetera. | |
153 | ||
154 | - The shared library is now versioned (e.g. has a soname on GNU/Linux) ([#24]). | |
155 | ||
156 | - C++/MSVC compatibility ([#17]). | |
157 | ||
158 | - Most `#defined` constants are now `enums` ([#29]). | |
159 | ||
160 | - New preprocessor constants `UTF8PROC_VERSION_MAJOR`, | |
161 | `UTF8PROC_VERSION_MINOR`, and `UTF8PROC_VERSION_PATCH` for compile-time | |
162 | detection of the API version. | |
163 | ||
164 | - Doxygen-formatted documentation ([#29]). | |
165 | ||
166 | - The Ruby and PostgreSQL plugins have been removed due to lack of testing ([#22]). | |
167 | ||
168 | ## Version 1.1.6 ## | |
169 | ||
170 | 2013-11-27: | |
171 | ||
172 | - PostgreSQL 9.2 and 9.3 compatibility (lowercase `c` language name) | |
173 | ||
174 | ## Version 1.1.5 ## | |
175 | ||
176 | 2009-08-20: | |
177 | ||
178 | - Use `RSTRING_PTR()` and `RSTRING_LEN()` instead of `RSTRING()->ptr` and | |
179 | `RSTRING()->len` for ruby1.9 compatibility (and `#define` them, if not | |
180 | existent) | |
181 | ||
182 | 2009-10-02: | |
183 | ||
184 | - Patches for compatibility with Microsoft Visual Studio | |
185 | ||
186 | 2009-10-08: | |
187 | ||
188 | - Fixes to make utf8proc usable in C++ programs | |
189 | ||
190 | 2009-10-16: | |
191 | ||
192 | ## Version 1.1.4 ## | |
193 | ||
194 | 2009-06-14: | |
195 | ||
196 | - replaced C++ style comments for compatibility reasons | |
197 | - added typecasts to suppress compiler warnings | |
198 | - removed redundant source files for ruby-gemfile generation | |
199 | ||
200 | 2009-08-19: | |
201 | ||
202 | - Changed copyright notice for Public Software Group e. V. | |
203 | - Minor changes in the `README` file | |
204 | ||
205 | ## Version 1.1.3 ## | |
206 | ||
207 | 2008-10-04: | |
208 | ||
209 | - Added a function `utf8proc_version` returning a string containing the version | |
210 | number of the library. | |
211 | - Included a target `libutf8proc.dylib` for MacOSX. | |
212 | ||
213 | 2009-05-01: | |
214 | - PostgreSQL 8.3 compatibility (use of `SET_VARSIZE` macro) | |
215 | ||
216 | ## Version 1.1.2 ## | |
217 | ||
218 | 2007-07-25: | |
219 | ||
220 | - Fixed a serious bug in the data file generator, which caused characters | |
221 | being treated incorrectly, when stripping default ignorable characters or | |
222 | calculating grapheme cluster boundaries. | |
223 | ||
224 | ## Version 1.1.1 ## | |
225 | ||
226 | 2007-06-25: | |
227 | ||
228 | - Added a new PostgreSQL function `unistrip`, which behaves like `unifold`, | |
229 | but also removes all character marks (e.g. accents). | |
230 | ||
231 | 2007-07-22: | |
232 | ||
233 | - Changed license from BSD to MIT style. | |
234 | - Added a new function `utf8proc_codepoint_valid` to the C library. | |
235 | - Changed compiler flags in `Makefile` from `-g -O0` to `-O2` | |
236 | - The ruby script, which was used to build the `utf8proc_data.c` file, is now | |
237 | included in the distribution. | |
238 | ||
239 | ## Version 1.0.3 ## | |
240 | ||
241 | 2007-03-16: | |
242 | ||
243 | - Fixed a bug in the ruby library, which caused an error, when splitting an | |
244 | empty string at grapheme cluster boundaries (method `String#utf8chars`). | |
245 | ||
246 | ## Version 1.0.2 ## | |
247 | ||
248 | 2006-09-21: | |
249 | ||
250 | - included a check in `Integer#utf8`, which raises an exception, if the given | |
251 | code-point is invalid because of being too high (this was missing yet) | |
252 | ||
253 | 2006-12-26: | |
254 | ||
255 | - added support for PostgreSQL version 8.2 | |
256 | ||
257 | ## Version 1.0.1 ## | |
258 | ||
259 | 2006-09-20: | |
260 | ||
261 | - included a gem file for the ruby version of the library | |
262 | ||
263 | Release of version 1.0.1 | |
264 | ||
265 | ## Version 1.0 ## | |
266 | ||
267 | 2006-09-17: | |
268 | ||
269 | - added the `LUMP` option, which lumps certain characters together (see `lump.md`) (also used for the PostgreSQL `unifold` function) | |
270 | - added the `STRIPMARK` option, which strips marking characters (or marks of composed characters) | |
271 | - deprecated ruby method `String#char_ary` in favour of `String#utf8chars` | |
272 | ||
273 | ## Version 0.3 ## | |
274 | ||
275 | 2006-07-18: | |
276 | ||
277 | - changed normalization from NFC to NFKC for postgresql unifold function | |
278 | ||
279 | 2006-08-04: | |
280 | ||
281 | - added support to mark the beginning of a grapheme cluster with 0xFF (option: `CHARBOUND`) | |
282 | - added the ruby method `String#chars`, which is returning an array of UTF-8 encoded grapheme clusters | |
283 | - added `NLF2LF` transformation in postgresql `unifold` function | |
284 | - added the `DECOMPOSE` option, if you neither use `COMPOSE` or `DECOMPOSE`, no normalization will be performed (different from previous versions) | |
285 | - using integer constants rather than C-strings for character properties | |
286 | - fixed (hopefully) a problem with the ruby library on Mac OS X, which occurred when compiler optimization was switched on | |
287 | ||
288 | ## Version 0.2 ## | |
289 | ||
290 | 2006-06-05: | |
291 | ||
292 | - changed behaviour of PostgreSQL function to return NULL in case of invalid input, rather than raising an exceptional condition | |
293 | - improved efficiency of PostgreSQL function (no transformation to C string is done) | |
294 | ||
295 | 2006-06-20: | |
296 | ||
297 | - added -fpic compiler flag in Makefile | |
298 | - fixed bug in the C code for the ruby library (usage of non-existent function) | |
299 | ||
300 | ## Version 0.1 ## | |
301 | ||
302 | 2006-06-02: initial release of version 0.1 | |
303 | ||
304 | [#6]: https://github.com/JuliaLang/utf8proc/issues/6 | |
305 | [#13]: https://github.com/JuliaLang/utf8proc/issues/13 | |
306 | [#17]: https://github.com/JuliaLang/utf8proc/issues/17 | |
307 | [#20]: https://github.com/JuliaLang/utf8proc/issues/20 | |
308 | [#22]: https://github.com/JuliaLang/utf8proc/issues/22 | |
309 | [#24]: https://github.com/JuliaLang/utf8proc/issues/24 | |
310 | [#27]: https://github.com/JuliaLang/utf8proc/issues/27 | |
311 | [#28]: https://github.com/JuliaLang/utf8proc/issues/28 | |
312 | [#29]: https://github.com/JuliaLang/utf8proc/issues/29 | |
313 | [#32]: https://github.com/JuliaLang/utf8proc/issues/32 | |
314 | [#35]: https://github.com/JuliaLang/utf8proc/issues/35 | |
315 | [#40]: https://github.com/JuliaLang/utf8proc/issues/40 | |
316 | [#43]: https://github.com/JuliaLang/utf8proc/issues/43 | |
317 | [#45]: https://github.com/JuliaLang/utf8proc/issues/45 | |
318 | [#47]: https://github.com/JuliaLang/utf8proc/issues/47 | |
319 | [#51]: https://github.com/JuliaLang/utf8proc/issues/51 | |
320 | [#55]: https://github.com/JuliaLang/utf8proc/issues/55 | |
321 | [#58]: https://github.com/JuliaLang/utf8proc/issues/58 | |
322 | [#62]: https://github.com/JuliaLang/utf8proc/issues/62 | |
323 | [#66]: https://github.com/JuliaLang/utf8proc/issues/66 | |
324 | [#68]: https://github.com/JuliaLang/utf8proc/issues/68 | |
325 | [#70]: https://github.com/JuliaLang/utf8proc/issues/70 | |
326 | [#77]: https://github.com/JuliaLang/utf8proc/issues/77 | |
327 | [#78]: https://github.com/JuliaLang/utf8proc/issues/78 | |
328 | [#79]: https://github.com/JuliaLang/utf8proc/issues/79 | |
329 | [#80]: https://github.com/JuliaLang/utf8proc/issues/80 | |
330 | [#84]: https://github.com/JuliaLang/utf8proc/issues/84 | |
331 | [#88]: https://github.com/JuliaLang/utf8proc/issues/88 | |
332 | [#89]: https://github.com/JuliaLang/utf8proc/issues/89 | |
333 | [#90]: https://github.com/JuliaLang/utf8proc/issues/90 | |
334 | [#94]: https://github.com/JuliaLang/utf8proc/issues/94 | |
335 | [#99]: https://github.com/JuliaLang/utf8proc/issues/99 | |
336 | [#113]: https://github.com/JuliaLang/utf8proc/issues/113 | |
337 | [#121]: https://github.com/JuliaLang/utf8proc/issues/121 | |
338 | [#123]: https://github.com/JuliaLang/utf8proc/issues/123 | |
339 | [#125]: https://github.com/JuliaLang/utf8proc/issues/125 | |
340 | [#128]: https://github.com/JuliaLang/utf8proc/issues/128 | |
341 | [#132]: https://github.com/JuliaLang/utf8proc/issues/132 | |
342 | [#133]: https://github.com/JuliaLang/utf8proc/issues/133 | |
343 | [#134]: https://github.com/JuliaLang/utf8proc/issues/134 | |
344 | [#135]: https://github.com/JuliaLang/utf8proc/issues/135 | |
345 | [#140]: https://github.com/JuliaLang/utf8proc/issues/140 |