diff options
author | Alejandro Colomar <alx@nginx.com> | 2022-10-27 13:22:19 +0200 |
---|---|---|
committer | Alejandro Colomar <alx@kernel.org> | 2022-11-12 20:39:48 +0100 |
commit | b2571ebac22180eb3fb6568726f82293d2dd8be3 (patch) | |
tree | d0785b1f4e2787e8cc17f8f7348118bdff73deb0 /src/nxt_string.h | |
parent | 2461a61574db338ed830de7cce1264cd321ccb2a (diff) | |
download | unit-7d30739a16151ef44434c89475e3b0f87991d43b.tar.gz unit-7d30739a16151ef44434c89475e3b0f87991d43b.tar.bz2 |
Added nxt_usts2str() to make C strings from nxt_str_t.str-v1
This function is identical to nxt_ustr2str(), except that it takes
a nxt_str_t structure as input, instead of a 'u_char *' and a size.
The documentation of the function:
/*
* SYNOPSIS
* void nxt_usts2str(char dst[restrict .src->length+1],
* const nxt_str_t *restrict src);
*
* ARGUMENTS
* dst Pointer to the first byte of the destination buffer.
* src Pointer to the source Unterminated STring Structure.
*
* DESCRIPTION
* Copy a string from the source nxt_str_t, which may be
* not-NUL-terminated, into a NUL-terminated string in the
* destination buffer.
*
* CAVEATS
* If the destination buffer is not wider than the source buffer
* at least by 1 byte, the behavior is undefined.
*
* EXAMPLES
* nxt_str_t src = nxt_string("0123456789");
* char dst[src.length + 1];
*
* nxt_usts2str(dst, &src);
*
* SEE ALSO
* ustr2str(3), strlcpy(3), strscpy(9)
*/
Suggested-by: Andrew Clayton <a.clayton@nginx.com>
Signed-off-by: Alejandro Colomar <alx@nginx.com>
Diffstat (limited to 'src/nxt_string.h')
-rw-r--r-- | src/nxt_string.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/nxt_string.h b/src/nxt_string.h index 275a62ee..c6d6798e 100644 --- a/src/nxt_string.h +++ b/src/nxt_string.h @@ -60,6 +60,8 @@ struct nxt_str_s { NXT_EXPORT inline void nxt_ustr2str(char *restrict dst, const u_char *restrict src, size_t length); +NXT_EXPORT inline void nxt_usts2str(char *restrict dst, + const nxt_str_t *restrict src); NXT_EXPORT void nxt_memcpy_lowcase(u_char *dst, const u_char *src, size_t length); @@ -182,4 +184,11 @@ nxt_ustr2str(char *restrict dst, const u_char *restrict src, size_t length) } +inline void +nxt_usts2str(char *restrict dst, const nxt_str_t *restrict src) +{ + nxt_ustr2str(dst, src->start, src->length); +} + + #endif /* _NXT_STRING_H_INCLUDED_ */ |