mirror of
https://github.com/neovim/neovim.git
synced 2025-10-04 00:46:30 +00:00
refactor(IWYU): move evalarg_T to eval_defs.h (#26716)
This commit is contained in:
@@ -36,7 +36,6 @@
|
||||
#include "nvim/ex_docmd.h"
|
||||
#include "nvim/ex_eval.h"
|
||||
#include "nvim/ex_getln.h"
|
||||
#include "nvim/ex_session.h"
|
||||
#include "nvim/garray.h"
|
||||
#include "nvim/getchar.h"
|
||||
#include "nvim/gettext.h"
|
||||
@@ -8160,7 +8159,7 @@ const char *find_option_var_end(const char **const arg, OptIndex *const opt_idxp
|
||||
return end;
|
||||
}
|
||||
|
||||
static var_flavour_T var_flavour(char *varname)
|
||||
var_flavour_T var_flavour(char *varname)
|
||||
FUNC_ATTR_PURE
|
||||
{
|
||||
char *p = varname;
|
||||
@@ -8176,48 +8175,6 @@ static var_flavour_T var_flavour(char *varname)
|
||||
return VAR_FLAVOUR_DEFAULT;
|
||||
}
|
||||
|
||||
/// Iterate over global variables
|
||||
///
|
||||
/// @warning No modifications to global variable dictionary must be performed
|
||||
/// while iteration is in progress.
|
||||
///
|
||||
/// @param[in] iter Iterator. Pass NULL to start iteration.
|
||||
/// @param[out] name Variable name.
|
||||
/// @param[out] rettv Variable value.
|
||||
///
|
||||
/// @return Pointer that needs to be passed to next `var_shada_iter` invocation
|
||||
/// or NULL to indicate that iteration is over.
|
||||
const void *var_shada_iter(const void *const iter, const char **const name, typval_T *rettv,
|
||||
var_flavour_T flavour)
|
||||
FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ARG(2, 3)
|
||||
{
|
||||
const hashitem_T *hi;
|
||||
const hashitem_T *hifirst = globvarht.ht_array;
|
||||
const size_t hinum = (size_t)globvarht.ht_mask + 1;
|
||||
*name = NULL;
|
||||
if (iter == NULL) {
|
||||
hi = globvarht.ht_array;
|
||||
while ((size_t)(hi - hifirst) < hinum
|
||||
&& (HASHITEM_EMPTY(hi)
|
||||
|| !(var_flavour(hi->hi_key) & flavour))) {
|
||||
hi++;
|
||||
}
|
||||
if ((size_t)(hi - hifirst) == hinum) {
|
||||
return NULL;
|
||||
}
|
||||
} else {
|
||||
hi = (const hashitem_T *)iter;
|
||||
}
|
||||
*name = TV_DICT_HI2DI(hi)->di_key;
|
||||
tv_copy(&TV_DICT_HI2DI(hi)->di_tv, rettv);
|
||||
while ((size_t)(++hi - hifirst) < hinum) {
|
||||
if (!HASHITEM_EMPTY(hi) && (var_flavour(hi->hi_key) & flavour)) {
|
||||
return hi;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void var_set_global(const char *const name, typval_T vartv)
|
||||
{
|
||||
funccal_entry_T funccall_entry;
|
||||
@@ -8227,50 +8184,6 @@ void var_set_global(const char *const name, typval_T vartv)
|
||||
restore_funccal();
|
||||
}
|
||||
|
||||
int store_session_globals(FILE *fd)
|
||||
{
|
||||
TV_DICT_ITER(&globvardict, this_var, {
|
||||
if ((this_var->di_tv.v_type == VAR_NUMBER
|
||||
|| this_var->di_tv.v_type == VAR_STRING)
|
||||
&& var_flavour(this_var->di_key) == VAR_FLAVOUR_SESSION) {
|
||||
// Escape special characters with a backslash. Turn a LF and
|
||||
// CR into \n and \r.
|
||||
char *const p = vim_strsave_escaped(tv_get_string(&this_var->di_tv), "\\\"\n\r");
|
||||
for (char *t = p; *t != NUL; t++) {
|
||||
if (*t == '\n') {
|
||||
*t = 'n';
|
||||
} else if (*t == '\r') {
|
||||
*t = 'r';
|
||||
}
|
||||
}
|
||||
if ((fprintf(fd, "let %s = %c%s%c",
|
||||
this_var->di_key,
|
||||
((this_var->di_tv.v_type == VAR_STRING) ? '"' : ' '),
|
||||
p,
|
||||
((this_var->di_tv.v_type == VAR_STRING) ? '"' : ' ')) < 0)
|
||||
|| put_eol(fd) == FAIL) {
|
||||
xfree(p);
|
||||
return FAIL;
|
||||
}
|
||||
xfree(p);
|
||||
} else if (this_var->di_tv.v_type == VAR_FLOAT
|
||||
&& var_flavour(this_var->di_key) == VAR_FLAVOUR_SESSION) {
|
||||
float_T f = this_var->di_tv.vval.v_float;
|
||||
int sign = ' ';
|
||||
|
||||
if (f < 0) {
|
||||
f = -f;
|
||||
sign = '-';
|
||||
}
|
||||
if ((fprintf(fd, "let %s = %c%f", this_var->di_key, sign, f) < 0)
|
||||
|| put_eol(fd) == FAIL) {
|
||||
return FAIL;
|
||||
}
|
||||
}
|
||||
});
|
||||
return OK;
|
||||
}
|
||||
|
||||
/// Display script name where an item was last set.
|
||||
/// Should only be invoked when 'verbose' is non-zero.
|
||||
void last_set_msg(sctx_T script_ctx)
|
||||
|
Reference in New Issue
Block a user