# 1↋ * Add more codepoints to `u8c_ispunct`. * Don't use Zstandard for man page compression. Use Gzip. * Remove Zstandard as a dependency. * Update gitignore. # 1↊ * Initialise error handler array. * Initialise and destroy error handler array mutex. * Fix Makefile. * Update gitignore. # 19 * Fix error when compiling with GCC: *src/u8c/dat.c:22:29: error: initializer element is not constant [-Wpedantic]*. * Improve error handling: * Add enumeration type for error types; `u8c_errtyp`. * Add function for registering error handlers; `u8c_regerrhandl` (see `test.c`). * Add function for inserting UTF-32 strings into UTF-32 strings; `u8c_u32ins`. * Enable more warnings. * Add man pages. * Fix `u8c_u32cat` skipping the last character in `lstr`. * Remove the `uninstall` target (it was deemed to unsafe). * Add *Zstandard* as a dependency. # 18 * Update `.gitignore`. * Remove core dump. # 17 * Create new logo. * Update headers. * Invert status values. # 16 * Add function for concatenating UTF-32 strings; `u8c_u32cat`. * Add functions for allocating UTF-32 and UTF-8 strings; `u8c_u32alloc` and `u8c_u8alloc`. * Add function for finding a given codepoint in an UTF-32 string; `u8c_u32fndchr`. * Add function for finding a given pattern (string) in an UTF-32 string; `u8c_u32fndpat`. * Update `SIZE_C`. * Add function for aborting; `u8c_abrt`. * Rename `u8c_debug` to `u8c_dbg`. * Use `bool` (`_Bool`) for return values instead of `uint_least8_t`. * Add more format types. * Fix incorrect unabbreviated names in headers. * Add another function from `ctypes.h`; `u8c_isxdigit`. * Use `char32_t` (from `uchar.h`) instead of `uint_least32_t` in UTF-32. * Use `unsigned char` instead of `uint_least8_t` in UTF-8. * Move all data into `u8c_dat` (of type `struct u8c_dattyp`). * Add function for setting the format (base and endian) of `u8c_fmt` and company; `u8c_setfmt`. * Remove `u8c_txt` in favour of Unicode string literals (much clearer code, but less portable). * Add function for getting a sub-string of an UTF-32 string; `u8c_u32substr`. * Don't count the null-terminator in string sizes. * Add macro for maximum valid Unicode codepoint; `u8c_unimax`. * Remove `txttolit`. * Add function for deallocating UTF-8 strings; `u8c_u8free`. * Turn both `u8c_dbg` and `u8c_thrdsafe` into type `bool` from `uint_least8_t`. * Add more letters to `u8c_isalpha`. # 15 * Add missing include directives to `include/u8c/u32free.h` and `include/u8c/u8free.h`. # 14 * Free error message when `u8c_geterr` is called (after copying, of course). * Update `u8c_freeu8`. * Rename `u8c_freeu32` to and `u8c_u32free` and `u8c_freeu8` to `u8c_u8free`. # 13 * Fix `u8c_txt` in C++. # 12 * Use `u8c_println` instead of `u8c_print` in `u8c_dbgprint`. # 11 * Update README. * Update Makefile. * Use constant variables more. * Create macro for creating human-readable UTF-32 strings; `u8c_txt`. * Add macros for deallocating UTF-32 and UTF-8 strings (use these instead of `free` or `std::free`); `u8c_u32free` and `u8c_u8free`. * Optimisations. # 10 * Make `u8c_seterr` public. * Update logo. # ↋ * Fix `u8c_ver`. * Add Turkish letters to `u8c_isalpha`. # ↊ * Add UTF-32 alternatives to some of the functions from `ctypes.h`; `u8c_isalnum`, `u8c_isalpha`, `u8c_iscntrl`, `u8c_isdigit`, `u8c_isspace`, and `u8c_ispunct`. * Add assertions. * Create new logo (move old logo to `u8c_old.svg`). # 9 * Optimisations. * Remove some optimisations, as they prevent C++ compatibility. * Fix memory leak in test program. * Add function for comparing UTF-32 strings; `u8c_u32cmp`. # 8 * Optimisations. # 7 * Optimisations. # 6 * Remove unneeded include directives. * Update `SIZE_C` to utilise the C++23 `std::size_t` literal suffix (`uz`). * Fix include guard in `include/u8c/stat.h`. * Add more error messages. # 5 * Add logo (`u8c.svg`). * Fix UTF-8 decoder. * Update README. # 4 * Add link to PKGBUILD in README. # 3 * Remove `include/u8c.h`. * Fix minor errors. # 2 * Move PKGBUILD to seperate project. * Create a *master* header that includes every other header. * Create `size_t` constant macro. * Add colour to text formatting. * Specify what file to print to in `u8c_print`. * Add C++ compatibility to headers. * Add functions for initialising and ending *u8c*. * Add dedicated function for text formatting (altough not working at the moment); `u8c_fmt`. * Remove `u8c_free`. * Improve error handling in the form of error messages (which can be retrieved by the programmer via `u8c_geterr`). * Split `u8c_print` into two functions: `u8c_print` and `u8c_println`. * Break the UTF-8 decoder somehow. * Add compile-time option to be thread-safe (requiring C11 threads if enabled). * Add function for copying UTF-32; `u8c_u32cp`. * Add function for getting the size of an UTF-32 array; `u8c_u32sz`. * Add `va_list` alternatives to `u8c_fmt` and `u8c_print`; `u8c_vfmt` and `u8c_vprint`. * Add test-program (run via `make runtest`). * Add program to make human-readable UTF-32 strings machine-readable. * Turn `u8c_ver` into a compile-time macro. * Enable more warnings when compiling. * Add assertions. # 1 * Fix Makefile compiling *u8c.so* instead of *libu8c.so*. * Add global variable for version control. # 0 * Fork from *luma*.