diff options
Diffstat (limited to 'src/nvim/strings.h')
-rw-r--r-- | src/nvim/strings.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/nvim/strings.h b/src/nvim/strings.h index 3f0f0c8d6a..f2876c6307 100644 --- a/src/nvim/strings.h +++ b/src/nvim/strings.h @@ -2,6 +2,28 @@ #define NVIM_STRINGS_H #include <stdbool.h> +#include <stdarg.h> +#include <string.h> + +#include "nvim/types.h" +#include "nvim/eval/typval.h" + +/// 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_WARN_UNUSED_RESULT + FUNC_ATTR_NONNULL_RET +{ + const size_t src_len = strlen(src); + return (char *)memmove(dst, src, src_len) + src_len; +} #ifdef INCLUDE_GENERATED_DECLARATIONS # include "strings.h.generated.h" |