# HG changeset patch # User Bram Moolenaar # Date 1672171205 -3600 # Node ID c8d4fced1f94ffa1f3c370ec204bf340b3a82684 # Parent 922e7109afcfc3774e7785ed162e297f8d2b5f70 patch 9.0.1105: code is indented too much Commit: https://github.com/vim/vim/commit/87c1cbbe984e60582f2536e4d3c2ce88cd474bb7 Author: Yegappan Lakshmanan Date: Tue Dec 27 19:54:52 2022 +0000 patch 9.0.1105: code is indented too much Problem: Code is indented too much. Solution: Use an early return. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/11756) diff --git a/src/dict.c b/src/dict.c --- a/src/dict.c +++ b/src/dict.c @@ -1270,50 +1270,52 @@ dict_extend_func( return; } d2 = argvars[1].vval.v_dict; - if ((is_new || !value_check_lock(d1->dv_lock, arg_errmsg, TRUE)) - && d2 != NULL) + if (d2 == NULL) + return; + + if (!is_new && value_check_lock(d1->dv_lock, arg_errmsg, TRUE)) + return; + + if (is_new) { - if (is_new) - { - d1 = dict_copy(d1, FALSE, TRUE, get_copyID()); - if (d1 == NULL) - return; - } + d1 = dict_copy(d1, FALSE, TRUE, get_copyID()); + if (d1 == NULL) + return; + } - // Check the third argument. - if (argvars[2].v_type != VAR_UNKNOWN) - { - static char *(av[]) = {"keep", "force", "error"}; + // Check the third argument. + if (argvars[2].v_type != VAR_UNKNOWN) + { + static char *(av[]) = {"keep", "force", "error"}; - action = tv_get_string_chk(&argvars[2]); - if (action == NULL) - return; - for (i = 0; i < 3; ++i) - if (STRCMP(action, av[i]) == 0) - break; - if (i == 3) - { - semsg(_(e_invalid_argument_str), action); - return; - } + action = tv_get_string_chk(&argvars[2]); + if (action == NULL) + return; + for (i = 0; i < 3; ++i) + if (STRCMP(action, av[i]) == 0) + break; + if (i == 3) + { + semsg(_(e_invalid_argument_str), action); + return; } - else - action = (char_u *)"force"; + } + else + action = (char_u *)"force"; - if (type != NULL && check_typval_arg_type(type, &argvars[1], - func_name, 2) == FAIL) - return; - dict_extend(d1, d2, action, func_name); + if (type != NULL && check_typval_arg_type(type, &argvars[1], + func_name, 2) == FAIL) + return; + dict_extend(d1, d2, action, func_name); - if (is_new) - { - rettv->v_type = VAR_DICT; - rettv->vval.v_dict = d1; - rettv->v_lock = FALSE; - } - else - copy_tv(&argvars[0], rettv); + if (is_new) + { + rettv->v_type = VAR_DICT; + rettv->vval.v_dict = d1; + rettv->v_lock = FALSE; } + else + copy_tv(&argvars[0], rettv); } /* diff --git a/src/edit.c b/src/edit.c --- a/src/edit.c +++ b/src/edit.c @@ -1664,49 +1664,49 @@ edit_putchar(int c, int highlight) { int attr; - if (ScreenLines != NULL) - { - update_topline(); // just in case w_topline isn't valid - validate_cursor(); - if (highlight) - attr = HL_ATTR(HLF_8); - else - attr = 0; - pc_row = W_WINROW(curwin) + curwin->w_wrow; - pc_col = curwin->w_wincol; - pc_status = PC_STATUS_UNSET; + if (ScreenLines == NULL) + return; + + update_topline(); // just in case w_topline isn't valid + validate_cursor(); + if (highlight) + attr = HL_ATTR(HLF_8); + else + attr = 0; + pc_row = W_WINROW(curwin) + curwin->w_wrow; + pc_col = curwin->w_wincol; + pc_status = PC_STATUS_UNSET; #ifdef FEAT_RIGHTLEFT - if (curwin->w_p_rl) + if (curwin->w_p_rl) + { + pc_col += curwin->w_width - 1 - curwin->w_wcol; + if (has_mbyte) { - pc_col += curwin->w_width - 1 - curwin->w_wcol; - if (has_mbyte) + int fix_col = mb_fix_col(pc_col, pc_row); + + if (fix_col != pc_col) { - int fix_col = mb_fix_col(pc_col, pc_row); - - if (fix_col != pc_col) - { - screen_putchar(' ', pc_row, fix_col, attr); - --curwin->w_wcol; - pc_status = PC_STATUS_RIGHT; - } + screen_putchar(' ', pc_row, fix_col, attr); + --curwin->w_wcol; + pc_status = PC_STATUS_RIGHT; } } - else + } + else #endif - { - pc_col += curwin->w_wcol; - if (mb_lefthalve(pc_row, pc_col)) - pc_status = PC_STATUS_LEFT; - } - - // save the character to be able to put it back - if (pc_status == PC_STATUS_UNSET) - { - screen_getbytes(pc_row, pc_col, pc_bytes, &pc_attr); - pc_status = PC_STATUS_SET; - } - screen_putchar(c, pc_row, pc_col, attr); + { + pc_col += curwin->w_wcol; + if (mb_lefthalve(pc_row, pc_col)) + pc_status = PC_STATUS_LEFT; } + + // save the character to be able to put it back + if (pc_status == PC_STATUS_UNSET) + { + screen_getbytes(pc_row, pc_col, pc_bytes, &pc_attr); + pc_status = PC_STATUS_SET; + } + screen_putchar(c, pc_row, pc_col, attr); } #if defined(FEAT_JOB_CHANNEL) || defined(PROTO) @@ -1782,11 +1782,11 @@ display_dollar(colnr_T col_arg) void undisplay_dollar(void) { - if (dollar_vcol >= 0) - { - dollar_vcol = -1; - redrawWinline(curwin, curwin->w_cursor.lnum); - } + if (dollar_vcol < 0) + return; + + dollar_vcol = -1; + redrawWinline(curwin, curwin->w_cursor.lnum); } /* @@ -2554,17 +2554,17 @@ set_last_insert(int c) vim_free(last_insert); last_insert = alloc(MB_MAXBYTES * 3 + 5); - if (last_insert != NULL) - { - s = last_insert; - // Use the CTRL-V only when entering a special char - if (c < ' ' || c == DEL) - *s++ = Ctrl_V; - s = add_char2buf(c, s); - *s++ = ESC; - *s++ = NUL; - last_insert_skip = 0; - } + if (last_insert == NULL) + return; + + s = last_insert; + // Use the CTRL-V only when entering a special char + if (c < ' ' || c == DEL) + *s++ = Ctrl_V; + s = add_char2buf(c, s); + *s++ = ESC; + *s++ = NUL; + last_insert_skip = 0; } #if defined(EXITFREE) || defined(PROTO) diff --git a/src/eval.c b/src/eval.c --- a/src/eval.c +++ b/src/eval.c @@ -128,14 +128,15 @@ fill_evalarg_from_eap(evalarg_T *evalarg { init_evalarg(evalarg); evalarg->eval_flags = skip ? 0 : EVAL_EVALUATE; - if (eap != NULL) - { - evalarg->eval_cstack = eap->cstack; - if (sourcing_a_script(eap) || eap->getline == get_list_line) - { - evalarg->eval_getline = eap->getline; - evalarg->eval_cookie = eap->cookie; - } + + if (eap == NULL) + return; + + evalarg->eval_cstack = eap->cstack; + if (sourcing_a_script(eap) || eap->getline == get_list_line) + { + evalarg->eval_getline = eap->getline; + evalarg->eval_cookie = eap->cookie; } } @@ -404,15 +405,15 @@ init_evalarg(evalarg_T *evalarg) static void free_eval_tofree_later(evalarg_T *evalarg) { - if (evalarg->eval_tofree != NULL) - { - if (ga_grow(&evalarg->eval_tofree_ga, 1) == OK) - ((char_u **)evalarg->eval_tofree_ga.ga_data) - [evalarg->eval_tofree_ga.ga_len++] - = evalarg->eval_tofree; - else - vim_free(evalarg->eval_tofree); - } + if (evalarg->eval_tofree == NULL) + return; + + if (ga_grow(&evalarg->eval_tofree_ga, 1) == OK) + ((char_u **)evalarg->eval_tofree_ga.ga_data) + [evalarg->eval_tofree_ga.ga_len++] + = evalarg->eval_tofree; + else + vim_free(evalarg->eval_tofree); } /* @@ -421,39 +422,39 @@ free_eval_tofree_later(evalarg_T *evalar void clear_evalarg(evalarg_T *evalarg, exarg_T *eap) { - if (evalarg != NULL) - { - garray_T *etga = &evalarg->eval_tofree_ga; - - if (evalarg->eval_tofree != NULL || evalarg->eval_using_cmdline) - { - if (eap != NULL) + if (evalarg == NULL) + return; + + garray_T *etga = &evalarg->eval_tofree_ga; + + if (evalarg->eval_tofree != NULL || evalarg->eval_using_cmdline) + { + if (eap != NULL) + { + // We may need to keep the original command line, e.g. for + // ":let" it has the variable names. But we may also need + // the new one, "nextcmd" points into it. Keep both. + vim_free(eap->cmdline_tofree); + eap->cmdline_tofree = *eap->cmdlinep; + + if (evalarg->eval_using_cmdline && etga->ga_len > 0) { - // We may need to keep the original command line, e.g. for - // ":let" it has the variable names. But we may also need - // the new one, "nextcmd" points into it. Keep both. - vim_free(eap->cmdline_tofree); - eap->cmdline_tofree = *eap->cmdlinep; - - if (evalarg->eval_using_cmdline && etga->ga_len > 0) - { - // "nextcmd" points into the last line in eval_tofree_ga, - // need to keep it around. - --etga->ga_len; - *eap->cmdlinep = ((char_u **)etga->ga_data)[etga->ga_len]; - vim_free(evalarg->eval_tofree); - } - else - *eap->cmdlinep = evalarg->eval_tofree; + // "nextcmd" points into the last line in eval_tofree_ga, + // need to keep it around. + --etga->ga_len; + *eap->cmdlinep = ((char_u **)etga->ga_data)[etga->ga_len]; + vim_free(evalarg->eval_tofree); } else - vim_free(evalarg->eval_tofree); - evalarg->eval_tofree = NULL; - } - - ga_clear_strings(etga); - VIM_CLEAR(evalarg->eval_tofree_lambda); - } + *eap->cmdlinep = evalarg->eval_tofree; + } + else + vim_free(evalarg->eval_tofree); + evalarg->eval_tofree = NULL; + } + + ga_clear_strings(etga); + VIM_CLEAR(evalarg->eval_tofree_lambda); } /* @@ -3219,16 +3220,16 @@ eval_addblob(typval_T *tv1, typval_T *tv blob_T *b = blob_alloc(); int i; - if (b != NULL) - { - for (i = 0; i < blob_len(b1); i++) - ga_append(&b->bv_ga, blob_get(b1, i)); - for (i = 0; i < blob_len(b2); i++) - ga_append(&b->bv_ga, blob_get(b2, i)); - - clear_tv(tv1); - rettv_blob_set(tv1, b); - } + if (b == NULL) + return; + + for (i = 0; i < blob_len(b1); i++) + ga_append(&b->bv_ga, blob_get(b1, i)); + for (i = 0; i < blob_len(b2); i++) + ga_append(&b->bv_ga, blob_get(b2, i)); + + clear_tv(tv1); + rettv_blob_set(tv1, b); } /* @@ -4818,13 +4819,13 @@ f_slice(typval_T *argvars, typval_T *ret || check_for_opt_number_arg(argvars, 2) == FAIL)) return; - if (check_can_index(argvars, TRUE, FALSE) == OK) - { - copy_tv(argvars, rettv); - eval_index_inner(rettv, TRUE, argvars + 1, - argvars[2].v_type == VAR_UNKNOWN ? NULL : argvars + 2, - TRUE, NULL, 0, FALSE); - } + if (check_can_index(argvars, TRUE, FALSE) != OK) + return; + + copy_tv(argvars, rettv); + eval_index_inner(rettv, TRUE, argvars + 1, + argvars[2].v_type == VAR_UNKNOWN ? NULL : argvars + 2, + TRUE, NULL, 0, FALSE); } /* @@ -5045,31 +5046,31 @@ partial_free(partial_T *pt) void partial_unref(partial_T *pt) { - if (pt != NULL) - { - int done = FALSE; - - if (--pt->pt_refcount <= 0) - partial_free(pt); - - // If the reference count goes down to one, the funcstack may be the - // only reference and can be freed if no other partials reference it. - else if (pt->pt_refcount == 1) - { - // careful: if the funcstack is freed it may contain this partial - // and it gets freed as well - if (pt->pt_funcstack != NULL) - done = funcstack_check_refcount(pt->pt_funcstack); - - if (!done) - { - int depth; - - for (depth = 0; depth < MAX_LOOP_DEPTH; ++depth) - if (pt->pt_loopvars[depth] != NULL - && loopvars_check_refcount(pt->pt_loopvars[depth])) + if (pt == NULL) + return; + + int done = FALSE; + + if (--pt->pt_refcount <= 0) + partial_free(pt); + + // If the reference count goes down to one, the funcstack may be the + // only reference and can be freed if no other partials reference it. + else if (pt->pt_refcount == 1) + { + // careful: if the funcstack is freed it may contain this partial + // and it gets freed as well + if (pt->pt_funcstack != NULL) + done = funcstack_check_refcount(pt->pt_funcstack); + + if (!done) + { + int depth; + + for (depth = 0; depth < MAX_LOOP_DEPTH; ++depth) + if (pt->pt_loopvars[depth] != NULL + && loopvars_check_refcount(pt->pt_loopvars[depth])) break; - } } } } @@ -7225,23 +7226,23 @@ last_set_msg(sctx_T script_ctx) { char_u *p; - if (script_ctx.sc_sid != 0) - { - p = home_replace_save(NULL, get_scriptname(script_ctx.sc_sid)); - if (p != NULL) - { - verbose_enter(); - msg_puts(_("\n\tLast set from ")); - msg_puts((char *)p); - if (script_ctx.sc_lnum > 0) - { - msg_puts(_(line_msg)); - msg_outnum((long)script_ctx.sc_lnum); - } - verbose_leave(); - vim_free(p); - } - } + if (script_ctx.sc_sid == 0) + return; + + p = home_replace_save(NULL, get_scriptname(script_ctx.sc_sid)); + if (p == NULL) + return; + + verbose_enter(); + msg_puts(_("\n\tLast set from ")); + msg_puts((char *)p); + if (script_ctx.sc_lnum > 0) + { + msg_puts(_(line_msg)); + msg_outnum((long)script_ctx.sc_lnum); + } + verbose_leave(); + vim_free(p); } #endif // FEAT_EVAL diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1105, +/**/ 1104, /**/ 1103,