aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/strings.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/strings.h')
-rw-r--r--src/nvim/strings.h22
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"