Patch 9.0.0124
Problem: Code has more indent than needed.
Solution: Use continue and return statements. (closes #10824)
Files: src/arglist.c, src/diff.c, src/edit.c, src/help.c, src/normal.c,
src/syntax.c, src/window.c
*** ../vim-9.0.0123/src/arglist.c 2022-02-03 13:02:32.000000000 +0000
--- src/arglist.c 2022-07-31 18:25:09.865852240 +0100
***************
*** 1241,1272 ****
for (idx = 0; idx < ARGCOUNT; ++idx)
{
p = alist_name(&ARGLIST[idx]);
! if (p != NULL)
{
! if (len > 0)
! {
! // insert a space in between names
! if (retval != NULL)
! retval[len] = ' ';
! ++len;
! }
! for ( ; *p != NUL; ++p)
! {
! if (*p == ' '
#ifndef BACKSLASH_IN_FILENAME
! || *p == '\\'
#endif
! || *p == '`')
! {
! // insert a backslash
! if (retval != NULL)
! retval[len] = '\\';
! ++len;
! }
if (retval != NULL)
! retval[len] = *p;
++len;
}
}
}
--- 1241,1271 ----
for (idx = 0; idx < ARGCOUNT; ++idx)
{
p = alist_name(&ARGLIST[idx]);
! if (p == NULL)
! continue;
! if (len > 0)
{
! // insert a space in between names
! if (retval != NULL)
! retval[len] = ' ';
! ++len;
! }
! for ( ; *p != NUL; ++p)
! {
! if (*p == ' '
#ifndef BACKSLASH_IN_FILENAME
! || *p == '\\'
#endif
! || *p == '`')
! {
! // insert a backslash
if (retval != NULL)
! retval[len] = '\\';
++len;
}
+ if (retval != NULL)
+ retval[len] = *p;
+ ++len;
}
}
*** ../vim-9.0.0123/src/diff.c 2022-07-28 18:44:24.225873426 +0100
--- src/diff.c 2022-07-31 18:29:41.098241306 +0100
***************
*** 678,711 ****
need_diff_redraw = FALSE;
FOR_ALL_WINDOWS(wp)
// when closing windows or wiping buffers skip invalid window
! if (wp->w_p_diff && buf_valid(wp->w_buffer))
! {
! redraw_win_later(wp, SOME_VALID);
! if (wp != curwin)
! wp_other = wp;
#ifdef FEAT_FOLDING
! if (dofold && foldmethodIsDiff(wp))
! foldUpdateAll(wp);
#endif
! // A change may have made filler lines invalid, need to take care
! // of that for other windows.
! n = diff_check(wp, wp->w_topline);
! if ((wp != curwin && wp->w_topfill > 0) || n > 0)
{
! if (wp->w_topfill > n)
! wp->w_topfill = (n < 0 ? 0 : n);
! else if (n > 0 && n > wp->w_topfill)
! {
! wp->w_topfill = n;
! if (wp == curwin)
! used_max_fill_curwin = TRUE;
! else if (wp_other != NULL)
! used_max_fill_other = TRUE;
! }
! check_topfill(wp, FALSE);
}
}
if (wp_other != NULL && curwin->w_p_scb)
{
--- 678,713 ----
need_diff_redraw = FALSE;
FOR_ALL_WINDOWS(wp)
+ {
// when closing windows or wiping buffers skip invalid window
! if (!wp->w_p_diff || !buf_valid(wp->w_buffer))
! continue;
!
! redraw_win_later(wp, SOME_VALID);
! if (wp != curwin)
! wp_other = wp;
#ifdef FEAT_FOLDING
! if (dofold && foldmethodIsDiff(wp))
! foldUpdateAll(wp);
#endif
! // A change may have made filler lines invalid, need to take care of
! // that for other windows.
! n = diff_check(wp, wp->w_topline);
! if ((wp != curwin && wp->w_topfill > 0) || n > 0)
! {
! if (wp->w_topfill > n)
! wp->w_topfill = (n < 0 ? 0 : n);
! else if (n > 0 && n > wp->w_topfill)
{
! wp->w_topfill = n;
! if (wp == curwin)
! used_max_fill_curwin = TRUE;
! else if (wp_other != NULL)
! used_max_fill_other = TRUE;
}
+ check_topfill(wp, FALSE);
}
+ }
if (wp_other != NULL && curwin->w_p_scb)
{
*** ../vim-9.0.0123/src/edit.c 2022-07-25 18:13:33.046580756 +0100
--- src/edit.c 2022-07-31 18:29:23.386226946 +0100
***************
*** 3749,3799 ****
static int
ins_start_select(int c)
{
! if (km_startsel)
! switch (c)
! {
! case K_KHOME:
! case K_KEND:
! case K_PAGEUP:
! case K_KPAGEUP:
! case K_PAGEDOWN:
! case K_KPAGEDOWN:
# ifdef MACOS_X
! case K_LEFT:
! case K_RIGHT:
! case K_UP:
! case K_DOWN:
! case K_END:
! case K_HOME:
# endif
! if (!(mod_mask & MOD_MASK_SHIFT))
! break;
! // FALLTHROUGH
! case K_S_LEFT:
! case K_S_RIGHT:
! case K_S_UP:
! case K_S_DOWN:
! case K_S_END:
! case K_S_HOME:
! // Start selection right away, the cursor can move with
! // CTRL-O when beyond the end of the line.
! start_selection();
! // Execute the key in (insert) Select mode.
! stuffcharReadbuff(Ctrl_O);
! if (mod_mask)
! {
! char_u buf[4];
! buf[0] = K_SPECIAL;
! buf[1] = KS_MODIFIER;
! buf[2] = mod_mask;
! buf[3] = NUL;
! stuffReadbuff(buf);
! }
! stuffcharReadbuff(c);
! return TRUE;
! }
return FALSE;
}
--- 3749,3800 ----
static int
ins_start_select(int c)
{
! if (!km_startsel)
! return FALSE;
! switch (c)
! {
! case K_KHOME:
! case K_KEND:
! case K_PAGEUP:
! case K_KPAGEUP:
! case K_PAGEDOWN:
! case K_KPAGEDOWN:
# ifdef MACOS_X
! case K_LEFT:
! case K_RIGHT:
! case K_UP:
! case K_DOWN:
! case K_END:
! case K_HOME:
# endif
! if (!(mod_mask & MOD_MASK_SHIFT))
! break;
! // FALLTHROUGH
! case K_S_LEFT:
! case K_S_RIGHT:
! case K_S_UP:
! case K_S_DOWN:
! case K_S_END:
! case K_S_HOME:
! // Start selection right away, the cursor can move with CTRL-O when
! // beyond the end of the line.
! start_selection();
! // Execute the key in (insert) Select mode.
! stuffcharReadbuff(Ctrl_O);
! if (mod_mask)
! {
! char_u buf[4];
! buf[0] = K_SPECIAL;
! buf[1] = KS_MODIFIER;
! buf[2] = mod_mask;
! buf[3] = NUL;
! stuffReadbuff(buf);
! }
! stuffcharReadbuff(c);
! return TRUE;
! }
return FALSE;
}
*** ../vim-9.0.0123/src/help.c 2022-07-30 12:03:12.835558826 +0100
--- src/help.c 2022-07-31 18:25:09.865852240 +0100
***************
*** 1220,1257 ****
for (i = 0; i < filecount; ++i)
{
len = (int)STRLEN(files[i]);
! if (len > 4)
{
! if (STRICMP(files[i] + len - 4, ".txt") == 0)
! {
! // ".txt" -> language "en"
! lang[0] = 'e';
! lang[1] = 'n';
! }
! else if (files[i][len - 4] == '.'
! && ASCII_ISALPHA(files[i][len - 3])
! && ASCII_ISALPHA(files[i][len - 2])
! && TOLOWER_ASC(files[i][len - 1]) == 'x')
! {
! // ".abx" -> language "ab"
! lang[0] = TOLOWER_ASC(files[i][len - 3]);
! lang[1] = TOLOWER_ASC(files[i][len - 2]);
! }
! else
! continue;
! // Did we find this language already?
! for (j = 0; j < ga.ga_len; j += 2)
! if (STRNCMP(lang, ((char_u *)ga.ga_data) + j, 2) == 0)
! break;
! if (j == ga.ga_len)
! {
! // New language, add it.
! if (ga_grow(&ga, 2) == FAIL)
! break;
! ((char_u *)ga.ga_data)[ga.ga_len++] = lang[0];
! ((char_u *)ga.ga_data)[ga.ga_len++] = lang[1];
! }
}
}
--- 1220,1257 ----
for (i = 0; i < filecount; ++i)
{
len = (int)STRLEN(files[i]);
! if (len <= 4)
! continue;
!
! if (STRICMP(files[i] + len - 4, ".txt") == 0)
! {
! // ".txt" -> language "en"
! lang[0] = 'e';
! lang[1] = 'n';
! }
! else if (files[i][len - 4] == '.'
! && ASCII_ISALPHA(files[i][len - 3])
! && ASCII_ISALPHA(files[i][len - 2])
! && TOLOWER_ASC(files[i][len - 1]) == 'x')
{
! // ".abx" -> language "ab"
! lang[0] = TOLOWER_ASC(files[i][len - 3]);
! lang[1] = TOLOWER_ASC(files[i][len - 2]);
! }
! else
! continue;
! // Did we find this language already?
! for (j = 0; j < ga.ga_len; j += 2)
! if (STRNCMP(lang, ((char_u *)ga.ga_data) + j, 2) == 0)
! break;
! if (j == ga.ga_len)
! {
! // New language, add it.
! if (ga_grow(&ga, 2) == FAIL)
! break;
! ((char_u *)ga.ga_data)[ga.ga_len++] = lang[0];
! ((char_u *)ga.ga_data)[ga.ga_len++] = lang[1];
}
}
*** ../vim-9.0.0123/src/normal.c 2022-07-30 16:54:01.863698294 +0100
--- src/normal.c 2022-07-31 18:25:09.865852240 +0100
***************
*** 1916,1960 ****
FOR_ALL_WINDOWS(curwin)
{
curbuf = curwin->w_buffer;
! // skip original window and windows with 'noscrollbind'
! if (curwin != old_curwin && curwin->w_p_scb)
{
- // do the vertical scroll
- if (want_ver)
- {
#ifdef FEAT_DIFF
! if (old_curwin->w_p_diff && curwin->w_p_diff)
! {
! diff_set_topline(old_curwin, curwin);
! }
! else
#endif
! {
! curwin->w_scbind_pos += topline_diff;
! topline = curwin->w_scbind_pos;
! if (topline > curbuf->b_ml.ml_line_count)
! topline = curbuf->b_ml.ml_line_count;
! if (topline < 1)
! topline = 1;
!
! y = topline - curwin->w_topline;
! if (y > 0)
! scrollup(y, FALSE);
! else
! scrolldown(-y, FALSE);
! }
! redraw_later(VALID);
! cursor_correct();
! curwin->w_redr_status = TRUE;
}
! // do the horizontal scroll
! if (want_hor && curwin->w_leftcol != tgt_leftcol)
! {
! curwin->w_leftcol = tgt_leftcol;
! leftcol_changed();
! }
}
}
--- 1916,1960 ----
FOR_ALL_WINDOWS(curwin)
{
curbuf = curwin->w_buffer;
! // skip original window and windows with 'noscrollbind'
! if (curwin == old_curwin || !curwin->w_p_scb)
! continue;
!
! // do the vertical scroll
! if (want_ver)
{
#ifdef FEAT_DIFF
! if (old_curwin->w_p_diff && curwin->w_p_diff)
! {
! diff_set_topline(old_curwin, curwin);
! }
! else
#endif
! {
! curwin->w_scbind_pos += topline_diff;
! topline = curwin->w_scbind_pos;
! if (topline > curbuf->b_ml.ml_line_count)
! topline = curbuf->b_ml.ml_line_count;
! if (topline < 1)
! topline = 1;
! y = topline - curwin->w_topline;
! if (y > 0)
! scrollup(y, FALSE);
! else
! scrolldown(-y, FALSE);
}
! redraw_later(VALID);
! cursor_correct();
! curwin->w_redr_status = TRUE;
! }
!
! // do the horizontal scroll
! if (want_hor && curwin->w_leftcol != tgt_leftcol)
! {
! curwin->w_leftcol = tgt_leftcol;
! leftcol_changed();
}
}
*** ../vim-9.0.0123/src/syntax.c 2022-06-19 12:25:47.000000000 +0100
--- src/syntax.c 2022-07-31 18:32:22.394318774 +0100
***************
*** 1485,1542 ****
reg_extmatch_T *six, *bsx;
// First a quick check if the stacks have the same size end nextlist.
! if (sp->sst_stacksize == current_state.ga_len
! && sp->sst_next_list == current_next_list)
! {
! // Need to compare all states on both stacks.
! if (sp->sst_stacksize > SST_FIX_STATES)
! bp = SYN_STATE_P(&(sp->sst_union.sst_ga));
! else
! bp = sp->sst_union.sst_stack;
! for (i = current_state.ga_len; --i >= 0; )
{
! // If the item has another index the state is different.
! if (bp[i].bs_idx != CUR_STATE(i).si_idx)
! break;
! if (bp[i].bs_extmatch != CUR_STATE(i).si_extmatch)
{
! // When the extmatch pointers are different, the strings in
! // them can still be the same. Check if the extmatch
! // references are equal.
! bsx = bp[i].bs_extmatch;
! six = CUR_STATE(i).si_extmatch;
! // If one of the extmatch pointers is NULL the states are
! // different.
! if (bsx == NULL || six == NULL)
break;
! for (j = 0; j < NSUBEXP; ++j)
! {
! // Check each referenced match string. They must all be
! // equal.
! if (bsx->matches[j] != six->matches[j])
! {
! // If the pointer is different it can still be the
! // same text. Compare the strings, ignore case when
! // the start item has the sp_ic flag set.
! if (bsx->matches[j] == NULL
! || six->matches[j] == NULL)
! break;
! if ((SYN_ITEMS(syn_block)[CUR_STATE(i).si_idx]).sp_ic
! ? MB_STRICMP(bsx->matches[j],
! six->matches[j]) != 0
! : STRCMP(bsx->matches[j], six->matches[j]) != 0)
! break;
! }
! }
! if (j != NSUBEXP)
break;
}
}
! if (i < 0)
! return TRUE;
}
! return FALSE;
}
/*
--- 1485,1534 ----
reg_extmatch_T *six, *bsx;
// First a quick check if the stacks have the same size end nextlist.
! if (sp->sst_stacksize != current_state.ga_len
! || sp->sst_next_list != current_next_list)
! return FALSE;
!
! // Need to compare all states on both stacks.
! if (sp->sst_stacksize > SST_FIX_STATES)
! bp = SYN_STATE_P(&(sp->sst_union.sst_ga));
! else
! bp = sp->sst_union.sst_stack;
! for (i = current_state.ga_len; --i >= 0; )
! {
! // If the item has another index the state is different.
! if (bp[i].bs_idx != CUR_STATE(i).si_idx)
! break;
! if (bp[i].bs_extmatch == CUR_STATE(i).si_extmatch)
! continue;
! // When the extmatch pointers are different, the strings in them can
! // still be the same. Check if the extmatch references are equal.
! bsx = bp[i].bs_extmatch;
! six = CUR_STATE(i).si_extmatch;
! // If one of the extmatch pointers is NULL the states are different.
! if (bsx == NULL || six == NULL)
! break;
! for (j = 0; j < NSUBEXP; ++j)
{
! // Check each referenced match string. They must all be equal.
! if (bsx->matches[j] != six->matches[j])
{
! // If the pointer is different it can still be the same text.
! // Compare the strings, ignore case when the start item has the
! // sp_ic flag set.
! if (bsx->matches[j] == NULL || six->matches[j] == NULL)
break;
! if ((SYN_ITEMS(syn_block)[CUR_STATE(i).si_idx]).sp_ic
! ? MB_STRICMP(bsx->matches[j], six->matches[j]) != 0
! : STRCMP(bsx->matches[j], six->matches[j]) != 0)
break;
}
}
! if (j != NSUBEXP)
! break;
}
! return i < 0 ? TRUE : FALSE;
}
/*
*** ../vim-9.0.0123/src/window.c 2022-07-30 19:10:03.569318597 +0100
--- src/window.c 2022-07-31 18:33:21.670326536 +0100
***************
*** 2004,2035 ****
next_curwin_size = -1;
FOR_ALL_FRAMES(fr, topfr->fr_child)
{
! // If 'winfixwidth' set keep the window width if
! // possible.
// Watch out for this window being the next_curwin.
! if (frame_fixed_width(fr))
{
! n = frame_minwidth(fr, NOWIN);
! new_size = fr->fr_width;
! if (frame_has_win(fr, next_curwin))
! {
! room += p_wiw - p_wmw;
! next_curwin_size = 0;
! if (new_size < p_wiw)
! new_size = p_wiw;
! }
! else
! // These windows don't use up room.
! totwincount -= (n + (fr->fr_next == NULL
! ? extra_sep : 0)) / (p_wmw + 1);
! room -= new_size - n;
! if (room < 0)
! {
! new_size += room;
! room = 0;
! }
! fr->fr_newwidth = new_size;
}
}
if (next_curwin_size == -1)
{
--- 2004,2033 ----
next_curwin_size = -1;
FOR_ALL_FRAMES(fr, topfr->fr_child)
{
! if (!frame_fixed_width(fr))
! continue;
! // If 'winfixwidth' set keep the window width if possible.
// Watch out for this window being the next_curwin.
! n = frame_minwidth(fr, NOWIN);
! new_size = fr->fr_width;
! if (frame_has_win(fr, next_curwin))
{
! room += p_wiw - p_wmw;
! next_curwin_size = 0;
! if (new_size < p_wiw)
! new_size = p_wiw;
}
+ else
+ // These windows don't use up room.
+ totwincount -= (n + (fr->fr_next == NULL
+ ? extra_sep : 0)) / (p_wmw + 1);
+ room -= new_size - n;
+ if (room < 0)
+ {
+ new_size += room;
+ room = 0;
+ }
+ fr->fr_newwidth = new_size;
}
if (next_curwin_size == -1)
{
***************
*** 2145,2176 ****
next_curwin_size = -1;
FOR_ALL_FRAMES(fr, topfr->fr_child)
{
// If 'winfixheight' set keep the window height if
// possible.
// Watch out for this window being the next_curwin.
! if (frame_fixed_height(fr))
{
! n = frame_minheight(fr, NOWIN);
! new_size = fr->fr_height;
! if (frame_has_win(fr, next_curwin))
! {
! room += p_wh - p_wmh;
! next_curwin_size = 0;
! if (new_size < p_wh)
! new_size = p_wh;
! }
! else
! // These windows don't use up room.
! totwincount -= (n + (fr->fr_next == NULL
! ? extra_sep : 0)) / (p_wmh + 1);
! room -= new_size - n;
! if (room < 0)
! {
! new_size += room;
! room = 0;
! }
! fr->fr_newheight = new_size;
}
}
if (next_curwin_size == -1)
{
--- 2143,2173 ----
next_curwin_size = -1;
FOR_ALL_FRAMES(fr, topfr->fr_child)
{
+ if (!frame_fixed_height(fr))
+ continue;
// If 'winfixheight' set keep the window height if
// possible.
// Watch out for this window being the next_curwin.
! n = frame_minheight(fr, NOWIN);
! new_size = fr->fr_height;
! if (frame_has_win(fr, next_curwin))
{
! room += p_wh - p_wmh;
! next_curwin_size = 0;
! if (new_size < p_wh)
! new_size = p_wh;
}
+ else
+ // These windows don't use up room.
+ totwincount -= (n + (fr->fr_next == NULL
+ ? extra_sep : 0)) / (p_wmh + 1);
+ room -= new_size - n;
+ if (room < 0)
+ {
+ new_size += room;
+ room = 0;
+ }
+ fr->fr_newheight = new_size;
}
if (next_curwin_size == -1)
{
***************
*** 3752,3787 ****
for (wp = firstwin; win_valid(wp); wp = nextwp)
{
nextwp = wp->w_next;
! if (wp != curwin) // don't close current window
! {
! // Check if it's allowed to abandon this window
! r = can_abandon(wp->w_buffer, forceit);
! if (!win_valid(wp)) // autocommands messed wp up
! {
! nextwp = firstwin;
! continue;
! }
! if (!r)
! {
#if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
! if (message && (p_confirm
! || (cmdmod.cmod_flags & CMOD_CONFIRM)) && p_write)
{
! dialog_changed(wp->w_buffer, FALSE);
! if (!win_valid(wp)) // autocommands messed wp up
! {
! nextwp = firstwin;
! continue;
! }
! }
! if (bufIsChanged(wp->w_buffer))
! #endif
continue;
}
! win_close(wp, !buf_hide(wp->w_buffer)
! && !bufIsChanged(wp->w_buffer));
}
}
if (message && !ONE_WINDOW)
--- 3749,3782 ----
for (wp = firstwin; win_valid(wp); wp = nextwp)
{
nextwp = wp->w_next;
! if (wp == curwin) // don't close current window
! continue;
! // Check if it's allowed to abandon this window
! r = can_abandon(wp->w_buffer, forceit);
! if (!win_valid(wp)) // autocommands messed wp up
! {
! nextwp = firstwin;
! continue;
! }
! if (!r)
! {
#if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
! if (message && (p_confirm
! || (cmdmod.cmod_flags & CMOD_CONFIRM)) && p_write)
! {
! dialog_changed(wp->w_buffer, FALSE);
! if (!win_valid(wp)) // autocommands messed wp up
{
! nextwp = firstwin;
continue;
+ }
}
! if (bufIsChanged(wp->w_buffer))
! #endif
! continue;
}
+ win_close(wp, !buf_hide(wp->w_buffer) && !bufIsChanged(wp->w_buffer));
}
if (message && !ONE_WINDOW)
***************
*** 5708,5713 ****
--- 5703,5709 ----
if (curfrp->fr_parent == NULL)
{
+ // topframe: can only change the command line
if (height > ROWS_AVAIL)
// If height is greater than the available space, try to create
// space for the frame by reducing 'cmdheight' if possible, while
*** ../vim-9.0.0123/src/version.c 2022-07-31 18:03:54.347103073 +0100
--- src/version.c 2022-07-31 18:27:07.926070060 +0100
***************
*** 737,738 ****
--- 737,740 ----
{ /* Add new patch number below this line */
+ /**/
+ 124,
/**/
--
hundred-and-one symptoms of being an internet addict:
212. Your Internet group window has more icons than your Accessories window.
/// Bram Moolenaar -- Br...@Moolenaar.net --
http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features --
http://www.Vim.org/sponsor/ ///
\\\ help me help AIDS victims --
http://ICCF-Holland.org ///