diff options
-rw-r--r-- | embed.fnc | 4 | ||||
-rw-r--r-- | inline.h | 74 | ||||
-rw-r--r-- | proto.h | 4 | ||||
-rw-r--r-- | util.c | 74 |
4 files changed, 78 insertions, 78 deletions
@@ -3780,11 +3780,11 @@ FXpoT |I32 |xs_handshake |const U32 key|NN void * v_my_perl\ |NN const char * file| ... Xp |void |xs_boot_epilog |const I32 ax #ifndef HAS_STRLCAT -AsTd |Size_t |my_strlcat |NULLOK char *dst|NULLOK const char *src|Size_t size +ApTd |Size_t |my_strlcat |NULLOK char *dst|NULLOK const char *src|Size_t size #endif #ifndef HAS_STRLCPY -AsTd |Size_t |my_strlcpy |NULLOK char *dst|NULLOK const char *src|Size_t size +ApTd |Size_t |my_strlcpy |NULLOK char *dst|NULLOK const char *src|Size_t size #endif #ifndef HAS_STRNLEN @@ -3625,79 +3625,5 @@ Perl_savesharedsvpv(pTHX_ SV *sv) } /* -=for apidoc my_strlcat - -The C library C<strlcat> if available, or a Perl implementation of it. -This operates on C C<NUL>-terminated strings. - -C<my_strlcat()> appends string C<src> to the end of C<dst>. It will append at -most S<C<size - strlen(dst) - 1>> characters. It will then C<NUL>-terminate, -unless C<size> is 0 or the original C<dst> string was longer than C<size> (in -practice this should not happen as it means that either C<size> is incorrect or -that C<dst> is not a proper C<NUL>-terminated string). - -Note that C<size> is the full size of the destination buffer and -the result is guaranteed to be C<NUL>-terminated if there is room. Note that -room for the C<NUL> should be included in C<size>. - -The return value is the total length that C<dst> would have if C<size> is -sufficiently large. Thus it is the initial length of C<dst> plus the length of -C<src>. If C<size> is smaller than the return, the excess was not appended. - -=cut - -Description stolen from http://man.openbsd.org/strlcat.3 -*/ -#ifndef HAS_STRLCAT -PERL_STATIC_INLINE Size_t -Perl_my_strlcat(char *dst, const char *src, Size_t size) -{ - Size_t used, length, copy; - - used = strlen(dst); - length = strlen(src); - if (size > 0 && used < size - 1) { - copy = (length >= size - used) ? size - used - 1 : length; - memcpy(dst + used, src, copy); - dst[used + copy] = '\0'; - } - return used + length; -} -#endif - - -/* -=for apidoc my_strlcpy - -The C library C<strlcpy> if available, or a Perl implementation of it. -This operates on C C<NUL>-terminated strings. - -C<my_strlcpy()> copies up to S<C<size - 1>> characters from the string C<src> -to C<dst>, C<NUL>-terminating the result if C<size> is not 0. - -The return value is the total length C<src> would be if the copy completely -succeeded. If it is larger than C<size>, the excess was not copied. - -=cut - -Description stolen from http://man.openbsd.org/strlcpy.3 -*/ -#ifndef HAS_STRLCPY -PERL_STATIC_INLINE Size_t -Perl_my_strlcpy(char *dst, const char *src, Size_t size) -{ - Size_t length, copy; - - length = strlen(src); - if (size > 0) { - copy = (length >= size) ? size - 1 : length; - memcpy(dst, src, copy); - dst[copy] = '\0'; - } - return length; -} -#endif - -/* * ex: set ts=8 sts=4 sw=4 et: */ @@ -4860,11 +4860,11 @@ PERL_CALLCONV int Perl_signbit(NV f) #endif #if !defined(HAS_STRLCAT) -STATIC Size_t Perl_my_strlcat(char *dst, const char *src, Size_t size); +PERL_CALLCONV Size_t Perl_my_strlcat(char *dst, const char *src, Size_t size); #define PERL_ARGS_ASSERT_MY_STRLCAT #endif #if !defined(HAS_STRLCPY) -STATIC Size_t Perl_my_strlcpy(char *dst, const char *src, Size_t size); +PERL_CALLCONV Size_t Perl_my_strlcpy(char *dst, const char *src, Size_t size); #define PERL_ARGS_ASSERT_MY_STRLCPY #endif #if !defined(HAS_STRNLEN) @@ -5738,6 +5738,80 @@ S_xs_version_bootcheck(pTHX_ U32 items, U32 ax, const char *xs_p, } } +/* +=for apidoc my_strlcat + +The C library C<strlcat> if available, or a Perl implementation of it. +This operates on C C<NUL>-terminated strings. + +C<my_strlcat()> appends string C<src> to the end of C<dst>. It will append at +most S<C<size - strlen(dst) - 1>> characters. It will then C<NUL>-terminate, +unless C<size> is 0 or the original C<dst> string was longer than C<size> (in +practice this should not happen as it means that either C<size> is incorrect or +that C<dst> is not a proper C<NUL>-terminated string). + +Note that C<size> is the full size of the destination buffer and +the result is guaranteed to be C<NUL>-terminated if there is room. Note that +room for the C<NUL> should be included in C<size>. + +The return value is the total length that C<dst> would have if C<size> is +sufficiently large. Thus it is the initial length of C<dst> plus the length of +C<src>. If C<size> is smaller than the return, the excess was not appended. + +=cut + +Description stolen from http://man.openbsd.org/strlcat.3 +*/ +#ifndef HAS_STRLCAT +Size_t +Perl_my_strlcat(char *dst, const char *src, Size_t size) +{ + Size_t used, length, copy; + + used = strlen(dst); + length = strlen(src); + if (size > 0 && used < size - 1) { + copy = (length >= size - used) ? size - used - 1 : length; + memcpy(dst + used, src, copy); + dst[used + copy] = '\0'; + } + return used + length; +} +#endif + + +/* +=for apidoc my_strlcpy + +The C library C<strlcpy> if available, or a Perl implementation of it. +This operates on C C<NUL>-terminated strings. + +C<my_strlcpy()> copies up to S<C<size - 1>> characters from the string C<src> +to C<dst>, C<NUL>-terminating the result if C<size> is not 0. + +The return value is the total length C<src> would be if the copy completely +succeeded. If it is larger than C<size>, the excess was not copied. + +=cut + +Description stolen from http://man.openbsd.org/strlcpy.3 +*/ +#ifndef HAS_STRLCPY +Size_t +Perl_my_strlcpy(char *dst, const char *src, Size_t size) +{ + Size_t length, copy; + + length = strlen(src); + if (size > 0) { + copy = (length >= size) ? size - 1 : length; + memcpy(dst, src, copy); + dst[copy] = '\0'; + } + return length; +} +#endif + PERL_STATIC_INLINE bool S_gv_has_usable_name(pTHX_ GV *gv) { |