refactor: move function macros out of vim_defs.h (#26300)

This commit is contained in:
zeertzjq 2023-11-29 23:10:21 +08:00 committed by GitHub
parent 18c1fd8e9d
commit 86cc791deb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 86 additions and 89 deletions

View File

@ -221,7 +221,6 @@ iwyu: build/.ran-cmake
|src/nvim/ui.h\
|src/nvim/ui_client.h\
|src/nvim/ui_compositor.h\
|src/nvim/vim_defs.h\
|src/nvim/viml/parser/expressions.h\
|src/nvim/viml/parser/parser.h\
|src/nvim/window.h\

View File

@ -976,7 +976,6 @@ def CheckIncludes(filename, lines, error):
"src/nvim/ui.h",
"src/nvim/ui_client.h",
"src/nvim/ui_compositor.h",
"src/nvim/vim_defs.h",
"src/nvim/viml/parser/expressions.h",
"src/nvim/viml/parser/parser.h",
"src/nvim/window.h",

View File

@ -31,7 +31,6 @@
#include "nvim/option.h"
#include "nvim/types_defs.h"
#include "nvim/ui.h"
#include "nvim/vim_defs.h"
#define BUF_POS(data) ((size_t)((data)->buf_wptr - (data)->buf))

View File

@ -22,6 +22,7 @@
#include "nvim/memory.h"
#include "nvim/option.h"
#include "nvim/pos_defs.h"
#include "nvim/strings.h"
#include "nvim/syntax.h"
#include "nvim/ui.h"
#include "nvim/window.h"

View File

@ -18,7 +18,6 @@
#include "nvim/state_defs.h"
#include "nvim/strings.h"
#include "nvim/ui.h"
#include "nvim/vim_defs.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "cursor_shape.c.generated.h"

View File

@ -25,6 +25,7 @@
#include "nvim/message.h"
#include "nvim/option.h"
#include "nvim/popupmenu.h"
#include "nvim/strings.h"
#include "nvim/types_defs.h"
#include "nvim/ui.h"
#include "nvim/vim_defs.h"

View File

@ -19,7 +19,7 @@
#include "nvim/memory.h"
#include "nvim/message.h"
#include "nvim/mouse.h"
#include "nvim/vim_defs.h"
#include "nvim/strings.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "keycodes.c.generated.h"

View File

@ -36,8 +36,8 @@
#include "nvim/pos_defs.h"
#include "nvim/regexp.h"
#include "nvim/runtime.h"
#include "nvim/strings.h"
#include "nvim/types_defs.h"
#include "nvim/vim_defs.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "lua/stdlib.c.generated.h"

View File

@ -14,7 +14,6 @@
#include "nvim/macros_defs.h"
#include "nvim/memory.h"
#include "nvim/pos_defs.h"
#include "nvim/vim_defs.h"
#include "xdiff/xdiff.h"
#define COMPARED_BUFFER0 (1 << 0)

View File

@ -213,6 +213,18 @@ void *xmemdupz(const void *data, size_t len)
return memcpy(xmallocz(len), data, len);
}
#ifndef HAVE_STRNLEN
size_t xstrnlen(const char *s, size_t n)
FUNC_ATTR_NONNULL_ALL FUNC_ATTR_PURE
{
const char *end = memchr(s, '\0', n);
if (end == NULL) {
return n;
}
return (size_t)(end - s);
}
#endif
/// A version of strchr() that returns a pointer to the terminating NUL if it
/// doesn't find `c`.
///
@ -496,13 +508,6 @@ bool strequal(const char *a, const char *b)
return (a == NULL && b == NULL) || (a && b && strcmp(a, b) == 0);
}
/// Case-insensitive `strequal`.
bool striequal(const char *a, const char *b)
FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT
{
return (a == NULL && b == NULL) || (a && b && STRICMP(a, b) == 0);
}
// Avoid repeating the error message many times (they take 1 second each).
// Did_outofmem_msg is reset when a character is read.
void do_outofmem_msg(size_t size)

View File

@ -4,6 +4,7 @@
#include <stdint.h> // IWYU pragma: keep
#include <time.h> // IWYU pragma: keep
#include "auto/config.h"
#include "nvim/macros_defs.h"
#include "nvim/memory_defs.h" // IWYU pragma: export
@ -57,3 +58,17 @@ EXTERN size_t arena_alloc_count INIT( = 0);
*ptr_ = NULL; \
(void)(*ptr_); \
} while (0)
#define CLEAR_FIELD(field) memset(&(field), 0, sizeof(field))
#define CLEAR_POINTER(ptr) memset((ptr), 0, sizeof(*(ptr)))
#ifndef HAVE_STRNLEN
# define strnlen xstrnlen // Older versions of SunOS may not have strnlen
#endif
#define STRCPY(d, s) strcpy((char *)(d), (char *)(s)) // NOLINT(runtime/printf)
// Like strcpy() but allows overlapped source and destination.
#define STRMOVE(d, s) memmove((d), (s), strlen(s) + 1)
#define STRCAT(d, s) strcat((char *)(d), (char *)(s)) // NOLINT(runtime/printf)

View File

@ -24,6 +24,7 @@
#include "nvim/mark.h"
#include "nvim/mbyte.h"
#include "nvim/memline.h"
#include "nvim/memory.h"
#include "nvim/menu.h"
#include "nvim/message.h"
#include "nvim/mouse.h"

View File

@ -53,6 +53,7 @@
#ifdef MSWIN
# include "nvim/mbyte.h"
# include "nvim/option.h"
# include "nvim/strings.h"
#endif
#ifdef INCLUDE_GENERATED_DECLARATIONS

View File

@ -10,6 +10,16 @@
#include "nvim/os/os_defs.h" // IWYU pragma: export
#include "nvim/os/stdpaths_defs.h" // IWYU pragma: keep
#define HAVE_PATHDEF
// Some file names are stored in pathdef.c, which is generated from the
// Makefile to make their value depend on the Makefile.
#ifdef HAVE_PATHDEF
extern char *default_vim_dir;
extern char *default_vimruntime_dir;
extern char *default_lib_dir;
#endif
#ifdef INCLUDE_GENERATED_DECLARATIONS
// IWYU pragma: begin_exports
# include "os/env.h.generated.h"

View File

@ -6,10 +6,12 @@
#include <sys/stat.h>
#include <sys/types.h>
#include "auto/config.h"
// Note: Some systems need both string.h and strings.h (Savage).
#include <string.h>
#ifdef HAVE_STRINGS_H
# include <strings.h>
# include <strings.h> // IWYU pragma: export
#endif
#ifdef MSWIN
@ -105,3 +107,9 @@
# define S_ISLNK(m) 0
# endif
#endif
// BSD is supposed to cover FreeBSD and similar systems.
#if (defined(BSD) || defined(__FreeBSD_kernel__)) \
&& (defined(S_ISCHR) || defined(S_IFCHR))
# define OPEN_CHR_FILES
#endif

View File

@ -15,8 +15,8 @@
#include <stdio.h>
#include <string.h>
#include "nvim/memory.h"
#include "nvim/sha256.h"
#include "nvim/vim_defs.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "sha256.c.generated.h"

View File

@ -16,6 +16,7 @@
#include "nvim/log.h"
#include "nvim/macros_defs.h"
#include "nvim/main.h"
#include "nvim/memory.h"
#include "nvim/option.h"
#include "nvim/option_vars.h"
#include "nvim/os/input.h"
@ -23,7 +24,6 @@
#include "nvim/strings.h"
#include "nvim/types_defs.h"
#include "nvim/ui.h"
#include "nvim/vim_defs.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "state.c.generated.h" // IWYU pragma: export

View File

@ -42,7 +42,6 @@
#include "nvim/strings.h"
#include "nvim/ui.h"
#include "nvim/undo.h"
#include "nvim/vim_defs.h"
#include "nvim/window.h"
// Determines how deeply nested %{} blocks will be evaluated in statusline.

View File

@ -380,18 +380,6 @@ void del_trailing_spaces(char *ptr)
}
}
#if !defined(HAVE_STRNLEN)
size_t xstrnlen(const char *s, size_t n)
FUNC_ATTR_NONNULL_ALL FUNC_ATTR_PURE
{
const char *end = memchr(s, '\0', n);
if (end == NULL) {
return n;
}
return (size_t)(end - s);
}
#endif
#if (!defined(HAVE_STRCASECMP) && !defined(HAVE_STRICMP))
// Compare two strings, ignoring case, using current locale.
// Doesn't work for multi-byte characters.
@ -441,6 +429,13 @@ int vim_strnicmp(const char *s1, const char *s2, size_t len)
}
#endif
/// Case-insensitive `strequal`.
bool striequal(const char *a, const char *b)
FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT
{
return (a == NULL && b == NULL) || (a && b && STRICMP(a, b) == 0);
}
/// strchr() version which handles multibyte strings
///
/// @param[in] string String to search in.

View File

@ -3,9 +3,11 @@
#include <stdarg.h> // IWYU pragma: keep
#include <string.h>
#include "auto/config.h"
#include "klib/kvec.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
/// Append string to string and return pointer to the next byte
@ -30,3 +32,23 @@ typedef kvec_t(char) StringBuilder;
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "strings.h.generated.h"
#endif
#ifdef HAVE_STRCASECMP
# define STRICMP(d, s) strcasecmp((char *)(d), (char *)(s))
#else
# ifdef HAVE_STRICMP
# define STRICMP(d, s) stricmp((char *)(d), (char *)(s))
# else
# define STRICMP(d, s) vim_stricmp((char *)(d), (char *)(s))
# endif
#endif
#ifdef HAVE_STRNCASECMP
# define STRNICMP(d, s, n) strncasecmp((char *)(d), (char *)(s), (size_t)(n))
#else
# ifdef HAVE_STRNICMP
# define STRNICMP(d, s, n) strnicmp((char *)(d), (char *)(s), (size_t)(n))
# else
# define STRNICMP(d, s, n) vim_strnicmp((char *)(d), (char *)(s), (size_t)(n))
# endif
#endif

View File

@ -30,9 +30,9 @@
#include "nvim/memory.h"
#include "nvim/message.h"
#include "nvim/option_vars.h"
#include "nvim/os/os.h"
#include "nvim/strings.h"
#include "nvim/version.h"
#include "nvim/vim_defs.h"
// for ":version", ":intro", and "nvim --version"
#ifndef NVIM_VERSION_MEDIUM

View File

@ -1,8 +1,5 @@
#pragma once
#include "nvim/pos_defs.h"
#include "nvim/types_defs.h"
// Some defines from the old feature.h
#define SESSION_FILE "Session.vim"
#define MAX_MSG_HIST_LEN 200
@ -10,15 +7,6 @@
#define RUNTIME_DIRNAME "runtime"
#include "auto/config.h"
#define HAVE_PATHDEF
// Some file names are stored in pathdef.c, which is generated from the
// Makefile to make their value depend on the Makefile.
#ifdef HAVE_PATHDEF
extern char *default_vim_dir;
extern char *default_vimruntime_dir;
extern char *default_lib_dir;
#endif
// Check if configure correctly managed to find sizeof(int). If this failed,
// it becomes zero. This is likely a problem of not being able to run the
@ -27,17 +15,14 @@ extern char *default_lib_dir;
# error Configure did not run properly.
#endif
#include "nvim/os/os_defs.h" // bring lots of system header files
// bring lots of system header files
#include "nvim/os/os_defs.h" // IWYU pragma: keep
/// length of a buffer to store a number in ASCII (64 bits binary + NUL)
enum { NUMBUFLEN = 65, };
#define MAX_TYPENR 65535
#include "nvim/gettext.h"
#include "nvim/keycodes.h"
#include "nvim/macros_defs.h"
/// Directions.
typedef enum {
kDirectionNotSet = 0,
@ -54,44 +39,3 @@ typedef enum {
#endif
#define FAIL 0
#define NOTDONE 2 // not OK or FAIL but skipped
#define CLEAR_FIELD(field) memset(&(field), 0, sizeof(field))
#define CLEAR_POINTER(ptr) memset((ptr), 0, sizeof(*(ptr)))
// (vim_strchr() is now in strings.c)
#ifndef HAVE_STRNLEN
# define strnlen xstrnlen // Older versions of SunOS may not have strnlen
#endif
#define STRCPY(d, s) strcpy((char *)(d), (char *)(s)) // NOLINT(runtime/printf)
#ifdef HAVE_STRCASECMP
# define STRICMP(d, s) strcasecmp((char *)(d), (char *)(s))
#else
# ifdef HAVE_STRICMP
# define STRICMP(d, s) stricmp((char *)(d), (char *)(s))
# else
# define STRICMP(d, s) vim_stricmp((char *)(d), (char *)(s))
# endif
#endif
// Like strcpy() but allows overlapped source and destination.
#define STRMOVE(d, s) memmove((d), (s), strlen(s) + 1)
#ifdef HAVE_STRNCASECMP
# define STRNICMP(d, s, n) strncasecmp((char *)(d), (char *)(s), (size_t)(n))
#else
# ifdef HAVE_STRNICMP
# define STRNICMP(d, s, n) strnicmp((char *)(d), (char *)(s), (size_t)(n))
# else
# define STRNICMP(d, s, n) vim_strnicmp((char *)(d), (char *)(s), (size_t)(n))
# endif
#endif
#define STRCAT(d, s) strcat((char *)(d), (char *)(s)) // NOLINT(runtime/printf)
// BSD is supposed to cover FreeBSD and similar systems.
#if (defined(BSD) || defined(__FreeBSD_kernel__)) \
&& (defined(S_ISCHR) || defined(S_IFCHR))
# define OPEN_CHR_FILES
#endif