pr29_4z(3)
β¨ pr29_4z β¨
okay bestie, welcome to the libidn corner of the manual, section 3 β this is pr29_4z, and no cap it's a tiny little function with a very specific job π
πΈ NAME πΈ
pr29_4z β literally just an API function, that's the whole vibe π
π¦ SYNOPSIS π¦
#include <pr29.h>
int pr29_4z(const uint32_t * in);
π ARGUMENTS π
const uint32_t * inβ a zero terminated array of Unicode code points. that's it, that's the input. zero terminated, so it just keeps going until it hits that0and then it's done π«Ά
π DESCRIPTION π
so here's the tea: this function checks the input to see if it may be normalized into different strings by different NFKC implementations, because of an anomaly in the NFKC specifications. yes, fr fr β different implementations can look at the same input and walk away with different answers. it's giving chaos, honestly π
Return value: it returns the Pr29_rc value PR29_SUCCESS on success, and PR29_PROBLEM if the input sequence is a "problem sequence" β meaning it may be normalized into different strings by different implementations. so like, if you get PR29_PROBLEM, that input is lowkey a menace π
bestie, take the PR29_PROBLEM result seriously. it's not a false alarm, it's a real "two NFKC implementations will disagree about this" situation.
π REPORTING BUGS π
found something cursed? report bugs to help-libidn@gnu.org π
general guidelines for reporting bugs live here: https://www.gnu.org/gethelp/
and the GNU Libidn home page is right here: https://www.gnu.org/software/libidn/
π COPYRIGHT π
Copyright Β© 2002-2026 Simon Josefsson.
Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. iconic, honestly β free to share, just keep the receipts π§
π SEE ALSO π
the full documentation for libidn is maintained as a Texinfo manual. if the info and libidn programs are properly installed at your site, this command:
info libidn
should give you access to the complete manual. slay β¨
as an alternative you may obtain the manual from:
https://www.gnu.org/software/libidn/manual/
and that's the whole page, bestie π this was pr29_4z(3) from libidn 1.44 β go normalize something responsibly, mwah π
π¦ where this page comes from
- arch rolling: libidn 1.44-1 Β· GPL3 AND LGPL
- epel 10: libidn-devel 1.44-1.el10_3 Β· (LGPL-3.0-or-later OR GPL-2.0-or-later) AND GPL-3.0-or-later AND GFDL-1.3-or-later
- fedora 43: libidn-devel 1.44-1.fc43 Β· (LGPL-3.0-or-later OR GPL-2.0-or-later) AND GPL-3.0-or-later AND GFDL-1.3-or-later
- fedora 43: libidn-devel 1.44-1.fc43 Β· (LGPL-3.0-or-later OR GPL-2.0-or-later) AND GPL-3.0-or-later AND GFDL-1.3-or-later
- fedora 44: libidn-devel 1.44-1.fc44 Β· (LGPL-3.0-or-later OR GPL-2.0-or-later) AND GPL-3.0-or-later AND GFDL-1.3-or-later
- fedora 44: libidn-devel 1.44-1.fc44 Β· (LGPL-3.0-or-later OR GPL-2.0-or-later) AND GPL-3.0-or-later AND GFDL-1.3-or-later
- ubuntu stonking: libidn-dev 1.44-1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms