diff options
| author | bfredl <bjorn.linse@gmail.com> | 2024-07-13 17:22:59 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-13 17:22:59 +0200 |
| commit | eab535e10edd69a2224a10f789bf3c2be6f0ba36 (patch) | |
| tree | 3c4d8cb0307953ed023a9b453db4b9d4b901b655 /src/nvim/strings.h | |
| parent | 2ad84286375112524e118a4f6ced68782b285a52 (diff) | |
| parent | 7dffc36e61c46e6adc92cff5944e876446f3c40e (diff) | |
| download | rneovim-eab535e10edd69a2224a10f789bf3c2be6f0ba36.tar.gz rneovim-eab535e10edd69a2224a10f789bf3c2be6f0ba36.tar.bz2 rneovim-eab535e10edd69a2224a10f789bf3c2be6f0ba36.zip | |
Merge pull request #29315 from bfredl/staticinline
refactor(declarations): also generate prototypes for functions in headers
Diffstat (limited to 'src/nvim/strings.h')
| -rw-r--r-- | src/nvim/strings.h | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/src/nvim/strings.h b/src/nvim/strings.h index f80e85afb0..c2d078615d 100644 --- a/src/nvim/strings.h +++ b/src/nvim/strings.h @@ -7,29 +7,9 @@ #include "klib/kvec.h" #include "nvim/api/private/defs.h" #include "nvim/eval/typval_defs.h" // IWYU pragma: keep -#include "nvim/func_attr.h" #include "nvim/os/os_defs.h" #include "nvim/types_defs.h" // IWYU pragma: keep -static inline char *strappend(char *dst, const char *src) - REAL_FATTR_ALWAYS_INLINE REAL_FATTR_NONNULL_ALL - REAL_FATTR_NONNULL_RET REAL_FATTR_WARN_UNUSED_RESULT; - -/// Append string to string and return pointer to the next byte -/// -/// Unlike strcat, this one does *not* add NUL byte and returns pointer to the -/// past of the added string. -/// -/// @param[out] dst String to append to. -/// @param[in] src String to append. -/// -/// @return pointer to the byte just past the appended byte. -static inline char *strappend(char *const dst, const char *const src) -{ - const size_t src_len = strlen(src); - return (char *)memmove(dst, src, src_len) + src_len; -} - typedef kvec_t(char) StringBuilder; // Return the length of a string literal @@ -46,8 +26,26 @@ typedef struct { #ifdef INCLUDE_GENERATED_DECLARATIONS # include "strings.h.generated.h" +# include "strings.h.inline.generated.h" #endif +/// Append string to string and return pointer to the next byte +/// +/// Unlike strcat, this one does *not* add NUL byte and returns pointer to the +/// past of the added string. +/// +/// @param[out] dst String to append to. +/// @param[in] src String to append. +/// +/// @return pointer to the byte just past the appended byte. +static inline char *strappend(char *const dst, const char *const src) + FUNC_ATTR_ALWAYS_INLINE FUNC_ATTR_NONNULL_ALL + FUNC_ATTR_NONNULL_RET FUNC_ATTR_WARN_UNUSED_RESULT +{ + const size_t src_len = strlen(src); + return (char *)memmove(dst, src, src_len) + src_len; +} + #ifdef HAVE_STRCASECMP # define STRICMP(d, s) strcasecmp((char *)(d), (char *)(s)) #else |