stringprep_4zi(3)
β¨ stringprep_4zi β¨
okay bestie, pull up a chair because we're diving into libidn's stringprep_4zi(3) page and honestly? it's giving niche-but-iconic π
π NAME π
stringprep_4zi β the API function. that's it, that's the name, she's simple and she knows it π¦
πΈ SYNOPSIS πΈ
#include <stringprep.h>
int stringprep_4zi(uint32_t * ucs4, size_t maxucs4len,
Stringprep_profile_flags flags, const Stringprep_profile * profile);
look at her. four whole arguments. main character energy fr fr β¨
π ARGUMENTS π
uint32_t * ucs4β the input/output array, and it's holding a zero terminated string that we're gonna prepare. yes bestie, it's both the input AND where the result goes. she does it all π«Άsize_t maxucs4lenβ the maximum length of that input/output array. think of it as the vibe check on how much room you've got πStringprep_profile_flags flagsβ aStringprep_profile_flagsvalue, or0. pick one or pick none, no pressure πconst Stringprep_profile * profileβ a pointer to theStringprep_profileyou wanna use. that's your blueprint, your little instruction manual, your roman empire π
π DESCRIPTION π
so here's the tea β β this function prepares the input zero terminated UCS-4 string according to the stringprep profile, and then writes the result back into the input string. yeah, in place. she's efficient like that.
now, lowkey important: since the stringprep operation can expand the string, maxucs4len is the thing that tells you how large the buffer holding the string actually is. and listen β this function will not read or write to code points outside that size. boundaries? respected. slay π₯
the flags are one of Stringprep_profile_flags values, or 0. (yes, same deal as up top, we're just restating it for the girlies in the back π£)
the profile contains the Stringprep_profile instructions to perform. and here's the cute part: your application can define new profiles, possibly reusing the generic stringprep tables that always will be part of the library, or just use one of the currently supported profiles. build your own or borrow ours, both are valid π§
Return value: returnsSTRINGPREP_OKiff successful, or anStringprep_rcerror code. so like, check it. always check it. no cap π
π REPORTING BUGS π
found a bug? don't be shy, tell the maintainers:
- Report bugs to
<help-libidn@gnu.org>. - General guidelines for reporting bugs:
https://www.gnu.org/gethelp/ - GNU Libidn home page:
https://www.gnu.org/software/libidn/
be nice, be specific, include the details. that's the whole vibe π«Ά
π 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.
(translation: go forth, copy it, 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, the command
info libidn
should give you access to the complete manual. As an alternative you may obtain the manual from:
https://www.gnu.org/software/libidn/manual/
and that's the whole page bestie, we ate and left no crumbs π
β¨ this lil beauty is from libidn 1.44, filed under stringprep_4zi(3) in section 3 β go forth and stringprep 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