patch 9.0.1221: code is indented more than necessary
Problem: Code is indented more than necessary.
Solution: Use an early return where it makes sense. (Yegappan Lakshmanan,
closes #11833)
diff --git a/src/popupmenu.c b/src/popupmenu.c
index 512f4b3..cbb45a5 100644
--- a/src/popupmenu.c
+++ b/src/popupmenu.c
@@ -1367,13 +1367,13 @@
void
ui_remove_balloon(void)
{
- if (balloon_array != NULL)
- {
- pum_undisplay();
- while (balloon_arraysize > 0)
- vim_free(balloon_array[--balloon_arraysize].pum_text);
- VIM_CLEAR(balloon_array);
- }
+ if (balloon_array == NULL)
+ return;
+
+ pum_undisplay();
+ while (balloon_arraysize > 0)
+ vim_free(balloon_array[--balloon_arraysize].pum_text);
+ VIM_CLEAR(balloon_array);
}
/*
@@ -1410,19 +1410,19 @@
else
balloon_arraysize = split_message(mesg, &balloon_array);
- if (balloon_arraysize > 0)
- {
- pum_array = balloon_array;
- pum_size = balloon_arraysize;
- pum_compute_size();
- pum_scrollbar = 0;
- pum_height = balloon_arraysize;
+ if (balloon_arraysize <= 0)
+ return;
- pum_position_at_mouse(BALLOON_MIN_WIDTH);
- pum_selected = -1;
- pum_first = 0;
- pum_redraw();
- }
+ pum_array = balloon_array;
+ pum_size = balloon_arraysize;
+ pum_compute_size();
+ pum_scrollbar = 0;
+ pum_height = balloon_arraysize;
+
+ pum_position_at_mouse(BALLOON_MIN_WIDTH);
+ pum_selected = -1;
+ pum_first = 0;
+ pum_redraw();
}
/*
diff --git a/src/popupwin.c b/src/popupwin.c
index e487f0c..ff877fd 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -98,31 +98,32 @@
dictitem_T *di;
di = dict_find(dict, (char_u *)name, -1);
- if (di != NULL)
- {
- if (di->di_tv.v_type != VAR_LIST)
- emsg(_(e_list_required));
- else
- {
- list_T *list = di->di_tv.vval.v_list;
- listitem_T *li;
- int i;
- int nr;
+ if (di == NULL)
+ return;
- for (i = 0; i < 4; ++i)
- array[i] = 1;
- if (list != NULL)
- {
- CHECK_LIST_MATERIALIZE(list);
- for (i = 0, li = list->lv_first; i < 4 && i < list->lv_len;
- ++i, li = li->li_next)
- {
- nr = (int)tv_get_number(&li->li_tv);
- if (nr >= 0)
- array[i] = nr > max_val ? max_val : nr;
- }
- }
- }
+ if (di->di_tv.v_type != VAR_LIST)
+ {
+ emsg(_(e_list_required));
+ return;
+ }
+
+ list_T *list = di->di_tv.vval.v_list;
+ listitem_T *li;
+ int i;
+ int nr;
+
+ for (i = 0; i < 4; ++i)
+ array[i] = 1;
+ if (list == NULL)
+ return;
+
+ CHECK_LIST_MATERIALIZE(list);
+ for (i = 0, li = list->lv_first; i < 4 && i < list->lv_len;
+ ++i, li = li->li_next)
+ {
+ nr = (int)tv_get_number(&li->li_tv);
+ if (nr >= 0)
+ array[i] = nr > max_val ? max_val : nr;
}
}
@@ -147,11 +148,11 @@
char_u *ptr;
int len = find_ident_under_cursor(&ptr, flags | FIND_NOERROR);
- if (len > 0)
- {
- wp->w_popup_mincol = (int)(ptr - ml_get_curline());
- wp->w_popup_maxcol = wp->w_popup_mincol + len - 1;
- }
+ if (len <= 0)
+ return;
+
+ wp->w_popup_mincol = (int)(ptr - ml_get_curline());
+ wp->w_popup_maxcol = wp->w_popup_mincol + len - 1;
}
/*
@@ -169,23 +170,23 @@
update_popup_uses_mouse_move(void)
{
popup_uses_mouse_move = FALSE;
- if (popup_visible)
- {
- win_T *wp;
+ if (!popup_visible)
+ return;
- FOR_ALL_POPUPWINS(wp)
- if (wp->w_popup_mouse_row != 0)
- {
- popup_uses_mouse_move = TRUE;
- return;
- }
- FOR_ALL_POPUPWINS_IN_TAB(curtab, wp)
- if (wp->w_popup_mouse_row != 0)
- {
- popup_uses_mouse_move = TRUE;
- return;
- }
- }
+ win_T *wp;
+
+ FOR_ALL_POPUPWINS(wp)
+ if (wp->w_popup_mouse_row != 0)
+ {
+ popup_uses_mouse_move = TRUE;
+ return;
+ }
+ FOR_ALL_POPUPWINS_IN_TAB(curtab, wp)
+ if (wp->w_popup_mouse_row != 0)
+ {
+ popup_uses_mouse_move = TRUE;
+ return;
+ }
}
/*
@@ -201,19 +202,19 @@
colnr_T mcol;
if (find_word_under_cursor(mouse_row, mouse_col, TRUE, flags,
- &textwp, &pos.lnum, &text, NULL, &col) == OK)
- {
- // convert text column to mouse column
- pos.col = col;
- pos.coladd = 0;
- getvcol(textwp, &pos, &mcol, NULL, NULL);
- wp->w_popup_mouse_mincol = mcol;
+ &textwp, &pos.lnum, &text, NULL, &col) != OK)
+ return;
- pos.col = col + (colnr_T)STRLEN(text) - 1;
- getvcol(textwp, &pos, NULL, NULL, &mcol);
- wp->w_popup_mouse_maxcol = mcol;
- vim_free(text);
- }
+ // convert text column to mouse column
+ pos.col = col;
+ pos.coladd = 0;
+ getvcol(textwp, &pos, &mcol, NULL, NULL);
+ wp->w_popup_mouse_mincol = mcol;
+
+ pos.col = col + (colnr_T)STRLEN(text) - 1;
+ getvcol(textwp, &pos, NULL, NULL, &mcol);
+ wp->w_popup_mouse_maxcol = mcol;
+ vim_free(text);
}
/*
@@ -390,40 +391,41 @@
void
popup_handle_scrollbar_click(win_T *wp, int row, int col)
{
- if (popup_is_in_scrollbar(wp, row, col))
- {
- int height = popup_height(wp);
- int new_topline = wp->w_topline;
+ if (!popup_is_in_scrollbar(wp, row, col))
+ return;
- if (row >= height / 2)
+ int height = popup_height(wp);
+ int new_topline = wp->w_topline;
+
+ if (row >= height / 2)
+ {
+ // Click in lower half, scroll down.
+ if (wp->w_topline < wp->w_buffer->b_ml.ml_line_count)
+ ++new_topline;
+ }
+ else if (wp->w_topline > 1)
+ // click on upper half, scroll up.
+ --new_topline;
+
+ if (new_topline == wp->w_topline)
+ return;
+
+ set_topline(wp, new_topline);
+ if (wp == curwin)
+ {
+ if (wp->w_cursor.lnum < wp->w_topline)
{
- // Click in lower half, scroll down.
- if (wp->w_topline < wp->w_buffer->b_ml.ml_line_count)
- ++new_topline;
+ wp->w_cursor.lnum = wp->w_topline;
+ check_cursor();
}
- else if (wp->w_topline > 1)
- // click on upper half, scroll up.
- --new_topline;
- if (new_topline != wp->w_topline)
+ else if (wp->w_cursor.lnum >= wp->w_botline)
{
- set_topline(wp, new_topline);
- if (wp == curwin)
- {
- if (wp->w_cursor.lnum < wp->w_topline)
- {
- wp->w_cursor.lnum = wp->w_topline;
- check_cursor();
- }
- else if (wp->w_cursor.lnum >= wp->w_botline)
- {
- wp->w_cursor.lnum = wp->w_botline - 1;
- check_cursor();
- }
- }
- popup_set_firstline(wp);
- redraw_win_later(wp, UPD_NOT_VALID);
+ wp->w_cursor.lnum = wp->w_botline - 1;
+ check_cursor();
}
}
+ popup_set_firstline(wp);
+ redraw_win_later(wp, UPD_NOT_VALID);
}
#if defined(FEAT_TIMERS)
@@ -441,18 +443,18 @@
vim_snprintf((char *)cbbuf, sizeof(cbbuf),
close ? "(_) => popup_close(%d)" : "(_) => popup_hide(%d)",
wp->w_id);
- if (get_lambda_tv_and_compile(&ptr, &tv, FALSE, &EVALARG_EVALUATE) == OK)
+ if (get_lambda_tv_and_compile(&ptr, &tv, FALSE, &EVALARG_EVALUATE) != OK)
+ return;
+
+ wp->w_popup_timer = create_timer(time, 0);
+ callback_T cb = get_callback(&tv);
+ if (cb.cb_name != NULL && !cb.cb_free_name)
{
- wp->w_popup_timer = create_timer(time, 0);
- callback_T cb = get_callback(&tv);
- if (cb.cb_name != NULL && !cb.cb_free_name)
- {
- cb.cb_name = vim_strsave(cb.cb_name);
- cb.cb_free_name = TRUE;
- }
- wp->w_popup_timer->tr_callback = cb;
- clear_tv(&tv);
+ cb.cb_name = vim_strsave(cb.cb_name);
+ cb.cb_free_name = TRUE;
}
+ wp->w_popup_timer->tr_callback = cb;
+ clear_tv(&tv);
}
#endif
@@ -619,16 +621,16 @@
char_u *str;
di = dict_find(dict, (char_u *)name, -1);
- if (di != NULL)
+ if (di == NULL)
+ return;
+
+ if (di->di_tv.v_type != VAR_STRING)
+ semsg(_(e_invalid_value_for_argument_str), name);
+ else
{
- if (di->di_tv.v_type != VAR_STRING)
- semsg(_(e_invalid_value_for_argument_str), name);
- else
- {
- str = tv_get_string(&di->di_tv);
- if (*str != NUL)
- *pval = vim_strsave(str);
- }
+ str = tv_get_string(&di->di_tv);
+ if (*str != NUL)
+ *pval = vim_strsave(str);
}
}
@@ -990,18 +992,17 @@
}
di = dict_find(dict, (char_u *)"callback", -1);
- if (di != NULL)
- {
- callback_T callback = get_callback(&di->di_tv);
+ if (di == NULL)
+ return;
- if (callback.cb_name != NULL)
- {
- free_callback(&wp->w_close_cb);
- set_callback(&wp->w_close_cb, &callback);
- if (callback.cb_free_name)
- vim_free(callback.cb_name);
- }
- }
+ callback_T callback = get_callback(&di->di_tv);
+ if (callback.cb_name == NULL)
+ return;
+
+ free_callback(&wp->w_close_cb);
+ set_callback(&wp->w_close_cb, &callback);
+ if (callback.cb_free_name)
+ vim_free(callback.cb_name);
}
/*
@@ -2715,13 +2716,13 @@
if (error_if_term_popup_window())
return;
#endif
- if ((wp->w_popup_flags & POPF_HIDDEN) == 0)
- {
- wp->w_popup_flags |= POPF_HIDDEN;
- // Do not decrement b_nwindows, we still reference the buffer.
- redraw_all_later(UPD_NOT_VALID);
- popup_mask_refresh = TRUE;
- }
+ if ((wp->w_popup_flags & POPF_HIDDEN) != 0)
+ return;
+
+ wp->w_popup_flags |= POPF_HIDDEN;
+ // Do not decrement b_nwindows, we still reference the buffer.
+ redraw_all_later(UPD_NOT_VALID);
+ popup_mask_refresh = TRUE;
}
/*
@@ -2738,22 +2739,22 @@
id = (int)tv_get_number(argvars);
wp = find_popup_win(id);
- if (wp != NULL)
- {
- popup_hide(wp);
- wp->w_popup_flags |= POPF_HIDDEN_FORCE;
- }
+ if (wp == NULL)
+ return;
+
+ popup_hide(wp);
+ wp->w_popup_flags |= POPF_HIDDEN_FORCE;
}
void
popup_show(win_T *wp)
{
- if ((wp->w_popup_flags & POPF_HIDDEN) != 0)
- {
- wp->w_popup_flags &= ~POPF_HIDDEN;
- redraw_all_later(UPD_NOT_VALID);
- popup_mask_refresh = TRUE;
- }
+ if ((wp->w_popup_flags & POPF_HIDDEN) == 0)
+ return;
+
+ wp->w_popup_flags &= ~POPF_HIDDEN;
+ redraw_all_later(UPD_NOT_VALID);
+ popup_mask_refresh = TRUE;
}
/*
@@ -2770,15 +2771,15 @@
id = (int)tv_get_number(argvars);
wp = find_popup_win(id);
- if (wp != NULL)
- {
- wp->w_popup_flags &= ~POPF_HIDDEN_FORCE;
- popup_show(wp);
+ if (wp == NULL)
+ return;
+
+ wp->w_popup_flags &= ~POPF_HIDDEN_FORCE;
+ popup_show(wp);
#ifdef FEAT_QUICKFIX
- if (wp->w_popup_flags & POPF_INFO)
- pum_position_info_popup(wp);
+ if (wp->w_popup_flags & POPF_INFO)
+ pum_position_info_popup(wp);
#endif
- }
}
/*
@@ -2797,15 +2798,15 @@
id = (int)tv_get_number(&argvars[0]);
wp = find_popup_win(id);
- if (wp != NULL)
- {
- if (check_for_string_or_list_arg(argvars, 1) != FAIL)
- {
- popup_set_buffer_text(wp->w_buffer, argvars[1]);
- redraw_win_later(wp, UPD_NOT_VALID);
- popup_adjust_position(wp);
- }
- }
+ if (wp == NULL)
+ return;
+
+ if (check_for_string_or_list_arg(argvars, 1) == FAIL)
+ return;
+
+ popup_set_buffer_text(wp->w_buffer, argvars[1]);
+ redraw_win_later(wp, UPD_NOT_VALID);
+ popup_adjust_position(wp);
}
static void
@@ -3011,42 +3012,42 @@
int top_extra;
int left_extra;
- if (rettv_dict_alloc(rettv) == OK)
- {
- if (in_vim9script() && check_for_number_arg(argvars, 0) == FAIL)
- return;
+ if (rettv_dict_alloc(rettv) == FAIL)
+ return;
- id = (int)tv_get_number(argvars);
- wp = find_popup_win(id);
- if (wp == NULL)
- return; // invalid {id}
- top_extra = popup_top_extra(wp);
- left_extra = wp->w_popup_border[3] + wp->w_popup_padding[3];
+ if (in_vim9script() && check_for_number_arg(argvars, 0) == FAIL)
+ return;
- // we know how much space we need, avoid resizing halfway
- dict = rettv->vval.v_dict;
- hash_lock_size(&dict->dv_hashtab, 11);
+ id = (int)tv_get_number(argvars);
+ wp = find_popup_win(id);
+ if (wp == NULL)
+ return; // invalid {id}
+ top_extra = popup_top_extra(wp);
+ left_extra = wp->w_popup_border[3] + wp->w_popup_padding[3];
- dict_add_number(dict, "line", wp->w_winrow + 1);
- dict_add_number(dict, "col", wp->w_wincol + 1);
- dict_add_number(dict, "width", wp->w_width + left_extra
- + wp->w_popup_border[1] + wp->w_popup_padding[1]);
- dict_add_number(dict, "height", wp->w_height + top_extra
- + wp->w_popup_border[2] + wp->w_popup_padding[2]);
+ // we know how much space we need, avoid resizing halfway
+ dict = rettv->vval.v_dict;
+ hash_lock_size(&dict->dv_hashtab, 11);
- dict_add_number(dict, "core_line", wp->w_winrow + 1 + top_extra);
- dict_add_number(dict, "core_col", wp->w_wincol + 1 + left_extra);
- dict_add_number(dict, "core_width", wp->w_width);
- dict_add_number(dict, "core_height", wp->w_height);
+ dict_add_number(dict, "line", wp->w_winrow + 1);
+ dict_add_number(dict, "col", wp->w_wincol + 1);
+ dict_add_number(dict, "width", wp->w_width + left_extra
+ + wp->w_popup_border[1] + wp->w_popup_padding[1]);
+ dict_add_number(dict, "height", wp->w_height + top_extra
+ + wp->w_popup_border[2] + wp->w_popup_padding[2]);
- dict_add_number(dict, "scrollbar", wp->w_has_scrollbar);
- dict_add_number(dict, "firstline", wp->w_topline);
- dict_add_number(dict, "lastline", wp->w_botline - 1);
- dict_add_number(dict, "visible",
- win_valid(wp) && (wp->w_popup_flags & POPF_HIDDEN) == 0);
+ dict_add_number(dict, "core_line", wp->w_winrow + 1 + top_extra);
+ dict_add_number(dict, "core_col", wp->w_wincol + 1 + left_extra);
+ dict_add_number(dict, "core_width", wp->w_width);
+ dict_add_number(dict, "core_height", wp->w_height);
- hash_unlock(&dict->dv_hashtab);
- }
+ dict_add_number(dict, "scrollbar", wp->w_has_scrollbar);
+ dict_add_number(dict, "firstline", wp->w_topline);
+ dict_add_number(dict, "lastline", wp->w_botline - 1);
+ dict_add_number(dict, "visible",
+ win_valid(wp) && (wp->w_popup_flags & POPF_HIDDEN) == 0);
+
+ hash_unlock(&dict->dv_hashtab);
}
/*
@@ -3102,13 +3103,13 @@
return;
list = list_alloc();
- if (list != NULL)
- {
- dict_add_list(dict, name, list);
- if (array[0] != 1 || array[1] != 1 || array[2] != 1 || array[3] != 1)
- for (i = 0; i < 4; ++i)
- list_append_number(list, array[i]);
- }
+ if (list == NULL)
+ return;
+
+ dict_add_list(dict, name, list);
+ if (array[0] != 1 || array[1] != 1 || array[2] != 1 || array[3] != 1)
+ for (i = 0; i < 4; ++i)
+ list_append_number(list, array[i]);
}
/*
@@ -3127,12 +3128,12 @@
return;
list = list_alloc();
- if (list != NULL)
- {
- dict_add_list(dict, "borderhighlight", list);
- for (i = 0; i < 4; ++i)
- list_append_string(list, wp->w_border_highlight[i], -1);
- }
+ if (list == NULL)
+ return;
+
+ dict_add_list(dict, "borderhighlight", list);
+ for (i = 0; i < 4; ++i)
+ list_append_string(list, wp->w_border_highlight[i], -1);
}
/*
@@ -3153,14 +3154,14 @@
return;
list = list_alloc();
- if (list != NULL)
+ if (list == NULL)
+ return;
+
+ dict_add_list(dict, "borderchars", list);
+ for (i = 0; i < 8; ++i)
{
- dict_add_list(dict, "borderchars", list);
- for (i = 0; i < 8; ++i)
- {
- len = mb_char2bytes(wp->w_border_char[i], buf);
- list_append_string(list, buf, len);
- }
+ len = mb_char2bytes(wp->w_border_char[i], buf);
+ list_append_string(list, buf, len);
}
}
@@ -3181,13 +3182,13 @@
list_append_number(list, wp->w_popup_maxcol);
}
list = list_alloc();
- if (list != NULL)
- {
- dict_add_list(dict, "mousemoved", list);
- list_append_number(list, wp->w_popup_mouse_row);
- list_append_number(list, wp->w_popup_mouse_mincol);
- list_append_number(list, wp->w_popup_mouse_maxcol);
- }
+ if (list == NULL)
+ return;
+
+ dict_add_list(dict, "mousemoved", list);
+ list_append_number(list, wp->w_popup_mouse_row);
+ list_append_number(list, wp->w_popup_mouse_mincol);
+ list_append_number(list, wp->w_popup_mouse_maxcol);
}
/*
@@ -3202,104 +3203,104 @@
tabpage_T *tp;
int i;
- if (rettv_dict_alloc(rettv) == OK)
+ if (rettv_dict_alloc(rettv) == FAIL)
+ return;
+
+ if (in_vim9script() && check_for_number_arg(argvars, 0) == FAIL)
+ return;
+
+ id = (int)tv_get_number(argvars);
+ wp = find_popup_win(id);
+ if (wp == NULL)
+ return;
+
+ dict = rettv->vval.v_dict;
+ dict_add_number(dict, "line", wp->w_wantline);
+ dict_add_number(dict, "col", wp->w_wantcol);
+ dict_add_number(dict, "minwidth", wp->w_minwidth);
+ dict_add_number(dict, "minheight", wp->w_minheight);
+ dict_add_number(dict, "maxheight", wp->w_maxheight);
+ dict_add_number(dict, "maxwidth", wp->w_maxwidth);
+ dict_add_number(dict, "firstline", wp->w_firstline);
+ dict_add_number(dict, "scrollbar", wp->w_want_scrollbar);
+ dict_add_number(dict, "zindex", wp->w_zindex);
+ dict_add_number(dict, "fixed", wp->w_popup_fixed);
+ if (wp->w_popup_prop_type && win_valid_any_tab(wp->w_popup_prop_win))
{
- if (in_vim9script() && check_for_number_arg(argvars, 0) == FAIL)
- return;
+ proptype_T *pt = text_prop_type_by_id(
+ wp->w_popup_prop_win->w_buffer,
+ wp->w_popup_prop_type);
- id = (int)tv_get_number(argvars);
- wp = find_popup_win(id);
- if (wp == NULL)
- return;
+ if (pt != NULL)
+ dict_add_string(dict, "textprop", pt->pt_name);
+ dict_add_number(dict, "textpropwin", wp->w_popup_prop_win->w_id);
+ dict_add_number(dict, "textpropid", wp->w_popup_prop_id);
+ }
+ dict_add_string(dict, "title", wp->w_popup_title);
+ dict_add_number(dict, "wrap", wp->w_p_wrap);
+ dict_add_number(dict, "drag", (wp->w_popup_flags & POPF_DRAG) != 0);
+ dict_add_number(dict, "dragall",
+ (wp->w_popup_flags & POPF_DRAGALL) != 0);
+ dict_add_number(dict, "mapping",
+ (wp->w_popup_flags & POPF_MAPPING) != 0);
+ dict_add_number(dict, "resize", (wp->w_popup_flags & POPF_RESIZE) != 0);
+ dict_add_number(dict, "posinvert",
+ (wp->w_popup_flags & POPF_POSINVERT) != 0);
+ dict_add_number(dict, "cursorline",
+ (wp->w_popup_flags & POPF_CURSORLINE) != 0);
+ dict_add_string(dict, "highlight", wp->w_p_wcr);
+ if (wp->w_scrollbar_highlight != NULL)
+ dict_add_string(dict, "scrollbarhighlight",
+ wp->w_scrollbar_highlight);
+ if (wp->w_thumb_highlight != NULL)
+ dict_add_string(dict, "thumbhighlight", wp->w_thumb_highlight);
- dict = rettv->vval.v_dict;
- dict_add_number(dict, "line", wp->w_wantline);
- dict_add_number(dict, "col", wp->w_wantcol);
- dict_add_number(dict, "minwidth", wp->w_minwidth);
- dict_add_number(dict, "minheight", wp->w_minheight);
- dict_add_number(dict, "maxheight", wp->w_maxheight);
- dict_add_number(dict, "maxwidth", wp->w_maxwidth);
- dict_add_number(dict, "firstline", wp->w_firstline);
- dict_add_number(dict, "scrollbar", wp->w_want_scrollbar);
- dict_add_number(dict, "zindex", wp->w_zindex);
- dict_add_number(dict, "fixed", wp->w_popup_fixed);
- if (wp->w_popup_prop_type && win_valid_any_tab(wp->w_popup_prop_win))
- {
- proptype_T *pt = text_prop_type_by_id(
- wp->w_popup_prop_win->w_buffer,
- wp->w_popup_prop_type);
+ // find the tabpage that holds this popup
+ i = 1;
+ FOR_ALL_TABPAGES(tp)
+ {
+ win_T *twp;
- if (pt != NULL)
- dict_add_string(dict, "textprop", pt->pt_name);
- dict_add_number(dict, "textpropwin", wp->w_popup_prop_win->w_id);
- dict_add_number(dict, "textpropid", wp->w_popup_prop_id);
- }
- dict_add_string(dict, "title", wp->w_popup_title);
- dict_add_number(dict, "wrap", wp->w_p_wrap);
- dict_add_number(dict, "drag", (wp->w_popup_flags & POPF_DRAG) != 0);
- dict_add_number(dict, "dragall",
- (wp->w_popup_flags & POPF_DRAGALL) != 0);
- dict_add_number(dict, "mapping",
- (wp->w_popup_flags & POPF_MAPPING) != 0);
- dict_add_number(dict, "resize", (wp->w_popup_flags & POPF_RESIZE) != 0);
- dict_add_number(dict, "posinvert",
- (wp->w_popup_flags & POPF_POSINVERT) != 0);
- dict_add_number(dict, "cursorline",
- (wp->w_popup_flags & POPF_CURSORLINE) != 0);
- dict_add_string(dict, "highlight", wp->w_p_wcr);
- if (wp->w_scrollbar_highlight != NULL)
- dict_add_string(dict, "scrollbarhighlight",
- wp->w_scrollbar_highlight);
- if (wp->w_thumb_highlight != NULL)
- dict_add_string(dict, "thumbhighlight", wp->w_thumb_highlight);
-
- // find the tabpage that holds this popup
- i = 1;
- FOR_ALL_TABPAGES(tp)
- {
- win_T *twp;
-
- FOR_ALL_POPUPWINS_IN_TAB(tp, twp)
- if (twp->w_id == id)
- break;
- if (twp != NULL)
+ FOR_ALL_POPUPWINS_IN_TAB(tp, twp)
+ if (twp->w_id == id)
break;
- ++i;
+ if (twp != NULL)
+ break;
+ ++i;
+ }
+ if (tp == NULL)
+ i = -1; // must be global
+ else if (tp == curtab)
+ i = 0;
+ dict_add_number(dict, "tabpage", i);
+
+ get_padding_border(dict, wp->w_popup_padding, "padding");
+ get_padding_border(dict, wp->w_popup_border, "border");
+ get_borderhighlight(dict, wp);
+ get_borderchars(dict, wp);
+ get_moved_list(dict, wp);
+
+ if (wp->w_filter_cb.cb_name != NULL)
+ dict_add_callback(dict, "filter", &wp->w_filter_cb);
+ if (wp->w_close_cb.cb_name != NULL)
+ dict_add_callback(dict, "callback", &wp->w_close_cb);
+
+ for (i = 0; i < (int)ARRAY_LENGTH(poppos_entries); ++i)
+ if (wp->w_popup_pos == poppos_entries[i].pp_val)
+ {
+ dict_add_string(dict, "pos",
+ (char_u *)poppos_entries[i].pp_name);
+ break;
}
- if (tp == NULL)
- i = -1; // must be global
- else if (tp == curtab)
- i = 0;
- dict_add_number(dict, "tabpage", i);
- get_padding_border(dict, wp->w_popup_padding, "padding");
- get_padding_border(dict, wp->w_popup_border, "border");
- get_borderhighlight(dict, wp);
- get_borderchars(dict, wp);
- get_moved_list(dict, wp);
-
- if (wp->w_filter_cb.cb_name != NULL)
- dict_add_callback(dict, "filter", &wp->w_filter_cb);
- if (wp->w_close_cb.cb_name != NULL)
- dict_add_callback(dict, "callback", &wp->w_close_cb);
-
- for (i = 0; i < (int)ARRAY_LENGTH(poppos_entries); ++i)
- if (wp->w_popup_pos == poppos_entries[i].pp_val)
- {
- dict_add_string(dict, "pos",
- (char_u *)poppos_entries[i].pp_name);
- break;
- }
-
- dict_add_string(dict, "close", (char_u *)(
- wp->w_popup_close == POPCLOSE_BUTTON ? "button"
- : wp->w_popup_close == POPCLOSE_CLICK ? "click" : "none"));
+ dict_add_string(dict, "close", (char_u *)(
+ wp->w_popup_close == POPCLOSE_BUTTON ? "button"
+ : wp->w_popup_close == POPCLOSE_CLICK ? "click" : "none"));
# if defined(FEAT_TIMERS)
- dict_add_number(dict, "time", wp->w_popup_timer != NULL
- ? (long)wp->w_popup_timer->tr_interval : 0L);
+ dict_add_number(dict, "time", wp->w_popup_timer != NULL
+ ? (long)wp->w_popup_timer->tr_interval : 0L);
# endif
- }
}
# if defined(FEAT_TERMINAL) || defined(PROTO)
@@ -3640,49 +3641,49 @@
static void
update_popup_transparent(win_T *wp, int val)
{
- if (wp->w_popup_mask != NULL)
+ if (wp->w_popup_mask == NULL)
+ return;
+
+ int width = popup_width(wp);
+ int height = popup_height(wp);
+ listitem_T *lio, *li;
+ int cols, cole;
+ int lines, linee;
+ int col, line;
+
+ FOR_ALL_LIST_ITEMS(wp->w_popup_mask, lio)
{
- int width = popup_width(wp);
- int height = popup_height(wp);
- listitem_T *lio, *li;
- int cols, cole;
- int lines, linee;
- int col, line;
+ li = lio->li_tv.vval.v_list->lv_first;
+ cols = tv_get_number(&li->li_tv);
+ if (cols < 0)
+ cols = width + cols + 1;
+ li = li->li_next;
+ cole = tv_get_number(&li->li_tv);
+ if (cole < 0)
+ cole = width + cole + 1;
+ li = li->li_next;
+ lines = tv_get_number(&li->li_tv);
+ if (lines < 0)
+ lines = height + lines + 1;
+ li = li->li_next;
+ linee = tv_get_number(&li->li_tv);
+ if (linee < 0)
+ linee = height + linee + 1;
- FOR_ALL_LIST_ITEMS(wp->w_popup_mask, lio)
- {
- li = lio->li_tv.vval.v_list->lv_first;
- cols = tv_get_number(&li->li_tv);
- if (cols < 0)
- cols = width + cols + 1;
- li = li->li_next;
- cole = tv_get_number(&li->li_tv);
- if (cole < 0)
- cole = width + cole + 1;
- li = li->li_next;
- lines = tv_get_number(&li->li_tv);
- if (lines < 0)
- lines = height + lines + 1;
- li = li->li_next;
- linee = tv_get_number(&li->li_tv);
- if (linee < 0)
- linee = height + linee + 1;
-
- --cols;
- cols -= wp->w_popup_leftoff;
- if (cols < 0)
- cols = 0;
- cole -= wp->w_popup_leftoff;
- --lines;
- if (lines < 0)
- lines = 0;
- for (line = lines; line < linee
- && line + wp->w_winrow < screen_Rows; ++line)
- for (col = cols; col < cole
- && col + wp->w_wincol < screen_Columns; ++col)
- popup_transparent[(line + wp->w_winrow) * screen_Columns
- + col + wp->w_wincol] = val;
- }
+ --cols;
+ cols -= wp->w_popup_leftoff;
+ if (cols < 0)
+ cols = 0;
+ cole -= wp->w_popup_leftoff;
+ --lines;
+ if (lines < 0)
+ lines = 0;
+ for (line = lines; line < linee
+ && line + wp->w_winrow < screen_Rows; ++line)
+ for (col = cols; col < cole
+ && col + wp->w_wincol < screen_Columns; ++col)
+ popup_transparent[(line + wp->w_winrow) * screen_Columns
+ + col + wp->w_wincol] = val;
}
}
@@ -4508,33 +4509,33 @@
win_T *
popup_get_message_win(void)
{
+ if (message_win != NULL)
+ return message_win;
+
+ int i;
+
+ message_win = popup_create(NULL, NULL, TYPE_MESSAGE_WIN);
+
if (message_win == NULL)
- {
- int i;
+ return NULL;
- message_win = popup_create(NULL, NULL, TYPE_MESSAGE_WIN);
+ // use the full screen width
+ message_win->w_width = Columns;
- if (message_win == NULL)
- return NULL;
+ // position at bottom of screen
+ message_win->w_popup_pos = POPPOS_BOTTOM;
+ message_win->w_wantcol = 1;
+ message_win->w_minwidth = 9999;
+ message_win->w_firstline = -1;
- // use the full screen width
- message_win->w_width = Columns;
+ // no padding, border at the top
+ for (i = 0; i < 4; ++i)
+ message_win->w_popup_padding[i] = 0;
+ for (i = 1; i < 4; ++i)
+ message_win->w_popup_border[i] = 0;
- // position at bottom of screen
- message_win->w_popup_pos = POPPOS_BOTTOM;
- message_win->w_wantcol = 1;
- message_win->w_minwidth = 9999;
- message_win->w_firstline = -1;
-
- // no padding, border at the top
- for (i = 0; i < 4; ++i)
- message_win->w_popup_padding[i] = 0;
- for (i = 1; i < 4; ++i)
- message_win->w_popup_border[i] = 0;
-
- if (message_win->w_popup_timer != NULL)
- message_win->w_popup_timer->tr_keep = TRUE;
- }
+ if (message_win->w_popup_timer != NULL)
+ message_win->w_popup_timer->tr_keep = TRUE;
return message_win;
}
@@ -4545,16 +4546,16 @@
void
popup_show_message_win(void)
{
- if (message_win != NULL)
+ if (message_win == NULL)
+ return;
+
+ if ((message_win->w_popup_flags & POPF_HIDDEN) != 0)
{
- if ((message_win->w_popup_flags & POPF_HIDDEN) != 0)
- {
- // the highlight may have changed.
- popup_update_color(message_win, TYPE_MESSAGE_WIN);
- popup_show(message_win);
- }
- start_message_win_timer = TRUE;
+ // the highlight may have changed.
+ popup_update_color(message_win, TYPE_MESSAGE_WIN);
+ popup_show(message_win);
}
+ start_message_win_timer = TRUE;
}
static void
@@ -4664,22 +4665,22 @@
void
popup_set_title(win_T *wp)
{
- if (wp->w_buffer->b_fname != NULL)
- {
- char_u dirname[MAXPATHL];
- size_t len;
+ if (wp->w_buffer->b_fname == NULL)
+ return;
- mch_dirname(dirname, MAXPATHL);
- shorten_buf_fname(wp->w_buffer, dirname, FALSE);
+ char_u dirname[MAXPATHL];
+ size_t len;
- vim_free(wp->w_popup_title);
- len = STRLEN(wp->w_buffer->b_fname) + 3;
- wp->w_popup_title = alloc((int)len);
- if (wp->w_popup_title != NULL)
- vim_snprintf((char *)wp->w_popup_title, len, " %s ",
- wp->w_buffer->b_fname);
- redraw_win_later(wp, UPD_VALID);
- }
+ mch_dirname(dirname, MAXPATHL);
+ shorten_buf_fname(wp->w_buffer, dirname, FALSE);
+
+ vim_free(wp->w_popup_title);
+ len = STRLEN(wp->w_buffer->b_fname) + 3;
+ wp->w_popup_title = alloc((int)len);
+ if (wp->w_popup_title != NULL)
+ vim_snprintf((char *)wp->w_popup_title, len, " %s ",
+ wp->w_buffer->b_fname);
+ redraw_win_later(wp, UPD_VALID);
}
# if defined(FEAT_QUICKFIX) || defined(PROTO)
diff --git a/src/profiler.c b/src/profiler.c
index 03348df..b971cd7 100644
--- a/src/profiler.c
+++ b/src/profiler.c
@@ -910,16 +910,16 @@
{
scriptitem_T *si;
- if (SCRIPT_ID_VALID(current_sctx.sc_sid))
+ if (!SCRIPT_ID_VALID(current_sctx.sc_sid))
+ return;
+
+ si = SCRIPT_ITEM(current_sctx.sc_sid);
+ if (si->sn_prof_on && --si->sn_pr_nest == 0)
{
- si = SCRIPT_ITEM(current_sctx.sc_sid);
- if (si->sn_prof_on && --si->sn_pr_nest == 0)
- {
- profile_end(&si->sn_pr_child);
- profile_sub_wait(tm, &si->sn_pr_child); // don't count wait time
- profile_add(&si->sn_pr_children, &si->sn_pr_child);
- profile_add(&si->sn_prl_children, &si->sn_pr_child);
- }
+ profile_end(&si->sn_pr_child);
+ profile_sub_wait(tm, &si->sn_pr_child); // don't count wait time
+ profile_add(&si->sn_pr_children, &si->sn_pr_child);
+ profile_add(&si->sn_prl_children, &si->sn_pr_child);
}
}
@@ -1009,17 +1009,17 @@
{
FILE *fd;
- if (profile_fname != NULL)
+ if (profile_fname == NULL)
+ return;
+
+ fd = mch_fopen((char *)profile_fname, "w");
+ if (fd == NULL)
+ semsg(_(e_cant_open_file_str), profile_fname);
+ else
{
- fd = mch_fopen((char *)profile_fname, "w");
- if (fd == NULL)
- semsg(_(e_cant_open_file_str), profile_fname);
- else
- {
- script_dump_profile(fd);
- func_dump_profile(fd);
- fclose(fd);
- }
+ script_dump_profile(fd);
+ func_dump_profile(fd);
+ fclose(fd);
}
}
diff --git a/src/quickfix.c b/src/quickfix.c
index ca5b356..1454280 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -1898,14 +1898,14 @@
{
VIM_CLEAR(qfl->qf_title);
- if (title != NULL)
- {
- char_u *p = alloc_id(STRLEN(title) + 2, aid_qf_title);
+ if (title == NULL)
+ return;
- qfl->qf_title = p;
- if (p != NULL)
- STRCPY(p, title);
- }
+ char_u *p = alloc_id(STRLEN(title) + 2, aid_qf_title);
+
+ qfl->qf_title = p;
+ if (p != NULL)
+ STRCPY(p, title);
}
/*
@@ -1976,12 +1976,12 @@
qf_delq_T *q;
q = ALLOC_ONE(qf_delq_T);
- if (q != NULL)
- {
- q->qi = qi;
- q->next = qf_delq_head;
- qf_delq_head = q;
- }
+ if (q == NULL)
+ return;
+
+ q->qi = qi;
+ q->next = qf_delq_head;
+ qf_delq_head = q;
}
/*
@@ -2002,16 +2002,16 @@
{
buf_T *qfbuf;
- if (qi->qf_bufnr != INVALID_QFBUFNR)
+ if (qi->qf_bufnr == INVALID_QFBUFNR)
+ return;
+
+ qfbuf = buflist_findnr(qi->qf_bufnr);
+ if (qfbuf != NULL && qfbuf->b_nwindows == 0)
{
- qfbuf = buflist_findnr(qi->qf_bufnr);
- if (qfbuf != NULL && qfbuf->b_nwindows == 0)
- {
- // If the quickfix buffer is not loaded in any window, then
- // wipe the buffer.
- close_buffer(NULL, qfbuf, DOBUF_WIPE, FALSE, FALSE);
- qi->qf_bufnr = INVALID_QFBUFNR;
- }
+ // If the quickfix buffer is not loaded in any window, then
+ // wipe the buffer.
+ close_buffer(NULL, qfbuf, DOBUF_WIPE, FALSE, FALSE);
+ qi->qf_bufnr = INVALID_QFBUFNR;
}
}
@@ -2231,12 +2231,12 @@
qf_info_T *qi;
qi = ALLOC_CLEAR_ONE_ID(qf_info_T, aid_qf_qfinfo);
- if (qi != NULL)
- {
- qi->qf_refcount++;
- qi->qfl_type = qfltype;
- qi->qf_bufnr = INVALID_QFBUFNR;
- }
+ if (qi == NULL)
+ return NULL;
+
+ qi->qf_refcount++;
+ qi->qfl_type = qfltype;
+ qi->qf_bufnr = INVALID_QFBUFNR;
return qi;
}
@@ -4573,64 +4573,64 @@
// Check if a buffer for the quickfix list exists. Update it.
buf = qf_find_buf(qi);
- if (buf != NULL)
+ if (buf == NULL)
+ return;
+
+ linenr_T old_line_count = buf->b_ml.ml_line_count;
+ int qf_winid = 0;
+
+ if (IS_LL_STACK(qi))
{
- linenr_T old_line_count = buf->b_ml.ml_line_count;
- int qf_winid = 0;
-
- if (IS_LL_STACK(qi))
+ if (curwin->w_llist == qi)
+ win = curwin;
+ else
{
- if (curwin->w_llist == qi)
- win = curwin;
- else
- {
- // Find the file window (non-quickfix) with this location list
- win = qf_find_win_with_loclist(qi);
- if (win == NULL)
- // File window is not found. Find the location list window.
- win = qf_find_win(qi);
- if (win == NULL)
- return;
- }
- qf_winid = win->w_id;
+ // Find the file window (non-quickfix) with this location list
+ win = qf_find_win_with_loclist(qi);
+ if (win == NULL)
+ // File window is not found. Find the location list window.
+ win = qf_find_win(qi);
+ if (win == NULL)
+ return;
}
+ qf_winid = win->w_id;
+ }
- // autocommands may cause trouble
- incr_quickfix_busy();
+ // autocommands may cause trouble
+ incr_quickfix_busy();
- int do_fill = TRUE;
+ int do_fill = TRUE;
+ if (old_last == NULL)
+ {
+ // set curwin/curbuf to buf and save a few things
+ aucmd_prepbuf(&aco, buf);
+ if (curbuf != buf)
+ do_fill = FALSE; // failed to find a window for "buf"
+ }
+
+ if (do_fill)
+ {
+ qf_update_win_titlevar(qi);
+
+ qf_fill_buffer(qf_get_curlist(qi), buf, old_last, qf_winid);
+ ++CHANGEDTICK(buf);
+
if (old_last == NULL)
{
- // set curwin/curbuf to buf and save a few things
- aucmd_prepbuf(&aco, buf);
- if (curbuf != buf)
- do_fill = FALSE; // failed to find a window for "buf"
+ (void)qf_win_pos_update(qi, 0);
+
+ // restore curwin/curbuf and a few other things
+ aucmd_restbuf(&aco);
}
-
- if (do_fill)
- {
- qf_update_win_titlevar(qi);
-
- qf_fill_buffer(qf_get_curlist(qi), buf, old_last, qf_winid);
- ++CHANGEDTICK(buf);
-
- if (old_last == NULL)
- {
- (void)qf_win_pos_update(qi, 0);
-
- // restore curwin/curbuf and a few other things
- aucmd_restbuf(&aco);
- }
- }
-
- // Only redraw when added lines are visible. This avoids flickering
- // when the added lines are not visible.
- if ((win = qf_find_win(qi)) != NULL && old_line_count < win->w_botline)
- redraw_buf_later(buf, UPD_NOT_VALID);
-
- // always called after incr_quickfix_busy()
- decr_quickfix_busy();
}
+
+ // Only redraw when added lines are visible. This avoids flickering
+ // when the added lines are not visible.
+ if ((win = qf_find_win(qi)) != NULL && old_line_count < win->w_botline)
+ redraw_buf_later(buf, UPD_NOT_VALID);
+
+ // always called after incr_quickfix_busy()
+ decr_quickfix_busy();
}
/*
@@ -4924,14 +4924,14 @@
{
int curlist;
- if (qf_get_curlist(qi)->qf_id != save_qfid)
- {
- curlist = qf_id2nr(qi, save_qfid);
- if (curlist < 0)
- // list is not present
- return FAIL;
- qi->qf_curlist = curlist;
- }
+ if (qf_get_curlist(qi)->qf_id == save_qfid)
+ return OK;
+
+ curlist = qf_id2nr(qi, save_qfid);
+ if (curlist < 0)
+ // list is not present
+ return FAIL;
+ qi->qf_curlist = curlist;
return OK;
}
@@ -6544,22 +6544,22 @@
{
char_u *dirname_now = alloc(MAXPATHL);
- if (NULL != dirname_now)
- {
- mch_dirname(dirname_now, MAXPATHL);
- 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;
+ if (dirname_now == NULL)
+ return;
- CLEAR_FIELD(ea);
- ea.arg = dirname_start;
- ea.cmdidx = (curwin->w_localdir == NULL) ? CMD_cd : CMD_lcd;
- ex_cd(&ea);
- }
- vim_free(dirname_now);
+ mch_dirname(dirname_now, MAXPATHL);
+ 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;
+
+ CLEAR_FIELD(ea);
+ ea.arg = dirname_start;
+ ea.cmdidx = (curwin->w_localdir == NULL) ? CMD_cd : CMD_lcd;
+ ex_cd(&ea);
}
+ vim_free(dirname_now);
}
/*
@@ -6723,13 +6723,13 @@
static void
unload_dummy_buffer(buf_T *buf, char_u *dirname_start)
{
- if (curbuf != buf) // safety check
- {
- close_buffer(NULL, buf, DOBUF_UNLOAD, FALSE, TRUE);
+ if (curbuf == buf) // safety check
+ return;
- // When autocommands/'autochdir' option changed directory: go back.
- restore_start_dir(dirname_start);
- }
+ close_buffer(NULL, buf, DOBUF_UNLOAD, FALSE, TRUE);
+
+ // When autocommands/'autochdir' option changed directory: go back.
+ restore_start_dir(dirname_start);
}
#if defined(FEAT_EVAL) || defined(PROTO)
@@ -6862,37 +6862,37 @@
list_T *l;
// Only a List value is supported
- if (di->di_tv.v_type == VAR_LIST && di->di_tv.vval.v_list != NULL)
+ if (di->di_tv.v_type != VAR_LIST || di->di_tv.vval.v_list == NULL)
+ return FAIL;
+
+ // If errorformat is supplied then use it, otherwise use the 'efm'
+ // option setting
+ if ((efm_di = dict_find(what, (char_u *)"efm", -1)) != NULL)
{
- // If errorformat is supplied then use it, otherwise use the 'efm'
- // option setting
- if ((efm_di = dict_find(what, (char_u *)"efm", -1)) != NULL)
- {
- if (efm_di->di_tv.v_type != VAR_STRING ||
- efm_di->di_tv.vval.v_string == NULL)
- return FAIL;
- errorformat = efm_di->di_tv.vval.v_string;
- }
-
- l = list_alloc();
- if (l == NULL)
+ if (efm_di->di_tv.v_type != VAR_STRING ||
+ efm_di->di_tv.vval.v_string == NULL)
return FAIL;
-
- qi = qf_alloc_stack(QFLT_INTERNAL);
- if (qi != NULL)
- {
- if (qf_init_ext(qi, 0, NULL, NULL, &di->di_tv, errorformat,
- TRUE, (linenr_T)0, (linenr_T)0, NULL, NULL) > 0)
- {
- (void)get_errorlist(qi, NULL, 0, 0, l);
- qf_free(&qi->qf_lists[0]);
- }
- free(qi);
- }
- dict_add_list(retdict, "items", l);
- status = OK;
+ errorformat = efm_di->di_tv.vval.v_string;
}
+ l = list_alloc();
+ if (l == NULL)
+ return FAIL;
+
+ qi = qf_alloc_stack(QFLT_INTERNAL);
+ if (qi != NULL)
+ {
+ if (qf_init_ext(qi, 0, NULL, NULL, &di->di_tv, errorformat,
+ TRUE, (linenr_T)0, (linenr_T)0, NULL, NULL) > 0)
+ {
+ (void)get_errorlist(qi, NULL, 0, 0, l);
+ qf_free(&qi->qf_lists[0]);
+ }
+ free(qi);
+ }
+ dict_add_list(retdict, "items", l);
+ status = OK;
+
return status;
}
@@ -7632,12 +7632,12 @@
free_callback(&qfl->qf_qftf_cb);
cb = get_callback(&di->di_tv);
- if (cb.cb_name != NULL && *cb.cb_name != NUL)
- {
- set_callback(&qfl->qf_qftf_cb, &cb);
- if (cb.cb_free_name)
- vim_free(cb.cb_name);
- }
+ if (cb.cb_name == NULL || *cb.cb_name == NUL)
+ return OK;
+
+ set_callback(&qfl->qf_qftf_cb, &cb);
+ if (cb.cb_free_name)
+ vim_free(cb.cb_name);
return OK;
}
@@ -8126,11 +8126,11 @@
// Evaluate the expression. When the result is a string or a list we can
// use it to fill the errorlist.
tv = eval_expr(eap->arg, eap);
- if (tv != NULL)
- {
- (void)cexpr_core(eap, tv);
- free_tv(tv);
- }
+ if (tv == NULL)
+ return;
+
+ (void)cexpr_core(eap, tv);
+ free_tv(tv);
}
#endif
diff --git a/src/regexp.c b/src/regexp.c
index af8b375..f18f33d 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -710,10 +710,11 @@
{
static int after_slash = FALSE;
- if (curchr == -1)
+ if (curchr != -1)
+ return curchr;
+
+ switch (curchr = regparse[0])
{
- switch (curchr = regparse[0])
- {
case '.':
case '[':
case '~':
@@ -743,7 +744,7 @@
case ';': // future ext.
case '`': // future ext.
case '/': // Can't be used in / command
- // magic only after "\v"
+ // magic only after "\v"
if (reg_magic == MAGIC_ALL)
curchr = Magic(curchr);
break;
@@ -788,8 +789,8 @@
// ignore \c \C \m \M \v \V and \Z after '$'
while (p[0] == '\\' && (p[1] == 'c' || p[1] == 'C'
- || p[1] == 'm' || p[1] == 'M'
- || p[1] == 'v' || p[1] == 'V' || p[1] == 'Z'))
+ || p[1] == 'm' || p[1] == 'M'
+ || p[1] == 'v' || p[1] == 'V' || p[1] == 'Z'))
{
if (p[1] == 'v')
is_magic_all = TRUE;
@@ -802,7 +803,7 @@
&& (p[1] == '|' || p[1] == '&' || p[1] == ')'
|| p[1] == 'n'))
|| (is_magic_all
- && (p[0] == '|' || p[0] == '&' || p[0] == ')'))
+ && (p[0] == '|' || p[0] == '&' || p[0] == ')'))
|| reg_magic == MAGIC_ALL)
curchr = Magic('$');
}
@@ -858,7 +859,6 @@
default:
if (has_mbyte)
curchr = (*mb_ptr2char)(regparse);
- }
}
return curchr;
@@ -1384,42 +1384,42 @@
static void
cleanup_subexpr(void)
{
- if (rex.need_clear_subexpr)
+ if (!rex.need_clear_subexpr)
+ return;
+
+ if (REG_MULTI)
{
- if (REG_MULTI)
- {
- // Use 0xff to set lnum to -1
- vim_memset(rex.reg_startpos, 0xff, sizeof(lpos_T) * NSUBEXP);
- vim_memset(rex.reg_endpos, 0xff, sizeof(lpos_T) * NSUBEXP);
- }
- else
- {
- vim_memset(rex.reg_startp, 0, sizeof(char_u *) * NSUBEXP);
- vim_memset(rex.reg_endp, 0, sizeof(char_u *) * NSUBEXP);
- }
- rex.need_clear_subexpr = FALSE;
+ // Use 0xff to set lnum to -1
+ vim_memset(rex.reg_startpos, 0xff, sizeof(lpos_T) * NSUBEXP);
+ vim_memset(rex.reg_endpos, 0xff, sizeof(lpos_T) * NSUBEXP);
}
+ else
+ {
+ vim_memset(rex.reg_startp, 0, sizeof(char_u *) * NSUBEXP);
+ vim_memset(rex.reg_endp, 0, sizeof(char_u *) * NSUBEXP);
+ }
+ rex.need_clear_subexpr = FALSE;
}
#ifdef FEAT_SYN_HL
static void
cleanup_zsubexpr(void)
{
- if (rex.need_clear_zsubexpr)
+ if (!rex.need_clear_zsubexpr)
+ return;
+
+ if (REG_MULTI)
{
- if (REG_MULTI)
- {
- // Use 0xff to set lnum to -1
- vim_memset(reg_startzpos, 0xff, sizeof(lpos_T) * NSUBEXP);
- vim_memset(reg_endzpos, 0xff, sizeof(lpos_T) * NSUBEXP);
- }
- else
- {
- vim_memset(reg_startzp, 0, sizeof(char_u *) * NSUBEXP);
- vim_memset(reg_endzp, 0, sizeof(char_u *) * NSUBEXP);
- }
- rex.need_clear_zsubexpr = FALSE;
+ // Use 0xff to set lnum to -1
+ vim_memset(reg_startzpos, 0xff, sizeof(lpos_T) * NSUBEXP);
+ vim_memset(reg_endzpos, 0xff, sizeof(lpos_T) * NSUBEXP);
}
+ else
+ {
+ vim_memset(reg_startzp, 0, sizeof(char_u *) * NSUBEXP);
+ vim_memset(reg_endzp, 0, sizeof(char_u *) * NSUBEXP);
+ }
+ rex.need_clear_zsubexpr = FALSE;
}
#endif
diff --git a/src/regexp_bt.c b/src/regexp_bt.c
index d2acbc2..33af278 100644
--- a/src/regexp_bt.c
+++ b/src/regexp_bt.c
@@ -3187,20 +3187,20 @@
// When "rex.need_clear_subexpr" is set we don't need to save the values,
// only remember that this flag needs to be set again when restoring.
bp->save_need_clear_subexpr = rex.need_clear_subexpr;
- if (!rex.need_clear_subexpr)
+ if (rex.need_clear_subexpr)
+ return;
+
+ for (i = 0; i < NSUBEXP; ++i)
{
- for (i = 0; i < NSUBEXP; ++i)
+ if (REG_MULTI)
{
- if (REG_MULTI)
- {
- bp->save_start[i].se_u.pos = rex.reg_startpos[i];
- bp->save_end[i].se_u.pos = rex.reg_endpos[i];
- }
- else
- {
- bp->save_start[i].se_u.ptr = rex.reg_startp[i];
- bp->save_end[i].se_u.ptr = rex.reg_endp[i];
- }
+ bp->save_start[i].se_u.pos = rex.reg_startpos[i];
+ bp->save_end[i].se_u.pos = rex.reg_endpos[i];
+ }
+ else
+ {
+ bp->save_start[i].se_u.ptr = rex.reg_startp[i];
+ bp->save_end[i].se_u.ptr = rex.reg_endp[i];
}
}
}
@@ -3215,20 +3215,20 @@
// Only need to restore saved values when they are not to be cleared.
rex.need_clear_subexpr = bp->save_need_clear_subexpr;
- if (!rex.need_clear_subexpr)
+ if (rex.need_clear_subexpr)
+ return;
+
+ for (i = 0; i < NSUBEXP; ++i)
{
- for (i = 0; i < NSUBEXP; ++i)
+ if (REG_MULTI)
{
- if (REG_MULTI)
- {
- rex.reg_startpos[i] = bp->save_start[i].se_u.pos;
- rex.reg_endpos[i] = bp->save_end[i].se_u.pos;
- }
- else
- {
- rex.reg_startp[i] = bp->save_start[i].se_u.ptr;
- rex.reg_endp[i] = bp->save_end[i].se_u.ptr;
- }
+ rex.reg_startpos[i] = bp->save_start[i].se_u.pos;
+ rex.reg_endpos[i] = bp->save_end[i].se_u.pos;
+ }
+ else
+ {
+ rex.reg_startp[i] = bp->save_start[i].se_u.ptr;
+ rex.reg_endp[i] = bp->save_end[i].se_u.ptr;
}
}
}
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index 19ee71b..619cd15 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -487,20 +487,20 @@
return NULL;
ret = alloc(len);
- if (ret != NULL)
+ if (ret == NULL)
+ return NULL;
+
+ p = start->out->out; // skip first char, it goes into regstart
+ s = ret;
+ while (p->c > 0)
{
- p = start->out->out; // skip first char, it goes into regstart
- s = ret;
- while (p->c > 0)
- {
- if (has_mbyte)
- s += (*mb_char2bytes)(p->c, s);
- else
- *s++ = p->c;
- p = p->out;
- }
- *s = NUL;
+ if (has_mbyte)
+ s += (*mb_char2bytes)(p->c, s);
+ else
+ *s++ = p->c;
+ p = p->out;
}
+ *s = NUL;
return ret;
}
@@ -2782,25 +2782,25 @@
FILE *f;
f = fopen(NFA_REGEXP_DUMP_LOG, "a");
- if (f != NULL)
+ if (f == NULL)
+ return;
+
+ fprintf(f, "\n-------------------------\n");
+ if (retval == FAIL)
+ fprintf(f, ">>> NFA engine failed... \n");
+ else if (retval == OK)
+ fprintf(f, ">>> NFA engine succeeded !\n");
+ fprintf(f, "Regexp: \"%s\"\nPostfix notation (char): \"", expr);
+ for (p = post_start; *p && p < post_ptr; p++)
{
- fprintf(f, "\n-------------------------\n");
- if (retval == FAIL)
- fprintf(f, ">>> NFA engine failed... \n");
- else if (retval == OK)
- fprintf(f, ">>> NFA engine succeeded !\n");
- fprintf(f, "Regexp: \"%s\"\nPostfix notation (char): \"", expr);
- for (p = post_start; *p && p < post_ptr; p++)
- {
- nfa_set_code(*p);
- fprintf(f, "%s, ", code);
- }
- fprintf(f, "\"\nPostfix notation (int): ");
- for (p = post_start; *p && p < post_ptr; p++)
- fprintf(f, "%d ", *p);
- fprintf(f, "\n\n");
- fclose(f);
+ nfa_set_code(*p);
+ fprintf(f, "%s, ", code);
}
+ fprintf(f, "\"\nPostfix notation (int): ");
+ for (p = post_start; *p && p < post_ptr; p++)
+ fprintf(f, "%d ", *p);
+ fprintf(f, "\n\n");
+ fclose(f);
}
/*
@@ -2883,20 +2883,20 @@
{
FILE *debugf = fopen(NFA_REGEXP_DUMP_LOG, "a");
- if (debugf != NULL)
- {
- nfa_print_state(debugf, prog->start);
+ if (debugf == NULL)
+ return;
- if (prog->reganch)
- fprintf(debugf, "reganch: %d\n", prog->reganch);
- if (prog->regstart != NUL)
- fprintf(debugf, "regstart: %c (decimal: %d)\n",
- prog->regstart, prog->regstart);
- if (prog->match_text != NULL)
- fprintf(debugf, "match_text: \"%s\"\n", prog->match_text);
+ nfa_print_state(debugf, prog->start);
- fclose(debugf);
- }
+ if (prog->reganch)
+ fprintf(debugf, "reganch: %d\n", prog->reganch);
+ if (prog->regstart != NUL)
+ fprintf(debugf, "regstart: %c (decimal: %d)\n",
+ prog->regstart, prog->regstart);
+ if (prog->match_text != NULL)
+ fprintf(debugf, "match_text: \"%s\"\n", prog->match_text);
+
+ fclose(debugf);
}
#endif // ENABLE_LOG
#endif // DEBUG
@@ -4096,21 +4096,21 @@
copy_sub(regsub_T *to, regsub_T *from)
{
to->in_use = from->in_use;
- if (from->in_use > 0)
+ if (from->in_use <= 0)
+ return;
+
+ // Copy the match start and end positions.
+ if (REG_MULTI)
{
- // Copy the match start and end positions.
- if (REG_MULTI)
- {
- mch_memmove(&to->list.multi[0],
- &from->list.multi[0],
- sizeof(struct multipos) * from->in_use);
- to->orig_start_col = from->orig_start_col;
- }
- else
- mch_memmove(&to->list.line[0],
- &from->list.line[0],
- sizeof(struct linepos) * from->in_use);
+ mch_memmove(&to->list.multi[0],
+ &from->list.multi[0],
+ sizeof(struct multipos) * from->in_use);
+ to->orig_start_col = from->orig_start_col;
}
+ else
+ mch_memmove(&to->list.line[0],
+ &from->list.line[0],
+ sizeof(struct linepos) * from->in_use);
}
/*
@@ -4121,18 +4121,18 @@
{
if (to->in_use < from->in_use)
to->in_use = from->in_use;
- if (from->in_use > 1)
- {
- // Copy the match start and end positions.
- if (REG_MULTI)
- mch_memmove(&to->list.multi[1],
- &from->list.multi[1],
- sizeof(struct multipos) * (from->in_use - 1));
- else
- mch_memmove(&to->list.line[1],
- &from->list.line[1],
- sizeof(struct linepos) * (from->in_use - 1));
- }
+ if (from->in_use <= 1)
+ return;
+
+ // Copy the match start and end positions.
+ if (REG_MULTI)
+ mch_memmove(&to->list.multi[1],
+ &from->list.multi[1],
+ sizeof(struct multipos) * (from->in_use - 1));
+ else
+ mch_memmove(&to->list.line[1],
+ &from->list.line[1],
+ sizeof(struct linepos) * (from->in_use - 1));
}
/*
@@ -4141,21 +4141,21 @@
static void
copy_ze_off(regsub_T *to, regsub_T *from)
{
- if (rex.nfa_has_zend)
+ if (!rex.nfa_has_zend)
+ return;
+
+ if (REG_MULTI)
{
- if (REG_MULTI)
+ if (from->list.multi[0].end_lnum >= 0)
{
- if (from->list.multi[0].end_lnum >= 0)
- {
- to->list.multi[0].end_lnum = from->list.multi[0].end_lnum;
- to->list.multi[0].end_col = from->list.multi[0].end_col;
- }
+ to->list.multi[0].end_lnum = from->list.multi[0].end_lnum;
+ to->list.multi[0].end_col = from->list.multi[0].end_col;
}
- else
- {
- if (from->list.line[0].end != NULL)
- to->list.line[0].end = from->list.line[0].end;
- }
+ }
+ else
+ {
+ if (from->list.line[0].end != NULL)
+ to->list.line[0].end = from->list.line[0].end;
}
}
@@ -7568,12 +7568,12 @@
static void
nfa_regfree(regprog_T *prog)
{
- if (prog != NULL)
- {
- vim_free(((nfa_regprog_T *)prog)->match_text);
- vim_free(((nfa_regprog_T *)prog)->pattern);
- vim_free(prog);
- }
+ if (prog == NULL)
+ return;
+
+ vim_free(((nfa_regprog_T *)prog)->match_text);
+ vim_free(((nfa_regprog_T *)prog)->pattern);
+ vim_free(prog);
}
/*
diff --git a/src/register.c b/src/register.c
index 3454cfa..03c26cb 100644
--- a/src/register.c
+++ b/src/register.c
@@ -294,25 +294,25 @@
get_yank_register(name, 0);
reg = ALLOC_ONE(yankreg_T);
- if (reg != NULL)
+ if (reg == NULL)
+ return (void *)NULL;
+
+ *reg = *y_current;
+ if (copy)
{
- *reg = *y_current;
- if (copy)
- {
- // If we run out of memory some or all of the lines are empty.
- if (reg->y_size == 0)
- reg->y_array = NULL;
- else
- reg->y_array = ALLOC_MULT(char_u *, reg->y_size);
- if (reg->y_array != NULL)
- {
- for (i = 0; i < reg->y_size; ++i)
- reg->y_array[i] = vim_strsave(y_current->y_array[i]);
- }
- }
+ // If we run out of memory some or all of the lines are empty.
+ if (reg->y_size == 0)
+ reg->y_array = NULL;
else
- y_current->y_array = NULL;
+ reg->y_array = ALLOC_MULT(char_u *, reg->y_size);
+ if (reg->y_array != NULL)
+ {
+ for (i = 0; i < reg->y_size; ++i)
+ reg->y_array[i] = vim_strsave(y_current->y_array[i]);
+ }
}
+ else
+ y_current->y_array = NULL;
return (void *)reg;
}
@@ -716,22 +716,22 @@
{
char_u buf[3];
- if (restart_edit != NUL)
+ if (restart_edit == NUL)
+ return;
+
+ if (restart_edit == 'V')
{
- if (restart_edit == 'V')
- {
- buf[0] = 'g';
- buf[1] = 'R';
- buf[2] = NUL;
- }
- else
- {
- buf[0] = restart_edit == 'I' ? 'i' : restart_edit;
- buf[1] = NUL;
- }
- if (ins_typebuf(buf, REMAP_NONE, 0, TRUE, silent) == OK)
- restart_edit = NUL;
+ buf[0] = 'g';
+ buf[1] = 'R';
+ buf[2] = NUL;
}
+ else
+ {
+ buf[0] = restart_edit == 'I' ? 'i' : restart_edit;
+ buf[1] = NUL;
+ }
+ if (ins_typebuf(buf, REMAP_NONE, 0, TRUE, silent) == OK)
+ restart_edit = NUL;
}
/*
@@ -1097,14 +1097,14 @@
static void
free_yank(long n)
{
- if (y_current->y_array != NULL)
- {
- long i;
+ if (y_current->y_array == NULL)
+ return;
- for (i = n; --i >= 0; )
- vim_free(y_current->y_array[i]);
- VIM_CLEAR(y_current->y_array);
- }
+ long i;
+
+ for (i = n; --i >= 0; )
+ vim_free(y_current->y_array[i]);
+ VIM_CLEAR(y_current->y_array);
}
void
@@ -2695,23 +2695,22 @@
}
retval = alloc(len + 1);
+ if (retval == NULL)
+ return NULL;
// Copy the lines of the yank register into the string.
- if (retval != NULL)
+ len = 0;
+ for (i = 0; i < y_current->y_size; ++i)
{
- len = 0;
- for (i = 0; i < y_current->y_size; ++i)
- {
- STRCPY(retval + len, y_current->y_array[i]);
- len += (long)STRLEN(retval + len);
+ STRCPY(retval + len, y_current->y_array[i]);
+ len += (long)STRLEN(retval + len);
- // Insert a NL between lines and after the last line if y_type is
- // MLINE.
- if (y_current->y_type == MLINE || i < y_current->y_size - 1)
- retval[len++] = '\n';
- }
- retval[len] = NUL;
+ // Insert a NL between lines and after the last line if y_type is
+ // MLINE.
+ if (y_current->y_type == MLINE || i < y_current->y_size - 1)
+ retval[len++] = '\n';
}
+ retval[len] = NUL;
return retval;
}
diff --git a/src/version.c b/src/version.c
index 9bfbe4b..d94f43f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1221,
+/**/
1220,
/**/
1219,