textproc/uni-algo 1.2.0 FreeBSD
Unicode Algorithms Implementation for C/C++
- System
- FreeBSD
- Repository
- FreeBSD ports
- Maintainer
- [email protected]
- License
- MIT, PD
- Categories
- textproc
- Package size
- 299.8 KiB, 2628.3 KiB installed
Description
There are plenty of Unicode libraries for C/C++ out there that implement random Unicode algorithms, but many of them don't handle ill-formed UTF sequences at all. In the best-case scenario, you'll get an exception/error; in the worst-case, undefined behavior. The biggest problem is that in 99% cases everything will be fine. This is inappropriate for security reasons. This library handles such problems (there are not only ill-formed sequences actually) properly and always according to The Unicode Standard.
In C/C++, unlike some other programming languages, there is no safe type for UTF-8/UTF-16 that guarantees that the data will be well-formed; this makes the problem even worse. The library doesn't introduce such a type either because the library doesn't work with types/strings/files/streams, it works with the data inside them and makes it safe when it's needed.
Check this article if you want more information about ill-formed sequences: https://hsivonen.fi/broken-utf-8
It is a bit outdated because ICU (International Components for Unicode) now uses W3C conformant implementation too, but the information in the article is very useful.
This library does use W3C conformant implementation too.
In the other systems
| System | Port | Version |
|---|---|---|
| FreeBSD | textproc/uni-algo | 1.2.0 |
| DragonFly | textproc/uni-algo | 1.2.0 |
| HardenedBSD | textproc/uni-algo | 1.2.0 |
| GhostBSD | textproc/uni-algo | 1.2.0 |
Install
Binary package:
pkg install uni-algo
From the ports tree:
cd /usr/ports/textproc/uni-algo/ && make install clean
To depend on this port in another port's Makefile:
RUN_DEPENDS= uni-algo>0:textproc/uni-algo
LIB_DEPENDS= libuni-algo.so:textproc/uni-algo
Packages
The version each package repository carries. “-” means the repository builds no package of it, “n/a” that there is no such repository.
| Repository | aarch64 | amd64 | armv6 | armv7 | i386 |
|---|---|---|---|---|---|
| FreeBSD:14:latest | 1.2.0 | 1.2.0 | - | 1.2.0 | 1.2.0 |
| FreeBSD:14:quarterly | 1.2.0 | 1.2.0 | n/a | 1.2.0 | 1.2.0 |
| FreeBSD:15:latest | 1.2.0 | 1.2.0 | n/a | 1.2.0 | 1.2.0 |
| FreeBSD:15:quarterly | 1.2.0 | 1.2.0 | n/a | n/a | n/a |
| FreeBSD:16:latest | 1.2.0 | 1.2.0 | n/a | n/a | n/a |
| FreeBSD:16:quarterly | n/a | n/a | n/a | n/a | n/a |
Dependencies
The Makefile names none itself; they come from USES and USE_*.
The full lists below include those, and their dependencies in turn.
Build dependencies 15
Required by 1
Configuration
No options to configure.
- USES
- cmake compiler:c++17-lang
- Service scripts
- none
Files
pkg-plist 60
- include/uni_algo/all.h
- include/uni_algo/case.h
- include/uni_algo/config.h
- include/uni_algo/conv.h
- include/uni_algo/ext/ascii.h
- include/uni_algo/ext/translit/japanese_kana_to_romaji_hepburn.h
- include/uni_algo/ext/translit/macedonian_to_latin_docs.h
- include/uni_algo/impl/data/data_case.h
- include/uni_algo/impl/data/data_norm.h
- include/uni_algo/impl/data/data_prop.h
- include/uni_algo/impl/data/data_script.h
- include/uni_algo/impl/data/data_segment_grapheme.h
- include/uni_algo/impl/data/data_segment_word.h
- include/uni_algo/impl/data/extern_case.h
- include/uni_algo/impl/data/extern_norm.h
- include/uni_algo/impl/data/extern_prop.h
- include/uni_algo/impl/data/extern_script.h
- include/uni_algo/impl/data/extern_segment_grapheme.h
- include/uni_algo/impl/data/extern_segment_word.h
- include/uni_algo/impl/impl_case.h
- include/uni_algo/impl/impl_case_locale.h
- include/uni_algo/impl/impl_conv.h
- include/uni_algo/impl/impl_cpp_lib_version.h
- include/uni_algo/impl/impl_data.h
- include/uni_algo/impl/impl_iter.h
- include/uni_algo/impl/impl_locale.h
- include/uni_algo/impl/impl_norm.h
- include/uni_algo/impl/impl_prop.h
- include/uni_algo/impl/impl_script.h
- include/uni_algo/impl/impl_segment_grapheme.h
- include/uni_algo/impl/impl_segment_word.h
- include/uni_algo/impl/impl_types.h
- include/uni_algo/impl/impl_unicode_version.h
- include/uni_algo/impl/internal_defines.h
- include/uni_algo/impl/internal_stages.h
- include/uni_algo/impl/internal_undefs.h
- include/uni_algo/internal/data_inl.h
- include/uni_algo/internal/error.h
- include/uni_algo/internal/found.h
- include/uni_algo/internal/locale_inl.h
- include/uni_algo/internal/ranges_core.h
- include/uni_algo/internal/ranges_translit.h
- include/uni_algo/internal/safe_layer.h
- include/uni_algo/locale.h
- include/uni_algo/norm.h
- include/uni_algo/prop.h
- include/uni_algo/ranges.h
- include/uni_algo/ranges_conv.h
- include/uni_algo/ranges_grapheme.h
- include/uni_algo/ranges_norm.h
- include/uni_algo/ranges_word.h
- include/uni_algo/script.h
- include/uni_algo/version.h
- lib/libuni-algo.so
- lib/libuni-algo.so.1.2
- lib/libuni-algo.so.1.2.0
- share/uni-algo/cmake/uni-algo-config-version.cmake
- share/uni-algo/cmake/uni-algo-config.cmake
- share/uni-algo/cmake/uni-algo-targets-.cmake
- share/uni-algo/cmake/uni-algo-targets.cmake
distinfo 1
| File | Size | SHA256 |
|---|---|---|
| uni-algo-uni-algo-v1.2.0_GH0.tar.gz | 437340 | f2a1539cd8635bc6088d05144a73ecfe7b4d74ee0361fabed6f87f9f19e74ca9 |
Commit history 0
No commits in the history this site was built from.