mirror of
https://github.com/neovim/neovim.git
synced 2025-09-29 06:28:35 +00:00

This lint job will ensure that the C codebase is properly formatted at all times. This helps eliminate most of clint.py. To save CI time, it's faster to manually compile uncrustify and cache the binary instead of using homebrew (the apt-get package is too old).
35 lines
930 B
C
35 lines
930 B
C
#ifndef NVIM_STRINGS_H
|
|
#define NVIM_STRINGS_H
|
|
|
|
#include <stdarg.h>
|
|
#include <stdbool.h>
|
|
#include <string.h>
|
|
|
|
#include "nvim/eval/typval.h"
|
|
#include "nvim/lib/kvec.h"
|
|
#include "nvim/types.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;
|
|
}
|
|
|
|
typedef kvec_t(char) StringBuilder;
|
|
|
|
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
|
# include "strings.h.generated.h"
|
|
#endif
|
|
#endif // NVIM_STRINGS_H
|