mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
This commit is contained in:
parent
9b0e1256e2
commit
c5322e752e
@ -591,15 +591,15 @@ String nvim_cmd(uint64_t channel_id, Dict(cmd) *cmd, Dict(cmd_opts) *opts, Error
|
||||
|
||||
if (*mods.split.data.string.data == NUL) {
|
||||
// Empty string, do nothing.
|
||||
} else if (STRCMP(mods.split.data.string.data, "aboveleft") == 0
|
||||
|| STRCMP(mods.split.data.string.data, "leftabove") == 0) {
|
||||
} else if (strcmp(mods.split.data.string.data, "aboveleft") == 0
|
||||
|| strcmp(mods.split.data.string.data, "leftabove") == 0) {
|
||||
cmdinfo.cmdmod.cmod_split |= WSP_ABOVE;
|
||||
} else if (STRCMP(mods.split.data.string.data, "belowright") == 0
|
||||
|| STRCMP(mods.split.data.string.data, "rightbelow") == 0) {
|
||||
} else if (strcmp(mods.split.data.string.data, "belowright") == 0
|
||||
|| strcmp(mods.split.data.string.data, "rightbelow") == 0) {
|
||||
cmdinfo.cmdmod.cmod_split |= WSP_BELOW;
|
||||
} else if (STRCMP(mods.split.data.string.data, "topleft") == 0) {
|
||||
} else if (strcmp(mods.split.data.string.data, "topleft") == 0) {
|
||||
cmdinfo.cmdmod.cmod_split |= WSP_TOP;
|
||||
} else if (STRCMP(mods.split.data.string.data, "botright") == 0) {
|
||||
} else if (strcmp(mods.split.data.string.data, "botright") == 0) {
|
||||
cmdinfo.cmdmod.cmod_split |= WSP_BOT;
|
||||
} else {
|
||||
VALIDATION_ERROR("Invalid value for 'mods.split'");
|
||||
@ -938,7 +938,7 @@ void nvim_buf_del_user_command(Buffer buffer, String name, Error *err)
|
||||
|
||||
for (int i = 0; i < gap->ga_len; i++) {
|
||||
ucmd_T *cmd = USER_CMD_GA(gap, i);
|
||||
if (!STRCMP(name.data, cmd->uc_name)) {
|
||||
if (!strcmp(name.data, cmd->uc_name)) {
|
||||
free_ucmd(cmd);
|
||||
|
||||
gap->ga_len -= 1;
|
||||
|
@ -845,7 +845,7 @@ static void remote_ui_raw_line(UI *ui, Integer grid, Integer row, Integer startc
|
||||
for (size_t i = 0; i < ncells; i++) {
|
||||
repeat++;
|
||||
if (i == ncells - 1 || attrs[i] != attrs[i + 1]
|
||||
|| STRCMP(chunk[i], chunk[i + 1])) {
|
||||
|| strcmp(chunk[i], chunk[i + 1])) {
|
||||
if (UI_BUF_SIZE - BUF_POS(data) < 2 * (1 + 2 + sizeof(schar_T) + 5 + 5)) {
|
||||
// close to overflowing the redraw buffer. finish this event,
|
||||
// flush, and start a new "grid_line" event at the current position.
|
||||
|
@ -3335,7 +3335,7 @@ static bool value_change(char *str, char **last)
|
||||
FUNC_ATTR_WARN_UNUSED_RESULT
|
||||
{
|
||||
if ((str == NULL) != (*last == NULL)
|
||||
|| (str != NULL && *last != NULL && STRCMP(str, *last) != 0)) {
|
||||
|| (str != NULL && *last != NULL && strcmp(str, *last) != 0)) {
|
||||
xfree(*last);
|
||||
if (str == NULL) {
|
||||
*last = NULL;
|
||||
@ -4159,7 +4159,7 @@ bool buf_contents_changed(buf_T *buf)
|
||||
if (buf->b_ml.ml_line_count == curbuf->b_ml.ml_line_count) {
|
||||
differ = false;
|
||||
for (linenr_T lnum = 1; lnum <= curbuf->b_ml.ml_line_count; lnum++) {
|
||||
if (STRCMP(ml_get_buf(buf, lnum, false), ml_get(lnum)) != 0) {
|
||||
if (strcmp(ml_get_buf(buf, lnum, false), ml_get(lnum)) != 0) {
|
||||
differ = true;
|
||||
break;
|
||||
}
|
||||
|
@ -544,7 +544,7 @@ void save_file_ff(buf_T *buf)
|
||||
|
||||
// Only use free/alloc when necessary, they take time.
|
||||
if (buf->b_start_fenc == NULL
|
||||
|| STRCMP(buf->b_start_fenc, buf->b_p_fenc) != 0) {
|
||||
|| strcmp(buf->b_start_fenc, buf->b_p_fenc) != 0) {
|
||||
xfree(buf->b_start_fenc);
|
||||
buf->b_start_fenc = xstrdup(buf->b_p_fenc);
|
||||
}
|
||||
@ -582,7 +582,7 @@ bool file_ff_differs(buf_T *buf, bool ignore_empty)
|
||||
if (buf->b_start_fenc == NULL) {
|
||||
return *buf->b_p_fenc != NUL;
|
||||
}
|
||||
return STRCMP(buf->b_start_fenc, buf->b_p_fenc) != 0;
|
||||
return strcmp(buf->b_start_fenc, buf->b_p_fenc) != 0;
|
||||
}
|
||||
|
||||
/// Insert string "p" at the cursor position. Stops at a NUL byte.
|
||||
|
@ -66,8 +66,8 @@ static int compl_selected;
|
||||
|
||||
static int sort_func_compare(const void *s1, const void *s2)
|
||||
{
|
||||
char_u *p1 = *(char_u **)s1;
|
||||
char_u *p2 = *(char_u **)s2;
|
||||
char *p1 = *(char **)s1;
|
||||
char *p2 = *(char **)s2;
|
||||
|
||||
if (*p1 != '<' && *p2 == '<') {
|
||||
return -1;
|
||||
@ -75,7 +75,7 @@ static int sort_func_compare(const void *s1, const void *s2)
|
||||
if (*p1 == '<' && *p2 != '<') {
|
||||
return 1;
|
||||
}
|
||||
return STRCMP(p1, p2);
|
||||
return strcmp(p1, p2);
|
||||
}
|
||||
|
||||
static void ExpandEscape(expand_T *xp, char_u *str, int numfiles, char **files, int options)
|
||||
@ -1148,7 +1148,7 @@ static void set_context_for_wildcard_arg(exarg_T *eap, const char *arg, bool use
|
||||
// A full match ~user<Tab> will be replaced by user's home
|
||||
// directory i.e. something like ~user<Tab> -> /home/user/
|
||||
if (*p == NUL && p > (const char *)xp->xp_pattern + 1
|
||||
&& match_user((char_u *)xp->xp_pattern + 1) >= 1) {
|
||||
&& match_user(xp->xp_pattern + 1) >= 1) {
|
||||
xp->xp_context = EXPAND_USER;
|
||||
xp->xp_pattern++;
|
||||
}
|
||||
@ -2294,8 +2294,7 @@ static void ExpandGeneric(expand_T *xp, regmatch_T *regmatch, int *num_file, cha
|
||||
|| xp->xp_context == EXPAND_FUNCTIONS
|
||||
|| xp->xp_context == EXPAND_USER_FUNC) {
|
||||
// <SNR> functions should be sorted to the end.
|
||||
qsort((void *)(*file), (size_t)(*num_file), sizeof(char_u *),
|
||||
sort_func_compare);
|
||||
qsort((void *)(*file), (size_t)(*num_file), sizeof(char *), sort_func_compare);
|
||||
} else {
|
||||
sort_strings(*file, *num_file);
|
||||
}
|
||||
|
@ -186,7 +186,7 @@ static inline void clear_hist_entry(histentry_T *hisptr)
|
||||
/// If 'move_to_front' is true, matching entry is moved to end of history.
|
||||
///
|
||||
/// @param move_to_front Move the entry to the front if it exists
|
||||
static int in_history(int type, char_u *str, int move_to_front, int sep)
|
||||
static int in_history(int type, char *str, int move_to_front, int sep)
|
||||
{
|
||||
int last_i = -1;
|
||||
|
||||
@ -201,8 +201,8 @@ static int in_history(int type, char_u *str, int move_to_front, int sep)
|
||||
|
||||
// For search history, check that the separator character matches as
|
||||
// well.
|
||||
char_u *p = (char_u *)history[type][i].hisstr;
|
||||
if (STRCMP(str, p) == 0
|
||||
char *p = history[type][i].hisstr;
|
||||
if (strcmp(str, p) == 0
|
||||
&& (type != HIST_SEARCH || sep == p[STRLEN(p) + 1])) {
|
||||
if (!move_to_front) {
|
||||
return true;
|
||||
@ -217,7 +217,7 @@ static int in_history(int type, char_u *str, int move_to_front, int sep)
|
||||
|
||||
if (last_i >= 0) {
|
||||
list_T *const list = history[type][i].additional_elements;
|
||||
str = (char_u *)history[type][i].hisstr;
|
||||
str = history[type][i].hisstr;
|
||||
while (i != hisidx[type]) {
|
||||
if (++i >= hislen) {
|
||||
i = 0;
|
||||
@ -227,7 +227,7 @@ static int in_history(int type, char_u *str, int move_to_front, int sep)
|
||||
}
|
||||
tv_list_unref(list);
|
||||
history[type][i].hisnum = ++hisnum[type];
|
||||
history[type][i].hisstr = (char *)str;
|
||||
history[type][i].hisstr = str;
|
||||
history[type][i].timestamp = os_time();
|
||||
history[type][i].additional_elements = NULL;
|
||||
return true;
|
||||
@ -304,7 +304,7 @@ void add_to_history(int histype, char *new_entry, int in_map, int sep)
|
||||
}
|
||||
last_maptick = -1;
|
||||
}
|
||||
if (!in_history(histype, (char_u *)new_entry, true, sep)) {
|
||||
if (!in_history(histype, new_entry, true, sep)) {
|
||||
if (++hisidx[histype] == hislen) {
|
||||
hisidx[histype] = 0;
|
||||
}
|
||||
|
@ -646,7 +646,7 @@ void ex_breakdel(exarg_T *eap)
|
||||
for (int i = 0; i < gap->ga_len; i++) {
|
||||
bpi = &DEBUGGY(gap, i);
|
||||
if (bp->dbg_type == bpi->dbg_type
|
||||
&& STRCMP(bp->dbg_name, bpi->dbg_name) == 0
|
||||
&& strcmp(bp->dbg_name, bpi->dbg_name) == 0
|
||||
&& (bp->dbg_lnum == bpi->dbg_lnum
|
||||
|| (bp->dbg_lnum == 0
|
||||
&& (best_lnum == 0
|
||||
|
@ -592,9 +592,9 @@ static void diff_check_unchanged(tabpage_T *tp, diff_T *dp)
|
||||
break;
|
||||
}
|
||||
|
||||
if (diff_cmp((char_u *)line_org, (char_u *)ml_get_buf(tp->tp_diffbuf[i_new],
|
||||
dp->df_lnum[i_new] + off_new,
|
||||
false)) != 0) {
|
||||
if (diff_cmp(line_org, ml_get_buf(tp->tp_diffbuf[i_new],
|
||||
dp->df_lnum[i_new] + off_new,
|
||||
false)) != 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1923,8 +1923,8 @@ static bool diff_equal_entry(diff_T *dp, int idx1, int idx2)
|
||||
char *line = xstrdup(ml_get_buf(curtab->tp_diffbuf[idx1],
|
||||
dp->df_lnum[idx1] + i, false));
|
||||
|
||||
int cmp = diff_cmp((char_u *)line, (char_u *)ml_get_buf(curtab->tp_diffbuf[idx2],
|
||||
dp->df_lnum[idx2] + i, false));
|
||||
int cmp = diff_cmp(line, ml_get_buf(curtab->tp_diffbuf[idx2],
|
||||
dp->df_lnum[idx2] + i, false));
|
||||
xfree(line);
|
||||
|
||||
if (cmp != 0) {
|
||||
@ -1968,23 +1968,23 @@ static bool diff_equal_char(const char_u *const p1, const char_u *const p2, int
|
||||
/// @param s2 The second string
|
||||
///
|
||||
/// @return on-zero if the two strings are different.
|
||||
static int diff_cmp(char_u *s1, char_u *s2)
|
||||
static int diff_cmp(char *s1, char *s2)
|
||||
{
|
||||
if ((diff_flags & DIFF_IBLANK)
|
||||
&& (*(char_u *)skipwhite((char *)s1) == NUL || *skipwhite((char *)s2) == NUL)) {
|
||||
&& (*(char_u *)skipwhite(s1) == NUL || *skipwhite(s2) == NUL)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((diff_flags & (DIFF_ICASE | ALL_WHITE_DIFF)) == 0) {
|
||||
return STRCMP(s1, s2);
|
||||
return strcmp(s1, s2);
|
||||
}
|
||||
|
||||
if ((diff_flags & DIFF_ICASE) && !(diff_flags & ALL_WHITE_DIFF)) {
|
||||
return mb_stricmp((const char *)s1, (const char *)s2);
|
||||
}
|
||||
|
||||
char *p1 = (char *)s1;
|
||||
char *p2 = (char *)s2;
|
||||
char *p1 = s1;
|
||||
char *p2 = s2;
|
||||
|
||||
// Ignore white space changes and possibly ignore case.
|
||||
while (*p1 != NUL && *p2 != NUL) {
|
||||
|
@ -4951,7 +4951,7 @@ static char_u *do_insert_char_pre(int c)
|
||||
// Get the value of v:char. It may be empty or more than one
|
||||
// character. Only use it when changed, otherwise continue with the
|
||||
// original character to avoid breaking autoindent.
|
||||
if (STRCMP(buf, get_vim_var_str(VV_CHAR)) != 0) {
|
||||
if (strcmp(buf, get_vim_var_str(VV_CHAR)) != 0) {
|
||||
res = xstrdup(get_vim_var_str(VV_CHAR));
|
||||
}
|
||||
}
|
||||
|
@ -3998,13 +3998,11 @@ failret:
|
||||
bool func_equal(typval_T *tv1, typval_T *tv2, bool ic)
|
||||
{
|
||||
// empty and NULL function name considered the same
|
||||
char_u *s1 =
|
||||
(char_u *)(tv1->v_type == VAR_FUNC ? tv1->vval.v_string : partial_name(tv1->vval.v_partial));
|
||||
char *s1 = tv1->v_type == VAR_FUNC ? tv1->vval.v_string : partial_name(tv1->vval.v_partial);
|
||||
if (s1 != NULL && *s1 == NUL) {
|
||||
s1 = NULL;
|
||||
}
|
||||
char_u *s2 =
|
||||
(char_u *)(tv2->v_type == VAR_FUNC ? tv2->vval.v_string : partial_name(tv2->vval.v_partial));
|
||||
char *s2 = tv2->v_type == VAR_FUNC ? tv2->vval.v_string : partial_name(tv2->vval.v_partial);
|
||||
if (s2 != NULL && *s2 == NUL) {
|
||||
s2 = NULL;
|
||||
}
|
||||
@ -4012,7 +4010,7 @@ bool func_equal(typval_T *tv1, typval_T *tv2, bool ic)
|
||||
if (s1 != s2) {
|
||||
return false;
|
||||
}
|
||||
} else if (STRCMP(s1, s2) != 0) {
|
||||
} else if (strcmp(s1, s2) != 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -6374,7 +6372,7 @@ pos_T *var2fpos(const typval_T *const tv, const bool dollar_lnum, int *const ret
|
||||
listitem_T *li = tv_list_find(l, 1L);
|
||||
if (li != NULL && TV_LIST_ITEM_TV(li)->v_type == VAR_STRING
|
||||
&& TV_LIST_ITEM_TV(li)->vval.v_string != NULL
|
||||
&& STRCMP(TV_LIST_ITEM_TV(li)->vval.v_string, "$") == 0) {
|
||||
&& strcmp(TV_LIST_ITEM_TV(li)->vval.v_string, "$") == 0) {
|
||||
pos.col = len + 1;
|
||||
}
|
||||
|
||||
@ -7822,7 +7820,7 @@ bool script_autoload(const char *const name, const size_t name_len, const bool r
|
||||
// "autoload/", it's always the same.
|
||||
int i = 0;
|
||||
for (; i < ga_loaded.ga_len; i++) {
|
||||
if (STRCMP(((char **)ga_loaded.ga_data)[i] + 9, scriptname + 9) == 0) {
|
||||
if (strcmp(((char **)ga_loaded.ga_data)[i] + 9, scriptname + 9) == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -423,7 +423,7 @@ static buf_T *find_buffer(typval_T *avar)
|
||||
FOR_ALL_BUFFERS(bp) {
|
||||
if (bp->b_fname != NULL
|
||||
&& (path_with_url(bp->b_fname) || bt_nofilename(bp))
|
||||
&& STRCMP(bp->b_fname, avar->vval.v_string) == 0) {
|
||||
&& strcmp(bp->b_fname, avar->vval.v_string) == 0) {
|
||||
buf = bp;
|
||||
break;
|
||||
}
|
||||
|
@ -1016,7 +1016,7 @@ static int item_compare(const void *s1, const void *s2, bool keep_zero)
|
||||
if (sortinfo->item_compare_lc) {
|
||||
res = strcoll(p1, p2);
|
||||
} else {
|
||||
res = sortinfo->item_compare_ic ? STRICMP(p1, p2): STRCMP(p1, p2);
|
||||
res = sortinfo->item_compare_ic ? STRICMP(p1, p2): strcmp(p1, p2);
|
||||
}
|
||||
} else {
|
||||
double n1, n2;
|
||||
@ -1568,7 +1568,7 @@ bool tv_callback_equal(const Callback *cb1, const Callback *cb2)
|
||||
}
|
||||
switch (cb1->type) {
|
||||
case kCallbackFuncref:
|
||||
return STRCMP(cb1->data.funcref, cb2->data.funcref) == 0;
|
||||
return strcmp(cb1->data.funcref, cb2->data.funcref) == 0;
|
||||
case kCallbackPartial:
|
||||
// FIXME: this is inconsistent with tv_equal but is needed for precision
|
||||
// maybe change dictwatcheradd to return a watcher id instead?
|
||||
|
@ -111,7 +111,7 @@ static int get_function_args(char **argp, char_u endchar, garray_T *newargs, int
|
||||
|
||||
// Check for duplicate argument name.
|
||||
for (i = 0; i < newargs->ga_len; i++) {
|
||||
if (STRCMP(((char **)(newargs->ga_data))[i], arg) == 0) {
|
||||
if (strcmp(((char **)(newargs->ga_data))[i], arg) == 0) {
|
||||
semsg(_("E853: Duplicate argument name: %s"), arg);
|
||||
xfree(arg);
|
||||
goto err_ret;
|
||||
@ -2218,7 +2218,7 @@ void ex_function(exarg_T *eap)
|
||||
} else {
|
||||
p = theline + STRLEN(heredoc_trimmed);
|
||||
}
|
||||
if (STRCMP(p, skip_until) == 0) {
|
||||
if (strcmp(p, skip_until) == 0) {
|
||||
XFREE_CLEAR(skip_until);
|
||||
XFREE_CLEAR(heredoc_trimmed);
|
||||
do_concat = true;
|
||||
|
@ -113,7 +113,7 @@ static list_T *heredoc_get(exarg_T *eap, char *cmd)
|
||||
&& STRNCMP(theline, *eap->cmdlinep, marker_indent_len) == 0) {
|
||||
mi = marker_indent_len;
|
||||
}
|
||||
if (STRCMP(marker, theline + mi) == 0) {
|
||||
if (strcmp(marker, theline + mi) == 0) {
|
||||
xfree(theline);
|
||||
break;
|
||||
}
|
||||
|
@ -379,7 +379,7 @@ static int string_compare(const void *s1, const void *s2) FUNC_ATTR_NONNULL_ALL
|
||||
if (sort_lc) {
|
||||
return strcoll((char *)s1, (char *)s2);
|
||||
}
|
||||
return sort_ic ? STRICMP(s1, s2) : STRCMP(s1, s2);
|
||||
return sort_ic ? STRICMP(s1, s2) : strcmp(s1, s2);
|
||||
}
|
||||
|
||||
static int sort_compare(const void *s1, const void *s2)
|
||||
@ -1535,12 +1535,12 @@ char *make_filter_cmd(char *cmd, char *itmp, char *otmp)
|
||||
{
|
||||
bool is_fish_shell =
|
||||
#if defined(UNIX)
|
||||
STRNCMP(invocation_path_tail(p_sh, NULL), "fish", 4) == 0;
|
||||
STRNCMP(invocation_path_tail((char_u *)p_sh, NULL), "fish", 4) == 0;
|
||||
#else
|
||||
false;
|
||||
#endif
|
||||
bool is_pwsh = STRNCMP(invocation_path_tail(p_sh, NULL), "pwsh", 4) == 0
|
||||
|| STRNCMP(invocation_path_tail(p_sh, NULL), "powershell", 10) == 0;
|
||||
bool is_pwsh = STRNCMP(invocation_path_tail((char_u *)p_sh, NULL), "pwsh", 4) == 0
|
||||
|| STRNCMP(invocation_path_tail((char_u *)p_sh, NULL), "powershell", 10) == 0;
|
||||
|
||||
size_t len = STRLEN(cmd) + 1; // At least enough space for cmd + NULL.
|
||||
|
||||
@ -3258,7 +3258,7 @@ static bool sub_joining_lines(exarg_T *eap, char *pat, char *sub, char *cmd, boo
|
||||
// TODO(vim): find a generic solution to make line-joining operations more
|
||||
// efficient, avoid allocating a string that grows in size.
|
||||
if (pat != NULL
|
||||
&& STRCMP(pat, "\\n") == 0
|
||||
&& strcmp(pat, "\\n") == 0
|
||||
&& *sub == NUL
|
||||
&& (*cmd == NUL || (cmd[1] == NUL
|
||||
&& (*cmd == 'g'
|
||||
|
@ -3657,7 +3657,7 @@ char *replace_makeprg(exarg_T *eap, char *arg, char **cmdlinep)
|
||||
// Don't do it when ":vimgrep" is used for ":grep".
|
||||
if ((eap->cmdidx == CMD_make || eap->cmdidx == CMD_lmake || isgrep)
|
||||
&& !grep_internal(eap->cmdidx)) {
|
||||
const char *program = isgrep ? (*curbuf->b_p_gp == NUL ? (char *)p_gp : curbuf->b_p_gp)
|
||||
const char *program = isgrep ? (*curbuf->b_p_gp == NUL ? p_gp : curbuf->b_p_gp)
|
||||
: (*curbuf->b_p_mp == NUL ? (char *)p_mp : curbuf->b_p_mp);
|
||||
|
||||
arg = skipwhite(arg);
|
||||
@ -4114,9 +4114,9 @@ static int get_tabpage_arg(exarg_T *eap)
|
||||
tab_number = (int)getdigits(&p, false, tab_number);
|
||||
|
||||
if (relative == 0) {
|
||||
if (STRCMP(p, "$") == 0) {
|
||||
if (strcmp(p, "$") == 0) {
|
||||
tab_number = LAST_TAB_NR;
|
||||
} else if (STRCMP(p, "#") == 0) {
|
||||
} else if (strcmp(p, "#") == 0) {
|
||||
if (valid_tabpage(lastused_tabpage)) {
|
||||
tab_number = tabpage_index(lastused_tabpage);
|
||||
} else {
|
||||
@ -5480,7 +5480,7 @@ bool changedir_func(char *new_dir, CdScope scope)
|
||||
|
||||
char *pdir = NULL;
|
||||
// ":cd -": Change to previous directory
|
||||
if (STRCMP(new_dir, "-") == 0) {
|
||||
if (strcmp(new_dir, "-") == 0) {
|
||||
pdir = get_prevdir(scope);
|
||||
if (pdir == NULL) {
|
||||
emsg(_("E186: No previous directory"));
|
||||
@ -6712,7 +6712,7 @@ char_u *eval_vars(char_u *src, char_u *srcstart, size_t *usedlen, linenr_T *lnum
|
||||
valid = 0; // Must have ":p:h" to be valid
|
||||
} else {
|
||||
result = curbuf->b_fname;
|
||||
tilde_file = STRCMP(result, "~") == 0;
|
||||
tilde_file = strcmp(result, "~") == 0;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -6766,7 +6766,7 @@ char_u *eval_vars(char_u *src, char_u *srcstart, size_t *usedlen, linenr_T *lnum
|
||||
valid = 0; // Must have ":p:h" to be valid
|
||||
} else {
|
||||
result = buf->b_fname;
|
||||
tilde_file = STRCMP(result, "~") == 0;
|
||||
tilde_file = strcmp(result, "~") == 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -6986,12 +6986,12 @@ void dialog_msg(char *buff, char *format, char *fname)
|
||||
/// ":behave {mswin,xterm}"
|
||||
static void ex_behave(exarg_T *eap)
|
||||
{
|
||||
if (STRCMP(eap->arg, "mswin") == 0) {
|
||||
if (strcmp(eap->arg, "mswin") == 0) {
|
||||
set_option_value_give_err("selection", 0L, "exclusive", 0);
|
||||
set_option_value_give_err("selectmode", 0L, "mouse,key", 0);
|
||||
set_option_value_give_err("mousemodel", 0L, "popup", 0);
|
||||
set_option_value_give_err("keymodel", 0L, "startsel,stopsel", 0);
|
||||
} else if (STRCMP(eap->arg, "xterm") == 0) {
|
||||
} else if (strcmp(eap->arg, "xterm") == 0) {
|
||||
set_option_value_give_err("selection", 0L, "inclusive", 0);
|
||||
set_option_value_give_err("selectmode", 0L, "", 0);
|
||||
set_option_value_give_err("mousemodel", 0L, "extend", 0);
|
||||
@ -7041,7 +7041,7 @@ static void ex_filetype(exarg_T *eap)
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (STRCMP(arg, "on") == 0 || STRCMP(arg, "detect") == 0) {
|
||||
if (strcmp(arg, "on") == 0 || strcmp(arg, "detect") == 0) {
|
||||
if (*arg == 'o' || !filetype_detect) {
|
||||
source_runtime(FILETYPE_FILE, DIP_ALL);
|
||||
filetype_detect = kTrue;
|
||||
@ -7058,7 +7058,7 @@ static void ex_filetype(exarg_T *eap)
|
||||
(void)do_doautocmd("filetypedetect BufRead", true, NULL);
|
||||
do_modelines(0);
|
||||
}
|
||||
} else if (STRCMP(arg, "off") == 0) {
|
||||
} else if (strcmp(arg, "off") == 0) {
|
||||
if (plugin || indent) {
|
||||
if (plugin) {
|
||||
source_runtime(FTPLUGOF_FILE, DIP_ALL);
|
||||
|
@ -2881,7 +2881,7 @@ static bool color_cmdline(CmdlineInfo *colored_ccline)
|
||||
// Check whether result of the previous call is still valid.
|
||||
if (ccline_colors->prompt_id == colored_ccline->prompt_id
|
||||
&& ccline_colors->cmdbuff != NULL
|
||||
&& STRCMP(ccline_colors->cmdbuff, colored_ccline->cmdbuff) == 0) {
|
||||
&& strcmp(ccline_colors->cmdbuff, colored_ccline->cmdbuff) == 0) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -806,11 +806,11 @@ retry:
|
||||
// Conversion may be required when the encoding of the file is different
|
||||
// from 'encoding' or 'encoding' is UTF-16, UCS-2 or UCS-4.
|
||||
fio_flags = 0;
|
||||
converted = need_conversion((char_u *)fenc);
|
||||
converted = need_conversion(fenc);
|
||||
if (converted) {
|
||||
// "ucs-bom" means we need to check the first bytes of the file
|
||||
// for a BOM.
|
||||
if (STRCMP(fenc, ENC_UCSBOM) == 0) {
|
||||
if (strcmp(fenc, ENC_UCSBOM) == 0) {
|
||||
fio_flags = FIO_UCSBOM;
|
||||
} else {
|
||||
// Check if UCS-2/4 or Latin1 to UTF-8 conversion needs to be
|
||||
@ -2952,7 +2952,7 @@ nobackup:
|
||||
}
|
||||
|
||||
// Check if the file needs to be converted.
|
||||
converted = need_conversion((char_u *)fenc);
|
||||
converted = need_conversion(fenc);
|
||||
|
||||
// Check if UTF-8 to UCS-2/4 or Latin1 conversion needs to be done. Or
|
||||
// Latin1 to Unicode conversion. This is handled in buf_write_bytes().
|
||||
@ -4028,21 +4028,21 @@ static bool ucs2bytes(unsigned c, char_u **pp, int flags) FUNC_ATTR_NONNULL_ALL
|
||||
/// @param fenc file encoding to check
|
||||
///
|
||||
/// @return true if conversion is required
|
||||
static bool need_conversion(const char_u *fenc)
|
||||
static bool need_conversion(const char *fenc)
|
||||
FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT
|
||||
{
|
||||
int same_encoding;
|
||||
int enc_flags;
|
||||
int fenc_flags;
|
||||
|
||||
if (*fenc == NUL || STRCMP(p_enc, fenc) == 0) {
|
||||
if (*fenc == NUL || strcmp(p_enc, fenc) == 0) {
|
||||
same_encoding = true;
|
||||
fenc_flags = 0;
|
||||
} else {
|
||||
// Ignore difference between "ansi" and "latin1", "ucs-4" and
|
||||
// "ucs-4be", etc.
|
||||
enc_flags = get_fio_flags((char_u *)p_enc);
|
||||
fenc_flags = get_fio_flags(fenc);
|
||||
fenc_flags = get_fio_flags((char_u *)fenc);
|
||||
same_encoding = (enc_flags != 0 && fenc_flags == enc_flags);
|
||||
}
|
||||
if (same_encoding) {
|
||||
@ -4499,7 +4499,7 @@ int vim_rename(const char_u *from, const char_u *to)
|
||||
// to the same file (ignoring case and slash/backslash differences) but
|
||||
// the file name differs we need to go through a temp file.
|
||||
if (FNAMECMP(from, to) == 0) {
|
||||
if (p_fic && (STRCMP(path_tail((char *)from), path_tail((char *)to))
|
||||
if (p_fic && (strcmp(path_tail((char *)from), path_tail((char *)to))
|
||||
!= 0)) {
|
||||
use_tmp_file = true;
|
||||
} else {
|
||||
@ -4745,7 +4745,7 @@ int buf_check_timestamp(buf_T *buf)
|
||||
FUNC_ATTR_NONNULL_ALL
|
||||
{
|
||||
int retval = 0;
|
||||
char_u *path;
|
||||
char *path;
|
||||
char *mesg = NULL;
|
||||
char *mesg2 = "";
|
||||
bool helpmesg = false;
|
||||
@ -4760,7 +4760,7 @@ int buf_check_timestamp(buf_T *buf)
|
||||
uint64_t orig_size = buf->b_orig_size;
|
||||
int orig_mode = buf->b_orig_mode;
|
||||
static bool busy = false;
|
||||
char_u *s;
|
||||
char *s;
|
||||
char *reason;
|
||||
|
||||
bufref_T bufref;
|
||||
@ -4835,12 +4835,12 @@ int buf_check_timestamp(buf_T *buf)
|
||||
if (!bufref_valid(&bufref)) {
|
||||
emsg(_("E246: FileChangedShell autocommand deleted buffer"));
|
||||
}
|
||||
s = (char_u *)get_vim_var_str(VV_FCS_CHOICE);
|
||||
if (STRCMP(s, "reload") == 0 && *reason != 'd') {
|
||||
s = get_vim_var_str(VV_FCS_CHOICE);
|
||||
if (strcmp(s, "reload") == 0 && *reason != 'd') {
|
||||
reload = RELOAD_NORMAL;
|
||||
} else if (STRCMP(s, "edit") == 0) {
|
||||
} else if (strcmp(s, "edit") == 0) {
|
||||
reload = RELOAD_DETECT;
|
||||
} else if (STRCMP(s, "ask") == 0) {
|
||||
} else if (strcmp(s, "ask") == 0) {
|
||||
n = false;
|
||||
} else {
|
||||
return 2;
|
||||
@ -4888,7 +4888,7 @@ int buf_check_timestamp(buf_T *buf)
|
||||
}
|
||||
|
||||
if (mesg != NULL) {
|
||||
path = (char_u *)home_replace_save(buf, buf->b_fname);
|
||||
path = home_replace_save(buf, buf->b_fname);
|
||||
if (!helpmesg) {
|
||||
mesg2 = "";
|
||||
}
|
||||
|
@ -115,7 +115,7 @@ local value_dumpers = {
|
||||
}
|
||||
|
||||
local get_value = function(v)
|
||||
return '(char_u *) ' .. value_dumpers[type(v)](v)
|
||||
return '(char *) ' .. value_dumpers[type(v)](v)
|
||||
end
|
||||
|
||||
local get_defaults = function(d,n)
|
||||
|
@ -46,14 +46,14 @@ void grid_adjust(ScreenGrid **grid, int *row_off, int *col_off)
|
||||
}
|
||||
|
||||
/// Put a unicode char, and up to MAX_MCO composing chars, in a screen cell.
|
||||
int schar_from_cc(char_u *p, int c, int u8cc[MAX_MCO])
|
||||
int schar_from_cc(char *p, int c, int u8cc[MAX_MCO])
|
||||
{
|
||||
int len = utf_char2bytes(c, (char *)p);
|
||||
int len = utf_char2bytes(c, p);
|
||||
for (int i = 0; i < MAX_MCO; i++) {
|
||||
if (u8cc[i] == 0) {
|
||||
break;
|
||||
}
|
||||
len += utf_char2bytes(u8cc[i], (char *)p + len);
|
||||
len += utf_char2bytes(u8cc[i], p + len);
|
||||
}
|
||||
p[len] = 0;
|
||||
return len;
|
||||
@ -140,7 +140,7 @@ void grid_getbytes(ScreenGrid *grid, int row, int col, char_u *bytes, int *attrp
|
||||
if (grid->chars != NULL && row < grid->rows && col < grid->cols) {
|
||||
off = grid->line_offset[row] + (size_t)col;
|
||||
*attrp = grid->attrs[off];
|
||||
schar_copy(bytes, grid->chars[off]);
|
||||
schar_copy((char *)bytes, grid->chars[off]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -171,7 +171,7 @@ void grid_puts_line_start(ScreenGrid *grid, int row)
|
||||
put_dirty_grid = grid;
|
||||
}
|
||||
|
||||
void grid_put_schar(ScreenGrid *grid, int row, int col, char_u *schar, int attr)
|
||||
void grid_put_schar(ScreenGrid *grid, int row, int col, char *schar, int attr)
|
||||
{
|
||||
assert(put_dirty_row == row);
|
||||
size_t off = grid->line_offset[row] + (size_t)col;
|
||||
|
@ -29,30 +29,30 @@ EXTERN sattr_T *linebuf_attr INIT(= NULL);
|
||||
// screen grid.
|
||||
|
||||
/// Put a ASCII character in a screen cell.
|
||||
static inline void schar_from_ascii(char_u *p, const char c)
|
||||
static inline void schar_from_ascii(char *p, const char c)
|
||||
{
|
||||
p[0] = (char_u)c;
|
||||
p[0] = c;
|
||||
p[1] = 0;
|
||||
}
|
||||
|
||||
/// Put a unicode character in a screen cell.
|
||||
static inline int schar_from_char(char_u *p, int c)
|
||||
static inline int schar_from_char(char *p, int c)
|
||||
{
|
||||
int len = utf_char2bytes(c, (char *)p);
|
||||
int len = utf_char2bytes(c, p);
|
||||
p[len] = NUL;
|
||||
return len;
|
||||
}
|
||||
|
||||
/// compare the contents of two screen cells.
|
||||
static inline int schar_cmp(char_u *sc1, char_u *sc2)
|
||||
static inline int schar_cmp(char *sc1, char *sc2)
|
||||
{
|
||||
return strncmp((char *)sc1, (char *)sc2, sizeof(schar_T));
|
||||
return strncmp(sc1, sc2, sizeof(schar_T));
|
||||
}
|
||||
|
||||
/// copy the contents of screen cell `sc2` into cell `sc1`
|
||||
static inline void schar_copy(char_u *sc1, char_u *sc2)
|
||||
static inline void schar_copy(char *sc1, char *sc2)
|
||||
{
|
||||
xstrlcpy((char *)sc1, (char *)sc2, sizeof(schar_T));
|
||||
xstrlcpy(sc1, sc2, sizeof(schar_T));
|
||||
}
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
|
@ -10,7 +10,7 @@
|
||||
#define MAX_MCO 6 // fixed value for 'maxcombine'
|
||||
|
||||
// The characters and attributes drawn on grids.
|
||||
typedef char_u schar_T[(MAX_MCO + 1) * 4 + 1];
|
||||
typedef char schar_T[(MAX_MCO + 1) * 4 + 1];
|
||||
typedef int sattr_T;
|
||||
|
||||
enum {
|
||||
|
@ -367,7 +367,7 @@ int find_help_tags(const char *arg, int *num_matches, char ***matches, bool keep
|
||||
// the table, it is taken literally (but ~ is escaped). Otherwise '?'
|
||||
// is recognized as a wildcard.
|
||||
for (i = (int)ARRAY_SIZE(expr_table); --i >= 0;) {
|
||||
if (STRCMP(arg + 5, expr_table[i]) == 0) {
|
||||
if (strcmp(arg + 5, expr_table[i]) == 0) {
|
||||
for (int si = 0, di = 0;; si++) {
|
||||
if (arg[si] == '~') {
|
||||
d[di++] = '\\';
|
||||
@ -384,7 +384,7 @@ int find_help_tags(const char *arg, int *num_matches, char ***matches, bool keep
|
||||
// Recognize a few exceptions to the rule. Some strings that contain
|
||||
// '*'are changed to "star", otherwise '*' is recognized as a wildcard.
|
||||
for (i = 0; except_tbl[i][0] != NULL; i++) {
|
||||
if (STRCMP(arg, except_tbl[i][0]) == 0) {
|
||||
if (strcmp(arg, except_tbl[i][0]) == 0) {
|
||||
STRCPY(d, except_tbl[i][1]);
|
||||
break;
|
||||
}
|
||||
@ -556,8 +556,8 @@ int find_help_tags(const char *arg, int *num_matches, char ***matches, bool keep
|
||||
/// tag matches it. Otherwise remove "@en" if "en" is the only language.
|
||||
void cleanup_help_tags(int num_file, char **file)
|
||||
{
|
||||
char_u buf[4];
|
||||
char_u *p = buf;
|
||||
char buf[4];
|
||||
char_u *p = (char_u *)buf;
|
||||
|
||||
if (p_hlg[0] != NUL && (p_hlg[0] != 'e' || p_hlg[1] != 'n')) {
|
||||
*p++ = '@';
|
||||
@ -571,7 +571,7 @@ void cleanup_help_tags(int num_file, char **file)
|
||||
if (len <= 0) {
|
||||
continue;
|
||||
}
|
||||
if (STRCMP(file[i] + len, "@en") == 0) {
|
||||
if (strcmp(file[i] + len, "@en") == 0) {
|
||||
// Sorting on priority means the same item in another language may
|
||||
// be anywhere. Search all items for a match up to the "@en".
|
||||
int j;
|
||||
@ -595,7 +595,7 @@ void cleanup_help_tags(int num_file, char **file)
|
||||
if (len <= 0) {
|
||||
continue;
|
||||
}
|
||||
if (STRCMP(file[i] + len, buf) == 0) {
|
||||
if (strcmp(file[i] + len, buf) == 0) {
|
||||
// remove the default language
|
||||
file[i][len] = NUL;
|
||||
}
|
||||
@ -615,7 +615,7 @@ void prepare_help_buffer(void)
|
||||
// latin1 word characters (for translated help files).
|
||||
// Only set it when needed, buf_init_chartab() is some work.
|
||||
char *p = "!-~,^*,^|,^\",192-255";
|
||||
if (STRCMP(curbuf->b_p_isk, p) != 0) {
|
||||
if (strcmp(curbuf->b_p_isk, p) != 0) {
|
||||
set_string_option_direct("isk", -1, p, OPT_FREE|OPT_LOCAL, 0);
|
||||
check_buf_options(curbuf);
|
||||
(void)buf_init_chartab(curbuf, false);
|
||||
@ -650,7 +650,7 @@ void fix_help_buffer(void)
|
||||
bool in_example = false;
|
||||
|
||||
// Set filetype to "help".
|
||||
if (STRCMP(curbuf->b_p_ft, "help") != 0) {
|
||||
if (strcmp(curbuf->b_p_ft, "help") != 0) {
|
||||
curbuf->b_ro_locked++;
|
||||
set_option_value_give_err("ft", 0L, "help", OPT_LOCAL);
|
||||
curbuf->b_ro_locked--;
|
||||
@ -1162,7 +1162,7 @@ void ex_helptags(exarg_T *eap)
|
||||
eap->arg = skipwhite(eap->arg + 3);
|
||||
}
|
||||
|
||||
if (STRCMP(eap->arg, "ALL") == 0) {
|
||||
if (strcmp(eap->arg, "ALL") == 0) {
|
||||
do_in_path(p_rtp, "doc", DIP_ALL + DIP_DIR, helptags_cb, &add_help_tags);
|
||||
} else {
|
||||
ExpandInit(&xpc);
|
||||
|
@ -791,7 +791,7 @@ void set_hl_group(int id, HlAttrs attrs, Dict(highlight) *dict, int link_id)
|
||||
g->sg_attr = hl_get_syn_attr(0, id, attrs);
|
||||
|
||||
// 'Normal' is special
|
||||
if (STRCMP(g->sg_name_u, "NORMAL") == 0) {
|
||||
if (strcmp(g->sg_name_u, "NORMAL") == 0) {
|
||||
cterm_normal_fg_color = g->sg_cterm_fg;
|
||||
cterm_normal_bg_color = g->sg_cterm_bg;
|
||||
normal_fg = g->sg_rgb_fg;
|
||||
@ -988,7 +988,7 @@ void do_highlight(const char *line, const bool forceit, const bool init)
|
||||
|
||||
// Make a copy so we can check if any attribute actually changed
|
||||
item_before = hl_table[idx];
|
||||
is_normal_group = (STRCMP(hl_table[idx].sg_name_u, "NORMAL") == 0);
|
||||
is_normal_group = (strcmp(hl_table[idx].sg_name_u, "NORMAL") == 0);
|
||||
|
||||
// Clear the highlighting for ":hi clear {group}" and ":hi clear".
|
||||
if (doclear || (forceit && init)) {
|
||||
@ -1119,9 +1119,9 @@ void do_highlight(const char *line, const bool forceit, const bool init)
|
||||
hl_table[idx].sg_gui = attr;
|
||||
}
|
||||
}
|
||||
} else if (STRCMP(key, "FONT") == 0) {
|
||||
} else if (strcmp(key, "FONT") == 0) {
|
||||
// in non-GUI fonts are simply ignored
|
||||
} else if (STRCMP(key, "CTERMFG") == 0 || STRCMP(key, "CTERMBG") == 0) {
|
||||
} else if (strcmp(key, "CTERMFG") == 0 || strcmp(key, "CTERMBG") == 0) {
|
||||
if (!init || !(hl_table[idx].sg_set & SG_CTERM)) {
|
||||
if (!init) {
|
||||
hl_table[idx].sg_set |= SG_CTERM;
|
||||
@ -1239,7 +1239,7 @@ void do_highlight(const char *line, const bool forceit, const bool init)
|
||||
if (is_normal_group) {
|
||||
normal_fg = hl_table[idx].sg_rgb_fg;
|
||||
}
|
||||
} else if (STRCMP(key, "GUIBG") == 0) {
|
||||
} else if (strcmp(key, "GUIBG") == 0) {
|
||||
int *indexp = &hl_table[idx].sg_rgb_bg_idx;
|
||||
|
||||
if (!init || !(hl_table[idx].sg_set & SG_GUI)) {
|
||||
@ -1250,7 +1250,7 @@ void do_highlight(const char *line, const bool forceit, const bool init)
|
||||
RgbValue old_color = hl_table[idx].sg_rgb_bg;
|
||||
int old_idx = hl_table[idx].sg_rgb_bg_idx;
|
||||
|
||||
if (STRCMP(arg, "NONE") != 0) {
|
||||
if (strcmp(arg, "NONE") != 0) {
|
||||
hl_table[idx].sg_rgb_bg = name_to_color(arg, indexp);
|
||||
} else {
|
||||
hl_table[idx].sg_rgb_bg = -1;
|
||||
|
@ -811,7 +811,7 @@ static int ins_compl_add(char *const str, int len, char *const fname, char *cons
|
||||
if (fname != NULL
|
||||
&& compl_curr_match != NULL
|
||||
&& compl_curr_match->cp_fname != NULL
|
||||
&& STRCMP(fname, compl_curr_match->cp_fname) == 0) {
|
||||
&& strcmp(fname, compl_curr_match->cp_fname) == 0) {
|
||||
match->cp_fname = compl_curr_match->cp_fname;
|
||||
} else if (fname != NULL) {
|
||||
match->cp_fname = xstrdup(fname);
|
||||
@ -1332,7 +1332,7 @@ static void ins_compl_dictionaries(char_u *dict_start, char_u *pat, int flags, i
|
||||
// backticks (for security, the 'dict' option may have been set in
|
||||
// a modeline).
|
||||
copy_option_part(&dict, buf, LSIZE, ",");
|
||||
if (!thesaurus && STRCMP(buf, "spell") == 0) {
|
||||
if (!thesaurus && strcmp(buf, "spell") == 0) {
|
||||
count = -1;
|
||||
} else if (vim_strchr(buf, '`') != NULL
|
||||
|| expand_wildcards(1, &buf, &count, &files,
|
||||
@ -1349,7 +1349,7 @@ static void ins_compl_dictionaries(char_u *dict_start, char_u *pat, int flags, i
|
||||
} else {
|
||||
ptr = pat;
|
||||
}
|
||||
spell_dump_compl(ptr, regmatch.rm_ic, &dir, 0);
|
||||
spell_dump_compl((char *)ptr, regmatch.rm_ic, &dir, 0);
|
||||
} else if (count > 0) { // avoid warning for using "files" uninit
|
||||
ins_compl_files(count, files, thesaurus, flags,
|
||||
®match, (char_u *)buf, &dir);
|
||||
@ -2588,15 +2588,15 @@ static void get_complete_info(list_T *what_list, dict_T *retdict)
|
||||
; item = TV_LIST_ITEM_NEXT(what_list, item)) {
|
||||
const char *what = tv_get_string(TV_LIST_ITEM_TV(item));
|
||||
|
||||
if (STRCMP(what, "mode") == 0) {
|
||||
if (strcmp(what, "mode") == 0) {
|
||||
what_flag |= CI_WHAT_MODE;
|
||||
} else if (STRCMP(what, "pum_visible") == 0) {
|
||||
} else if (strcmp(what, "pum_visible") == 0) {
|
||||
what_flag |= CI_WHAT_PUM_VISIBLE;
|
||||
} else if (STRCMP(what, "items") == 0) {
|
||||
} else if (strcmp(what, "items") == 0) {
|
||||
what_flag |= CI_WHAT_ITEMS;
|
||||
} else if (STRCMP(what, "selected") == 0) {
|
||||
} else if (strcmp(what, "selected") == 0) {
|
||||
what_flag |= CI_WHAT_SELECTED;
|
||||
} else if (STRCMP(what, "inserted") == 0) {
|
||||
} else if (strcmp(what, "inserted") == 0) {
|
||||
what_flag |= CI_WHAT_INSERTED;
|
||||
}
|
||||
}
|
||||
|
@ -1044,7 +1044,7 @@ static int nlua_debug(lua_State *lstate)
|
||||
if (input.v_type != VAR_STRING
|
||||
|| input.vval.v_string == NULL
|
||||
|| *input.vval.v_string == NUL
|
||||
|| STRCMP(input.vval.v_string, "cont") == 0) {
|
||||
|| strcmp(input.vval.v_string, "cont") == 0) {
|
||||
tv_clear(&input);
|
||||
return 0;
|
||||
}
|
||||
|
@ -499,7 +499,7 @@ static int nlua_iconv(lua_State *lstate)
|
||||
|
||||
vimconv_T vimconv;
|
||||
vimconv.vc_type = CONV_NONE;
|
||||
convert_setup_ext(&vimconv, from, false, to, false);
|
||||
convert_setup_ext(&vimconv, (char *)from, false, (char *)to, false);
|
||||
|
||||
char_u *ret = (char_u *)string_convert(&vimconv, (char *)str, &str_len);
|
||||
|
||||
|
@ -834,7 +834,7 @@ static int node_field(lua_State *L)
|
||||
do {
|
||||
const char *current_field = ts_tree_cursor_current_field_name(&cursor);
|
||||
|
||||
if (current_field != NULL && !STRCMP(field_name, current_field)) {
|
||||
if (current_field != NULL && !strcmp(field_name, current_field)) {
|
||||
push_node(L, ts_tree_cursor_current_node(&cursor), 1); // [table, node]
|
||||
lua_rawseti(L, -2, (int)++curr_index);
|
||||
}
|
||||
|
@ -971,12 +971,12 @@ static int get_map_mode(char **cmdp, bool forceit)
|
||||
/// Clear all mappings (":mapclear") or abbreviations (":abclear").
|
||||
/// "abbr" should be false for mappings, true for abbreviations.
|
||||
/// This function used to be called map_clear().
|
||||
static void do_mapclear(char *cmdp, char_u *arg, int forceit, int abbr)
|
||||
static void do_mapclear(char *cmdp, char *arg, int forceit, int abbr)
|
||||
{
|
||||
int mode;
|
||||
int local;
|
||||
|
||||
local = (STRCMP(arg, "<buffer>") == 0);
|
||||
local = (strcmp(arg, "<buffer>") == 0);
|
||||
if (!local && *arg != NUL) {
|
||||
emsg(_(e_invarg));
|
||||
return;
|
||||
@ -1350,7 +1350,7 @@ int ExpandMappings(regmatch_T *regmatch, int *num_file, char ***file)
|
||||
char **ptr3 = ptr1 + count;
|
||||
|
||||
while (ptr2 < ptr3) {
|
||||
if (STRCMP(*ptr1, *ptr2)) {
|
||||
if (strcmp(*ptr1, *ptr2)) {
|
||||
*++ptr1 = *ptr2++;
|
||||
} else {
|
||||
xfree(*ptr2++);
|
||||
@ -2457,13 +2457,13 @@ void ex_unmap(exarg_T *eap)
|
||||
/// ":mapclear" and friends.
|
||||
void ex_mapclear(exarg_T *eap)
|
||||
{
|
||||
do_mapclear(eap->cmd, (char_u *)eap->arg, eap->forceit, false);
|
||||
do_mapclear(eap->cmd, eap->arg, eap->forceit, false);
|
||||
}
|
||||
|
||||
/// ":abclear" and friends.
|
||||
void ex_abclear(exarg_T *eap)
|
||||
{
|
||||
do_mapclear(eap->cmd, (char_u *)eap->arg, true, true);
|
||||
do_mapclear(eap->cmd, eap->arg, true, true);
|
||||
}
|
||||
|
||||
/// Set, tweak, or remove a mapping in a mode. Acts as the implementation for
|
||||
|
@ -338,13 +338,13 @@ enc_alias_table[] =
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
// Find encoding "name" in the list of canonical encoding names.
|
||||
// Returns -1 if not found.
|
||||
static int enc_canon_search(const char_u *name)
|
||||
/// Find encoding "name" in the list of canonical encoding names.
|
||||
/// Returns -1 if not found.
|
||||
static int enc_canon_search(const char *name)
|
||||
FUNC_ATTR_PURE
|
||||
{
|
||||
for (int i = 0; i < IDX_COUNT; i++) {
|
||||
if (STRCMP(name, enc_canon_table[i].name) == 0) {
|
||||
if (strcmp(name, enc_canon_table[i].name) == 0) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
@ -356,7 +356,7 @@ static int enc_canon_search(const char_u *name)
|
||||
int enc_canon_props(const char_u *name)
|
||||
FUNC_ATTR_PURE
|
||||
{
|
||||
int i = enc_canon_search(name);
|
||||
int i = enc_canon_search((char *)name);
|
||||
if (i >= 0) {
|
||||
return enc_canon_table[i].prop;
|
||||
} else if (STRNCMP(name, "2byte-", 6) == 0) {
|
||||
@ -379,7 +379,7 @@ int bomb_size(void)
|
||||
|
||||
if (curbuf->b_p_bomb && !curbuf->b_p_bin) {
|
||||
if (*curbuf->b_p_fenc == NUL
|
||||
|| STRCMP(curbuf->b_p_fenc, "utf-8") == 0) {
|
||||
|| strcmp(curbuf->b_p_fenc, "utf-8") == 0) {
|
||||
n = 3;
|
||||
} else if (STRNCMP(curbuf->b_p_fenc, "ucs-2", 5) == 0
|
||||
|| STRNCMP(curbuf->b_p_fenc, "utf-16", 6) == 0) {
|
||||
@ -2115,7 +2115,7 @@ char *enc_canonize(char *enc)
|
||||
FUNC_ATTR_NONNULL_RET
|
||||
{
|
||||
char *p, *s;
|
||||
if (STRCMP(enc, "default") == 0) {
|
||||
if (strcmp(enc, "default") == 0) {
|
||||
// Use the default encoding as found by set_init_1().
|
||||
return xstrdup(fenc_default);
|
||||
}
|
||||
@ -2159,12 +2159,12 @@ char *enc_canonize(char *enc)
|
||||
}
|
||||
|
||||
int i;
|
||||
if (enc_canon_search((char_u *)p) >= 0) {
|
||||
if (enc_canon_search(p) >= 0) {
|
||||
// canonical name can be used unmodified
|
||||
if (p != r) {
|
||||
STRMOVE(r, p);
|
||||
}
|
||||
} else if ((i = enc_alias_search((char_u *)p)) >= 0) {
|
||||
} else if ((i = enc_alias_search(p)) >= 0) {
|
||||
// alias recognized, get canonical name
|
||||
xfree(r);
|
||||
r = xstrdup(enc_canon_table[i].name);
|
||||
@ -2174,12 +2174,12 @@ char *enc_canonize(char *enc)
|
||||
|
||||
/// Search for an encoding alias of "name".
|
||||
/// Returns -1 when not found.
|
||||
static int enc_alias_search(const char_u *name)
|
||||
static int enc_alias_search(const char *name)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; enc_alias_table[i].name != NULL; i++) {
|
||||
if (STRCMP(name, enc_alias_table[i].name) == 0) {
|
||||
if (strcmp(name, enc_alias_table[i].name) == 0) {
|
||||
return enc_alias_table[i].canon;
|
||||
}
|
||||
}
|
||||
@ -2390,12 +2390,12 @@ static char_u *iconv_string(const vimconv_T *const vcp, char_u *str, size_t slen
|
||||
/// @return FAIL when conversion is not supported, OK otherwise.
|
||||
int convert_setup(vimconv_T *vcp, char *from, char *to)
|
||||
{
|
||||
return convert_setup_ext(vcp, (char_u *)from, true, (char_u *)to, true);
|
||||
return convert_setup_ext(vcp, from, true, to, true);
|
||||
}
|
||||
|
||||
/// As convert_setup(), but only when from_unicode_is_utf8 is true will all
|
||||
/// "from" unicode charsets be considered utf-8. Same for "to".
|
||||
int convert_setup_ext(vimconv_T *vcp, char_u *from, bool from_unicode_is_utf8, char_u *to,
|
||||
int convert_setup_ext(vimconv_T *vcp, char *from, bool from_unicode_is_utf8, char *to,
|
||||
bool to_unicode_is_utf8)
|
||||
{
|
||||
int from_prop;
|
||||
@ -2413,12 +2413,12 @@ int convert_setup_ext(vimconv_T *vcp, char_u *from, bool from_unicode_is_utf8, c
|
||||
|
||||
// No conversion when one of the names is empty or they are equal.
|
||||
if (from == NULL || *from == NUL || to == NULL || *to == NUL
|
||||
|| STRCMP(from, to) == 0) {
|
||||
|| strcmp(from, to) == 0) {
|
||||
return OK;
|
||||
}
|
||||
|
||||
from_prop = enc_canon_props(from);
|
||||
to_prop = enc_canon_props(to);
|
||||
from_prop = enc_canon_props((char_u *)from);
|
||||
to_prop = enc_canon_props((char_u *)to);
|
||||
if (from_unicode_is_utf8) {
|
||||
from_is_utf8 = from_prop & ENC_UNICODE;
|
||||
} else {
|
||||
@ -2448,8 +2448,8 @@ int convert_setup_ext(vimconv_T *vcp, char_u *from, bool from_unicode_is_utf8, c
|
||||
#ifdef HAVE_ICONV
|
||||
else { // NOLINT(readability/braces)
|
||||
// Use iconv() for conversion.
|
||||
vcp->vc_fd = (iconv_t)my_iconv_open(to_is_utf8 ? (char_u *)"utf-8" : to,
|
||||
from_is_utf8 ? (char_u *)"utf-8" : from);
|
||||
vcp->vc_fd = (iconv_t)my_iconv_open(to_is_utf8 ? (char_u *)"utf-8" : (char_u *)to,
|
||||
from_is_utf8 ? (char_u *)"utf-8" : (char_u *)from);
|
||||
if (vcp->vc_fd != (iconv_t)-1) {
|
||||
vcp->vc_type = CONV_ICONV;
|
||||
vcp->vc_factor = 4; // could be longer too...
|
||||
|
@ -1110,7 +1110,7 @@ void ml_recover(bool checkext)
|
||||
for (idx = 1; idx <= lnum; idx++) {
|
||||
// Need to copy one line, fetching the other one may flush it.
|
||||
p = xstrdup(ml_get(idx));
|
||||
i = STRCMP(p, ml_get(idx + lnum));
|
||||
i = strcmp(p, ml_get(idx + lnum));
|
||||
xfree(p);
|
||||
if (i != 0) {
|
||||
changed_internal();
|
||||
@ -1238,7 +1238,7 @@ int recover_names(char_u *fname, int list, int nr, char **fname_out)
|
||||
names[2] = xstrdup(".sw?");
|
||||
num_names = 3;
|
||||
} else {
|
||||
num_names = recov_file_names(names, fname_res, true);
|
||||
num_names = recov_file_names(names, (char *)fname_res, true);
|
||||
}
|
||||
} else { // check directory dir_name
|
||||
if (fname == NULL) {
|
||||
@ -1261,7 +1261,7 @@ int recover_names(char_u *fname, int list, int nr, char **fname_out)
|
||||
tail = (char_u *)path_tail((char *)fname_res);
|
||||
tail = (char_u *)concat_fnames((char *)dir_name, (char *)tail, true);
|
||||
}
|
||||
num_names = recov_file_names(names, tail, false);
|
||||
num_names = recov_file_names(names, (char *)tail, false);
|
||||
xfree(tail);
|
||||
}
|
||||
}
|
||||
@ -1553,7 +1553,7 @@ static bool swapfile_unchanged(char *fname)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int recov_file_names(char **names, char_u *path, int prepend_dot)
|
||||
static int recov_file_names(char **names, char *path, int prepend_dot)
|
||||
FUNC_ATTR_NONNULL_ALL
|
||||
{
|
||||
int num_names = 0;
|
||||
@ -1561,7 +1561,7 @@ static int recov_file_names(char **names, char_u *path, int prepend_dot)
|
||||
// May also add the file name with a dot prepended, for swap file in same
|
||||
// dir as original file.
|
||||
if (prepend_dot) {
|
||||
names[num_names] = modname((char *)path, ".sw?", true);
|
||||
names[num_names] = modname(path, ".sw?", true);
|
||||
if (names[num_names] == NULL) {
|
||||
return num_names;
|
||||
}
|
||||
@ -1569,14 +1569,14 @@ static int recov_file_names(char **names, char_u *path, int prepend_dot)
|
||||
}
|
||||
|
||||
// Form the normal swap file name pattern by appending ".sw?".
|
||||
names[num_names] = concat_fnames((char *)path, ".sw?", false);
|
||||
names[num_names] = concat_fnames(path, ".sw?", false);
|
||||
if (num_names >= 1) { // check if we have the same name twice
|
||||
char_u *p = (char_u *)names[num_names - 1];
|
||||
char *p = names[num_names - 1];
|
||||
int i = (int)STRLEN(names[num_names - 1]) - (int)STRLEN(names[num_names]);
|
||||
if (i > 0) {
|
||||
p += i; // file name has been expanded to full path
|
||||
}
|
||||
if (STRCMP(p, names[num_names]) != 0) {
|
||||
if (strcmp(p, names[num_names]) != 0) {
|
||||
num_names++;
|
||||
} else {
|
||||
xfree(names[num_names]);
|
||||
@ -3305,7 +3305,7 @@ static char *findswapname(buf_T *buf, char **dirp, char *old_fname, bool *found_
|
||||
// when the name differs, need to check the
|
||||
// inode too.
|
||||
expand_env((char *)b0.b0_fname, NameBuff, MAXPATHL);
|
||||
if (fnamecmp_ino((char_u *)buf->b_ffname, (char_u *)NameBuff,
|
||||
if (fnamecmp_ino(buf->b_ffname, NameBuff,
|
||||
char_to_long(b0.b0_ino))) {
|
||||
differ = true;
|
||||
}
|
||||
@ -3314,7 +3314,7 @@ static char *findswapname(buf_T *buf, char **dirp, char *old_fname, bool *found_
|
||||
// The name in the swap file may be
|
||||
// "~user/path/file". Expand it first.
|
||||
expand_env((char *)b0.b0_fname, NameBuff, MAXPATHL);
|
||||
if (fnamecmp_ino((char_u *)buf->b_ffname, (char_u *)NameBuff,
|
||||
if (fnamecmp_ino(buf->b_ffname, NameBuff,
|
||||
char_to_long(b0.b0_ino))) {
|
||||
differ = true;
|
||||
}
|
||||
@ -3519,24 +3519,24 @@ static int b0_magic_wrong(ZERO_BL *b0p)
|
||||
///
|
||||
/// @param fname_c current file name
|
||||
/// @param fname_s file name from swap file
|
||||
static bool fnamecmp_ino(char_u *fname_c, char_u *fname_s, long ino_block0)
|
||||
static bool fnamecmp_ino(char *fname_c, char *fname_s, long ino_block0)
|
||||
{
|
||||
uint64_t ino_c = 0; // ino of current file
|
||||
uint64_t ino_s; // ino of file from swap file
|
||||
char_u buf_c[MAXPATHL]; // full path of fname_c
|
||||
char_u buf_s[MAXPATHL]; // full path of fname_s
|
||||
char buf_c[MAXPATHL]; // full path of fname_c
|
||||
char buf_s[MAXPATHL]; // full path of fname_s
|
||||
int retval_c; // flag: buf_c valid
|
||||
int retval_s; // flag: buf_s valid
|
||||
|
||||
FileInfo file_info;
|
||||
if (os_fileinfo((char *)fname_c, &file_info)) {
|
||||
if (os_fileinfo(fname_c, &file_info)) {
|
||||
ino_c = os_fileinfo_inode(&file_info);
|
||||
}
|
||||
|
||||
// First we try to get the inode from the file name, because the inode in
|
||||
// the swap file may be outdated. If that fails (e.g. this path is not
|
||||
// valid on this machine), use the inode from block 0.
|
||||
if (os_fileinfo((char *)fname_s, &file_info)) {
|
||||
if (os_fileinfo(fname_s, &file_info)) {
|
||||
ino_s = os_fileinfo_inode(&file_info);
|
||||
} else {
|
||||
ino_s = (uint64_t)ino_block0;
|
||||
@ -3548,17 +3548,17 @@ static bool fnamecmp_ino(char_u *fname_c, char_u *fname_s, long ino_block0)
|
||||
|
||||
// One of the inode numbers is unknown, try a forced vim_FullName() and
|
||||
// compare the file names.
|
||||
retval_c = vim_FullName((char *)fname_c, (char *)buf_c, MAXPATHL, true);
|
||||
retval_s = vim_FullName((char *)fname_s, (char *)buf_s, MAXPATHL, true);
|
||||
retval_c = vim_FullName(fname_c, (char *)buf_c, MAXPATHL, true);
|
||||
retval_s = vim_FullName(fname_s, (char *)buf_s, MAXPATHL, true);
|
||||
if (retval_c == OK && retval_s == OK) {
|
||||
return STRCMP(buf_c, buf_s) != 0;
|
||||
return strcmp(buf_c, buf_s) != 0;
|
||||
}
|
||||
|
||||
// Can't compare inodes or file names, guess that the files are different,
|
||||
// unless both appear not to exist at all, then compare with the file name
|
||||
// in the swap file.
|
||||
if (ino_s == 0 && ino_c == 0 && retval_c == FAIL && retval_s == FAIL) {
|
||||
return STRCMP(fname_c, fname_s) != 0;
|
||||
return strcmp(fname_c, fname_s) != 0;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -177,7 +177,7 @@ void ex_menu(exarg_T *eap)
|
||||
// Change sensitivity of the menu.
|
||||
// For the PopUp menu, remove a menu for each mode separately.
|
||||
// Careful: menu_enable_recurse() changes menu_path.
|
||||
if (STRCMP(menu_path, "*") == 0) { // meaning: do all menus
|
||||
if (strcmp(menu_path, "*") == 0) { // meaning: do all menus
|
||||
menu_path = "";
|
||||
}
|
||||
|
||||
@ -193,7 +193,7 @@ void ex_menu(exarg_T *eap)
|
||||
menu_enable_recurse(*root_menu_ptr, menu_path, modes, enable);
|
||||
} else if (unmenu) {
|
||||
// Delete menu(s).
|
||||
if (STRCMP(menu_path, "*") == 0) { // meaning: remove all menus
|
||||
if (strcmp(menu_path, "*") == 0) { // meaning: remove all menus
|
||||
menu_path = "";
|
||||
}
|
||||
|
||||
|
@ -321,7 +321,7 @@ bool msg_attr_keep(const char *s, int attr, bool keep, bool multiline)
|
||||
|| (*s != '<'
|
||||
&& last_msg_hist != NULL
|
||||
&& last_msg_hist->msg != NULL
|
||||
&& STRCMP(s, last_msg_hist->msg))) {
|
||||
&& strcmp(s, last_msg_hist->msg))) {
|
||||
add_msg_hist(s, -1, attr, multiline);
|
||||
}
|
||||
|
||||
@ -978,7 +978,7 @@ static void add_msg_hist_multiattr(const char *s, int len, int attr, bool multil
|
||||
while (len > 0 && s[len - 1] == '\n') {
|
||||
len--;
|
||||
}
|
||||
p->msg = (char_u *)xmemdupz(s, (size_t)len);
|
||||
p->msg = xmemdupz(s, (size_t)len);
|
||||
} else {
|
||||
p->msg = NULL;
|
||||
}
|
||||
@ -1028,7 +1028,7 @@ void ex_messages(void *const eap_p)
|
||||
struct msg_hist *p;
|
||||
int c = 0;
|
||||
|
||||
if (STRCMP(eap->arg, "clear") == 0) {
|
||||
if (strcmp(eap->arg, "clear") == 0) {
|
||||
int keep = eap->addr_count == 0 ? 0 : eap->line2;
|
||||
|
||||
while (msg_hist_len > keep) {
|
||||
@ -1095,7 +1095,7 @@ void ex_messages(void *const eap_p)
|
||||
if (kv_size(p->multiattr)) {
|
||||
msg_multiattr(p->multiattr, p->kind, false);
|
||||
} else if (p->msg != NULL) {
|
||||
msg_attr_keep((char *)p->msg, p->attr, false, p->multiline);
|
||||
msg_attr_keep(p->msg, p->attr, false, p->multiline);
|
||||
}
|
||||
}
|
||||
msg_hist_off = false;
|
||||
|
@ -36,7 +36,7 @@ typedef kvec_t(HlMessageChunk) HlMessage;
|
||||
/// Message history for `:messages`
|
||||
typedef struct msg_hist {
|
||||
struct msg_hist *next; ///< Next message.
|
||||
char_u *msg; ///< Message text.
|
||||
char *msg; ///< Message text.
|
||||
const char *kind; ///< Message kind (for msg_ext)
|
||||
int attr; ///< Message highlighting.
|
||||
bool multiline; ///< Multiline message.
|
||||
|
@ -1807,7 +1807,7 @@ bool do_mouse(oparg_T *oap, int c, int dir, long count, bool fixindent)
|
||||
return false;
|
||||
}
|
||||
jump_flags = 0;
|
||||
if (STRCMP(p_mousem, "popup_setpos") == 0) {
|
||||
if (strcmp(p_mousem, "popup_setpos") == 0) {
|
||||
// First set the cursor position before showing the popup
|
||||
// menu.
|
||||
if (VIsual_active) {
|
||||
@ -4164,7 +4164,7 @@ void do_nv_ident(int c1, int c2)
|
||||
|
||||
/// 'K' normal-mode command. Get the command to lookup the keyword under the
|
||||
/// cursor.
|
||||
static size_t nv_K_getcmd(cmdarg_T *cap, char_u *kp, bool kp_help, bool kp_ex, char **ptr_arg,
|
||||
static size_t nv_K_getcmd(cmdarg_T *cap, char *kp, bool kp_help, bool kp_ex, char **ptr_arg,
|
||||
size_t n, char *buf, size_t buf_size)
|
||||
{
|
||||
if (kp_help) {
|
||||
@ -4201,8 +4201,8 @@ static size_t nv_K_getcmd(cmdarg_T *cap, char_u *kp, bool kp_help, bool kp_ex, c
|
||||
|
||||
// When a count is given, turn it into a range. Is this
|
||||
// really what we want?
|
||||
bool isman = (STRCMP(kp, "man") == 0);
|
||||
bool isman_s = (STRCMP(kp, "man -s") == 0);
|
||||
bool isman = (strcmp(kp, "man") == 0);
|
||||
bool isman_s = (strcmp(kp, "man -s") == 0);
|
||||
if (cap->count0 != 0 && !(isman || isman_s)) {
|
||||
snprintf(buf, buf_size, ".,.+%" PRId64, (int64_t)(cap->count0 - 1));
|
||||
}
|
||||
@ -4234,12 +4234,12 @@ static size_t nv_K_getcmd(cmdarg_T *cap, char_u *kp, bool kp_help, bool kp_ex, c
|
||||
static void nv_ident(cmdarg_T *cap)
|
||||
{
|
||||
char *ptr = NULL;
|
||||
char_u *p;
|
||||
char *p;
|
||||
size_t n = 0; // init for GCC
|
||||
int cmdchar;
|
||||
bool g_cmd; // "g" command
|
||||
bool tag_cmd = false;
|
||||
char_u *aux_ptr;
|
||||
char *aux_ptr;
|
||||
|
||||
if (cap->cmdchar == 'g') { // "g*", "g#", "g]" and "gCTRL-]"
|
||||
cmdchar = cap->nchar;
|
||||
@ -4275,8 +4275,8 @@ static void nv_ident(cmdarg_T *cap)
|
||||
// Allocate buffer to put the command in. Inserting backslashes can
|
||||
// double the length of the word. p_kp / curbuf->b_p_kp could be added
|
||||
// and some numbers.
|
||||
char_u *kp = *curbuf->b_p_kp == NUL ? p_kp : (char_u *)curbuf->b_p_kp; // 'keywordprg'
|
||||
bool kp_help = (*kp == NUL || STRCMP(kp, ":he") == 0 || STRCMP(kp, ":help") == 0);
|
||||
char *kp = *curbuf->b_p_kp == NUL ? (char *)p_kp : curbuf->b_p_kp; // 'keywordprg'
|
||||
bool kp_help = (*kp == NUL || strcmp(kp, ":he") == 0 || strcmp(kp, ":help") == 0);
|
||||
if (kp_help && *skipwhite(ptr) == NUL) {
|
||||
emsg(_(e_noident)); // found white space only
|
||||
return;
|
||||
@ -4336,10 +4336,10 @@ static void nv_ident(cmdarg_T *cap)
|
||||
ptr = xstrnsave(ptr, n);
|
||||
if (kp_ex) {
|
||||
// Escape the argument properly for an Ex command
|
||||
p = (char_u *)vim_strsave_fnameescape((const char *)ptr, VSE_NONE);
|
||||
p = vim_strsave_fnameescape((const char *)ptr, VSE_NONE);
|
||||
} else {
|
||||
// Escape the argument properly for a shell command
|
||||
p = vim_strsave_shellescape((char_u *)ptr, true, true);
|
||||
p = (char *)vim_strsave_shellescape((char_u *)ptr, true, true);
|
||||
}
|
||||
xfree(ptr);
|
||||
char *newbuf = xrealloc(buf, STRLEN(buf) + STRLEN(p) + 1);
|
||||
@ -4348,33 +4348,33 @@ static void nv_ident(cmdarg_T *cap)
|
||||
xfree(p);
|
||||
} else {
|
||||
if (cmdchar == '*') {
|
||||
aux_ptr = (char_u *)(p_magic ? "/.*~[^$\\" : "/^$\\");
|
||||
aux_ptr = (p_magic ? "/.*~[^$\\" : "/^$\\");
|
||||
} else if (cmdchar == '#') {
|
||||
aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\");
|
||||
aux_ptr = (p_magic ? "/?.*~[^$\\" : "/?^$\\");
|
||||
} else if (tag_cmd) {
|
||||
if (curbuf->b_help) {
|
||||
// ":help" handles unescaped argument
|
||||
aux_ptr = (char_u *)"";
|
||||
aux_ptr = "";
|
||||
} else {
|
||||
aux_ptr = (char_u *)"\\|\"\n[";
|
||||
aux_ptr = "\\|\"\n[";
|
||||
}
|
||||
} else {
|
||||
aux_ptr = (char_u *)"\\|\"\n*?[";
|
||||
aux_ptr = "\\|\"\n*?[";
|
||||
}
|
||||
|
||||
p = (char_u *)buf + STRLEN(buf);
|
||||
p = buf + STRLEN(buf);
|
||||
while (n-- > 0) {
|
||||
// put a backslash before \ and some others
|
||||
if (vim_strchr((char *)aux_ptr, *ptr) != NULL) {
|
||||
if (vim_strchr(aux_ptr, *ptr) != NULL) {
|
||||
*p++ = '\\';
|
||||
}
|
||||
// When current byte is a part of multibyte character, copy all
|
||||
// bytes of that character.
|
||||
const size_t len = (size_t)(utfc_ptr2len(ptr) - 1);
|
||||
for (size_t i = 0; i < len && n > 0; i++, n--) {
|
||||
*p++ = (char_u)(*ptr++);
|
||||
*p++ = *ptr++;
|
||||
}
|
||||
*p++ = (char_u)(*ptr++);
|
||||
*p++ = *ptr++;
|
||||
}
|
||||
*p = NUL;
|
||||
}
|
||||
|
@ -156,7 +156,7 @@ typedef struct vimoption {
|
||||
// buffer-local option: global value
|
||||
idopt_T indir; // global option: PV_NONE;
|
||||
// local option: indirect option index
|
||||
char_u *def_val; // default values for variable (neovim!!)
|
||||
char *def_val; // default values for variable (neovim!!)
|
||||
LastSet last_set; // script in which the option was last set
|
||||
} vimoption_T;
|
||||
|
||||
@ -290,7 +290,7 @@ void set_init_1(bool clean_arg)
|
||||
buf[j] = NUL;
|
||||
opt_idx = findoption("cdpath");
|
||||
if (opt_idx >= 0) {
|
||||
options[opt_idx].def_val = buf;
|
||||
options[opt_idx].def_val = (char *)buf;
|
||||
options[opt_idx].flags |= P_DEF_ALLOCED;
|
||||
} else {
|
||||
xfree(buf); // cannot happen
|
||||
@ -384,7 +384,7 @@ void set_init_1(bool clean_arg)
|
||||
&& options[opt_idx].var != NULL) {
|
||||
p = _(*(char **)options[opt_idx].var);
|
||||
} else {
|
||||
p = (char *)option_expand(opt_idx, NULL);
|
||||
p = option_expand(opt_idx, NULL);
|
||||
}
|
||||
if (p != NULL) {
|
||||
p = xstrdup(p);
|
||||
@ -392,7 +392,7 @@ void set_init_1(bool clean_arg)
|
||||
if (options[opt_idx].flags & P_DEF_ALLOCED) {
|
||||
xfree(options[opt_idx].def_val);
|
||||
}
|
||||
options[opt_idx].def_val = (char_u *)p;
|
||||
options[opt_idx].def_val = p;
|
||||
options[opt_idx].flags |= P_DEF_ALLOCED;
|
||||
}
|
||||
}
|
||||
@ -449,12 +449,12 @@ static void set_option_default(int opt_idx, int opt_flags)
|
||||
// freeing and allocating the value.
|
||||
if (options[opt_idx].indir != PV_NONE) {
|
||||
set_string_option_direct(NULL, opt_idx,
|
||||
(char *)options[opt_idx].def_val, opt_flags, 0);
|
||||
options[opt_idx].def_val, opt_flags, 0);
|
||||
} else {
|
||||
if ((opt_flags & OPT_FREE) && (flags & P_ALLOCED)) {
|
||||
free_string_option(*(char **)(varp));
|
||||
}
|
||||
*(char_u **)varp = options[opt_idx].def_val;
|
||||
*(char **)varp = options[opt_idx].def_val;
|
||||
options[opt_idx].flags &= ~P_ALLOCED;
|
||||
}
|
||||
} else if (flags & P_NUM) {
|
||||
@ -533,9 +533,7 @@ static void set_string_default(const char *name, char *val, bool allocated)
|
||||
xfree(options[opt_idx].def_val);
|
||||
}
|
||||
|
||||
options[opt_idx].def_val = allocated
|
||||
? (char_u *)val
|
||||
: (char_u *)xstrdup(val);
|
||||
options[opt_idx].def_val = allocated ? val : xstrdup(val);
|
||||
options[opt_idx].flags |= P_DEF_ALLOCED;
|
||||
}
|
||||
}
|
||||
@ -579,7 +577,7 @@ void set_number_default(char *name, long val)
|
||||
|
||||
opt_idx = findoption(name);
|
||||
if (opt_idx >= 0) {
|
||||
options[opt_idx].def_val = (char_u *)(intptr_t)val;
|
||||
options[opt_idx].def_val = (char *)(intptr_t)val;
|
||||
}
|
||||
}
|
||||
|
||||
@ -594,7 +592,7 @@ void free_all_options(void)
|
||||
free_string_option(*(char **)options[i].var);
|
||||
}
|
||||
if (options[i].flags & P_DEF_ALLOCED) {
|
||||
free_string_option((char *)options[i].def_val);
|
||||
free_string_option(options[i].def_val);
|
||||
}
|
||||
} else if (options[i].var != VAR_WIN && (options[i].flags & P_STRING)) {
|
||||
// buffer-local option: free global value
|
||||
@ -648,7 +646,7 @@ void set_init_3(void)
|
||||
: !(options[idx_sp].flags & P_WAS_SET);
|
||||
|
||||
size_t len = 0;
|
||||
char *p = (char *)invocation_path_tail(p_sh, &len);
|
||||
char *p = (char *)invocation_path_tail((char_u *)p_sh, &len);
|
||||
p = xstrnsave(p, len);
|
||||
|
||||
{
|
||||
@ -660,11 +658,11 @@ void set_init_3(void)
|
||||
|| FNAMECMP(p, "tcsh") == 0) {
|
||||
if (do_sp) {
|
||||
p_sp = "|& tee";
|
||||
options[idx_sp].def_val = (char_u *)p_sp;
|
||||
options[idx_sp].def_val = p_sp;
|
||||
}
|
||||
if (do_srr) {
|
||||
p_srr = ">&";
|
||||
options[idx_srr].def_val = (char_u *)p_srr;
|
||||
options[idx_srr].def_val = p_srr;
|
||||
}
|
||||
} else if (FNAMECMP(p, "sh") == 0
|
||||
|| FNAMECMP(p, "ksh") == 0
|
||||
@ -679,11 +677,11 @@ void set_init_3(void)
|
||||
// Always use POSIX shell style redirection if we reach this
|
||||
if (do_sp) {
|
||||
p_sp = "2>&1| tee";
|
||||
options[idx_sp].def_val = (char_u *)p_sp;
|
||||
options[idx_sp].def_val = p_sp;
|
||||
}
|
||||
if (do_srr) {
|
||||
p_srr = ">%s 2>&1";
|
||||
options[idx_srr].def_val = (char_u *)p_srr;
|
||||
options[idx_srr].def_val = p_srr;
|
||||
}
|
||||
}
|
||||
xfree(p);
|
||||
@ -747,12 +745,12 @@ void set_title_defaults(void)
|
||||
// not need to be contacted.
|
||||
idx1 = findoption("title");
|
||||
if (idx1 >= 0 && !(options[idx1].flags & P_WAS_SET)) {
|
||||
options[idx1].def_val = (char_u *)(intptr_t)0;
|
||||
options[idx1].def_val = 0;
|
||||
p_title = 0;
|
||||
}
|
||||
idx1 = findoption("icon");
|
||||
if (idx1 >= 0 && !(options[idx1].flags & P_WAS_SET)) {
|
||||
options[idx1].def_val = (char_u *)(intptr_t)0;
|
||||
options[idx1].def_val = 0;
|
||||
p_icon = 0;
|
||||
}
|
||||
}
|
||||
@ -1175,7 +1173,7 @@ int do_set(char *arg, int opt_flags)
|
||||
}
|
||||
|
||||
if (nextchar == '&') { // set to default val
|
||||
newval = (char *)options[opt_idx].def_val;
|
||||
newval = options[opt_idx].def_val;
|
||||
// expand environment variables and ~ since the
|
||||
// default value was already expanded, only
|
||||
// required when an environment variable was set
|
||||
@ -1183,7 +1181,7 @@ int do_set(char *arg, int opt_flags)
|
||||
if (newval == NULL) {
|
||||
newval = empty_option;
|
||||
} else if (!(options[opt_idx].flags & P_NO_DEF_EXP)) {
|
||||
s = (char *)option_expand(opt_idx, (char_u *)newval);
|
||||
s = option_expand(opt_idx, newval);
|
||||
if (s == NULL) {
|
||||
s = newval;
|
||||
}
|
||||
@ -1311,7 +1309,7 @@ int do_set(char *arg, int opt_flags)
|
||||
// comma.
|
||||
if (!(adding || prepending || removing)
|
||||
|| (flags & P_COMMA)) {
|
||||
s = (char *)option_expand(opt_idx, (char_u *)newval);
|
||||
s = option_expand(opt_idx, newval);
|
||||
if (s != NULL) {
|
||||
xfree(newval);
|
||||
newlen = (unsigned)STRLEN(s) + 1;
|
||||
@ -1683,7 +1681,7 @@ char_u *find_shada_parameter(int type)
|
||||
/// These string options cannot be indirect!
|
||||
/// If "val" is NULL expand the current value of the option.
|
||||
/// Return pointer to NameBuff, or NULL when not expanded.
|
||||
static char_u *option_expand(int opt_idx, char_u *val)
|
||||
static char *option_expand(int opt_idx, char *val)
|
||||
{
|
||||
// if option doesn't need expansion nothing to do
|
||||
if (!(options[opt_idx].flags & P_EXPAND) || options[opt_idx].var == NULL) {
|
||||
@ -1691,7 +1689,7 @@ static char_u *option_expand(int opt_idx, char_u *val)
|
||||
}
|
||||
|
||||
if (val == NULL) {
|
||||
val = *(char_u **)options[opt_idx].var;
|
||||
val = *(char **)options[opt_idx].var;
|
||||
}
|
||||
|
||||
// If val is longer than MAXPATHL no meaningful expansion can be done,
|
||||
@ -1704,15 +1702,15 @@ static char_u *option_expand(int opt_idx, char_u *val)
|
||||
// Escape spaces when expanding 'tags', they are used to separate file
|
||||
// names.
|
||||
// For 'spellsuggest' expand after "file:".
|
||||
expand_env_esc(val, (char_u *)NameBuff, MAXPATHL,
|
||||
expand_env_esc((char_u *)val, (char_u *)NameBuff, MAXPATHL,
|
||||
(char_u **)options[opt_idx].var == &p_tags, false,
|
||||
(char_u **)options[opt_idx].var == (char_u **)&p_sps ? (char_u *)"file:" :
|
||||
NULL);
|
||||
if (STRCMP(NameBuff, val) == 0) { // they are the same
|
||||
if (strcmp(NameBuff, val) == 0) { // they are the same
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return (char_u *)NameBuff;
|
||||
return NameBuff;
|
||||
}
|
||||
|
||||
/// After setting various option values: recompute variables that depend on
|
||||
@ -2133,7 +2131,7 @@ static char *set_bool_option(const int opt_idx, char_u *const varp, const int va
|
||||
|
||||
// Arabic requires a utf-8 encoding, inform the user if it's not
|
||||
// set.
|
||||
if (STRCMP(p_enc, "utf-8") != 0) {
|
||||
if (strcmp(p_enc, "utf-8") != 0) {
|
||||
static char *w_arabic = N_("W17: Arabic requires UTF-8, do ':set encoding=utf-8'");
|
||||
|
||||
msg_source(HL_ATTR(HLF_W));
|
||||
@ -2758,7 +2756,7 @@ int findoption_len(const char *const arg, const size_t len)
|
||||
if (STRLEN(options[opt_idx].fullname) == 7) {
|
||||
return findoption_len("shada", 5);
|
||||
}
|
||||
assert(STRCMP(options[opt_idx].fullname, "viminfofile") == 0);
|
||||
assert(strcmp(options[opt_idx].fullname, "viminfofile") == 0);
|
||||
return findoption_len("shadafile", 9);
|
||||
}
|
||||
}
|
||||
@ -3329,7 +3327,7 @@ static int optval_default(vimoption_T *p, char_u *varp)
|
||||
return *(int *)varp == (int)(intptr_t)p->def_val;
|
||||
}
|
||||
// P_STRING
|
||||
return STRCMP(*(char_u **)varp, p->def_val) == 0;
|
||||
return strcmp(*(char **)varp, p->def_val) == 0;
|
||||
}
|
||||
|
||||
/// Send update to UIs with values of UI relevant options
|
||||
@ -5309,7 +5307,7 @@ char_u *get_showbreak_value(win_T *const win)
|
||||
if (win->w_p_sbr == NULL || *win->w_p_sbr == NUL) {
|
||||
return (char_u *)p_sbr;
|
||||
}
|
||||
if (STRCMP(win->w_p_sbr, "NONE") == 0) {
|
||||
if (strcmp(win->w_p_sbr, "NONE") == 0) {
|
||||
return (char_u *)empty_option;
|
||||
}
|
||||
return (char_u *)win->w_p_sbr;
|
||||
@ -5455,13 +5453,13 @@ size_t copy_option_part(char **option, char *buf, size_t maxlen, char *sep_chars
|
||||
/// Return true when 'shell' has "csh" in the tail.
|
||||
int csh_like_shell(void)
|
||||
{
|
||||
return strstr(path_tail((char *)p_sh), "csh") != NULL;
|
||||
return strstr(path_tail(p_sh), "csh") != NULL;
|
||||
}
|
||||
|
||||
/// Return true when 'shell' has "fish" in the tail.
|
||||
bool fish_like_shell(void)
|
||||
{
|
||||
return strstr(path_tail((char *)p_sh), "fish") != NULL;
|
||||
return strstr(path_tail(p_sh), "fish") != NULL;
|
||||
}
|
||||
|
||||
/// Return the number of requested sign columns, based on current
|
||||
@ -5619,7 +5617,7 @@ static Dictionary vimoption2dict(vimoption_T *opt)
|
||||
const char *type;
|
||||
Object def;
|
||||
// TODO(bfredl): do you even nocp?
|
||||
char_u *def_val = opt->def_val;
|
||||
char_u *def_val = (char_u *)opt->def_val;
|
||||
if (opt->flags & P_STRING) {
|
||||
type = "string";
|
||||
def = CSTR_TO_OBJ(def_val ? (char *)def_val : "");
|
||||
|
@ -503,7 +503,7 @@ EXTERN int p_eb; // 'errorbells'
|
||||
EXTERN char_u *p_ef; // 'errorfile'
|
||||
EXTERN char *p_efm; // 'errorformat'
|
||||
EXTERN char *p_gefm; // 'grepformat'
|
||||
EXTERN char_u *p_gp; // 'grepprg'
|
||||
EXTERN char *p_gp; // 'grepprg'
|
||||
EXTERN int p_eol; ///< 'endofline'
|
||||
EXTERN char *p_ei; // 'eventignore'
|
||||
EXTERN int p_et; ///< 'expandtab'
|
||||
@ -684,11 +684,11 @@ EXTERN unsigned ssop_flags;
|
||||
#define SSOP_TERMINAL 0x10000
|
||||
#define SSOP_SKIP_RTP 0x20000
|
||||
|
||||
EXTERN char_u *p_sh; // 'shell'
|
||||
EXTERN char *p_sh; // 'shell'
|
||||
EXTERN char_u *p_shcf; // 'shellcmdflag'
|
||||
EXTERN char *p_sp; // 'shellpipe'
|
||||
EXTERN char_u *p_shq; // 'shellquote'
|
||||
EXTERN char_u *p_sxq; // 'shellxquote'
|
||||
EXTERN char *p_sxq; // 'shellxquote'
|
||||
EXTERN char_u *p_sxe; // 'shellxescape'
|
||||
EXTERN char *p_srr; // 'shellredir'
|
||||
EXTERN int p_stmp; // 'shelltemp'
|
||||
|
@ -683,7 +683,7 @@ char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf
|
||||
}
|
||||
}
|
||||
} else if (varp == &p_bex || varp == &p_pm) { // 'backupext' and 'patchmode'
|
||||
if (STRCMP(*p_bex == '.' ? p_bex + 1 : p_bex,
|
||||
if (strcmp(*p_bex == '.' ? p_bex + 1 : p_bex,
|
||||
*p_pm == '.' ? p_pm + 1 : p_pm) == 0) {
|
||||
errmsg = e_backupext_and_patchmode_are_equal;
|
||||
}
|
||||
@ -731,7 +731,7 @@ char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf
|
||||
}
|
||||
}
|
||||
} else if (varp == &p_hl) { // 'highlight'
|
||||
if (STRCMP(*varp, HIGHLIGHT_INIT) != 0) {
|
||||
if (strcmp(*varp, HIGHLIGHT_INIT) != 0) {
|
||||
errmsg = e_unsupportedoption;
|
||||
}
|
||||
} else if (varp == &p_jop) { // 'jumpoptions'
|
||||
@ -823,13 +823,13 @@ char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf
|
||||
}
|
||||
|
||||
if (errmsg == NULL) {
|
||||
// canonize the value, so that STRCMP() can be used on it
|
||||
// canonize the value, so that strcmp() can be used on it
|
||||
p = enc_canonize(*varp);
|
||||
xfree(*varp);
|
||||
*varp = p;
|
||||
if (varp == &p_enc) {
|
||||
// only encoding=utf-8 allowed
|
||||
if (STRCMP(p_enc, "utf-8") != 0) {
|
||||
if (strcmp(p_enc, "utf-8") != 0) {
|
||||
errmsg = e_unsupportedoption;
|
||||
} else {
|
||||
spell_reload();
|
||||
@ -1358,7 +1358,7 @@ char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf
|
||||
} else {
|
||||
if (opt_strings_flags(ve, p_ve_values, flags, true) != OK) {
|
||||
errmsg = e_invarg;
|
||||
} else if (STRCMP(p_ve, oldval) != 0) {
|
||||
} else if (strcmp(p_ve, oldval) != 0) {
|
||||
// Recompute cursor position in case the new 've' setting
|
||||
// changes something.
|
||||
validate_virtcol();
|
||||
@ -1393,7 +1393,7 @@ char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf
|
||||
if (!valid_filetype(*varp)) {
|
||||
errmsg = e_invarg;
|
||||
} else {
|
||||
value_changed = STRCMP(oldval, *varp) != 0;
|
||||
value_changed = strcmp(oldval, *varp) != 0;
|
||||
|
||||
// Since we check the value, there is no need to set P_INSECURE,
|
||||
// even when the value comes from a modeline.
|
||||
@ -1403,7 +1403,7 @@ char *did_set_string_option(int opt_idx, char **varp, char *oldval, char *errbuf
|
||||
if (!valid_filetype(*varp)) {
|
||||
errmsg = e_invarg;
|
||||
} else {
|
||||
value_changed = STRCMP(oldval, *varp) != 0;
|
||||
value_changed = strcmp(oldval, *varp) != 0;
|
||||
|
||||
// Since we check the value, there is no need to set P_INSECURE,
|
||||
// even when the value comes from a modeline.
|
||||
|
@ -129,7 +129,7 @@ int os_expand_wildcards(int num_pat, char **pat, int *num_file, char ***file, in
|
||||
|
||||
bool is_fish_shell =
|
||||
#if defined(UNIX)
|
||||
STRNCMP(invocation_path_tail(p_sh, NULL), "fish", 4) == 0;
|
||||
STRNCMP(invocation_path_tail((char_u *)p_sh, NULL), "fish", 4) == 0;
|
||||
#else
|
||||
false;
|
||||
#endif
|
||||
@ -182,14 +182,14 @@ int os_expand_wildcards(int num_pat, char **pat, int *num_file, char ***file, in
|
||||
&& *(pat[0] + len - 1) == '`') {
|
||||
shell_style = STYLE_BT;
|
||||
} else if ((len = STRLEN(p_sh)) >= 3) {
|
||||
if (STRCMP(p_sh + len - 3, "csh") == 0) {
|
||||
if (strcmp(p_sh + len - 3, "csh") == 0) {
|
||||
shell_style = STYLE_GLOB;
|
||||
} else if (STRCMP(p_sh + len - 3, "zsh") == 0) {
|
||||
} else if (strcmp(p_sh + len - 3, "zsh") == 0) {
|
||||
shell_style = STYLE_PRINT;
|
||||
}
|
||||
}
|
||||
if (shell_style == STYLE_ECHO
|
||||
&& strstr(path_tail((char *)p_sh), "sh") != NULL) {
|
||||
&& strstr(path_tail(p_sh), "sh") != NULL) {
|
||||
shell_style = STYLE_VIMGLOB;
|
||||
}
|
||||
|
||||
@ -555,11 +555,11 @@ notfound:
|
||||
char **shell_build_argv(const char *cmd, const char *extra_args)
|
||||
FUNC_ATTR_NONNULL_RET
|
||||
{
|
||||
size_t argc = tokenize(p_sh, NULL) + (cmd ? tokenize(p_shcf, NULL) : 0);
|
||||
size_t argc = tokenize((char_u *)p_sh, NULL) + (cmd ? tokenize(p_shcf, NULL) : 0);
|
||||
char **rv = xmalloc((argc + 4) * sizeof(*rv));
|
||||
|
||||
// Split 'shell'
|
||||
size_t i = tokenize(p_sh, rv);
|
||||
size_t i = tokenize((char_u *)p_sh, rv);
|
||||
|
||||
if (extra_args) {
|
||||
rv[i++] = xstrdup(extra_args); // Push a copy of `extra_args`
|
||||
@ -700,7 +700,7 @@ int call_shell(char_u *cmd, ShellOpts opts, char_u *extra_shell_arg)
|
||||
|
||||
if (p_verbose > 3) {
|
||||
verbose_enter();
|
||||
smsg(_("Executing command: \"%s\""), cmd == NULL ? p_sh : cmd);
|
||||
smsg(_("Executing command: \"%s\""), cmd == NULL ? p_sh : (char *)cmd);
|
||||
msg_putchar('\n');
|
||||
verbose_leave();
|
||||
}
|
||||
@ -1316,7 +1316,7 @@ static char *shell_xescape_xquote(const char *cmd)
|
||||
}
|
||||
|
||||
const char *ecmd = cmd;
|
||||
if (*p_sxe != NUL && STRCMP(p_sxq, "(") == 0) {
|
||||
if (*p_sxe != NUL && strcmp(p_sxq, "(") == 0) {
|
||||
ecmd = (char *)vim_strsave_escaped_ext((char_u *)cmd, p_sxe, '^', false);
|
||||
}
|
||||
size_t ncmd_size = strlen(ecmd) + STRLEN(p_sxq) * 2 + 1;
|
||||
@ -1324,9 +1324,9 @@ static char *shell_xescape_xquote(const char *cmd)
|
||||
|
||||
// When 'shellxquote' is ( append ).
|
||||
// When 'shellxquote' is "( append )".
|
||||
if (STRCMP(p_sxq, "(") == 0) {
|
||||
if (strcmp(p_sxq, "(") == 0) {
|
||||
vim_snprintf(ncmd, ncmd_size, "(%s)", ecmd);
|
||||
} else if (STRCMP(p_sxq, "\"(") == 0) {
|
||||
} else if (strcmp(p_sxq, "\"(") == 0) {
|
||||
vim_snprintf(ncmd, ncmd_size, "\"(%s)\"", ecmd);
|
||||
} else {
|
||||
vim_snprintf(ncmd, ncmd_size, "%s%s%s", p_sxq, ecmd, p_sxq);
|
||||
|
@ -93,7 +93,7 @@ int os_get_usernames(garray_T *users)
|
||||
for (i = 0; i < users->ga_len; i++) {
|
||||
char *local_user = ((char **)users->ga_data)[i];
|
||||
|
||||
if (STRCMP(local_user, user_env) == 0) {
|
||||
if (strcmp(local_user, user_env) == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -208,14 +208,14 @@ char *get_users(expand_T *xp, int idx)
|
||||
/// @return 0 if name does not match any user name.
|
||||
/// 1 if name partially matches the beginning of a user name.
|
||||
/// 2 is name fully matches a user name.
|
||||
int match_user(char_u *name)
|
||||
int match_user(char *name)
|
||||
{
|
||||
int n = (int)STRLEN(name);
|
||||
int result = 0;
|
||||
|
||||
init_users();
|
||||
for (int i = 0; i < ga_users.ga_len; i++) {
|
||||
if (STRCMP(((char_u **)ga_users.ga_data)[i], name) == 0) {
|
||||
if (strcmp(((char **)ga_users.ga_data)[i], name) == 0) {
|
||||
return 2; // full match
|
||||
}
|
||||
if (STRNCMP(((char_u **)ga_users.ga_data)[i], name, n) == 0) {
|
||||
|
@ -291,23 +291,23 @@ void ex_profile(exarg_T *eap)
|
||||
set_vim_var_nr(VV_PROFILING, 1L);
|
||||
} else if (do_profiling == PROF_NONE) {
|
||||
emsg(_("E750: First use \":profile start {fname}\""));
|
||||
} else if (STRCMP(eap->arg, "stop") == 0) {
|
||||
} else if (strcmp(eap->arg, "stop") == 0) {
|
||||
profile_dump();
|
||||
do_profiling = PROF_NONE;
|
||||
set_vim_var_nr(VV_PROFILING, 0L);
|
||||
profile_reset();
|
||||
} else if (STRCMP(eap->arg, "pause") == 0) {
|
||||
} else if (strcmp(eap->arg, "pause") == 0) {
|
||||
if (do_profiling == PROF_YES) {
|
||||
pause_time = profile_start();
|
||||
}
|
||||
do_profiling = PROF_PAUSED;
|
||||
} else if (STRCMP(eap->arg, "continue") == 0) {
|
||||
} else if (strcmp(eap->arg, "continue") == 0) {
|
||||
if (do_profiling == PROF_PAUSED) {
|
||||
pause_time = profile_end(pause_time);
|
||||
profile_set_wait(profile_add(profile_get_wait(), pause_time));
|
||||
}
|
||||
do_profiling = PROF_YES;
|
||||
} else if (STRCMP(eap->arg, "dump") == 0) {
|
||||
} else if (strcmp(eap->arg, "dump") == 0) {
|
||||
profile_dump();
|
||||
} else {
|
||||
// The rest is similar to ":breakadd".
|
||||
|
@ -1098,7 +1098,7 @@ static int qf_init_ext(qf_info_T *qi, int qf_idx, const char *restrict efile, bu
|
||||
|
||||
// If the errorformat didn't change between calls, then reuse the previously
|
||||
// parsed values.
|
||||
if (last_efm == NULL || (STRCMP(last_efm, efm) != 0)) {
|
||||
if (last_efm == NULL || (strcmp(last_efm, efm) != 0)) {
|
||||
// free the previously parsed data
|
||||
XFREE_CLEAR(last_efm);
|
||||
free_efm_list(&fmt_first);
|
||||
@ -2085,7 +2085,7 @@ static int qf_get_fnum(qf_list_T *qfl, char *directory, char *fname)
|
||||
}
|
||||
|
||||
if (qf_last_bufname != NULL
|
||||
&& STRCMP(bufname, qf_last_bufname) == 0
|
||||
&& strcmp(bufname, qf_last_bufname) == 0
|
||||
&& bufref_valid(&qf_last_bufref)) {
|
||||
buf = qf_last_bufref.br_buf;
|
||||
xfree(ptr);
|
||||
@ -4180,8 +4180,7 @@ int grep_internal(cmdidx_T cmdidx)
|
||||
|| cmdidx == CMD_lgrep
|
||||
|| cmdidx == CMD_grepadd
|
||||
|| cmdidx == CMD_lgrepadd)
|
||||
&& STRCMP("internal",
|
||||
*curbuf->b_p_gp == NUL ? p_gp : (char_u *)curbuf->b_p_gp) == 0;
|
||||
&& strcmp("internal", *curbuf->b_p_gp == NUL ? p_gp : curbuf->b_p_gp) == 0;
|
||||
}
|
||||
|
||||
// Return the make/grep autocmd name.
|
||||
@ -5417,7 +5416,7 @@ static int vgr_process_files(win_T *wp, qf_info_T *qi, vgr_args_T *cmd_args, boo
|
||||
// directory we jumped to below.
|
||||
if (buf == *first_match_buf
|
||||
&& *target_dir == NULL
|
||||
&& STRCMP(dirname_start, dirname_now) != 0) {
|
||||
&& strcmp(dirname_start, dirname_now) != 0) {
|
||||
*target_dir = xstrdup(dirname_now);
|
||||
}
|
||||
|
||||
@ -5540,7 +5539,7 @@ static void restore_start_dir(char *dirname_start)
|
||||
char *dirname_now = xmalloc(MAXPATHL);
|
||||
|
||||
os_dirname((char_u *)dirname_now, MAXPATHL);
|
||||
if (STRCMP(dirname_start, dirname_now) != 0) {
|
||||
if (strcmp(dirname_start, dirname_now) != 0) {
|
||||
// If the directory has changed, change it back by building up an
|
||||
// appropriate ex command and executing it.
|
||||
exarg_T ea = {
|
||||
@ -6498,7 +6497,7 @@ static int qf_setprop_curidx(qf_info_T *qi, qf_list_T *qfl, const dictitem_T *di
|
||||
// If the specified index is '$', then use the last entry
|
||||
if (di->di_tv.v_type == VAR_STRING
|
||||
&& di->di_tv.vval.v_string != NULL
|
||||
&& STRCMP(di->di_tv.vval.v_string, "$") == 0) {
|
||||
&& strcmp(di->di_tv.vval.v_string, "$") == 0) {
|
||||
newidx = qfl->qf_count;
|
||||
} else {
|
||||
// Otherwise use the specified index
|
||||
|
@ -651,7 +651,7 @@ static bool path_is_after(char *buf, size_t buflen)
|
||||
// "after" dir in SOME codepaths not not in ALL codepaths.
|
||||
return buflen >= 5
|
||||
&& (!(buflen >= 6) || vim_ispathsep(buf[buflen - 6]))
|
||||
&& STRCMP(buf + buflen - 5, "after") == 0;
|
||||
&& strcmp(buf + buflen - 5, "after") == 0;
|
||||
}
|
||||
|
||||
RuntimeSearchPath runtime_search_path_build(void)
|
||||
|
@ -752,7 +752,7 @@ static int open_shada_file_for_reading(const char *const fname, ShaDaReadDef *sd
|
||||
return error;
|
||||
}
|
||||
|
||||
assert(STRCMP(p_enc, "utf-8") == 0);
|
||||
assert(strcmp(p_enc, "utf-8") == 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1313,9 +1313,9 @@ static void shada_read(ShaDaReadDef *const sd_reader, const int flags)
|
||||
MERGE_JUMPS(curwin->w_jumplistlen, curwin->w_jumplist, xfmark_T,
|
||||
fmark.timestamp, fmark.mark, cur_entry,
|
||||
(buf == NULL
|
||||
? (jl_entry.fname != NULL
|
||||
&& STRCMP(fm.fname, jl_entry.fname) == 0)
|
||||
: fm.fmark.fnum == jl_entry.fmark.fnum),
|
||||
? (jl_entry.fname != NULL
|
||||
&& strcmp(fm.fname, jl_entry.fname) == 0)
|
||||
: fm.fmark.fnum == jl_entry.fmark.fnum),
|
||||
free_xfmark, SDE_TO_XFMARK, ADJUST_IDX, DUMMY_AFTERFREE);
|
||||
#undef SDE_TO_XFMARK
|
||||
#undef ADJUST_IDX
|
||||
|
@ -86,7 +86,7 @@ static signgroup_T *sign_group_ref(const char *groupname)
|
||||
STRCPY(group->sg_name, groupname);
|
||||
group->sg_refcount = 1;
|
||||
group->sg_next_sign_id = 1;
|
||||
hash_add_item(&sg_table, hi, group->sg_name, hash);
|
||||
hash_add_item(&sg_table, hi, (char_u *)group->sg_name, hash);
|
||||
} else {
|
||||
// existing group
|
||||
group = HI2SG(hi);
|
||||
@ -119,10 +119,10 @@ static void sign_group_unref(char *groupname)
|
||||
/// or in a named group. If 'group' is '*', then the sign is part of the group.
|
||||
static bool sign_in_group(sign_entry_T *sign, const char *group)
|
||||
{
|
||||
return ((group != NULL && STRCMP(group, "*") == 0)
|
||||
return ((group != NULL && strcmp(group, "*") == 0)
|
||||
|| (group == NULL && sign->se_group == NULL)
|
||||
|| (group != NULL && sign->se_group != NULL
|
||||
&& STRCMP(group, sign->se_group->sg_name) == 0));
|
||||
&& strcmp(group, sign->se_group->sg_name) == 0));
|
||||
}
|
||||
|
||||
/// Get the next free sign identifier in the specified group
|
||||
@ -784,7 +784,7 @@ static int sign_cmd_idx(char *begin_cmd, char *end_cmd)
|
||||
|
||||
*end_cmd = NUL;
|
||||
for (idx = 0;; idx++) {
|
||||
if (cmds[idx] == NULL || STRCMP(begin_cmd, cmds[idx]) == 0) {
|
||||
if (cmds[idx] == NULL || strcmp(begin_cmd, cmds[idx]) == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -801,7 +801,7 @@ static sign_T *sign_find(const char *name, sign_T **sp_prev)
|
||||
*sp_prev = NULL;
|
||||
}
|
||||
for (sp = first_sign; sp != NULL; sp = sp->sn_next) {
|
||||
if (STRCMP(sp->sn_name, name) == 0) {
|
||||
if (strcmp(sp->sn_name, name) == 0) {
|
||||
break;
|
||||
}
|
||||
if (sp_prev != NULL) {
|
||||
@ -1034,7 +1034,7 @@ static int sign_place(int *sign_id, const char *sign_group, const char *sign_nam
|
||||
}
|
||||
|
||||
for (sp = first_sign; sp != NULL; sp = sp->sn_next) {
|
||||
if (STRCMP(sp->sn_name, sign_name) == 0) {
|
||||
if (strcmp(sp->sn_name, sign_name) == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -10,9 +10,9 @@
|
||||
|
||||
// Sign group
|
||||
typedef struct signgroup_S {
|
||||
uint16_t sg_refcount; // number of signs in this group
|
||||
int sg_next_sign_id; // next sign id for this group
|
||||
char_u sg_name[1]; // sign group name
|
||||
uint16_t sg_refcount; // number of signs in this group
|
||||
int sg_next_sign_id; // next sign id for this group
|
||||
char sg_name[1]; // sign group name
|
||||
} signgroup_T;
|
||||
|
||||
// Macros to get the sign group structure from the group name
|
||||
|
@ -1559,7 +1559,7 @@ static void spell_load_lang(char_u *lang)
|
||||
// use "latin1" for "latin9". And limit to 60 characters (just in case).
|
||||
char_u *spell_enc(void)
|
||||
{
|
||||
if (STRLEN(p_enc) < 60 && STRCMP(p_enc, "iso-8859-15") != 0) {
|
||||
if (STRLEN(p_enc) < 60 && strcmp(p_enc, "iso-8859-15") != 0) {
|
||||
return (char_u *)p_enc;
|
||||
}
|
||||
return (char_u *)"latin1";
|
||||
@ -1843,19 +1843,19 @@ char *did_set_spelllang(win_T *wp)
|
||||
{
|
||||
garray_T ga;
|
||||
char *splp;
|
||||
char_u *region;
|
||||
char_u region_cp[3];
|
||||
char *region;
|
||||
char region_cp[3];
|
||||
bool filename;
|
||||
int region_mask;
|
||||
slang_T *slang;
|
||||
int c;
|
||||
char_u lang[MAXWLEN + 1];
|
||||
char_u spf_name[MAXPATHL];
|
||||
char lang[MAXWLEN + 1];
|
||||
char spf_name[MAXPATHL];
|
||||
int len;
|
||||
char_u *p;
|
||||
char *p;
|
||||
int round;
|
||||
char *spf;
|
||||
char_u *use_region = NULL;
|
||||
char *use_region = NULL;
|
||||
bool dont_use_region = false;
|
||||
bool nobreak = false;
|
||||
langp_T *lp, *lp2;
|
||||
@ -1894,7 +1894,7 @@ char *did_set_spelllang(win_T *wp)
|
||||
continue;
|
||||
}
|
||||
|
||||
if (STRCMP(lang, "cjk") == 0) {
|
||||
if (strcmp(lang, "cjk") == 0) {
|
||||
wp->w_s->b_cjk = 1;
|
||||
continue;
|
||||
}
|
||||
@ -1906,7 +1906,7 @@ char *did_set_spelllang(win_T *wp)
|
||||
filename = true;
|
||||
|
||||
// Locate a region and remove it from the file name.
|
||||
p = (char_u *)vim_strchr(path_tail((char *)lang), '_');
|
||||
p = vim_strchr(path_tail((char *)lang), '_');
|
||||
if (p != NULL && ASCII_ISALPHA(p[1]) && ASCII_ISALPHA(p[2])
|
||||
&& !ASCII_ISALPHA(p[3])) {
|
||||
STRLCPY(region_cp, p + 1, 3);
|
||||
@ -1943,7 +1943,7 @@ char *did_set_spelllang(win_T *wp)
|
||||
if (region != NULL) {
|
||||
// If the region differs from what was used before then don't
|
||||
// use it for 'spellfile'.
|
||||
if (use_region != NULL && STRCMP(region, use_region) != 0) {
|
||||
if (use_region != NULL && strcmp(region, use_region) != 0) {
|
||||
dont_use_region = true;
|
||||
}
|
||||
use_region = region;
|
||||
@ -1954,7 +1954,7 @@ char *did_set_spelllang(win_T *wp)
|
||||
if (filename) {
|
||||
(void)spell_load_file((char *)lang, (char *)lang, NULL, false);
|
||||
} else {
|
||||
spell_load_lang(lang);
|
||||
spell_load_lang((char_u *)lang);
|
||||
// SpellFileMissing autocommands may do anything, including
|
||||
// destroying the buffer we are using...
|
||||
if (!bufref_valid(&bufref)) {
|
||||
@ -1972,7 +1972,7 @@ char *did_set_spelllang(win_T *wp)
|
||||
region_mask = REGION_ALL;
|
||||
if (!filename && region != NULL) {
|
||||
// find region in sl_regions
|
||||
c = find_region(slang->sl_regions, region);
|
||||
c = find_region(slang->sl_regions, (char_u *)region);
|
||||
if (c == REGION_ALL) {
|
||||
if (slang->sl_add) {
|
||||
if (*slang->sl_regions != NUL) {
|
||||
@ -2015,7 +2015,7 @@ char *did_set_spelllang(win_T *wp)
|
||||
if (int_wordlist == NULL) {
|
||||
continue;
|
||||
}
|
||||
int_wordlist_spl(spf_name);
|
||||
int_wordlist_spl((char_u *)spf_name);
|
||||
} else {
|
||||
// One entry in 'spellfile'.
|
||||
copy_option_part(&spf, (char *)spf_name, MAXPATHL - 5, ",");
|
||||
@ -2023,9 +2023,9 @@ char *did_set_spelllang(win_T *wp)
|
||||
|
||||
// If it was already found above then skip it.
|
||||
for (c = 0; c < ga.ga_len; c++) {
|
||||
p = (char_u *)LANGP_ENTRY(ga, c)->lp_slang->sl_fname;
|
||||
p = LANGP_ENTRY(ga, c)->lp_slang->sl_fname;
|
||||
if (p != NULL
|
||||
&& path_full_compare((char *)spf_name, (char *)p, false, true) == kEqualFiles) {
|
||||
&& path_full_compare((char *)spf_name, p, false, true) == kEqualFiles) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -2049,7 +2049,7 @@ char *did_set_spelllang(win_T *wp)
|
||||
STRCPY(lang, "internal wordlist");
|
||||
} else {
|
||||
STRLCPY(lang, path_tail((char *)spf_name), MAXWLEN + 1);
|
||||
p = (char_u *)vim_strchr((char *)lang, '.');
|
||||
p = vim_strchr((char *)lang, '.');
|
||||
if (p != NULL) {
|
||||
*p = NUL; // truncate at ".encoding.add"
|
||||
}
|
||||
@ -2066,7 +2066,7 @@ char *did_set_spelllang(win_T *wp)
|
||||
region_mask = REGION_ALL;
|
||||
if (use_region != NULL && !dont_use_region) {
|
||||
// find region in sl_regions
|
||||
c = find_region(slang->sl_regions, use_region);
|
||||
c = find_region(slang->sl_regions, (char_u *)use_region);
|
||||
if (c != REGION_ALL) {
|
||||
region_mask = 1 << c;
|
||||
} else if (*slang->sl_regions != NUL) {
|
||||
@ -3171,23 +3171,23 @@ void ex_spelldump(exarg_T *eap)
|
||||
/// @param ic ignore case
|
||||
/// @param dir direction for adding matches
|
||||
/// @param dumpflags_arg DUMPFLAG_*
|
||||
void spell_dump_compl(char_u *pat, int ic, Direction *dir, int dumpflags_arg)
|
||||
void spell_dump_compl(char *pat, int ic, Direction *dir, int dumpflags_arg)
|
||||
{
|
||||
langp_T *lp;
|
||||
slang_T *slang;
|
||||
idx_T arridx[MAXWLEN];
|
||||
int curi[MAXWLEN];
|
||||
char_u word[MAXWLEN];
|
||||
char word[MAXWLEN];
|
||||
int c;
|
||||
char_u *byts;
|
||||
char *byts;
|
||||
idx_T *idxs;
|
||||
linenr_T lnum = 0;
|
||||
int depth;
|
||||
int n;
|
||||
int flags;
|
||||
char_u *region_names = NULL; // region names being used
|
||||
char *region_names = NULL; // region names being used
|
||||
bool do_region = true; // dump region names and numbers
|
||||
char_u *p;
|
||||
char *p;
|
||||
int dumpflags = dumpflags_arg;
|
||||
int patlen;
|
||||
|
||||
@ -3197,11 +3197,11 @@ void spell_dump_compl(char_u *pat, int ic, Direction *dir, int dumpflags_arg)
|
||||
if (ic) {
|
||||
dumpflags |= DUMPFLAG_ICASE;
|
||||
} else {
|
||||
n = captype(pat, NULL);
|
||||
n = captype((char_u *)pat, NULL);
|
||||
if (n == WF_ONECAP) {
|
||||
dumpflags |= DUMPFLAG_ONECAP;
|
||||
} else if (n == WF_ALLCAP
|
||||
&& (int)STRLEN(pat) > utfc_ptr2len((char *)pat)) {
|
||||
&& (int)STRLEN(pat) > utfc_ptr2len(pat)) {
|
||||
dumpflags |= DUMPFLAG_ALLCAP;
|
||||
}
|
||||
}
|
||||
@ -3211,11 +3211,11 @@ void spell_dump_compl(char_u *pat, int ic, Direction *dir, int dumpflags_arg)
|
||||
// regions or none at all.
|
||||
for (int lpi = 0; lpi < curwin->w_s->b_langp.ga_len; lpi++) {
|
||||
lp = LANGP_ENTRY(curwin->w_s->b_langp, lpi);
|
||||
p = lp->lp_slang->sl_regions;
|
||||
p = (char *)lp->lp_slang->sl_regions;
|
||||
if (p[0] != 0) {
|
||||
if (region_names == NULL) { // first language with regions
|
||||
region_names = p;
|
||||
} else if (STRCMP(region_names, p) != 0) {
|
||||
} else if (strcmp(region_names, p) != 0) {
|
||||
do_region = false; // region names are different
|
||||
break;
|
||||
}
|
||||
@ -3257,11 +3257,11 @@ void spell_dump_compl(char_u *pat, int ic, Direction *dir, int dumpflags_arg)
|
||||
for (int round = 1; round <= 2; round++) {
|
||||
if (round == 1) {
|
||||
dumpflags &= ~DUMPFLAG_KEEPCASE;
|
||||
byts = slang->sl_fbyts;
|
||||
byts = (char *)slang->sl_fbyts;
|
||||
idxs = slang->sl_fidxs;
|
||||
} else {
|
||||
dumpflags |= DUMPFLAG_KEEPCASE;
|
||||
byts = slang->sl_kbyts;
|
||||
byts = (char *)slang->sl_kbyts;
|
||||
idxs = slang->sl_kidxs;
|
||||
}
|
||||
if (byts == NULL) {
|
||||
@ -3281,7 +3281,7 @@ void spell_dump_compl(char_u *pat, int ic, Direction *dir, int dumpflags_arg)
|
||||
// Do one more byte at this node.
|
||||
n = arridx[depth] + curi[depth];
|
||||
curi[depth]++;
|
||||
c = byts[n];
|
||||
c = (uint8_t)byts[n];
|
||||
if (c == 0 || depth >= MAXWLEN - 1) {
|
||||
// End of word or reached maximum length, deal with the
|
||||
// word.
|
||||
@ -3304,7 +3304,7 @@ void spell_dump_compl(char_u *pat, int ic, Direction *dir, int dumpflags_arg)
|
||||
// when it's the first one.
|
||||
c = (int)((unsigned)flags >> 24);
|
||||
if (c == 0 || curi[depth] == 2) {
|
||||
dump_word(slang, word, pat, dir,
|
||||
dump_word(slang, (char_u *)word, (char_u *)pat, dir,
|
||||
dumpflags, flags, lnum);
|
||||
if (pat == NULL) {
|
||||
lnum++;
|
||||
@ -3313,13 +3313,13 @@ void spell_dump_compl(char_u *pat, int ic, Direction *dir, int dumpflags_arg)
|
||||
|
||||
// Apply the prefix, if there is one.
|
||||
if (c != 0) {
|
||||
lnum = dump_prefixes(slang, word, pat, dir,
|
||||
lnum = dump_prefixes(slang, (char_u *)word, (char_u *)pat, dir,
|
||||
dumpflags, flags, lnum);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Normal char, go one level deeper.
|
||||
word[depth++] = (char_u)c;
|
||||
word[depth++] = (char)c;
|
||||
arridx[depth] = idxs[n];
|
||||
curi[depth] = 1;
|
||||
|
||||
@ -3331,7 +3331,7 @@ void spell_dump_compl(char_u *pat, int ic, Direction *dir, int dumpflags_arg)
|
||||
// ignore case...
|
||||
assert(depth >= 0);
|
||||
if (depth <= patlen
|
||||
&& mb_strnicmp((char *)word, (char *)pat, (size_t)depth) != 0) {
|
||||
&& mb_strnicmp((char *)word, pat, (size_t)depth) != 0) {
|
||||
depth--;
|
||||
}
|
||||
}
|
||||
@ -3613,7 +3613,7 @@ char *did_set_spell_option(bool is_spellfile)
|
||||
if (is_spellfile) {
|
||||
int l = (int)STRLEN(curwin->w_s->b_p_spf);
|
||||
if (l > 0
|
||||
&& (l < 4 || STRCMP(curwin->w_s->b_p_spf + l - 4, ".add") != 0)) {
|
||||
&& (l < 4 || strcmp(curwin->w_s->b_p_spf + l - 4, ".add") != 0)) {
|
||||
errmsg = e_invarg;
|
||||
}
|
||||
}
|
||||
|
@ -355,12 +355,12 @@ struct affentry_S {
|
||||
|
||||
// Affix header from ".aff" file. Used for af_pref and af_suff.
|
||||
typedef struct affheader_S {
|
||||
char_u ah_key[AH_KEY_LEN]; // key for hashtab == name of affix
|
||||
char ah_key[AH_KEY_LEN]; // key for hashtab == name of affix
|
||||
unsigned ah_flag; // affix name as number, uses "af_flagtype"
|
||||
int ah_newID; // prefix ID after renumbering; 0 if not used
|
||||
int ah_combine; // suffix may combine with prefix
|
||||
int ah_follows; // another affix block should be following
|
||||
affentry_T *ah_first; // first affix entry
|
||||
affentry_T *ah_first; // first affix entry
|
||||
} affheader_T;
|
||||
|
||||
#define HI2AH(hi) ((affheader_T *)(hi)->hi_key)
|
||||
@ -2102,7 +2102,7 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
}
|
||||
items[itemcnt++] = p;
|
||||
// A few items have arbitrary text argument, don't split them.
|
||||
if (itemcnt == 2 && spell_info_item((char_u *)items[0])) {
|
||||
if (itemcnt == 2 && spell_info_item(items[0])) {
|
||||
while ((uint8_t)(*p) >= ' ' || *p == TAB) { // skip until CR/NL
|
||||
p++;
|
||||
}
|
||||
@ -2130,11 +2130,11 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
spin->si_conv.vc_fail = true;
|
||||
} else if (is_aff_rule(items, itemcnt, "FLAG", 2)
|
||||
&& aff->af_flagtype == AFT_CHAR) {
|
||||
if (STRCMP(items[1], "long") == 0) {
|
||||
if (strcmp(items[1], "long") == 0) {
|
||||
aff->af_flagtype = AFT_LONG;
|
||||
} else if (STRCMP(items[1], "num") == 0) {
|
||||
} else if (strcmp(items[1], "num") == 0) {
|
||||
aff->af_flagtype = AFT_NUM;
|
||||
} else if (STRCMP(items[1], "caplong") == 0) {
|
||||
} else if (strcmp(items[1], "caplong") == 0) {
|
||||
aff->af_flagtype = AFT_CAPLONG;
|
||||
} else {
|
||||
smsg(_("Invalid value for FLAG in %s line %d: %s"),
|
||||
@ -2154,7 +2154,7 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
smsg(_("FLAG after using flags in %s line %d: %s"),
|
||||
fname, lnum, items[1]);
|
||||
}
|
||||
} else if (spell_info_item((char_u *)items[0]) && itemcnt > 1) {
|
||||
} else if (spell_info_item(items[0]) && itemcnt > 1) {
|
||||
p = getroom(spin,
|
||||
(spin->si_info == NULL ? 0 : STRLEN(spin->si_info))
|
||||
+ STRLEN(items[0])
|
||||
@ -2299,8 +2299,8 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
|
||||
// Only add the couple if it isn't already there.
|
||||
for (i = 0; i < gap->ga_len - 1; i += 2) {
|
||||
if (STRCMP(((char **)(gap->ga_data))[i], items[1]) == 0
|
||||
&& STRCMP(((char **)(gap->ga_data))[i + 1], items[2]) == 0) {
|
||||
if (strcmp(((char **)(gap->ga_data))[i], items[1]) == 0
|
||||
&& strcmp(((char **)(gap->ga_data))[i + 1], items[2]) == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -2324,8 +2324,8 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
aff->af_pfxpostpone = true;
|
||||
} else if (is_aff_rule(items, itemcnt, "IGNOREEXTRA", 1)) {
|
||||
aff->af_ignoreextra = true;
|
||||
} else if ((STRCMP(items[0], "PFX") == 0
|
||||
|| STRCMP(items[0], "SFX") == 0)
|
||||
} else if ((strcmp(items[0], "PFX") == 0
|
||||
|| strcmp(items[0], "SFX") == 0)
|
||||
&& aff_todo == 0
|
||||
&& itemcnt >= 4) {
|
||||
int lasti = 4;
|
||||
@ -2375,14 +2375,14 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
fname, lnum, items[1]);
|
||||
}
|
||||
STRCPY(cur_aff->ah_key, items[1]);
|
||||
hash_add(tp, cur_aff->ah_key);
|
||||
hash_add(tp, (char_u *)cur_aff->ah_key);
|
||||
|
||||
cur_aff->ah_combine = (*items[2] == 'Y');
|
||||
}
|
||||
|
||||
// Check for the "S" flag, which apparently means that another
|
||||
// block with the same affix name is following.
|
||||
if (itemcnt > lasti && STRCMP(items[lasti], "S") == 0) {
|
||||
if (itemcnt > lasti && strcmp(items[lasti], "S") == 0) {
|
||||
lasti++;
|
||||
cur_aff->ah_follows = true;
|
||||
} else {
|
||||
@ -2398,7 +2398,7 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
smsg(_(e_afftrailing), fname, lnum, items[lasti]);
|
||||
}
|
||||
|
||||
if (STRCMP(items[2], "Y") != 0 && STRCMP(items[2], "N") != 0) {
|
||||
if (strcmp(items[2], "Y") != 0 && strcmp(items[2], "N") != 0) {
|
||||
smsg(_("Expected Y or N in %s line %d: %s"),
|
||||
fname, lnum, items[2]);
|
||||
}
|
||||
@ -2421,10 +2421,10 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
}
|
||||
|
||||
aff_todo = atoi((char *)items[3]);
|
||||
} else if ((STRCMP(items[0], "PFX") == 0
|
||||
|| STRCMP(items[0], "SFX") == 0)
|
||||
} else if ((strcmp(items[0], "PFX") == 0
|
||||
|| strcmp(items[0], "SFX") == 0)
|
||||
&& aff_todo > 0
|
||||
&& STRCMP(cur_aff->ah_key, items[1]) == 0
|
||||
&& strcmp(cur_aff->ah_key, items[1]) == 0
|
||||
&& itemcnt >= 5) {
|
||||
affentry_T *aff_entry;
|
||||
bool upper = false;
|
||||
@ -2434,7 +2434,7 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
// mean mistakes go unnoticed. Require a comment-starter.
|
||||
// Hunspell uses a "-" item.
|
||||
if (itemcnt > lasti && *items[lasti] != '#'
|
||||
&& (STRCMP(items[lasti], "-") != 0
|
||||
&& (strcmp(items[lasti], "-") != 0
|
||||
|| itemcnt != lasti + 1)) {
|
||||
smsg(_(e_afftrailing), fname, lnum, items[lasti]);
|
||||
}
|
||||
@ -2443,10 +2443,10 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
aff_todo--;
|
||||
aff_entry = getroom(spin, sizeof(*aff_entry), true);
|
||||
|
||||
if (STRCMP(items[2], "0") != 0) {
|
||||
if (strcmp(items[2], "0") != 0) {
|
||||
aff_entry->ae_chop = (char_u *)getroom_save(spin, (char_u *)items[2]);
|
||||
}
|
||||
if (STRCMP(items[3], "0") != 0) {
|
||||
if (strcmp(items[3], "0") != 0) {
|
||||
aff_entry->ae_add = (char_u *)getroom_save(spin, (char_u *)items[3]);
|
||||
|
||||
// Recognize flags on the affix: abcd/XYZ
|
||||
@ -2464,7 +2464,7 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
aff_entry->ae_next = cur_aff->ah_first;
|
||||
cur_aff->ah_first = aff_entry;
|
||||
|
||||
if (STRCMP(items[4], ".") != 0) {
|
||||
if (strcmp(items[4], ".") != 0) {
|
||||
char_u buf[MAXLINELEN];
|
||||
|
||||
aff_entry->ae_cond = (char_u *)getroom_save(spin, (char_u *)items[4]);
|
||||
@ -2536,7 +2536,7 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
// Find a previously used condition.
|
||||
for (idx = spin->si_prefcond.ga_len - 1; idx >= 0; idx--) {
|
||||
p = ((char **)spin->si_prefcond.ga_data)[idx];
|
||||
if (str_equal((char_u *)p, aff_entry->ae_cond)) {
|
||||
if (str_equal(p, (char *)aff_entry->ae_cond)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -2595,8 +2595,8 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
smsg(_("Expected REP(SAL) count in %s line %d"),
|
||||
fname, lnum);
|
||||
}
|
||||
} else if ((STRCMP(items[0], "REP") == 0
|
||||
|| STRCMP(items[0], "REPSAL") == 0)
|
||||
} else if ((strcmp(items[0], "REP") == 0
|
||||
|| strcmp(items[0], "REPSAL") == 0)
|
||||
&& itemcnt >= 3) {
|
||||
// REP/REPSAL item
|
||||
// Myspell ignores extra arguments, we require it starts with
|
||||
@ -2656,16 +2656,16 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
if (do_sal) {
|
||||
// SAL item (sounds-a-like)
|
||||
// Either one of the known keys or a from-to pair.
|
||||
if (STRCMP(items[1], "followup") == 0) {
|
||||
spin->si_followup = sal_to_bool((char_u *)items[2]);
|
||||
} else if (STRCMP(items[1], "collapse_result") == 0) {
|
||||
spin->si_collapse = sal_to_bool((char_u *)items[2]);
|
||||
} else if (STRCMP(items[1], "remove_accents") == 0) {
|
||||
spin->si_rem_accents = sal_to_bool((char_u *)items[2]);
|
||||
if (strcmp(items[1], "followup") == 0) {
|
||||
spin->si_followup = sal_to_bool(items[2]);
|
||||
} else if (strcmp(items[1], "collapse_result") == 0) {
|
||||
spin->si_collapse = sal_to_bool(items[2]);
|
||||
} else if (strcmp(items[1], "remove_accents") == 0) {
|
||||
spin->si_rem_accents = sal_to_bool(items[2]);
|
||||
} else {
|
||||
// when "to" is "_" it means empty
|
||||
add_fromto(spin, &spin->si_sal, (char_u *)items[1],
|
||||
STRCMP(items[2], "_") == 0 ? (char_u *)""
|
||||
strcmp(items[2], "_") == 0 ? (char_u *)""
|
||||
: (char_u *)items[2]);
|
||||
}
|
||||
}
|
||||
@ -2675,7 +2675,7 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
} else if (is_aff_rule(items, itemcnt, "SOFOTO", 2)
|
||||
&& sofoto == NULL) {
|
||||
sofoto = (char_u *)getroom_save(spin, (char_u *)items[1]);
|
||||
} else if (STRCMP(items[0], "COMMON") == 0) {
|
||||
} else if (strcmp(items[0], "COMMON") == 0) {
|
||||
int i;
|
||||
|
||||
for (i = 1; i < itemcnt; i++) {
|
||||
@ -2744,7 +2744,7 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
}
|
||||
|
||||
if (syllable != NULL) {
|
||||
aff_check_string(spin->si_syllable, syllable, "SYLLABLE");
|
||||
aff_check_string((char *)spin->si_syllable, (char *)syllable, "SYLLABLE");
|
||||
spin->si_syllable = syllable;
|
||||
}
|
||||
|
||||
@ -2755,15 +2755,15 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
} else if (!GA_EMPTY(&spin->si_sal)) {
|
||||
smsg(_("Both SAL and SOFO lines in %s"), fname);
|
||||
} else {
|
||||
aff_check_string(spin->si_sofofr, sofofrom, "SOFOFROM");
|
||||
aff_check_string(spin->si_sofoto, sofoto, "SOFOTO");
|
||||
aff_check_string((char *)spin->si_sofofr, (char *)sofofrom, "SOFOFROM");
|
||||
aff_check_string((char *)spin->si_sofoto, (char *)sofoto, "SOFOTO");
|
||||
spin->si_sofofr = sofofrom;
|
||||
spin->si_sofoto = sofoto;
|
||||
}
|
||||
}
|
||||
|
||||
if (midword != NULL) {
|
||||
aff_check_string(spin->si_midword, midword, "MIDWORD");
|
||||
aff_check_string((char *)spin->si_midword, (char *)midword, "MIDWORD");
|
||||
spin->si_midword = midword;
|
||||
}
|
||||
|
||||
@ -2776,7 +2776,7 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
|
||||
/// a comment is following after item "mincount".
|
||||
static bool is_aff_rule(char **items, int itemcnt, char *rulename, int mincount)
|
||||
{
|
||||
return STRCMP(items[0], rulename) == 0
|
||||
return strcmp(items[0], rulename) == 0
|
||||
&& (itemcnt == mincount
|
||||
|| (itemcnt > mincount && items[mincount][0] == '#'));
|
||||
}
|
||||
@ -2813,15 +2813,15 @@ static void aff_process_flags(afffile_T *affile, affentry_T *entry)
|
||||
}
|
||||
}
|
||||
|
||||
// Returns true if "s" is the name of an info item in the affix file.
|
||||
static bool spell_info_item(char_u *s)
|
||||
/// @return true if "s" is the name of an info item in the affix file.
|
||||
static bool spell_info_item(char *s)
|
||||
{
|
||||
return STRCMP(s, "NAME") == 0
|
||||
|| STRCMP(s, "HOME") == 0
|
||||
|| STRCMP(s, "VERSION") == 0
|
||||
|| STRCMP(s, "AUTHOR") == 0
|
||||
|| STRCMP(s, "EMAIL") == 0
|
||||
|| STRCMP(s, "COPYRIGHT") == 0;
|
||||
return strcmp(s, "NAME") == 0
|
||||
|| strcmp(s, "HOME") == 0
|
||||
|| strcmp(s, "VERSION") == 0
|
||||
|| strcmp(s, "AUTHOR") == 0
|
||||
|| strcmp(s, "EMAIL") == 0
|
||||
|| strcmp(s, "COPYRIGHT") == 0;
|
||||
}
|
||||
|
||||
// Turn an affix flag name into a number, according to the FLAG type.
|
||||
@ -3013,23 +3013,23 @@ static void aff_check_number(int spinval, int affval, char *name)
|
||||
}
|
||||
}
|
||||
|
||||
// Give a warning when "spinval" and "affval" strings are set and not the same.
|
||||
static void aff_check_string(char_u *spinval, char_u *affval, char *name)
|
||||
/// Give a warning when "spinval" and "affval" strings are set and not the same.
|
||||
static void aff_check_string(char *spinval, char *affval, char *name)
|
||||
{
|
||||
if (spinval != NULL && STRCMP(spinval, affval) != 0) {
|
||||
if (spinval != NULL && strcmp(spinval, affval) != 0) {
|
||||
smsg(_("%s value differs from what is used in another .aff file"),
|
||||
name);
|
||||
}
|
||||
}
|
||||
|
||||
// Returns true if strings "s1" and "s2" are equal. Also consider both being
|
||||
// NULL as equal.
|
||||
static bool str_equal(char_u *s1, char_u *s2)
|
||||
/// @return true if strings "s1" and "s2" are equal. Also consider both being
|
||||
/// NULL as equal.
|
||||
static bool str_equal(char *s1, char *s2)
|
||||
{
|
||||
if (s1 == NULL || s2 == NULL) {
|
||||
return s1 == s2;
|
||||
}
|
||||
return STRCMP(s1, s2) == 0;
|
||||
return strcmp(s1, s2) == 0;
|
||||
}
|
||||
|
||||
// Add a from-to item to "gap". Used for REP and SAL items.
|
||||
@ -3045,10 +3045,10 @@ static void add_fromto(spellinfo_T *spin, garray_T *gap, char_u *from, char_u *t
|
||||
ftp->ft_to = (char_u *)getroom_save(spin, word);
|
||||
}
|
||||
|
||||
// Converts a boolean argument in a SAL line to true or false;
|
||||
static bool sal_to_bool(char_u *s)
|
||||
/// Converts a boolean argument in a SAL line to true or false;
|
||||
static bool sal_to_bool(char *s)
|
||||
{
|
||||
return STRCMP(s, "1") == 0 || STRCMP(s, "true") == 0;
|
||||
return strcmp(s, "1") == 0 || strcmp(s, "true") == 0;
|
||||
}
|
||||
|
||||
// Free the structure filled by spell_read_aff().
|
||||
@ -4337,13 +4337,13 @@ static bool node_equal(wordnode_T *n1, wordnode_T *n2)
|
||||
return p1 == NULL && p2 == NULL;
|
||||
}
|
||||
|
||||
// Function given to qsort() to sort the REP items on "from" string.
|
||||
/// Function given to qsort() to sort the REP items on "from" string.
|
||||
static int rep_compare(const void *s1, const void *s2)
|
||||
{
|
||||
fromto_T *p1 = (fromto_T *)s1;
|
||||
fromto_T *p2 = (fromto_T *)s2;
|
||||
|
||||
return STRCMP(p1->ft_from, p2->ft_from);
|
||||
return strcmp((char *)p1->ft_from, (char *)p2->ft_from);
|
||||
}
|
||||
|
||||
/// Write the Vim .spl file "fname".
|
||||
@ -5299,7 +5299,7 @@ static void mkspell(int fcount, char **fnames, bool ascii, bool over_write, bool
|
||||
|
||||
if (fcount >= 1) {
|
||||
len = (int)STRLEN(fnames[0]);
|
||||
if (fcount == 1 && len > 4 && STRCMP(fnames[0] + len - 4, ".add") == 0) {
|
||||
if (fcount == 1 && len > 4 && strcmp(fnames[0] + len - 4, ".add") == 0) {
|
||||
// For ":mkspell path/en.latin1.add" output file is
|
||||
// "path/en.latin1.add.spl".
|
||||
incount = 1;
|
||||
@ -5309,7 +5309,7 @@ static void mkspell(int fcount, char **fnames, bool ascii, bool over_write, bool
|
||||
incount = 1;
|
||||
vim_snprintf(wfname, MAXPATHL, SPL_FNAME_TMPL,
|
||||
fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
|
||||
} else if (len > 4 && STRCMP(fnames[0] + len - 4, ".spl") == 0) {
|
||||
} else if (len > 4 && strcmp(fnames[0] + len - 4, ".spl") == 0) {
|
||||
// Name ends in ".spl", use as the file name.
|
||||
STRLCPY(wfname, fnames[0], MAXPATHL);
|
||||
} else {
|
||||
|
@ -354,7 +354,7 @@ int spell_check_sps(void)
|
||||
{
|
||||
char *p;
|
||||
char *s;
|
||||
char_u buf[MAXPATHL];
|
||||
char buf[MAXPATHL];
|
||||
int f;
|
||||
|
||||
sps_flags = 0;
|
||||
@ -370,11 +370,11 @@ int spell_check_sps(void)
|
||||
if (*s != NUL && !ascii_isdigit(*s)) {
|
||||
f = -1;
|
||||
}
|
||||
} else if (STRCMP(buf, "best") == 0) {
|
||||
} else if (strcmp(buf, "best") == 0) {
|
||||
f = SPS_BEST;
|
||||
} else if (STRCMP(buf, "fast") == 0) {
|
||||
} else if (strcmp(buf, "fast") == 0) {
|
||||
f = SPS_FAST;
|
||||
} else if (STRCMP(buf, "double") == 0) {
|
||||
} else if (strcmp(buf, "double") == 0) {
|
||||
f = SPS_DOUBLE;
|
||||
} else if (STRNCMP(buf, "expr:", 5) != 0
|
||||
&& STRNCMP(buf, "file:", 5) != 0
|
||||
@ -1114,7 +1114,7 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
{
|
||||
char_u tword[MAXWLEN]; // good word collected so far
|
||||
trystate_T stack[MAXWLEN];
|
||||
char_u preword[MAXWLEN * 3] = { 0 }; // word found with proper case;
|
||||
char preword[MAXWLEN * 3] = { 0 }; // word found with proper case;
|
||||
// concatenation of prefix compound
|
||||
// words and split word. NUL terminated
|
||||
// when going deeper but not when coming
|
||||
@ -1241,7 +1241,7 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
// and make find_keepcap_word() works.
|
||||
tword[sp->ts_twordlen] = NUL;
|
||||
make_case_word(tword + sp->ts_splitoff,
|
||||
preword + sp->ts_prewordlen, flags);
|
||||
(char_u *)preword + sp->ts_prewordlen, flags);
|
||||
sp->ts_prewordlen = (char_u)STRLEN(preword);
|
||||
sp->ts_splitoff = sp->ts_twordlen;
|
||||
}
|
||||
@ -1326,7 +1326,7 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
sp->ts_fidx - sp->ts_splitfidx) == 0) {
|
||||
preword[sp->ts_prewordlen] = NUL;
|
||||
newscore = score_wordcount_adj(slang, sp->ts_score,
|
||||
preword + sp->ts_prewordlen,
|
||||
(char_u *)preword + sp->ts_prewordlen,
|
||||
sp->ts_prewordlen > 0);
|
||||
// Add the suggestion if the score isn't too bad.
|
||||
if (newscore <= su->su_maxscore) {
|
||||
@ -1362,13 +1362,13 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
sp->ts_twordlen - sp->ts_splitoff + 1);
|
||||
|
||||
// Verify CHECKCOMPOUNDPATTERN rules.
|
||||
if (match_checkcompoundpattern(preword, sp->ts_prewordlen,
|
||||
if (match_checkcompoundpattern((char_u *)preword, sp->ts_prewordlen,
|
||||
&slang->sl_comppat)) {
|
||||
compound_ok = false;
|
||||
}
|
||||
|
||||
if (compound_ok) {
|
||||
p = preword;
|
||||
p = (char_u *)preword;
|
||||
while (*skiptowhite((char *)p) != NUL) {
|
||||
p = (char_u *)skipwhite(skiptowhite((char *)p));
|
||||
}
|
||||
@ -1381,7 +1381,7 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
}
|
||||
|
||||
// Get pointer to last char of previous word.
|
||||
p = preword + sp->ts_prewordlen;
|
||||
p = (char_u *)preword + sp->ts_prewordlen;
|
||||
MB_PTR_BACK(preword, p);
|
||||
}
|
||||
}
|
||||
@ -1394,7 +1394,7 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
} else if (flags & WF_KEEPCAP) {
|
||||
// Must find the word in the keep-case tree.
|
||||
find_keepcap_word(slang, tword + sp->ts_splitoff,
|
||||
preword + sp->ts_prewordlen);
|
||||
(char_u *)preword + sp->ts_prewordlen);
|
||||
} else {
|
||||
// Include badflags: If the badword is onecap or allcap
|
||||
// use that for the goodword too. But if the badword is
|
||||
@ -1413,14 +1413,14 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
c &= ~WF_ONECAP;
|
||||
}
|
||||
make_case_word(tword + sp->ts_splitoff,
|
||||
preword + sp->ts_prewordlen, c);
|
||||
(char_u *)preword + sp->ts_prewordlen, c);
|
||||
}
|
||||
|
||||
if (!soundfold) {
|
||||
// Don't use a banned word. It may appear again as a good
|
||||
// word, thus remember it.
|
||||
if (flags & WF_BANNED) {
|
||||
add_banned(su, preword + sp->ts_prewordlen);
|
||||
add_banned(su, (char_u *)preword + sp->ts_prewordlen);
|
||||
break;
|
||||
}
|
||||
if ((sp->ts_complen == sp->ts_compsplit
|
||||
@ -1445,7 +1445,7 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
}
|
||||
|
||||
if (!spell_valid_case(su->su_badflags,
|
||||
captype(preword + sp->ts_prewordlen, NULL))) {
|
||||
captype((char_u *)preword + sp->ts_prewordlen, NULL))) {
|
||||
newscore += SCORE_ICASE;
|
||||
}
|
||||
}
|
||||
@ -1457,7 +1457,7 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
&& compound_ok) {
|
||||
// The badword also ends: add suggestions.
|
||||
#ifdef DEBUG_TRIEWALK
|
||||
if (soundfold && STRCMP(preword, "smwrd") == 0) {
|
||||
if (soundfold && strcmp(preword, "smwrd") == 0) {
|
||||
int j;
|
||||
|
||||
// print the stack of changes that brought us here
|
||||
@ -1470,14 +1470,14 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
if (soundfold) {
|
||||
// For soundfolded words we need to find the original
|
||||
// words, the edit distance and then add them.
|
||||
add_sound_suggest(su, preword, sp->ts_score, lp);
|
||||
add_sound_suggest(su, (char_u *)preword, sp->ts_score, lp);
|
||||
} else if (sp->ts_fidx > 0) {
|
||||
// Give a penalty when changing non-word char to word
|
||||
// char, e.g., "thes," -> "these".
|
||||
p = fword + sp->ts_fidx;
|
||||
MB_PTR_BACK(fword, p);
|
||||
if (!spell_iswordp(p, curwin) && *preword != NUL) {
|
||||
p = preword + STRLEN(preword);
|
||||
p = (char_u *)preword + STRLEN(preword);
|
||||
MB_PTR_BACK(preword, p);
|
||||
if (spell_iswordp(p, curwin)) {
|
||||
newscore += SCORE_NONWORD;
|
||||
@ -1487,7 +1487,7 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
// Give a bonus to words seen before.
|
||||
score = score_wordcount_adj(slang,
|
||||
sp->ts_score + newscore,
|
||||
preword + sp->ts_prewordlen,
|
||||
(char_u *)preword + sp->ts_prewordlen,
|
||||
sp->ts_prewordlen > 0);
|
||||
|
||||
// Add the suggestion if the score isn't too bad.
|
||||
@ -1499,10 +1499,10 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
if (su->su_badflags & WF_MIXCAP) {
|
||||
// We really don't know if the word should be
|
||||
// upper or lower case, add both.
|
||||
c = captype(preword, NULL);
|
||||
c = captype((char_u *)preword, NULL);
|
||||
if (c == 0 || c == WF_ALLCAP) {
|
||||
make_case_word(tword + sp->ts_splitoff,
|
||||
preword + sp->ts_prewordlen,
|
||||
(char_u *)preword + sp->ts_prewordlen,
|
||||
c == 0 ? WF_ALLCAP : 0);
|
||||
|
||||
add_suggestion(su, &su->su_ga, (char *)preword,
|
||||
@ -1589,7 +1589,7 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
&& (flags & WF_NEEDCOMP)) {
|
||||
break;
|
||||
}
|
||||
p = preword;
|
||||
p = (char_u *)preword;
|
||||
while (*skiptowhite((char *)p) != NUL) {
|
||||
p = (char_u *)skipwhite(skiptowhite((char *)p));
|
||||
}
|
||||
@ -1607,7 +1607,7 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
|
||||
// Give a bonus to words seen before.
|
||||
newscore = score_wordcount_adj(slang, newscore,
|
||||
preword + sp->ts_prewordlen, true);
|
||||
(char_u *)preword + sp->ts_prewordlen, true);
|
||||
}
|
||||
|
||||
if (TRY_DEEPER(su, stack, depth, newscore)) {
|
||||
@ -2515,8 +2515,8 @@ static void score_combine(suginfo_T *su)
|
||||
garray_T *gap;
|
||||
langp_T *lp;
|
||||
suggest_T *stp;
|
||||
char_u *p;
|
||||
char_u badsound[MAXWLEN];
|
||||
char *p;
|
||||
char badsound[MAXWLEN];
|
||||
int round;
|
||||
slang_T *slang = NULL;
|
||||
|
||||
@ -2526,11 +2526,11 @@ static void score_combine(suginfo_T *su)
|
||||
if (!GA_EMPTY(&lp->lp_slang->sl_sal)) {
|
||||
// soundfold the bad word
|
||||
slang = lp->lp_slang;
|
||||
spell_soundfold(slang, su->su_fbadword, true, badsound);
|
||||
spell_soundfold(slang, su->su_fbadword, true, (char_u *)badsound);
|
||||
|
||||
for (int i = 0; i < su->su_ga.ga_len; i++) {
|
||||
stp = &SUG(su->su_ga, i);
|
||||
stp->st_altscore = stp_sal_score(stp, su, slang, badsound);
|
||||
stp->st_altscore = stp_sal_score(stp, su, slang, (char_u *)badsound);
|
||||
if (stp->st_altscore == SCORE_MAXMAX) {
|
||||
stp->st_score = (stp->st_score * 3 + SCORE_BIG) / 4;
|
||||
} else {
|
||||
@ -2578,10 +2578,10 @@ static void score_combine(suginfo_T *su)
|
||||
gap = round == 1 ? &su->su_ga : &su->su_sga;
|
||||
if (i < gap->ga_len) {
|
||||
// Don't add a word if it's already there.
|
||||
p = (char_u *)SUG(*gap, i).st_word;
|
||||
p = SUG(*gap, i).st_word;
|
||||
int j;
|
||||
for (j = 0; j < ga.ga_len; j++) {
|
||||
if (STRCMP(stp[j].st_word, p) == 0) {
|
||||
if (strcmp(stp[j].st_word, p) == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -2659,7 +2659,7 @@ static int stp_sal_score(suggest_T *stp, suginfo_T *su, slang_T *slang, char_u *
|
||||
// Sound-fold the word and compute the score for the difference.
|
||||
spell_soundfold(slang, pgood, false, goodsound);
|
||||
|
||||
return soundalike_score(goodsound, pbad);
|
||||
return soundalike_score((char *)goodsound, (char *)pbad);
|
||||
}
|
||||
|
||||
/// structure used to store soundfolded words that add_sound_suggest() has
|
||||
@ -3306,15 +3306,15 @@ static int cleanup_suggestions(garray_T *gap, int maxscore, int keep)
|
||||
///
|
||||
/// @param goodstart sound-folded good word
|
||||
/// @param badstart sound-folded bad word
|
||||
static int soundalike_score(char_u *goodstart, char_u *badstart)
|
||||
static int soundalike_score(char *goodstart, char *badstart)
|
||||
{
|
||||
char_u *goodsound = goodstart;
|
||||
char_u *badsound = badstart;
|
||||
char *goodsound = goodstart;
|
||||
char *badsound = badstart;
|
||||
int goodlen;
|
||||
int badlen;
|
||||
int n;
|
||||
char_u *pl, *ps;
|
||||
char_u *pl2, *ps2;
|
||||
char *pl, *ps;
|
||||
char *pl2, *ps2;
|
||||
int score = 0;
|
||||
|
||||
// Adding/inserting "*" at the start (word starts with vowel) shouldn't be
|
||||
@ -3379,7 +3379,7 @@ static int soundalike_score(char_u *goodstart, char_u *badstart)
|
||||
ps++;
|
||||
}
|
||||
// strings must be equal after second delete
|
||||
if (STRCMP(pl + 1, ps) == 0) {
|
||||
if (strcmp(pl + 1, ps) == 0) {
|
||||
return score + SCORE_DEL * 2;
|
||||
}
|
||||
|
||||
@ -3403,12 +3403,12 @@ static int soundalike_score(char_u *goodstart, char_u *badstart)
|
||||
|
||||
// 2: delete then swap, then rest must be equal
|
||||
if (pl2[0] == ps2[1] && pl2[1] == ps2[0]
|
||||
&& STRCMP(pl2 + 2, ps2 + 2) == 0) {
|
||||
&& strcmp(pl2 + 2, ps2 + 2) == 0) {
|
||||
return score + SCORE_DEL + SCORE_SWAP;
|
||||
}
|
||||
|
||||
// 3: delete then substitute, then the rest must be equal
|
||||
if (STRCMP(pl2 + 1, ps2 + 1) == 0) {
|
||||
if (strcmp(pl2 + 1, ps2 + 1) == 0) {
|
||||
return score + SCORE_DEL + SCORE_SUBST;
|
||||
}
|
||||
|
||||
@ -3421,7 +3421,7 @@ static int soundalike_score(char_u *goodstart, char_u *badstart)
|
||||
ps2++;
|
||||
}
|
||||
// delete a char and then strings must be equal
|
||||
if (STRCMP(pl2 + 1, ps2) == 0) {
|
||||
if (strcmp(pl2 + 1, ps2) == 0) {
|
||||
return score + SCORE_SWAP + SCORE_DEL;
|
||||
}
|
||||
}
|
||||
@ -3434,7 +3434,7 @@ static int soundalike_score(char_u *goodstart, char_u *badstart)
|
||||
ps2++;
|
||||
}
|
||||
// delete a char and then strings must be equal
|
||||
if (STRCMP(pl2 + 1, ps2) == 0) {
|
||||
if (strcmp(pl2 + 1, ps2) == 0) {
|
||||
return score + SCORE_SUBST + SCORE_DEL;
|
||||
}
|
||||
|
||||
@ -3462,12 +3462,12 @@ static int soundalike_score(char_u *goodstart, char_u *badstart)
|
||||
}
|
||||
// 3: swap and swap again
|
||||
if (pl2[0] == ps2[1] && pl2[1] == ps2[0]
|
||||
&& STRCMP(pl2 + 2, ps2 + 2) == 0) {
|
||||
&& strcmp(pl2 + 2, ps2 + 2) == 0) {
|
||||
return score + SCORE_SWAP + SCORE_SWAP;
|
||||
}
|
||||
|
||||
// 4: swap and substitute
|
||||
if (STRCMP(pl2 + 1, ps2 + 1) == 0) {
|
||||
if (strcmp(pl2 + 1, ps2 + 1) == 0) {
|
||||
return score + SCORE_SWAP + SCORE_SUBST;
|
||||
}
|
||||
}
|
||||
@ -3485,12 +3485,12 @@ static int soundalike_score(char_u *goodstart, char_u *badstart)
|
||||
|
||||
// 6: substitute and swap
|
||||
if (pl2[0] == ps2[1] && pl2[1] == ps2[0]
|
||||
&& STRCMP(pl2 + 2, ps2 + 2) == 0) {
|
||||
&& strcmp(pl2 + 2, ps2 + 2) == 0) {
|
||||
return score + SCORE_SUBST + SCORE_SWAP;
|
||||
}
|
||||
|
||||
// 7: substitute and substitute
|
||||
if (STRCMP(pl2 + 1, ps2 + 1) == 0) {
|
||||
if (strcmp(pl2 + 1, ps2 + 1) == 0) {
|
||||
return score + SCORE_SUBST + SCORE_SUBST;
|
||||
}
|
||||
|
||||
@ -3501,7 +3501,7 @@ static int soundalike_score(char_u *goodstart, char_u *badstart)
|
||||
pl2++;
|
||||
ps2++;
|
||||
}
|
||||
if (STRCMP(pl2 + 1, ps2) == 0) {
|
||||
if (strcmp(pl2 + 1, ps2) == 0) {
|
||||
return score + SCORE_INS + SCORE_DEL;
|
||||
}
|
||||
|
||||
@ -3512,7 +3512,7 @@ static int soundalike_score(char_u *goodstart, char_u *badstart)
|
||||
pl2++;
|
||||
ps2++;
|
||||
}
|
||||
if (STRCMP(pl2, ps2 + 1) == 0) {
|
||||
if (strcmp(pl2, ps2 + 1) == 0) {
|
||||
return score + SCORE_INS + SCORE_DEL;
|
||||
}
|
||||
|
||||
|
@ -237,7 +237,7 @@ void may_trigger_modechanged(void)
|
||||
char pattern_buf[2 * MODE_MAX_LENGTH];
|
||||
|
||||
get_mode(curr_mode);
|
||||
if (STRCMP(curr_mode, last_mode) == 0) {
|
||||
if (strcmp(curr_mode, last_mode) == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -460,7 +460,7 @@ char *vim_strchr(const char *const string, const int c)
|
||||
static int sort_compare(const void *s1, const void *s2)
|
||||
FUNC_ATTR_NONNULL_ALL
|
||||
{
|
||||
return STRCMP(*(char **)s1, *(char **)s2);
|
||||
return strcmp(*(char **)s1, *(char **)s2);
|
||||
}
|
||||
|
||||
void sort_strings(char **files, int count)
|
||||
|
@ -98,7 +98,7 @@ typedef struct syn_pattern {
|
||||
|
||||
typedef struct syn_cluster_S {
|
||||
char_u *scl_name; // syntax cluster name
|
||||
char_u *scl_name_u; // uppercase of scl_name
|
||||
char *scl_name_u; // uppercase of scl_name
|
||||
int16_t *scl_list; // IDs in this syntax cluster
|
||||
} syn_cluster_T;
|
||||
|
||||
@ -3918,7 +3918,7 @@ static char *get_syn_options(char *arg, syn_opt_arg_T *opt, int *conceal_char, i
|
||||
return NULL;
|
||||
}
|
||||
gname = xstrnsave(gname_start, (size_t)(arg - gname_start));
|
||||
if (STRCMP(gname, "NONE") == 0) {
|
||||
if (strcmp(gname, "NONE") == 0) {
|
||||
*opt->sync_idx = NONE_IDX;
|
||||
} else {
|
||||
syn_id = syn_name2id(gname);
|
||||
@ -4306,13 +4306,13 @@ static void syn_cmd_region(exarg_T *eap, int syncing)
|
||||
}
|
||||
xfree(key);
|
||||
key = vim_strnsave_up(rest, (size_t)(key_end - rest));
|
||||
if (STRCMP(key, "MATCHGROUP") == 0) {
|
||||
if (strcmp(key, "MATCHGROUP") == 0) {
|
||||
item = ITEM_MATCHGROUP;
|
||||
} else if (STRCMP(key, "START") == 0) {
|
||||
} else if (strcmp(key, "START") == 0) {
|
||||
item = ITEM_START;
|
||||
} else if (STRCMP(key, "END") == 0) {
|
||||
} else if (strcmp(key, "END") == 0) {
|
||||
item = ITEM_END;
|
||||
} else if (STRCMP(key, "SKIP") == 0) {
|
||||
} else if (strcmp(key, "SKIP") == 0) {
|
||||
if (pat_ptrs[ITEM_SKIP] != NULL) { // One skip pattern allowed.
|
||||
illegal = true;
|
||||
break;
|
||||
@ -4584,7 +4584,7 @@ static int syn_scl_name2id(char *name)
|
||||
int i;
|
||||
for (i = curwin->w_s->b_syn_clusters.ga_len; --i >= 0;) {
|
||||
if (SYN_CLSTR(curwin->w_s)[i].scl_name_u != NULL
|
||||
&& STRCMP(name_u, SYN_CLSTR(curwin->w_s)[i].scl_name_u) == 0) {
|
||||
&& strcmp(name_u, SYN_CLSTR(curwin->w_s)[i].scl_name_u) == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -4642,7 +4642,7 @@ static int syn_add_cluster(char *name)
|
||||
&curwin->w_s->b_syn_clusters);
|
||||
CLEAR_POINTER(scp);
|
||||
scp->scl_name = (char_u *)name;
|
||||
scp->scl_name_u = vim_strsave_up((char_u *)name);
|
||||
scp->scl_name_u = (char *)vim_strsave_up((char_u *)name);
|
||||
scp->scl_list = NULL;
|
||||
|
||||
if (STRICMP(name, "Spell") == 0) {
|
||||
@ -4847,7 +4847,7 @@ static void syn_cmd_sync(exarg_T *eap, int syncing)
|
||||
next_arg = skipwhite(arg_end);
|
||||
xfree(key);
|
||||
key = vim_strnsave_up(arg_start, (size_t)(arg_end - arg_start));
|
||||
if (STRCMP(key, "CCOMMENT") == 0) {
|
||||
if (strcmp(key, "CCOMMENT") == 0) {
|
||||
if (!eap->skip) {
|
||||
curwin->w_s->b_syn_sync_flags |= SF_CCOMMENT;
|
||||
}
|
||||
@ -4886,12 +4886,12 @@ static void syn_cmd_sync(exarg_T *eap, int syncing)
|
||||
curwin->w_s->b_syn_sync_minlines = n;
|
||||
}
|
||||
}
|
||||
} else if (STRCMP(key, "FROMSTART") == 0) {
|
||||
} else if (strcmp(key, "FROMSTART") == 0) {
|
||||
if (!eap->skip) {
|
||||
curwin->w_s->b_syn_sync_minlines = MAXLNUM;
|
||||
curwin->w_s->b_syn_sync_maxlines = 0;
|
||||
}
|
||||
} else if (STRCMP(key, "LINECONT") == 0) {
|
||||
} else if (strcmp(key, "LINECONT") == 0) {
|
||||
if (*next_arg == NUL) { // missing pattern
|
||||
illegal = true;
|
||||
break;
|
||||
@ -4930,11 +4930,11 @@ static void syn_cmd_sync(exarg_T *eap, int syncing)
|
||||
next_arg = skipwhite(arg_end + 1);
|
||||
} else {
|
||||
eap->arg = next_arg;
|
||||
if (STRCMP(key, "MATCH") == 0) {
|
||||
if (strcmp(key, "MATCH") == 0) {
|
||||
syn_cmd_match(eap, true);
|
||||
} else if (STRCMP(key, "REGION") == 0) {
|
||||
} else if (strcmp(key, "REGION") == 0) {
|
||||
syn_cmd_region(eap, true);
|
||||
} else if (STRCMP(key, "CLEAR") == 0) {
|
||||
} else if (strcmp(key, "CLEAR") == 0) {
|
||||
syn_cmd_clear(eap, true);
|
||||
} else {
|
||||
illegal = true;
|
||||
@ -4997,10 +4997,10 @@ static int get_id_list(char **const arg, const int keylen, int16_t **const list,
|
||||
for (end = p; *end && !ascii_iswhite(*end) && *end != ','; end++) {}
|
||||
char *const name = xmalloc((size_t)(end - p) + 3); // leave room for "^$"
|
||||
STRLCPY(name + 1, p, end - p + 1);
|
||||
if (STRCMP(name + 1, "ALLBUT") == 0
|
||||
|| STRCMP(name + 1, "ALL") == 0
|
||||
|| STRCMP(name + 1, "TOP") == 0
|
||||
|| STRCMP(name + 1, "CONTAINED") == 0) {
|
||||
if (strcmp(name + 1, "ALLBUT") == 0
|
||||
|| strcmp(name + 1, "ALL") == 0
|
||||
|| strcmp(name + 1, "TOP") == 0
|
||||
|| strcmp(name + 1, "CONTAINED") == 0) {
|
||||
if (TOUPPER_ASC(**arg) != 'C') {
|
||||
semsg(_("E407: %s not allowed here"), name + 1);
|
||||
failed = true;
|
||||
@ -5280,7 +5280,7 @@ void ex_syntax(exarg_T *eap)
|
||||
semsg(_("E410: Invalid :syntax subcommand: %s"), subcmd_name);
|
||||
break;
|
||||
}
|
||||
if (STRCMP(subcmd_name, subcommands[i].name) == 0) {
|
||||
if (strcmp(subcmd_name, subcommands[i].name) == 0) {
|
||||
eap->arg = skipwhite(subcmd_end);
|
||||
(subcommands[i].func)(eap, false);
|
||||
break;
|
||||
@ -5566,13 +5566,13 @@ int syn_get_foldlevel(win_T *wp, linenr_T lnum)
|
||||
// ":syntime".
|
||||
void ex_syntime(exarg_T *eap)
|
||||
{
|
||||
if (STRCMP(eap->arg, "on") == 0) {
|
||||
if (strcmp(eap->arg, "on") == 0) {
|
||||
syn_time_on = true;
|
||||
} else if (STRCMP(eap->arg, "off") == 0) {
|
||||
} else if (strcmp(eap->arg, "off") == 0) {
|
||||
syn_time_on = false;
|
||||
} else if (STRCMP(eap->arg, "clear") == 0) {
|
||||
} else if (strcmp(eap->arg, "clear") == 0) {
|
||||
syntime_clear();
|
||||
} else if (STRCMP(eap->arg, "report") == 0) {
|
||||
} else if (strcmp(eap->arg, "report") == 0) {
|
||||
syntime_report();
|
||||
} else {
|
||||
semsg(_(e_invarg2), eap->arg);
|
||||
|
@ -52,8 +52,7 @@
|
||||
// Structure to hold pointers to various items in a tag line.
|
||||
typedef struct tag_pointers {
|
||||
// filled in by parse_tag_line():
|
||||
char_u *tagname; // start of tag name (skip "file:")
|
||||
//
|
||||
char *tagname; // start of tag name (skip "file:")
|
||||
char_u *tagname_end; // char after tag name
|
||||
char_u *fname; // first char of file name
|
||||
char_u *fname_end; // char after file name
|
||||
@ -225,7 +224,7 @@ bool do_tag(char *tag, int type, int count, int forceit, int verbose)
|
||||
)) {
|
||||
if (g_do_tagpreview != 0) {
|
||||
if (ptag_entry.tagname != NULL
|
||||
&& STRCMP(ptag_entry.tagname, tag) == 0) {
|
||||
&& strcmp(ptag_entry.tagname, tag) == 0) {
|
||||
// Jumping to same tag: keep the current match, so that
|
||||
// the CursorHold autocommand example works.
|
||||
cur_match = ptag_entry.cur_match;
|
||||
@ -429,7 +428,7 @@ bool do_tag(char *tag, int type, int count, int forceit, int verbose)
|
||||
} else {
|
||||
name = tag;
|
||||
}
|
||||
other_name = (tagmatchname == NULL || STRCMP(tagmatchname, name) != 0);
|
||||
other_name = (tagmatchname == NULL || strcmp(tagmatchname, name) != 0);
|
||||
if (new_tag
|
||||
|| (cur_match >= num_matches && max_num_matches != MAXCOL)
|
||||
|| other_name) {
|
||||
@ -487,7 +486,7 @@ bool do_tag(char *tag, int type, int count, int forceit, int verbose)
|
||||
parse_match(matches[j], &tagp);
|
||||
for (i = idx; i < new_num_matches; i++) {
|
||||
parse_match(new_matches[i], &tagp2);
|
||||
if (STRCMP(tagp.tagname, tagp2.tagname) == 0) {
|
||||
if (strcmp(tagp.tagname, tagp2.tagname) == 0) {
|
||||
char_u *p = (char_u *)new_matches[i];
|
||||
for (k = i; k > idx; k--) {
|
||||
new_matches[k] = new_matches[k - 1];
|
||||
@ -683,7 +682,7 @@ static void print_tag_list(int new_tag, int use_tagstack, int num_matches, char
|
||||
// Assume that the first match indicates how long the tags can
|
||||
// be, and align the file names to that.
|
||||
parse_match(matches[0], &tagp);
|
||||
taglen = (int)(tagp.tagname_end - tagp.tagname + 2);
|
||||
taglen = (int)(tagp.tagname_end - (char_u *)tagp.tagname + 2);
|
||||
if (taglen < 18) {
|
||||
taglen = 18;
|
||||
}
|
||||
@ -719,8 +718,8 @@ static void print_tag_list(int new_tag, int use_tagstack, int num_matches, char
|
||||
(int)(tagp.tagkind_end - tagp.tagkind));
|
||||
}
|
||||
msg_advance(13);
|
||||
msg_outtrans_len_attr((char *)tagp.tagname,
|
||||
(int)(tagp.tagname_end - tagp.tagname),
|
||||
msg_outtrans_len_attr(tagp.tagname,
|
||||
(int)(tagp.tagname_end - (char_u *)tagp.tagname),
|
||||
HL_ATTR(HLF_T));
|
||||
msg_putchar(' ');
|
||||
taglen_advance(taglen);
|
||||
@ -877,7 +876,7 @@ static int add_llist_tags(char_u *tag, int num_matches, char **matches)
|
||||
parse_match(matches[i], &tagp);
|
||||
|
||||
// Save the tag name
|
||||
len = (int)(tagp.tagname_end - tagp.tagname);
|
||||
len = (int)(tagp.tagname_end - (char_u *)tagp.tagname);
|
||||
if (len > 128) {
|
||||
len = 128;
|
||||
}
|
||||
@ -1191,7 +1190,7 @@ static int find_tagfunc_tags(char_u *pat, garray_T *ga, int *match_count, int fl
|
||||
res_kind = NULL;
|
||||
|
||||
TV_DICT_ITER(TV_LIST_ITEM_TV(li)->vval.v_dict, di, {
|
||||
const char_u *dict_key = di->di_key;
|
||||
const char *dict_key = (char *)di->di_key;
|
||||
typval_T *tv = &di->di_tv;
|
||||
|
||||
if (tv->v_type != VAR_STRING || tv->vval.v_string == NULL) {
|
||||
@ -1199,20 +1198,20 @@ static int find_tagfunc_tags(char_u *pat, garray_T *ga, int *match_count, int fl
|
||||
}
|
||||
|
||||
len += strlen(tv->vval.v_string) + 1; // Space for "\tVALUE"
|
||||
if (!STRCMP(dict_key, "name")) {
|
||||
if (!strcmp(dict_key, "name")) {
|
||||
res_name = tv->vval.v_string;
|
||||
continue;
|
||||
}
|
||||
if (!STRCMP(dict_key, "filename")) {
|
||||
if (!strcmp(dict_key, "filename")) {
|
||||
res_fname = (char_u *)tv->vval.v_string;
|
||||
continue;
|
||||
}
|
||||
if (!STRCMP(dict_key, "cmd")) {
|
||||
if (!strcmp(dict_key, "cmd")) {
|
||||
res_cmd = (char_u *)tv->vval.v_string;
|
||||
continue;
|
||||
}
|
||||
has_extra = 1;
|
||||
if (!STRCMP(dict_key, "kind")) {
|
||||
if (!strcmp(dict_key, "kind")) {
|
||||
res_kind = (char_u *)tv->vval.v_string;
|
||||
continue;
|
||||
}
|
||||
@ -1260,22 +1259,22 @@ static int find_tagfunc_tags(char_u *pat, garray_T *ga, int *match_count, int fl
|
||||
}
|
||||
|
||||
TV_DICT_ITER(TV_LIST_ITEM_TV(li)->vval.v_dict, di, {
|
||||
const char_u *dict_key = di->di_key;
|
||||
const char *dict_key = (char *)di->di_key;
|
||||
typval_T *tv = &di->di_tv;
|
||||
if (tv->v_type != VAR_STRING || tv->vval.v_string == NULL) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!STRCMP(dict_key, "name")) {
|
||||
if (!strcmp(dict_key, "name")) {
|
||||
continue;
|
||||
}
|
||||
if (!STRCMP(dict_key, "filename")) {
|
||||
if (!strcmp(dict_key, "filename")) {
|
||||
continue;
|
||||
}
|
||||
if (!STRCMP(dict_key, "cmd")) {
|
||||
if (!strcmp(dict_key, "cmd")) {
|
||||
continue;
|
||||
}
|
||||
if (!STRCMP(dict_key, "kind")) {
|
||||
if (!strcmp(dict_key, "kind")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -1814,7 +1813,7 @@ parse_line:
|
||||
// This speeds up tag searching a lot!
|
||||
if (orgpat.headlen) {
|
||||
CLEAR_FIELD(tagp);
|
||||
tagp.tagname = lbuf;
|
||||
tagp.tagname = (char *)lbuf;
|
||||
tagp.tagname_end = (char_u *)vim_strchr((char *)lbuf, TAB);
|
||||
if (tagp.tagname_end == NULL) {
|
||||
// Corrupted tag line.
|
||||
@ -1824,7 +1823,7 @@ parse_line:
|
||||
|
||||
// Skip this line if the length of the tag is different and
|
||||
// there is no regexp, or the tag is too short.
|
||||
cmplen = (int)(tagp.tagname_end - tagp.tagname);
|
||||
cmplen = (int)(tagp.tagname_end - (char_u *)tagp.tagname);
|
||||
if (p_tl != 0 && cmplen > p_tl) { // adjust for 'taglength'
|
||||
cmplen = (int)p_tl;
|
||||
}
|
||||
@ -1846,7 +1845,7 @@ parse_line:
|
||||
|
||||
// Compare the current tag with the searched tag.
|
||||
if (sortic) {
|
||||
tagcmp = tag_strnicmp(tagp.tagname, orgpat.head,
|
||||
tagcmp = tag_strnicmp((char_u *)tagp.tagname, orgpat.head,
|
||||
(size_t)cmplen);
|
||||
} else {
|
||||
tagcmp = STRNCMP(tagp.tagname, orgpat.head, cmplen);
|
||||
@ -1877,7 +1876,7 @@ parse_line:
|
||||
search_info.low_char =
|
||||
TOUPPER_ASC(tagp.tagname[0]);
|
||||
} else {
|
||||
search_info.low_char = tagp.tagname[0];
|
||||
search_info.low_char = (uint8_t)tagp.tagname[0];
|
||||
}
|
||||
continue;
|
||||
}
|
||||
@ -1889,7 +1888,7 @@ parse_line:
|
||||
search_info.high_char =
|
||||
TOUPPER_ASC(tagp.tagname[0]);
|
||||
} else {
|
||||
search_info.high_char = tagp.tagname[0];
|
||||
search_info.high_char = (uint8_t)tagp.tagname[0];
|
||||
}
|
||||
continue;
|
||||
}
|
||||
@ -1898,7 +1897,7 @@ parse_line:
|
||||
break;
|
||||
} else if (state == TS_SKIP_BACK) {
|
||||
assert(cmplen >= 0);
|
||||
if (mb_strnicmp((char *)tagp.tagname, (char *)orgpat.head, (size_t)cmplen) != 0) {
|
||||
if (mb_strnicmp(tagp.tagname, (char *)orgpat.head, (size_t)cmplen) != 0) {
|
||||
state = TS_STEP_FORWARD;
|
||||
} else {
|
||||
// Have to skip back more. Restore the curr_offset
|
||||
@ -1908,7 +1907,7 @@ parse_line:
|
||||
continue;
|
||||
} else if (state == TS_STEP_FORWARD) {
|
||||
assert(cmplen >= 0);
|
||||
if (mb_strnicmp((char *)tagp.tagname, (char *)orgpat.head, (size_t)cmplen) != 0) {
|
||||
if (mb_strnicmp(tagp.tagname, (char *)orgpat.head, (size_t)cmplen) != 0) {
|
||||
if ((off_T)vim_ftell(fp) > search_info.match_offset) {
|
||||
break; // past last match
|
||||
} else {
|
||||
@ -1919,7 +1918,7 @@ parse_line:
|
||||
// skip this match if it can't match
|
||||
assert(cmplen >= 0);
|
||||
}
|
||||
if (mb_strnicmp((char *)tagp.tagname, (char *)orgpat.head, (size_t)cmplen) != 0) {
|
||||
if (mb_strnicmp(tagp.tagname, (char *)orgpat.head, (size_t)cmplen) != 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -1943,7 +1942,7 @@ parse_line:
|
||||
|
||||
// First try matching with the pattern literally (also when it is
|
||||
// a regexp).
|
||||
cmplen = (int)(tagp.tagname_end - tagp.tagname);
|
||||
cmplen = (int)(tagp.tagname_end - (char_u *)tagp.tagname);
|
||||
if (p_tl != 0 && cmplen > p_tl) { // adjust for 'taglength'
|
||||
cmplen = (int)p_tl;
|
||||
}
|
||||
@ -1953,7 +1952,7 @@ parse_line:
|
||||
} else {
|
||||
if (orgpat.regmatch.rm_ic) {
|
||||
assert(cmplen >= 0);
|
||||
match = mb_strnicmp((char *)tagp.tagname, (char *)orgpat.pat, (size_t)cmplen) == 0;
|
||||
match = mb_strnicmp(tagp.tagname, (char *)orgpat.pat, (size_t)cmplen) == 0;
|
||||
if (match) {
|
||||
match_no_ic = (STRNCMP(tagp.tagname, orgpat.pat,
|
||||
cmplen) == 0);
|
||||
@ -1970,12 +1969,12 @@ parse_line:
|
||||
|
||||
cc = *tagp.tagname_end;
|
||||
*tagp.tagname_end = NUL;
|
||||
match = vim_regexec(&orgpat.regmatch, (char *)tagp.tagname, (colnr_T)0);
|
||||
match = vim_regexec(&orgpat.regmatch, tagp.tagname, (colnr_T)0);
|
||||
if (match) {
|
||||
matchoff = (int)(orgpat.regmatch.startp[0] - tagp.tagname);
|
||||
matchoff = (int)(orgpat.regmatch.startp[0] - (char_u *)tagp.tagname);
|
||||
if (orgpat.regmatch.rm_ic) {
|
||||
orgpat.regmatch.rm_ic = false;
|
||||
match_no_ic = vim_regexec(&orgpat.regmatch, (char *)tagp.tagname, (colnr_T)0);
|
||||
match_no_ic = vim_regexec(&orgpat.regmatch, tagp.tagname, (colnr_T)0);
|
||||
orgpat.regmatch.rm_ic = true;
|
||||
}
|
||||
}
|
||||
@ -2029,7 +2028,7 @@ parse_line:
|
||||
// detecting duplicates.
|
||||
// The format is {tagname}@{lang}NUL{heuristic}NUL
|
||||
*tagp.tagname_end = NUL;
|
||||
len = (size_t)(tagp.tagname_end - tagp.tagname);
|
||||
len = (size_t)(tagp.tagname_end - (char_u *)tagp.tagname);
|
||||
mfp = xmalloc(sizeof(char) + len + 10 + ML_EXTRA + 1);
|
||||
|
||||
p = (char_u *)mfp;
|
||||
@ -2037,7 +2036,7 @@ parse_line:
|
||||
p[len] = '@';
|
||||
STRCPY(p + len + 1, help_lang);
|
||||
snprintf((char *)p + len + 1 + ML_EXTRA, STRLEN(p) + len + 1 + ML_EXTRA, "%06d",
|
||||
help_heuristic((char *)tagp.tagname,
|
||||
help_heuristic(tagp.tagname,
|
||||
match_re ? matchoff : 0, !match_no_ic)
|
||||
+ help_pri);
|
||||
|
||||
@ -2063,7 +2062,7 @@ parse_line:
|
||||
}
|
||||
get_it_again = false;
|
||||
} else {
|
||||
len = (size_t)(tagp.tagname_end - tagp.tagname);
|
||||
len = (size_t)(tagp.tagname_end - (char_u *)tagp.tagname);
|
||||
mfp = xmalloc(sizeof(char) + len + 1);
|
||||
STRLCPY(mfp, tagp.tagname, len + 1);
|
||||
|
||||
@ -2306,7 +2305,7 @@ int get_tagfname(tagname_T *tnp, int first, char *buf)
|
||||
simplify_filename((char_u *)buf);
|
||||
|
||||
for (int i = 0; i < tag_fnames.ga_len; i++) {
|
||||
if (STRCMP(buf, ((char **)(tag_fnames.ga_data))[i]) == 0) {
|
||||
if (strcmp(buf, ((char **)(tag_fnames.ga_data))[i]) == 0) {
|
||||
return FAIL; // avoid duplicate file names
|
||||
}
|
||||
}
|
||||
@ -2394,7 +2393,7 @@ static int parse_tag_line(char_u *lbuf, tagptrs_T *tagp)
|
||||
char_u *p;
|
||||
|
||||
// Isolate the tagname, from lbuf up to the first white
|
||||
tagp->tagname = lbuf;
|
||||
tagp->tagname = (char *)lbuf;
|
||||
p = (char_u *)vim_strchr((char *)lbuf, TAB);
|
||||
if (p == NULL) {
|
||||
return FAIL;
|
||||
@ -3015,7 +3014,7 @@ int expand_tags(int tagnames, char_u *pat, int *num_file, char ***file)
|
||||
size_t len;
|
||||
|
||||
parse_match((*file)[i], &t_p);
|
||||
len = (size_t)(t_p.tagname_end - t_p.tagname);
|
||||
len = (size_t)(t_p.tagname_end - (char_u *)t_p.tagname);
|
||||
if (len > name_buf_size - 3) {
|
||||
char_u *buf;
|
||||
|
||||
@ -3112,7 +3111,7 @@ int get_tags(list_T *list, char_u *pat, char_u *buf_fname)
|
||||
tv_list_append_dict(list, dict);
|
||||
|
||||
full_fname = tag_full_fname(&tp);
|
||||
if (add_tag_field(dict, "name", (char *)tp.tagname, (char *)tp.tagname_end) == FAIL
|
||||
if (add_tag_field(dict, "name", tp.tagname, (char *)tp.tagname_end) == FAIL
|
||||
|| add_tag_field(dict, "filename", (char *)full_fname, NULL) == FAIL
|
||||
|| add_tag_field(dict, "cmd", (char *)tp.command, (char *)tp.command_end) == FAIL
|
||||
|| add_tag_field(dict, "kind", (char *)tp.tagkind,
|
||||
|
@ -234,7 +234,7 @@ Terminal *terminal_open(buf_T *buf, TerminalOptions opts)
|
||||
set_option_value("wrap", false, NULL, OPT_LOCAL);
|
||||
set_option_value("list", false, NULL, OPT_LOCAL);
|
||||
if (buf->b_ffname != NULL) {
|
||||
buf_set_term_title(buf, buf->b_ffname, strlen((char *)buf->b_ffname));
|
||||
buf_set_term_title(buf, buf->b_ffname, strlen(buf->b_ffname));
|
||||
}
|
||||
RESET_BINDING(curwin);
|
||||
// Reset cursor in current window.
|
||||
@ -428,7 +428,7 @@ bool terminal_enter(void)
|
||||
long save_w_p_so = curwin->w_p_so;
|
||||
long save_w_p_siso = curwin->w_p_siso;
|
||||
if (curwin->w_p_cul && curwin->w_p_culopt_flags & CULOPT_NBR) {
|
||||
if (STRCMP(curwin->w_p_culopt, "number")) {
|
||||
if (strcmp(curwin->w_p_culopt, "number")) {
|
||||
save_w_p_culopt = curwin->w_p_culopt;
|
||||
curwin->w_p_culopt = xstrdup("number");
|
||||
}
|
||||
|
@ -419,7 +419,7 @@ static int assert_equalfile(typval_T *argvars)
|
||||
line2[lineidx] = NUL;
|
||||
ga_concat(&ga, " after \"");
|
||||
ga_concat(&ga, line1);
|
||||
if (STRCMP(line1, line2) != 0) {
|
||||
if (strcmp(line1, line2) != 0) {
|
||||
ga_concat(&ga, "\" vs \"");
|
||||
ga_concat(&ga, line2);
|
||||
}
|
||||
|
@ -567,7 +567,7 @@ int u_savecommon(buf_T *buf, linenr_T top, linenr_T bot, linenr_T newbot, int re
|
||||
u_freeentry(uep, i);
|
||||
return FAIL;
|
||||
}
|
||||
uep->ue_array[i] = (char_u *)u_save_line_buf(buf, lnum++);
|
||||
uep->ue_array[i] = u_save_line_buf(buf, lnum++);
|
||||
}
|
||||
} else {
|
||||
uep->ue_array = NULL;
|
||||
@ -1038,7 +1038,7 @@ static bool serialize_uep(bufinfo_T *bi, u_entry_T *uep)
|
||||
if (!undo_write_bytes(bi, len, 4)) {
|
||||
return false;
|
||||
}
|
||||
if (len > 0 && !undo_write(bi, uep->ue_array[i], len)) {
|
||||
if (len > 0 && !undo_write(bi, (char_u *)uep->ue_array[i], len)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -1064,7 +1064,7 @@ static u_entry_T *unserialize_uep(bufinfo_T *bi, bool *error, const char *file_n
|
||||
memset(array, 0, sizeof(char_u *) * (size_t)uep->ue_size);
|
||||
}
|
||||
}
|
||||
uep->ue_array = array;
|
||||
uep->ue_array = (char **)array;
|
||||
|
||||
for (size_t i = 0; i < (size_t)uep->ue_size; i++) {
|
||||
int line_len = undo_read_4c(bi);
|
||||
@ -2283,7 +2283,7 @@ static void u_undoredo(int undo, bool do_buf_event)
|
||||
// line.
|
||||
long i;
|
||||
for (i = 0; i < newsize && i < oldsize; i++) {
|
||||
if (STRCMP(uep->ue_array[i], ml_get(top + 1 + (linenr_T)i)) != 0) {
|
||||
if (strcmp(uep->ue_array[i], ml_get(top + 1 + (linenr_T)i)) != 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -2327,9 +2327,9 @@ static void u_undoredo(int undo, bool do_buf_event)
|
||||
// If the file is empty, there is an empty line 1 that we
|
||||
// should get rid of, by replacing it with the new line
|
||||
if (empty_buffer && lnum == 0) {
|
||||
ml_replace((linenr_T)1, (char *)uep->ue_array[i], true);
|
||||
ml_replace((linenr_T)1, uep->ue_array[i], true);
|
||||
} else {
|
||||
ml_append(lnum, (char *)uep->ue_array[i], (colnr_T)0, false);
|
||||
ml_append(lnum, uep->ue_array[i], (colnr_T)0, false);
|
||||
}
|
||||
xfree(uep->ue_array[i]);
|
||||
}
|
||||
@ -2363,7 +2363,7 @@ static void u_undoredo(int undo, bool do_buf_event)
|
||||
u_newcount += newsize;
|
||||
u_oldcount += oldsize;
|
||||
uep->ue_size = oldsize;
|
||||
uep->ue_array = newarray;
|
||||
uep->ue_array = (char **)newarray;
|
||||
uep->ue_bot = top + newsize + 1;
|
||||
|
||||
// insert this entry in front of the new entry list
|
||||
@ -2744,7 +2744,7 @@ void u_find_first_changed(void)
|
||||
linenr_T lnum;
|
||||
for (lnum = 1; lnum < curbuf->b_ml.ml_line_count
|
||||
&& lnum <= uep->ue_size; lnum++) {
|
||||
if (STRCMP(ml_get_buf(curbuf, lnum, false), uep->ue_array[lnum - 1]) != 0) {
|
||||
if (strcmp(ml_get_buf(curbuf, lnum, false), uep->ue_array[lnum - 1]) != 0) {
|
||||
clearpos(&(uhp->uh_cursor));
|
||||
uhp->uh_cursor.lnum = lnum;
|
||||
return;
|
||||
|
@ -21,11 +21,11 @@ typedef struct {
|
||||
|
||||
typedef struct u_entry u_entry_T;
|
||||
struct u_entry {
|
||||
u_entry_T *ue_next; // pointer to next entry in list
|
||||
u_entry_T *ue_next; // pointer to next entry in list
|
||||
linenr_T ue_top; // number of line above undo block
|
||||
linenr_T ue_bot; // number of line below undo block
|
||||
linenr_T ue_lcount; // linecount when u_save called
|
||||
char_u **ue_array; // array of lines in undo block
|
||||
char **ue_array; // array of lines in undo block
|
||||
long ue_size; // number of lines in ue_array
|
||||
#ifdef U_DEBUG
|
||||
int ue_magic; // magic number to check allocation
|
||||
|
@ -280,7 +280,7 @@ char *get_user_commands(expand_T *xp FUNC_ATTR_UNUSED, int idx)
|
||||
char *name = USER_CMD(idx)->uc_name;
|
||||
|
||||
for (int i = 0; i < buf->b_ucmds.ga_len; i++) {
|
||||
if (STRCMP(name, USER_CMD_GA(&buf->b_ucmds, i)->uc_name) == 0) {
|
||||
if (strcmp(name, USER_CMD_GA(&buf->b_ucmds, i)->uc_name) == 0) {
|
||||
// global command is overruled by buffer-local one
|
||||
return "";
|
||||
}
|
||||
@ -1006,7 +1006,7 @@ void ex_delcommand(exarg_T *eap)
|
||||
for (;;) {
|
||||
for (i = 0; i < gap->ga_len; i++) {
|
||||
cmd = USER_CMD_GA(gap, i);
|
||||
res = STRCMP(arg, cmd->uc_name);
|
||||
res = strcmp(arg, cmd->uc_name);
|
||||
if (res <= 0) {
|
||||
break;
|
||||
}
|
||||
|
@ -205,7 +205,6 @@ enum { FOLD_TEXT_LEN = 51, }; //!< buffer size for get_foldtext()
|
||||
#define STRCPY(d, s) strcpy((char *)(d), (char *)(s))
|
||||
#define STRNCPY(d, s, n) strncpy((char *)(d), (char *)(s), (size_t)(n))
|
||||
#define STRLCPY(d, s, n) xstrlcpy((char *)(d), (char *)(s), (size_t)(n))
|
||||
#define STRCMP(d, s) strcmp((char *)(d), (char *)(s))
|
||||
#define STRNCMP(d, s, n) strncmp((char *)(d), (char *)(s), (size_t)(n))
|
||||
#ifdef HAVE_STRCASECMP
|
||||
# define STRICMP(d, s) strcasecmp((char *)(d), (char *)(s))
|
||||
|
@ -45,8 +45,8 @@ typedef struct {
|
||||
do { \
|
||||
win_T *const wp_ = (wp); \
|
||||
const pos_T curpos_ = wp_->w_cursor; \
|
||||
char_u cwd_[MAXPATHL]; \
|
||||
char_u autocwd_[MAXPATHL]; \
|
||||
char cwd_[MAXPATHL]; \
|
||||
char autocwd_[MAXPATHL]; \
|
||||
bool apply_acd_ = false; \
|
||||
int cwd_status_ = FAIL; \
|
||||
/* Getting and setting directory can be slow on some systems, only do */ \
|
||||
@ -56,13 +56,13 @@ typedef struct {
|
||||
&& (curwin->w_localdir != NULL || wp->w_localdir != NULL \
|
||||
|| (curtab != tp && (curtab->tp_localdir != NULL || tp->tp_localdir != NULL)) \
|
||||
|| p_acd)) { \
|
||||
cwd_status_ = os_dirname(cwd_, MAXPATHL); \
|
||||
cwd_status_ = os_dirname((char_u *)cwd_, MAXPATHL); \
|
||||
} \
|
||||
/* If 'acd' is set, check we are using that directory. If yes, then */ \
|
||||
/* apply 'acd' afterwards, otherwise restore the current directory. */ \
|
||||
if (cwd_status_ == OK && p_acd) { \
|
||||
do_autochdir(); \
|
||||
apply_acd_ = os_dirname(autocwd_, MAXPATHL) == OK && STRCMP(cwd_, autocwd_) == 0; \
|
||||
apply_acd_ = os_dirname((char_u *)autocwd_, MAXPATHL) == OK && strcmp(cwd_, autocwd_) == 0; \
|
||||
} \
|
||||
switchwin_T switchwin_; \
|
||||
if (switch_win_noblock(&switchwin_, wp_, (tp), true) == OK) { \
|
||||
@ -73,7 +73,7 @@ typedef struct {
|
||||
if (apply_acd_) { \
|
||||
do_autochdir(); \
|
||||
} else if (cwd_status_ == OK) { \
|
||||
os_chdir((char *)cwd_); \
|
||||
os_chdir(cwd_); \
|
||||
} \
|
||||
/* Update the status line if the cursor moved. */ \
|
||||
if (win_valid(wp_) && !equalpos(curpos_, wp_->w_cursor)) { \
|
||||
|
Loading…
Reference in New Issue
Block a user