mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
lint
This commit is contained in:
parent
0b9e57aca1
commit
80f40f0203
@ -805,9 +805,9 @@ free_buffer_stuff(
|
||||
vars_clear(&buf->b_vars->dv_hashtab); // free all internal variables
|
||||
hash_init(&buf->b_vars->dv_hashtab);
|
||||
buf_init_changedtick(buf);
|
||||
uc_clear(&buf->b_ucmds); // clear local user commands
|
||||
buf_delete_signs(buf, (char_u *)"*"); // delete any signs
|
||||
bufhl_clear_all(buf); // delete any highligts
|
||||
uc_clear(&buf->b_ucmds); // clear local user commands
|
||||
buf_delete_signs(buf, (char_u *)"*"); // delete any signs
|
||||
bufhl_clear_all(buf); // delete any highligts
|
||||
map_clear_int(buf, MAP_ALL_MODES, true, false); // clear local mappings
|
||||
map_clear_int(buf, MAP_ALL_MODES, true, true); // clear local abbrevs
|
||||
XFREE_CLEAR(buf->b_start_fenc);
|
||||
|
@ -769,15 +769,15 @@ struct file_buffer {
|
||||
* spell buffer - used for spell info, never displayed and doesn't have a
|
||||
* file name.
|
||||
*/
|
||||
bool b_help; /* TRUE for help file buffer (when set b_p_bt
|
||||
is "help") */
|
||||
bool b_spell; /* True for a spell file buffer, most fields
|
||||
are not used! Use the B_SPELL macro to
|
||||
access b_spell without #ifdef. */
|
||||
bool b_help; // TRUE for help file buffer (when set b_p_bt
|
||||
// is "help")
|
||||
bool b_spell; // True for a spell file buffer, most fields
|
||||
// are not used! Use the B_SPELL macro to
|
||||
// access b_spell without #ifdef.
|
||||
|
||||
synblock_T b_s; /* Info related to syntax highlighting. w_s
|
||||
* normally points to this, but some windows
|
||||
* may use a different synblock_T. */
|
||||
synblock_T b_s; // Info related to syntax highlighting. w_s
|
||||
// normally points to this, but some windows
|
||||
// may use a different synblock_T.
|
||||
|
||||
signlist_T *b_signlist; // list of signs to draw
|
||||
int b_signcols_max; // cached maximum number of sign columns
|
||||
@ -1144,12 +1144,12 @@ struct window_S {
|
||||
|
||||
int w_cline_row; /* starting row of the cursor line */
|
||||
|
||||
colnr_T w_virtcol; /* column number of the cursor in the
|
||||
buffer line, as opposed to the column
|
||||
number we're at on the screen. This
|
||||
makes a difference on lines which span
|
||||
more than one screen line or when
|
||||
w_leftcol is non-zero */
|
||||
colnr_T w_virtcol; // column number of the cursor in the
|
||||
// buffer line, as opposed to the column
|
||||
// number we're at on the screen. This
|
||||
// makes a difference on lines which span
|
||||
// more than one screen line or when
|
||||
// w_leftcol is non-zero
|
||||
|
||||
/*
|
||||
* w_wrow and w_wcol specify the cursor position in the window.
|
||||
|
@ -179,9 +179,9 @@ static int compl_no_insert = FALSE; /* FALSE: select & insert
|
||||
static int compl_no_select = FALSE; /* FALSE: select & insert
|
||||
TRUE: noselect */
|
||||
|
||||
static int compl_used_match; /* Selected one of the matches. When
|
||||
FALSE the match was edited or using
|
||||
the longest common string. */
|
||||
static int compl_used_match; // Selected one of the matches. When
|
||||
// FALSE the match was edited or using
|
||||
// the longest common string.
|
||||
|
||||
static int compl_was_interrupted = FALSE; /* didn't finish finding
|
||||
completions. */
|
||||
@ -2599,8 +2599,9 @@ void ins_compl_show_pum(void)
|
||||
do {
|
||||
if ((compl->cp_flags & ORIGINAL_TEXT) == 0
|
||||
&& (compl_leader == NULL
|
||||
|| ins_compl_equal(compl, compl_leader, lead_len)))
|
||||
++compl_match_arraysize;
|
||||
|| ins_compl_equal(compl, compl_leader, lead_len))) {
|
||||
compl_match_arraysize++;
|
||||
}
|
||||
compl = compl->cp_next;
|
||||
} while (compl != NULL && compl != compl_first_match);
|
||||
if (compl_match_arraysize == 0)
|
||||
|
459
src/nvim/eval.c
459
src/nvim/eval.c
@ -1114,22 +1114,17 @@ static void restore_vimvar(int idx, typval_T *save_tv)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If there is a window for "curbuf", make it the current window.
|
||||
*/
|
||||
static void
|
||||
find_win_for_curbuf(void)
|
||||
/// If there is a window for "curbuf", make it the current window.
|
||||
static void find_win_for_curbuf(void)
|
||||
{
|
||||
wininfo_T *wip;
|
||||
wininfo_T *wip;
|
||||
|
||||
for (wip = curbuf->b_wininfo; wip != NULL; wip = wip->wi_next)
|
||||
{
|
||||
if (wip->wi_win != NULL)
|
||||
{
|
||||
curwin = wip->wi_win;
|
||||
break;
|
||||
}
|
||||
for (wip = curbuf->b_wininfo; wip != NULL; wip = wip->wi_next) {
|
||||
if (wip->wi_win != NULL) {
|
||||
curwin = wip->wi_win;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1144,7 +1139,7 @@ list_T *eval_spell_expr(char_u *badword, char_u *expr)
|
||||
list_T *list = NULL;
|
||||
char_u *p = skipwhite(expr);
|
||||
|
||||
/* Set "v:val" to the bad word. */
|
||||
// Set "v:val" to the bad word.
|
||||
prepare_vimvar(VV_VAL, &save_val);
|
||||
vimvars[VV_VAL].vv_type = VAR_STRING;
|
||||
vimvars[VV_VAL].vv_str = badword;
|
||||
@ -7202,7 +7197,7 @@ static buf_T *tv_get_buf(typval_T *tv, int curtab_only)
|
||||
if (name[0] == '$' && name[1] == NUL)
|
||||
return lastbuf;
|
||||
|
||||
/* Ignore 'magic' and 'cpoptions' here to make scripts portable */
|
||||
// Ignore 'magic' and 'cpoptions' here to make scripts portable
|
||||
save_magic = p_magic;
|
||||
p_magic = TRUE;
|
||||
save_cpo = p_cpo;
|
||||
@ -7214,28 +7209,27 @@ static buf_T *tv_get_buf(typval_T *tv, int curtab_only)
|
||||
p_magic = save_magic;
|
||||
p_cpo = save_cpo;
|
||||
|
||||
/* If not found, try expanding the name, like done for bufexists(). */
|
||||
if (buf == NULL)
|
||||
// If not found, try expanding the name, like done for bufexists().
|
||||
if (buf == NULL) {
|
||||
buf = find_buffer(tv);
|
||||
}
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the buffer from "arg" and give an error and return NULL if it is not
|
||||
* valid.
|
||||
*/
|
||||
static buf_T *
|
||||
get_buf_arg(typval_T *arg)
|
||||
/// Get the buffer from "arg" and give an error and return NULL if it is not
|
||||
/// valid.
|
||||
static buf_T * get_buf_arg(typval_T *arg)
|
||||
{
|
||||
buf_T *buf;
|
||||
buf_T *buf;
|
||||
|
||||
++emsg_off;
|
||||
buf = tv_get_buf(arg, FALSE);
|
||||
--emsg_off;
|
||||
if (buf == NULL)
|
||||
EMSG2(_("E158: Invalid buffer name: %s"), tv_get_string(arg));
|
||||
return buf;
|
||||
emsg_off++;
|
||||
buf = tv_get_buf(arg, false);
|
||||
emsg_off--;
|
||||
if (buf == NULL) {
|
||||
EMSG2(_("E158: Invalid buffer name: %s"), tv_get_string(arg));
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -8035,87 +8029,83 @@ static void f_dictwatcherdel(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
callback_free(&callback);
|
||||
}
|
||||
|
||||
/*
|
||||
* "deletebufline()" function
|
||||
*/
|
||||
static void
|
||||
f_deletebufline(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
/// "deletebufline()" function
|
||||
static void f_deletebufline(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
{
|
||||
buf_T *buf;
|
||||
linenr_T first, last;
|
||||
linenr_T lnum;
|
||||
long count;
|
||||
int is_curbuf;
|
||||
buf_T *curbuf_save = NULL;
|
||||
win_T *curwin_save = NULL;
|
||||
buf_T *buf;
|
||||
linenr_T first, last;
|
||||
linenr_T lnum;
|
||||
long count;
|
||||
int is_curbuf;
|
||||
buf_T *curbuf_save = NULL;
|
||||
win_T *curwin_save = NULL;
|
||||
|
||||
buf = tv_get_buf(&argvars[0], FALSE);
|
||||
if (buf == NULL)
|
||||
{
|
||||
rettv->vval.v_number = 1; /* FAIL */
|
||||
return;
|
||||
buf = tv_get_buf(&argvars[0], false);
|
||||
if (buf == NULL) {
|
||||
rettv->vval.v_number = 1; // FAIL
|
||||
return;
|
||||
}
|
||||
is_curbuf = buf == curbuf;
|
||||
|
||||
first = tv_get_lnum_buf(&argvars[1], buf);
|
||||
if (argvars[2].v_type != VAR_UNKNOWN) {
|
||||
last = tv_get_lnum_buf(&argvars[2], buf);
|
||||
} else {
|
||||
last = first;
|
||||
}
|
||||
|
||||
if (buf->b_ml.ml_mfp == NULL || first < 1
|
||||
|| first > buf->b_ml.ml_line_count || last < first) {
|
||||
rettv->vval.v_number = 1; // FAIL
|
||||
return;
|
||||
}
|
||||
|
||||
if (!is_curbuf) {
|
||||
curbuf_save = curbuf;
|
||||
curwin_save = curwin;
|
||||
curbuf = buf;
|
||||
find_win_for_curbuf();
|
||||
}
|
||||
if (last > curbuf->b_ml.ml_line_count) {
|
||||
last = curbuf->b_ml.ml_line_count;
|
||||
}
|
||||
count = last - first + 1;
|
||||
|
||||
// When coming here from Insert mode, sync undo, so that this can be
|
||||
// undone separately from what was previously inserted.
|
||||
if (u_sync_once == 2) {
|
||||
u_sync_once = 1; // notify that u_sync() was called
|
||||
u_sync(true);
|
||||
}
|
||||
|
||||
if (u_save(first - 1, last + 1) == FAIL) {
|
||||
rettv->vval.v_number = 1; // FAIL
|
||||
return;
|
||||
}
|
||||
|
||||
for (lnum = first; lnum <= last; lnum++) {
|
||||
ml_delete(first, true);
|
||||
}
|
||||
|
||||
FOR_ALL_TAB_WINDOWS(tp, wp) {
|
||||
if (wp->w_buffer == buf) {
|
||||
if (wp->w_cursor.lnum > last) {
|
||||
wp->w_cursor.lnum -= count;
|
||||
} else if (wp->w_cursor.lnum> first) {
|
||||
wp->w_cursor.lnum = first;
|
||||
}
|
||||
if (wp->w_cursor.lnum > wp->w_buffer->b_ml.ml_line_count) {
|
||||
wp->w_cursor.lnum = wp->w_buffer->b_ml.ml_line_count;
|
||||
}
|
||||
}
|
||||
is_curbuf = buf == curbuf;
|
||||
}
|
||||
check_cursor_col();
|
||||
deleted_lines_mark(first, count);
|
||||
|
||||
first = tv_get_lnum_buf(&argvars[1], buf);
|
||||
if (argvars[2].v_type != VAR_UNKNOWN)
|
||||
last = tv_get_lnum_buf(&argvars[2], buf);
|
||||
else
|
||||
last = first;
|
||||
|
||||
if (buf->b_ml.ml_mfp == NULL || first < 1
|
||||
|| first > buf->b_ml.ml_line_count || last < first)
|
||||
{
|
||||
rettv->vval.v_number = 1; /* FAIL */
|
||||
return;
|
||||
}
|
||||
|
||||
if (!is_curbuf)
|
||||
{
|
||||
curbuf_save = curbuf;
|
||||
curwin_save = curwin;
|
||||
curbuf = buf;
|
||||
find_win_for_curbuf();
|
||||
}
|
||||
if (last > curbuf->b_ml.ml_line_count)
|
||||
last = curbuf->b_ml.ml_line_count;
|
||||
count = last - first + 1;
|
||||
|
||||
// When coming here from Insert mode, sync undo, so that this can be
|
||||
// undone separately from what was previously inserted.
|
||||
if (u_sync_once == 2)
|
||||
{
|
||||
u_sync_once = 1; // notify that u_sync() was called
|
||||
u_sync(TRUE);
|
||||
}
|
||||
|
||||
if (u_save(first - 1, last + 1) == FAIL)
|
||||
{
|
||||
rettv->vval.v_number = 1; /* FAIL */
|
||||
return;
|
||||
}
|
||||
|
||||
for (lnum = first; lnum <= last; ++lnum)
|
||||
ml_delete(first, TRUE);
|
||||
|
||||
FOR_ALL_TAB_WINDOWS(tp, wp)
|
||||
if (wp->w_buffer == buf)
|
||||
{
|
||||
if (wp->w_cursor.lnum > last)
|
||||
wp->w_cursor.lnum -= count;
|
||||
else if (wp->w_cursor.lnum> first)
|
||||
wp->w_cursor.lnum = first;
|
||||
if (wp->w_cursor.lnum > wp->w_buffer->b_ml.ml_line_count)
|
||||
wp->w_cursor.lnum = wp->w_buffer->b_ml.ml_line_count;
|
||||
}
|
||||
check_cursor_col();
|
||||
deleted_lines_mark(first, count);
|
||||
|
||||
if (!is_curbuf)
|
||||
{
|
||||
curbuf = curbuf_save;
|
||||
curwin = curwin_save;
|
||||
}
|
||||
if (!is_curbuf) {
|
||||
curbuf = curbuf_save;
|
||||
curwin = curwin_save;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ -15539,92 +15529,89 @@ static void f_shiftwidth(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
rettv->vval.v_number = get_sw_value(curbuf);
|
||||
}
|
||||
|
||||
/*
|
||||
* "sign_define()" function
|
||||
*/
|
||||
/// "sign_define()" function
|
||||
static void f_sign_define(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
{
|
||||
const char *name;
|
||||
dict_T *dict;
|
||||
char *icon = NULL;
|
||||
char *linehl = NULL;
|
||||
char *text = NULL;
|
||||
char *texthl = NULL;
|
||||
char *numhl = NULL;
|
||||
const char *name;
|
||||
dict_T *dict;
|
||||
char *icon = NULL;
|
||||
char *linehl = NULL;
|
||||
char *text = NULL;
|
||||
char *texthl = NULL;
|
||||
char *numhl = NULL;
|
||||
|
||||
rettv->vval.v_number = -1;
|
||||
rettv->vval.v_number = -1;
|
||||
|
||||
name = tv_get_string_chk(&argvars[0]);
|
||||
if (name == NULL)
|
||||
return;
|
||||
name = tv_get_string_chk(&argvars[0]);
|
||||
if (name == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (argvars[1].v_type != VAR_UNKNOWN)
|
||||
{
|
||||
if (argvars[1].v_type != VAR_DICT)
|
||||
{
|
||||
EMSG(_(e_dictreq));
|
||||
return;
|
||||
}
|
||||
|
||||
// sign attributes
|
||||
dict = argvars[1].vval.v_dict;
|
||||
if (tv_dict_find(dict, "icon", -1) != NULL)
|
||||
icon = tv_dict_get_string(dict, "icon", TRUE);
|
||||
if (tv_dict_find(dict, "linehl", -1) != NULL)
|
||||
linehl = tv_dict_get_string(dict, "linehl", TRUE);
|
||||
if (tv_dict_find(dict, "text", -1) != NULL)
|
||||
text = tv_dict_get_string(dict, "text", TRUE);
|
||||
if (tv_dict_find(dict, "texthl", -1) != NULL)
|
||||
texthl = tv_dict_get_string(dict, "texthl", TRUE);
|
||||
if (tv_dict_find(dict, "numhl", -1) != NULL)
|
||||
numhl = tv_dict_get_string(dict, "numhl", TRUE);
|
||||
if (argvars[1].v_type != VAR_UNKNOWN) {
|
||||
if (argvars[1].v_type != VAR_DICT) {
|
||||
EMSG(_(e_dictreq));
|
||||
return;
|
||||
}
|
||||
|
||||
if (sign_define_by_name((char_u *)name, (char_u *)icon, (char_u *)linehl,
|
||||
(char_u *)text, (char_u *)texthl, (char_u *)numhl)
|
||||
== OK) {
|
||||
rettv->vval.v_number = 0;
|
||||
// sign attributes
|
||||
dict = argvars[1].vval.v_dict;
|
||||
if (tv_dict_find(dict, "icon", -1) != NULL) {
|
||||
icon = tv_dict_get_string(dict, "icon", true);
|
||||
}
|
||||
if (tv_dict_find(dict, "linehl", -1) != NULL) {
|
||||
linehl = tv_dict_get_string(dict, "linehl", true);
|
||||
}
|
||||
if (tv_dict_find(dict, "text", -1) != NULL) {
|
||||
text = tv_dict_get_string(dict, "text", true);
|
||||
}
|
||||
if (tv_dict_find(dict, "texthl", -1) != NULL) {
|
||||
texthl = tv_dict_get_string(dict, "texthl", true);
|
||||
}
|
||||
if (tv_dict_find(dict, "numhl", -1) != NULL) {
|
||||
numhl = tv_dict_get_string(dict, "numhl", true);
|
||||
}
|
||||
}
|
||||
|
||||
xfree(icon);
|
||||
xfree(linehl);
|
||||
xfree(text);
|
||||
xfree(texthl);
|
||||
if (sign_define_by_name((char_u *)name, (char_u *)icon, (char_u *)linehl,
|
||||
(char_u *)text, (char_u *)texthl, (char_u *)numhl)
|
||||
== OK) {
|
||||
rettv->vval.v_number = 0;
|
||||
}
|
||||
|
||||
xfree(icon);
|
||||
xfree(linehl);
|
||||
xfree(text);
|
||||
xfree(texthl);
|
||||
}
|
||||
|
||||
/*
|
||||
* "sign_getdefined()" function
|
||||
*/
|
||||
static void
|
||||
f_sign_getdefined(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
/// "sign_getdefined()" function
|
||||
static void f_sign_getdefined(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
{
|
||||
const char *name = NULL;
|
||||
|
||||
tv_list_alloc_ret(rettv, 0);
|
||||
|
||||
if (argvars[0].v_type != VAR_UNKNOWN)
|
||||
name = tv_get_string(&argvars[0]);
|
||||
|
||||
sign_getlist((const char_u *)name, rettv->vval.v_list);
|
||||
}
|
||||
|
||||
/*
|
||||
* "sign_getplaced()" function
|
||||
*/
|
||||
static void f_sign_getplaced(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
{
|
||||
buf_T *buf = NULL;
|
||||
dict_T *dict;
|
||||
dictitem_T *di;
|
||||
linenr_T lnum = 0;
|
||||
int sign_id = 0;
|
||||
const char *group = NULL;
|
||||
bool notanum = FALSE;
|
||||
const char *name = NULL;
|
||||
|
||||
tv_list_alloc_ret(rettv, 0);
|
||||
|
||||
if (argvars[0].v_type != VAR_UNKNOWN)
|
||||
{
|
||||
if (argvars[0].v_type != VAR_UNKNOWN) {
|
||||
name = tv_get_string(&argvars[0]);
|
||||
}
|
||||
|
||||
sign_getlist((const char_u *)name, rettv->vval.v_list);
|
||||
}
|
||||
|
||||
/// "sign_getplaced()" function
|
||||
static void f_sign_getplaced(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
{
|
||||
buf_T *buf = NULL;
|
||||
dict_T *dict;
|
||||
dictitem_T *di;
|
||||
linenr_T lnum = 0;
|
||||
int sign_id = 0;
|
||||
const char *group = NULL;
|
||||
bool notanum = false;
|
||||
|
||||
tv_list_alloc_ret(rettv, 0);
|
||||
|
||||
if (argvars[0].v_type != VAR_UNKNOWN) {
|
||||
// get signs placed in the specified buffer
|
||||
buf = get_buf_arg(&argvars[0]);
|
||||
if (buf == NULL) {
|
||||
@ -15632,8 +15619,8 @@ static void f_sign_getplaced(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
}
|
||||
|
||||
if (argvars[1].v_type != VAR_UNKNOWN) {
|
||||
if (argvars[1].v_type != VAR_DICT ||
|
||||
((dict = argvars[1].vval.v_dict) == NULL)) {
|
||||
if (argvars[1].v_type != VAR_DICT
|
||||
|| ((dict = argvars[1].vval.v_dict) == NULL)) {
|
||||
EMSG(_(e_dictreq));
|
||||
return;
|
||||
}
|
||||
@ -15652,30 +15639,29 @@ static void f_sign_getplaced(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ((di = tv_dict_find(dict, "group", -1)) != NULL)
|
||||
{
|
||||
if ((di = tv_dict_find(dict, "group", -1)) != NULL) {
|
||||
group = tv_get_string_chk(&di->di_tv);
|
||||
if (group == NULL)
|
||||
if (group == NULL) {
|
||||
return;
|
||||
if (*group == '\0') // empty string means global group
|
||||
}
|
||||
if (*group == '\0') { // empty string means global group
|
||||
group = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sign_get_placed(buf, lnum, sign_id, (const char_u*)group, rettv->vval.v_list);
|
||||
sign_get_placed(buf, lnum, sign_id, (const char_u *)group,
|
||||
rettv->vval.v_list);
|
||||
}
|
||||
|
||||
/*
|
||||
* "sign_jump()" function
|
||||
*/
|
||||
static void
|
||||
f_sign_jump(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
/// "sign_jump()" function
|
||||
static void f_sign_jump(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
{
|
||||
int sign_id;
|
||||
int sign_id;
|
||||
char *sign_group = NULL;
|
||||
buf_T *buf;
|
||||
bool notanum = FALSE;
|
||||
bool notanum = false;
|
||||
|
||||
rettv->vval.v_number = -1;
|
||||
|
||||
@ -15684,18 +15670,18 @@ f_sign_jump(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
if (notanum) {
|
||||
return;
|
||||
}
|
||||
if (sign_id <= 0)
|
||||
{
|
||||
if (sign_id <= 0) {
|
||||
EMSG(_(e_invarg));
|
||||
return;
|
||||
}
|
||||
|
||||
// Sign group
|
||||
const char* sign_group_chk = tv_get_string_chk(&argvars[1]);
|
||||
if (sign_group_chk == NULL)
|
||||
const char * sign_group_chk = tv_get_string_chk(&argvars[1]);
|
||||
if (sign_group_chk == NULL) {
|
||||
return;
|
||||
}
|
||||
if (sign_group_chk[0] == '\0') {
|
||||
sign_group = NULL; // global sign group
|
||||
sign_group = NULL; // global sign group
|
||||
} else {
|
||||
sign_group = xstrdup(sign_group_chk);
|
||||
if (sign_group == NULL) {
|
||||
@ -15705,18 +15691,17 @@ f_sign_jump(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
|
||||
// Buffer to place the sign
|
||||
buf = get_buf_arg(&argvars[2]);
|
||||
if (buf == NULL)
|
||||
if (buf == NULL) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
rettv->vval.v_number = sign_jump(sign_id, (char_u*)sign_group, buf);
|
||||
rettv->vval.v_number = sign_jump(sign_id, (char_u *)sign_group, buf);
|
||||
|
||||
cleanup:
|
||||
xfree(sign_group);
|
||||
}
|
||||
|
||||
/*
|
||||
* "sign_place()" function
|
||||
*/
|
||||
/// "sign_place()" function
|
||||
static void f_sign_place(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
{
|
||||
int sign_id;
|
||||
@ -15727,7 +15712,7 @@ static void f_sign_place(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
dictitem_T *di;
|
||||
linenr_T lnum = 0;
|
||||
int prio = SIGN_DEF_PRIO;
|
||||
bool notanum = FALSE;
|
||||
bool notanum = false;
|
||||
|
||||
rettv->vval.v_number = -1;
|
||||
|
||||
@ -15747,9 +15732,9 @@ static void f_sign_place(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
return;
|
||||
}
|
||||
if (group_chk[0] == '\0') {
|
||||
group = NULL; // global sign group
|
||||
group = NULL; // global sign group
|
||||
} else {
|
||||
group = vim_strsave((const char_u*)group_chk);
|
||||
group = vim_strsave((const char_u *)group_chk);
|
||||
if (group == NULL) {
|
||||
return;
|
||||
}
|
||||
@ -15768,8 +15753,8 @@ static void f_sign_place(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
}
|
||||
|
||||
if (argvars[4].v_type != VAR_UNKNOWN) {
|
||||
if (argvars[4].v_type != VAR_DICT ||
|
||||
((dict = argvars[4].vval.v_dict) == NULL)) {
|
||||
if (argvars[4].v_type != VAR_DICT
|
||||
|| ((dict = argvars[4].vval.v_dict) == NULL)) {
|
||||
EMSG(_(e_dictreq));
|
||||
goto cleanup;
|
||||
}
|
||||
@ -15791,7 +15776,8 @@ static void f_sign_place(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
}
|
||||
}
|
||||
|
||||
if (sign_place(&sign_id, group, (const char_u*)sign_name, buf, lnum, prio) == OK) {
|
||||
if (sign_place(&sign_id, group, (const char_u *)sign_name, buf, lnum, prio)
|
||||
== OK) {
|
||||
rettv->vval.v_number = sign_id;
|
||||
}
|
||||
|
||||
@ -15799,86 +15785,75 @@ cleanup:
|
||||
xfree(group);
|
||||
}
|
||||
|
||||
/*
|
||||
* "sign_undefine()" function
|
||||
*/
|
||||
static void
|
||||
f_sign_undefine(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
/// "sign_undefine()" function
|
||||
static void f_sign_undefine(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
{
|
||||
const char *name;
|
||||
|
||||
rettv->vval.v_number = -1;
|
||||
|
||||
if (argvars[0].v_type == VAR_UNKNOWN)
|
||||
{
|
||||
if (argvars[0].v_type == VAR_UNKNOWN) {
|
||||
// Free all the signs
|
||||
free_signs();
|
||||
rettv->vval.v_number = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
// Free only the specified sign
|
||||
name = tv_get_string_chk(&argvars[0]);
|
||||
if (name == NULL)
|
||||
if (name == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (sign_undefine_by_name((const char_u*)name) == OK) {
|
||||
if (sign_undefine_by_name((const char_u *)name) == OK) {
|
||||
rettv->vval.v_number = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* "sign_unplace()" function
|
||||
*/
|
||||
/// "sign_unplace()" function
|
||||
static void f_sign_unplace(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
{
|
||||
dict_T *dict;
|
||||
dictitem_T *di;
|
||||
int sign_id = 0;
|
||||
buf_T *buf = NULL;
|
||||
char_u *group = NULL;
|
||||
dict_T *dict;
|
||||
dictitem_T *di;
|
||||
int sign_id = 0;
|
||||
buf_T *buf = NULL;
|
||||
char_u *group = NULL;
|
||||
|
||||
rettv->vval.v_number = -1;
|
||||
|
||||
if (argvars[0].v_type != VAR_STRING)
|
||||
{
|
||||
if (argvars[0].v_type != VAR_STRING) {
|
||||
EMSG(_(e_invarg));
|
||||
return;
|
||||
}
|
||||
|
||||
const char* group_chk = tv_get_string(&argvars[0]);
|
||||
const char *group_chk = tv_get_string(&argvars[0]);
|
||||
if (group_chk[0] == '\0') {
|
||||
group = NULL; // global sign group
|
||||
group = NULL; // global sign group
|
||||
} else {
|
||||
group = vim_strsave((const char_u*)group_chk);
|
||||
group = vim_strsave((const char_u *)group_chk);
|
||||
if (group == NULL) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (argvars[1].v_type != VAR_UNKNOWN)
|
||||
{
|
||||
if (argvars[1].v_type != VAR_DICT)
|
||||
{
|
||||
if (argvars[1].v_type != VAR_UNKNOWN) {
|
||||
if (argvars[1].v_type != VAR_DICT) {
|
||||
EMSG(_(e_dictreq));
|
||||
goto cleanup;
|
||||
}
|
||||
dict = argvars[1].vval.v_dict;
|
||||
|
||||
if ((di = tv_dict_find(dict, "buffer", -1)) != NULL)
|
||||
{
|
||||
if ((di = tv_dict_find(dict, "buffer", -1)) != NULL) {
|
||||
buf = get_buf_arg(&di->di_tv);
|
||||
if (buf == NULL)
|
||||
if (buf == NULL) {
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
if (tv_dict_find(dict, "id", -1) != NULL) {
|
||||
sign_id = tv_dict_get_number(dict, "id");
|
||||
}
|
||||
}
|
||||
|
||||
if (buf == NULL)
|
||||
{
|
||||
if (buf == NULL) {
|
||||
// Delete the sign in all the buffers
|
||||
FOR_ALL_BUFFERS(cbuf) {
|
||||
if (sign_unplace(sign_id, group, cbuf, 0) == OK) {
|
||||
|
@ -2833,13 +2833,12 @@ buf_write (
|
||||
//
|
||||
XFREE_CLEAR(backup); // no backup file to delete
|
||||
} else if (!p_bk) {
|
||||
/*
|
||||
* We are not going to keep the backup file, so don't
|
||||
* delete an existing one, and try to use another name instead.
|
||||
* Change one character, just before the extension.
|
||||
*/
|
||||
// We are not going to keep the backup file, so don't
|
||||
// delete an existing one, and try to use another name instead.
|
||||
// Change one character, just before the extension.
|
||||
//
|
||||
wp = backup + STRLEN(backup) - 1 - STRLEN(backup_ext);
|
||||
if (wp < backup) { /* empty file name ??? */
|
||||
if (wp < backup) { // empty file name ???
|
||||
wp = backup;
|
||||
}
|
||||
*wp = 'z';
|
||||
@ -2847,7 +2846,7 @@ buf_write (
|
||||
&& os_fileinfo((char *)backup, &file_info_new)) {
|
||||
--*wp;
|
||||
}
|
||||
/* They all exist??? Must be something wrong. */
|
||||
// They all exist??? Must be something wrong.
|
||||
if (*wp == 'a') {
|
||||
XFREE_CLEAR(backup);
|
||||
}
|
||||
@ -2969,18 +2968,17 @@ nobackup:
|
||||
}
|
||||
}
|
||||
if (backup != NULL) {
|
||||
/*
|
||||
* Delete any existing backup and move the current version
|
||||
* to the backup. For safety, we don't remove the backup
|
||||
* until the write has finished successfully. And if the
|
||||
* 'backup' option is set, leave it around.
|
||||
*/
|
||||
/*
|
||||
* If the renaming of the original file to the backup file
|
||||
* works, quit here.
|
||||
*/
|
||||
if (vim_rename(fname, backup) == 0)
|
||||
// Delete any existing backup and move the current version
|
||||
// to the backup. For safety, we don't remove the backup
|
||||
// until the write has finished successfully. And if the
|
||||
// 'backup' option is set, leave it around.
|
||||
|
||||
// If the renaming of the original file to the backup file
|
||||
// works, quit here.
|
||||
///
|
||||
if (vim_rename(fname, backup) == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
XFREE_CLEAR(backup); // don't do the rename below
|
||||
}
|
||||
@ -2993,7 +2991,7 @@ nobackup:
|
||||
}
|
||||
|
||||
#if defined(UNIX)
|
||||
/* When using ":w!" and the file was read-only: make it writable */
|
||||
// When using ":w!" and the file was read-only: make it writable
|
||||
if (forceit && perm >= 0 && !(perm & 0200)
|
||||
&& file_info_old.stat.st_uid == getuid()
|
||||
&& vim_strchr(p_cpo, CPO_FWRITE) == NULL) {
|
||||
@ -3003,12 +3001,12 @@ nobackup:
|
||||
}
|
||||
#endif
|
||||
|
||||
/* When using ":w!" and writing to the current file, 'readonly' makes no
|
||||
* sense, reset it, unless 'Z' appears in 'cpoptions'. */
|
||||
// When using ":w!" and writing to the current file, 'readonly' makes no
|
||||
// sense, reset it, unless 'Z' appears in 'cpoptions'.
|
||||
if (forceit && overwriting && vim_strchr(p_cpo, CPO_KEEPRO) == NULL) {
|
||||
buf->b_p_ro = FALSE;
|
||||
need_maketitle = TRUE; /* set window title later */
|
||||
status_redraw_all(); /* redraw status lines later */
|
||||
buf->b_p_ro = false;
|
||||
need_maketitle = true; // set window title later
|
||||
status_redraw_all(); // redraw status lines later
|
||||
}
|
||||
|
||||
if (end > buf->b_ml.ml_line_count)
|
||||
@ -3016,13 +3014,11 @@ nobackup:
|
||||
if (buf->b_ml.ml_flags & ML_EMPTY)
|
||||
start = end + 1;
|
||||
|
||||
/*
|
||||
* If the original file is being overwritten, there is a small chance that
|
||||
* we crash in the middle of writing. Therefore the file is preserved now.
|
||||
* This makes all block numbers positive so that recovery does not need
|
||||
* the original file.
|
||||
* Don't do this if there is a backup file and we are exiting.
|
||||
*/
|
||||
// If the original file is being overwritten, there is a small chance that
|
||||
// we crash in the middle of writing. Therefore the file is preserved now.
|
||||
// This makes all block numbers positive so that recovery does not need
|
||||
// the original file.
|
||||
// Don't do this if there is a backup file and we are exiting.
|
||||
if (reset_changed && !newfile && overwriting
|
||||
&& !(exiting && backup != NULL)) {
|
||||
ml_preserve(buf, false, !!p_fs);
|
||||
@ -3033,36 +3029,34 @@ nobackup:
|
||||
}
|
||||
|
||||
|
||||
/* Default: write the file directly. May write to a temp file for
|
||||
* multi-byte conversion. */
|
||||
// Default: write the file directly. May write to a temp file for
|
||||
// multi-byte conversion.
|
||||
wfname = fname;
|
||||
|
||||
/* Check for forced 'fileencoding' from "++opt=val" argument. */
|
||||
// Check for forced 'fileencoding' from "++opt=val" argument.
|
||||
if (eap != NULL && eap->force_enc != 0) {
|
||||
fenc = eap->cmd + eap->force_enc;
|
||||
fenc = enc_canonize(fenc);
|
||||
fenc_tofree = fenc;
|
||||
} else
|
||||
} else {
|
||||
fenc = buf->b_p_fenc;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check if the file needs to be converted.
|
||||
*/
|
||||
// Check if the file needs to be converted.
|
||||
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().
|
||||
* Prepare the flags for it and allocate bw_conv_buf when needed.
|
||||
*/
|
||||
// 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().
|
||||
// Prepare the flags for it and allocate bw_conv_buf when needed.
|
||||
if (converted && (enc_utf8 || STRCMP(p_enc, "latin1") == 0)) {
|
||||
wb_flags = get_fio_flags(fenc);
|
||||
if (wb_flags & (FIO_UCS2 | FIO_UCS4 | FIO_UTF16 | FIO_UTF8)) {
|
||||
/* Need to allocate a buffer to translate into. */
|
||||
if (wb_flags & (FIO_UCS2 | FIO_UTF16 | FIO_UTF8))
|
||||
// Need to allocate a buffer to translate into.
|
||||
if (wb_flags & (FIO_UCS2 | FIO_UTF16 | FIO_UTF8)) {
|
||||
write_info.bw_conv_buflen = bufsize * 2;
|
||||
else /* FIO_UCS4 */
|
||||
} else { // FIO_UCS4
|
||||
write_info.bw_conv_buflen = bufsize * 4;
|
||||
}
|
||||
write_info.bw_conv_buf = verbose_try_malloc(write_info.bw_conv_buflen);
|
||||
if (!write_info.bw_conv_buf) {
|
||||
end = 0;
|
||||
@ -3074,10 +3068,8 @@ nobackup:
|
||||
|
||||
if (converted && wb_flags == 0) {
|
||||
# ifdef USE_ICONV
|
||||
/*
|
||||
* Use iconv() conversion when conversion is needed and it's not done
|
||||
* internally.
|
||||
*/
|
||||
// Use iconv() conversion when conversion is needed and it's not done
|
||||
// internally.
|
||||
write_info.bw_iconv_fd = (iconv_t)my_iconv_open(fenc,
|
||||
enc_utf8 ? (char_u *)"utf-8" : p_enc);
|
||||
if (write_info.bw_iconv_fd != (iconv_t)-1) {
|
||||
|
@ -484,7 +484,7 @@ EXTERN buf_T *curbuf INIT(= NULL); // currently active buffer
|
||||
|
||||
// Iterate through all the signs placed in a buffer
|
||||
#define FOR_ALL_SIGNS_IN_BUF(buf, sign) \
|
||||
for (sign = buf->b_signlist; sign != NULL; sign = sign->next)
|
||||
for (sign = buf->b_signlist; sign != NULL; sign = sign->next) // NOLINT
|
||||
|
||||
|
||||
/*
|
||||
|
@ -1524,12 +1524,10 @@ static void cs_fill_results(char *tagstr, size_t totmatches, int *nummatches_a,
|
||||
}
|
||||
|
||||
totsofar++;
|
||||
|
||||
} /* for all matches */
|
||||
} // for all matches
|
||||
|
||||
(void)cs_read_prompt(i);
|
||||
|
||||
} /* for all cscope connections */
|
||||
} // for all cscope connections
|
||||
|
||||
if (totsofar == 0) {
|
||||
// No matches, free the arrays and return NULL in "*matches_p".
|
||||
@ -1541,20 +1539,25 @@ static void cs_fill_results(char *tagstr, size_t totmatches, int *nummatches_a,
|
||||
*cntxts_p = cntxts;
|
||||
|
||||
xfree(buf);
|
||||
} /* cs_fill_results */
|
||||
} // cs_fill_results
|
||||
|
||||
|
||||
/* get the requested path components */
|
||||
static char *cs_pathcomponents(char *path)
|
||||
{
|
||||
if (p_cspc == 0)
|
||||
if (p_cspc == 0) {
|
||||
return path;
|
||||
}
|
||||
|
||||
char *s = path + strlen(path) - 1;
|
||||
for (int i = 0; i < p_cspc; ++i)
|
||||
while (s > path && *--s != '/') continue;
|
||||
if ((s > path && *s == '/'))
|
||||
++s;
|
||||
for (int i = 0; i < p_cspc; i++) {
|
||||
while (s > path && *--s != '/') {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if ((s > path && *s == '/')) {
|
||||
s++;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
|
@ -2085,31 +2085,31 @@ static char_u *iconv_string(const vimconv_T *const vcp, char_u *str,
|
||||
|
||||
to = (char *)result + done;
|
||||
tolen = len - done - 2;
|
||||
/* Avoid a warning for systems with a wrong iconv() prototype by
|
||||
* casting the second argument to void *. */
|
||||
// Avoid a warning for systems with a wrong iconv() prototype by
|
||||
// casting the second argument to void *.
|
||||
if (iconv(vcp->vc_fd, (void *)&from, &fromlen, &to, &tolen) != SIZE_MAX) {
|
||||
/* Finished, append a NUL. */
|
||||
// Finished, append a NUL.
|
||||
*to = NUL;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Check both ICONV_EINVAL and EINVAL, because the dynamically loaded
|
||||
* iconv library may use one of them. */
|
||||
// Check both ICONV_EINVAL and EINVAL, because the dynamically loaded
|
||||
// iconv library may use one of them.
|
||||
if (!vcp->vc_fail && unconvlenp != NULL
|
||||
&& (ICONV_ERRNO == ICONV_EINVAL || ICONV_ERRNO == EINVAL)) {
|
||||
/* Handle an incomplete sequence at the end. */
|
||||
// Handle an incomplete sequence at the end.
|
||||
*to = NUL;
|
||||
*unconvlenp = fromlen;
|
||||
break;
|
||||
}
|
||||
/* Check both ICONV_EILSEQ and EILSEQ, because the dynamically loaded
|
||||
* iconv library may use one of them. */
|
||||
else if (!vcp->vc_fail
|
||||
&& (ICONV_ERRNO == ICONV_EILSEQ || ICONV_ERRNO == EILSEQ
|
||||
|| ICONV_ERRNO == ICONV_EINVAL || ICONV_ERRNO == EINVAL)) {
|
||||
/* Can't convert: insert a '?' and skip a character. This assumes
|
||||
* conversion from 'encoding' to something else. In other
|
||||
* situations we don't know what to skip anyway. */
|
||||
} else if (!vcp->vc_fail
|
||||
&& (ICONV_ERRNO == ICONV_EILSEQ || ICONV_ERRNO == EILSEQ
|
||||
|| ICONV_ERRNO == ICONV_EINVAL || ICONV_ERRNO == EINVAL)) {
|
||||
// Check both ICONV_EILSEQ and EILSEQ, because the dynamically loaded
|
||||
// iconv library may use one of them.
|
||||
|
||||
// Can't convert: insert a '?' and skip a character. This assumes
|
||||
// conversion from 'encoding' to something else. In other
|
||||
// situations we don't know what to skip anyway.
|
||||
*to++ = '?';
|
||||
if (utf_ptr2cells((char_u *)from) > 1) {
|
||||
*to++ = '?';
|
||||
@ -2122,7 +2122,7 @@ static char_u *iconv_string(const vimconv_T *const vcp, char_u *str,
|
||||
XFREE_CLEAR(result);
|
||||
break;
|
||||
}
|
||||
/* Not enough room or skipping illegal sequence. */
|
||||
// Not enough room or skipping illegal sequence.
|
||||
done = to - (char *)result;
|
||||
}
|
||||
|
||||
@ -2132,11 +2132,9 @@ static char_u *iconv_string(const vimconv_T *const vcp, char_u *str,
|
||||
}
|
||||
|
||||
# if defined(DYNAMIC_ICONV)
|
||||
/*
|
||||
* Dynamically load the "iconv.dll" on Win32.
|
||||
*/
|
||||
// Dynamically load the "iconv.dll" on Win32.
|
||||
|
||||
#ifndef DYNAMIC_ICONV /* just generating prototypes */
|
||||
#ifndef DYNAMIC_ICONV // just generating prototypes
|
||||
# define HINSTANCE int
|
||||
#endif
|
||||
static HINSTANCE hIconvDLL = 0;
|
||||
|
@ -3356,47 +3356,38 @@ static char *findswapname(buf_T *buf, char **dirp, char *old_fname,
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* A file name equal to old_fname is OK to use.
|
||||
*/
|
||||
if (old_fname != NULL && fnamecmp(fname, old_fname) == 0)
|
||||
// A file name equal to old_fname is OK to use.
|
||||
if (old_fname != NULL && fnamecmp(fname, old_fname) == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* get here when file already exists
|
||||
*/
|
||||
if (fname[n - 2] == 'w' && fname[n - 1] == 'p') { /* first try */
|
||||
/*
|
||||
* If we get here the ".swp" file really exists.
|
||||
* Give an error message, unless recovering, no file name, we are
|
||||
* viewing a help file or when the path of the file is different
|
||||
* (happens when all .swp files are in one directory).
|
||||
*/
|
||||
// get here when file already exists
|
||||
if (fname[n - 2] == 'w' && fname[n - 1] == 'p') { // first try
|
||||
// If we get here the ".swp" file really exists.
|
||||
// Give an error message, unless recovering, no file name, we are
|
||||
// viewing a help file or when the path of the file is different
|
||||
// (happens when all .swp files are in one directory).
|
||||
if (!recoverymode && buf_fname != NULL
|
||||
&& !buf->b_help && !(buf->b_flags & BF_DUMMY)) {
|
||||
int fd;
|
||||
struct block0 b0;
|
||||
int differ = FALSE;
|
||||
|
||||
/*
|
||||
* Try to read block 0 from the swap file to get the original
|
||||
* file name (and inode number).
|
||||
*/
|
||||
// Try to read block 0 from the swap file to get the original
|
||||
// file name (and inode number).
|
||||
fd = os_open(fname, O_RDONLY, 0);
|
||||
if (fd >= 0) {
|
||||
if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0)) {
|
||||
/*
|
||||
* If the swapfile has the same directory as the
|
||||
* buffer don't compare the directory names, they can
|
||||
* have a different mountpoint.
|
||||
*/
|
||||
// If the swapfile has the same directory as the
|
||||
// buffer don't compare the directory names, they can
|
||||
// have a different mountpoint.
|
||||
if (b0.b0_flags & B0_SAME_DIR) {
|
||||
if (fnamecmp(path_tail(buf->b_ffname),
|
||||
path_tail(b0.b0_fname)) != 0
|
||||
|| !same_directory((char_u *) fname, buf->b_ffname)) {
|
||||
/* Symlinks may point to the same file even
|
||||
* when the name differs, need to check the
|
||||
* inode too. */
|
||||
|| !same_directory((char_u *)fname, buf->b_ffname)) {
|
||||
// Symlinks may point to the same file even
|
||||
// when the name differs, need to check the
|
||||
// inode too.
|
||||
expand_env(b0.b0_fname, NameBuff, MAXPATHL);
|
||||
if (fnamecmp_ino(buf->b_ffname, NameBuff,
|
||||
char_to_long(b0.b0_ino))) {
|
||||
@ -3404,10 +3395,8 @@ static char *findswapname(buf_T *buf, char **dirp, char *old_fname,
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
* The name in the swap file may be
|
||||
* "~user/path/file". Expand it first.
|
||||
*/
|
||||
// The name in the swap file may be
|
||||
// "~user/path/file". Expand it first.
|
||||
expand_env(b0.b0_fname, NameBuff, MAXPATHL);
|
||||
if (fnamecmp_ino(buf->b_ffname, NameBuff,
|
||||
char_to_long(b0.b0_ino))) {
|
||||
@ -3418,9 +3407,9 @@ static char *findswapname(buf_T *buf, char **dirp, char *old_fname,
|
||||
close(fd);
|
||||
}
|
||||
|
||||
/* give the ATTENTION message when there is an old swap file
|
||||
* for the current file, and the buffer was not recovered. */
|
||||
if (differ == FALSE && !(curbuf->b_flags & BF_RECOVERED)
|
||||
// give the ATTENTION message when there is an old swap file
|
||||
// for the current file, and the buffer was not recovered. */
|
||||
if (differ == false && !(curbuf->b_flags & BF_RECOVERED)
|
||||
&& vim_strchr(p_shm, SHM_ATTENTION) == NULL) {
|
||||
int choice = 0;
|
||||
|
||||
|
@ -1082,16 +1082,14 @@ void wait_return(int redraw)
|
||||
/* Put the character back in the typeahead buffer. Don't use the
|
||||
* stuff buffer, because lmaps wouldn't work. */
|
||||
ins_char_typebuf(c);
|
||||
do_redraw = TRUE; /* need a redraw even though there is
|
||||
typeahead */
|
||||
do_redraw = true; // need a redraw even though there is
|
||||
// typeahead
|
||||
}
|
||||
}
|
||||
redir_off = FALSE;
|
||||
redir_off = false;
|
||||
|
||||
/*
|
||||
* If the user hits ':', '?' or '/' we get a command line from the next
|
||||
* line.
|
||||
*/
|
||||
// If the user hits ':', '?' or '/' we get a command line from the next
|
||||
// line.
|
||||
if (c == ':' || c == '?' || c == '/') {
|
||||
if (!exmode_active)
|
||||
cmdline_row = msg_row;
|
||||
@ -1100,19 +1098,17 @@ void wait_return(int redraw)
|
||||
msg_ext_keep_after_cmdline = true;
|
||||
}
|
||||
|
||||
/*
|
||||
* If the window size changed set_shellsize() will redraw the screen.
|
||||
* Otherwise the screen is only redrawn if 'redraw' is set and no ':'
|
||||
* typed.
|
||||
*/
|
||||
// If the window size changed set_shellsize() will redraw the screen.
|
||||
// Otherwise the screen is only redrawn if 'redraw' is set and no ':'
|
||||
// typed.
|
||||
tmpState = State;
|
||||
State = oldState; /* restore State before set_shellsize */
|
||||
State = oldState; // restore State before set_shellsize
|
||||
setmouse();
|
||||
msg_check();
|
||||
need_wait_return = FALSE;
|
||||
did_wait_return = TRUE;
|
||||
emsg_on_display = FALSE; /* can delete error message now */
|
||||
lines_left = -1; /* reset lines_left at next msg_start() */
|
||||
need_wait_return = false;
|
||||
did_wait_return = true;
|
||||
emsg_on_display = false; // can delete error message now
|
||||
lines_left = -1; // reset lines_left at next msg_start()
|
||||
reset_last_sourcing();
|
||||
if (keep_msg != NULL && vim_strsize(keep_msg) >=
|
||||
(Rows - cmdline_row - 1) * Columns + sc_col) {
|
||||
@ -1183,25 +1179,25 @@ void msg_ext_set_kind(const char *msg_kind)
|
||||
*/
|
||||
void msg_start(void)
|
||||
{
|
||||
int did_return = FALSE;
|
||||
int did_return = false;
|
||||
|
||||
if (!msg_silent) {
|
||||
XFREE_CLEAR(keep_msg); // don't display old message now
|
||||
}
|
||||
|
||||
if (need_clr_eos) {
|
||||
/* Halfway an ":echo" command and getting an (error) message: clear
|
||||
* any text from the command. */
|
||||
need_clr_eos = FALSE;
|
||||
// Halfway an ":echo" command and getting an (error) message: clear
|
||||
// any text from the command.
|
||||
need_clr_eos = false;
|
||||
msg_clr_eos();
|
||||
}
|
||||
|
||||
if (!msg_scroll && full_screen) { /* overwrite last message */
|
||||
if (!msg_scroll && full_screen) { // overwrite last message
|
||||
msg_row = cmdline_row;
|
||||
msg_col =
|
||||
cmdmsg_rl ? Columns - 1 :
|
||||
0;
|
||||
} else if (msg_didout) { /* start message on next line */
|
||||
} else if (msg_didout) { // start message on next line
|
||||
msg_putchar('\n');
|
||||
did_return = TRUE;
|
||||
if (exmode_active != EXMODE_NORMAL)
|
||||
@ -1210,7 +1206,7 @@ void msg_start(void)
|
||||
if (!msg_didany || lines_left < 0)
|
||||
msg_starthere();
|
||||
if (msg_silent == 0) {
|
||||
msg_didout = FALSE; /* no output on current line yet */
|
||||
msg_didout = false; // no output on current line yet
|
||||
}
|
||||
|
||||
if (ui_has(kUIMessages)) {
|
||||
@ -2990,12 +2986,13 @@ int verbose_open(void)
|
||||
*/
|
||||
void give_warning(char_u *message, bool hl) FUNC_ATTR_NONNULL_ARG(1)
|
||||
{
|
||||
/* Don't do this for ":silent". */
|
||||
if (msg_silent != 0)
|
||||
// Don't do this for ":silent".
|
||||
if (msg_silent != 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Don't want a hit-enter prompt here. */
|
||||
++no_wait_return;
|
||||
// Don't want a hit-enter prompt here.
|
||||
no_wait_return++;
|
||||
|
||||
set_vim_var_string(VV_WARNINGMSG, (char *)message, -1);
|
||||
XFREE_CLEAR(keep_msg);
|
||||
@ -3013,7 +3010,7 @@ void give_warning(char_u *message, bool hl) FUNC_ATTR_NONNULL_ARG(1)
|
||||
msg_nowait = true; // Don't wait for this message.
|
||||
msg_col = 0;
|
||||
|
||||
--no_wait_return;
|
||||
no_wait_return--;
|
||||
}
|
||||
|
||||
void give_warning2(char_u *const message, char_u *const a1, bool hl)
|
||||
|
@ -4213,10 +4213,10 @@ dozet:
|
||||
set_fraction(curwin);
|
||||
break;
|
||||
|
||||
/* "z^", "z-" and "zb": put cursor at bottom of screen */
|
||||
case '^': /* Strange Vi behavior: <count>z^ finds line at top of window
|
||||
* when <count> is at bottom of window, and puts that one at
|
||||
* bottom of window. */
|
||||
// "z^", "z-" and "zb": put cursor at bottom of screen
|
||||
case '^': // Strange Vi behavior: <count>z^ finds line at top of window
|
||||
// when <count> is at bottom of window, and puts that one at
|
||||
// bottom of window.
|
||||
if (cap->count0 != 0) {
|
||||
scroll_cursor_bot(0, true);
|
||||
curwin->w_cursor.lnum = curwin->w_topline;
|
||||
|
@ -87,13 +87,13 @@ static struct spat spats[2] =
|
||||
|
||||
static int last_idx = 0; /* index in spats[] for RE_LAST */
|
||||
|
||||
static char_u lastc[2] = {NUL, NUL}; /* last character searched for */
|
||||
static int lastcdir = FORWARD; /* last direction of character search */
|
||||
static int last_t_cmd = TRUE; /* last search t_cmd */
|
||||
static char_u lastc[2] = { NUL, NUL }; // last character searched for
|
||||
static int lastcdir = FORWARD; // last direction of character search
|
||||
static int last_t_cmd = true; // last search t_cmd
|
||||
static char_u lastc_bytes[MB_MAXBYTES + 1];
|
||||
static int lastc_bytelen = 1; /* >1 for multi-byte char */
|
||||
static int lastc_bytelen = 1; // >1 for multi-byte char
|
||||
|
||||
/* copy of spats[], for keeping the search patterns while executing autocmds */
|
||||
// copy of spats[], for keeping the search patterns while executing autocmds
|
||||
static struct spat saved_spats[2];
|
||||
// copy of spats[RE_SEARCH], for keeping the search patterns while incremental
|
||||
// searching
|
||||
@ -101,8 +101,8 @@ static struct spat saved_last_search_spat;
|
||||
static int saved_last_idx = 0;
|
||||
static int saved_no_hlsearch = 0;
|
||||
|
||||
static char_u *mr_pattern = NULL; /* pattern used by search_regcomp() */
|
||||
static int mr_pattern_alloced = FALSE; /* mr_pattern was allocated */
|
||||
static char_u *mr_pattern = NULL; // pattern used by search_regcomp()
|
||||
static int mr_pattern_alloced = false; // mr_pattern was allocated
|
||||
|
||||
/*
|
||||
* Type used by find_pattern_in_path() to remember which included files have
|
||||
|
1373
src/nvim/sign.c
1373
src/nvim/sign.c
File diff suppressed because it is too large
Load Diff
@ -2,6 +2,9 @@
|
||||
#define NVIM_SIGN_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include "nvim/buffer_defs.h"
|
||||
#include "nvim/ex_cmds_defs.h"
|
||||
#include "nvim/sign_defs.h"
|
||||
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
|
@ -2,36 +2,37 @@
|
||||
#define NVIM_SIGN_DEFS_H
|
||||
|
||||
#include "nvim/pos.h"
|
||||
#include "nvim/types.h"
|
||||
|
||||
// signs: line annotations
|
||||
|
||||
// Sign group
|
||||
typedef struct signgroup_S
|
||||
{
|
||||
uint16_t refcount; // number of signs in this group
|
||||
uint16_t refcount; // number of signs in this group
|
||||
int next_sign_id; // next sign id for this group
|
||||
char_u sg_name[1]; // sign group name
|
||||
char_u sg_name[1]; // sign group name
|
||||
} signgroup_T;
|
||||
|
||||
// Macros to get the sign group structure from the group name
|
||||
#define SGN_KEY_OFF offsetof(signgroup_T, sg_name)
|
||||
#define HI2SG(hi) ((signgroup_T *)((hi)->hi_key - SGN_KEY_OFF))
|
||||
#define SGN_KEY_OFF offsetof(signgroup_T, sg_name)
|
||||
#define HI2SG(hi) ((signgroup_T *)((hi)->hi_key - SGN_KEY_OFF))
|
||||
|
||||
typedef struct signlist signlist_T;
|
||||
|
||||
struct signlist
|
||||
{
|
||||
int id; // unique identifier for each placed sign
|
||||
linenr_T lnum; // line number which has this sign
|
||||
int typenr; // typenr of sign
|
||||
signgroup_T *group; // sign group
|
||||
int priority; // priority for highlighting
|
||||
signlist_T *next; // next signlist entry
|
||||
signlist_T *prev; // previous entry -- for easy reordering
|
||||
int id; // unique identifier for each placed sign
|
||||
linenr_T lnum; // line number which has this sign
|
||||
int typenr; // typenr of sign
|
||||
signgroup_T *group; // sign group
|
||||
int priority; // priority for highlighting
|
||||
signlist_T *next; // next signlist entry
|
||||
signlist_T *prev; // previous entry -- for easy reordering
|
||||
};
|
||||
|
||||
// Default sign priority for highlighting
|
||||
#define SIGN_DEF_PRIO 10
|
||||
#define SIGN_DEF_PRIO 10
|
||||
|
||||
// type argument for buf_getsigntype() and sign_get_attr()
|
||||
typedef enum {
|
||||
|
Loading…
Reference in New Issue
Block a user