diff options
Diffstat (limited to 'src/nvim/normal.c')
-rw-r--r-- | src/nvim/normal.c | 77 |
1 files changed, 26 insertions, 51 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c index 38fdff95d7..c4ced7670d 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -358,11 +358,9 @@ static int nv_max_linear; /// through the index in nv_cmd_idx[]. static int nv_compare(const void *s1, const void *s2) { - int c1, c2; - // The commands are sorted on absolute value. - c1 = nv_cmds[*(const int16_t *)s1].cmd_char; - c2 = nv_cmds[*(const int16_t *)s2].cmd_char; + int c1 = nv_cmds[*(const int16_t *)s1].cmd_char; + int c2 = nv_cmds[*(const int16_t *)s2].cmd_char; if (c1 < 0) { c1 = -c1; } @@ -400,9 +398,6 @@ void init_normal_cmds(void) /// @return -1 for invalid command. static int find_command(int cmdchar) { - int idx; - int top, bot; - // A multi-byte character is never a command. if (cmdchar >= 0x100) { return -1; @@ -422,9 +417,9 @@ static int find_command(int cmdchar) } // Perform a binary search. - bot = nv_max_linear + 1; - top = NV_CMDS_SIZE - 1; - idx = -1; + int bot = nv_max_linear + 1; + int top = NV_CMDS_SIZE - 1; + int idx = -1; while (bot <= top) { int i = (top + bot) / 2; int c = nv_cmds[nv_cmd_idx[i]].cmd_char; @@ -1994,13 +1989,11 @@ void add_to_showcmd_c(int c) /// Delete 'len' characters from the end of the shown command. static void del_from_showcmd(int len) { - int old_len; - if (!p_sc) { return; } - old_len = (int)strlen(showcmd_buf); + int old_len = (int)strlen(showcmd_buf); if (len > old_len) { len = old_len; } @@ -2140,8 +2133,6 @@ void do_check_scrollbind(bool check) /// (1998-11-02 16:21:01 R. Edward Ralston <eralston@computer.org>) void check_scrollbind(linenr_T topline_diff, int leftcol_diff) { - bool want_ver; - bool want_hor; win_T *old_curwin = curwin; buf_T *old_curbuf = curbuf; int old_VIsual_select = VIsual_select; @@ -2151,9 +2142,9 @@ void check_scrollbind(linenr_T topline_diff, int leftcol_diff) linenr_T y; // check 'scrollopt' string for vertical and horizontal scroll options - want_ver = (vim_strchr(p_sbo, 'v') && topline_diff != 0); + bool want_ver = (vim_strchr(p_sbo, 'v') && topline_diff != 0); want_ver |= old_curwin->w_p_diff; - want_hor = (vim_strchr(p_sbo, 'h') && (leftcol_diff || topline_diff != 0)); + bool want_hor = (vim_strchr(p_sbo, 'h') && (leftcol_diff || topline_diff != 0)); // loop through the scrollbound windows and scroll accordingly VIsual_select = VIsual_active = 0; @@ -2334,27 +2325,23 @@ static bool is_ident(const char *line, int offset) /// @return fail when not found. bool find_decl(char *ptr, size_t len, bool locally, bool thisblock, int flags_arg) { - char *pat; - pos_T old_pos; pos_T par_pos; pos_T found_pos; bool t; - bool save_p_ws; - bool save_p_scs; bool retval = true; bool incll; int searchflags = flags_arg; size_t patlen = len + 7; - pat = xmalloc(patlen); + char *pat = xmalloc(patlen); // Put "\V" before the pattern to avoid that the special meaning of "." // and "~" causes trouble. assert(patlen <= INT_MAX); snprintf(pat, patlen, vim_iswordp(ptr) ? "\\V\\<%.*s\\>" : "\\V%.*s", (int)len, ptr); - old_pos = curwin->w_cursor; - save_p_ws = p_ws; - save_p_scs = p_scs; + pos_T old_pos = curwin->w_cursor; + bool save_p_ws = p_ws; + bool save_p_scs = p_scs; p_ws = false; // don't wrap around end of file now p_scs = false; // don't switch ignorecase off now @@ -3902,14 +3889,13 @@ static void nv_down(cmdarg_T *cap) /// Grab the file name under the cursor and edit it. static void nv_gotofile(cmdarg_T *cap) { - char *ptr; linenr_T lnum = -1; if (check_text_or_curbuf_locked(cap->oap)) { return; } - ptr = grab_file_name(cap->count1, &lnum); + char *ptr = grab_file_name(cap->count1, &lnum); if (ptr != NULL) { // do autowrite if necessary @@ -4206,13 +4192,12 @@ static void nv_bracket_block(cmdarg_T *cap, const pos_T *old_pos) /// cap->arg is BACKWARD for "[" and FORWARD for "]". static void nv_brackets(cmdarg_T *cap) { - pos_T old_pos; // cursor position before command int flag; int n; cap->oap->motion_type = kMTCharWise; cap->oap->inclusive = false; - old_pos = curwin->w_cursor; + pos_T old_pos = curwin->w_cursor; // cursor position before command curwin->w_cursor.coladd = 0; // TODO(Unknown): don't do this for an error. // "[f" or "]f" : Edit file under the cursor (same as "gf") @@ -4478,7 +4463,6 @@ static void nv_kundo(cmdarg_T *cap) /// Handle the "r" command. static void nv_replace(cmdarg_T *cap) { - char *ptr; int had_ctrl_v; if (checkclearop(cap->oap)) { @@ -4541,7 +4525,7 @@ static void nv_replace(cmdarg_T *cap) } // Abort if not enough characters to replace. - ptr = get_cursor_pos_ptr(); + char *ptr = get_cursor_pos_ptr(); if (strlen(ptr) < (unsigned)cap->count1 || (mb_charlen(ptr) < cap->count1)) { clearopbeep(cap->oap); @@ -4633,11 +4617,10 @@ static void nv_replace(cmdarg_T *cap) /// 'O': same, but in block mode exchange left and right corners. static void v_swap_corners(int cmdchar) { - pos_T old_cursor; colnr_T left, right; if (cmdchar == 'O' && VIsual_mode == Ctrl_V) { - old_cursor = curwin->w_cursor; + pos_T old_cursor = curwin->w_cursor; getvcols(curwin, &old_cursor, &VIsual, &left, &right); curwin->w_cursor.lnum = VIsual.lnum; coladvance(left); @@ -4667,7 +4650,7 @@ static void v_swap_corners(int cmdchar) curwin->w_curswant = left; } } else { - old_cursor = curwin->w_cursor; + pos_T old_cursor = curwin->w_cursor; curwin->w_cursor = VIsual; VIsual = old_cursor; curwin->w_set_curswant = true; @@ -4738,8 +4721,6 @@ static void nv_vreplace(cmdarg_T *cap) /// Swap case for "~" command, when it does not work like an operator. static void n_swapchar(cmdarg_T *cap) { - int n; - pos_T startpos; int did_change = 0; if (checkclearopq(cap->oap)) { @@ -4757,8 +4738,8 @@ static void n_swapchar(cmdarg_T *cap) return; } - startpos = curwin->w_cursor; - for (n = cap->count1; n > 0; n--) { + pos_T startpos = curwin->w_cursor; + for (int n = cap->count1; n > 0; n--) { did_change |= swapchar(cap->oap->op_type, &curwin->w_cursor); inc_cursor(); if (gchar_cursor() == NUL) { @@ -5759,10 +5740,9 @@ static void nv_dot(cmdarg_T *cap) static void nv_redo_or_register(cmdarg_T *cap) { if (VIsual_select && VIsual_active) { - int reg; // Get register name no_mapping++; - reg = plain_vgetc(); + int reg = plain_vgetc(); LANGMAP_ADJUST(reg, true); no_mapping--; @@ -5822,9 +5802,7 @@ static void nv_tilde(cmdarg_T *cap) /// The actual work is done by do_pending_operator(). static void nv_operator(cmdarg_T *cap) { - int op_type; - - op_type = get_op_type(cap->cmdchar, cap->nchar); + int op_type = get_op_type(cap->cmdchar, cap->nchar); if (bt_prompt(curbuf) && op_is_change(op_type) && !prompt_curpos_editable()) { @@ -6130,12 +6108,10 @@ static void nv_normal(cmdarg_T *cap) /// Don't even beep if we are canceling a command. static void nv_esc(cmdarg_T *cap) { - int no_reason; - - no_reason = (cap->oap->op_type == OP_NOP - && cap->opcount == 0 - && cap->count0 == 0 - && cap->oap->regname == 0); + int no_reason = (cap->oap->op_type == OP_NOP + && cap->opcount == 0 + && cap->count0 == 0 + && cap->oap->regname == 0); if (cap->arg) { // true for CTRL-C if (restart_edit == 0 && cmdwin_type == 0 && !VIsual_active && no_reason) { @@ -6287,7 +6263,6 @@ static void nv_object(cmdarg_T *cap) { bool flag; bool include; - char *mps_save; if (cap->cmdchar == 'i') { include = false; // "ix" = inner object: exclude white space @@ -6295,7 +6270,7 @@ static void nv_object(cmdarg_T *cap) include = true; // "ax" = an object: include white space } // Make sure (), [], {} and <> are in 'matchpairs' - mps_save = curbuf->b_p_mps; + char *mps_save = curbuf->b_p_mps; curbuf->b_p_mps = "(:),{:},[:],<:>"; switch (cap->nchar) { |