patch 9.1.0177: Coverity reports dead code

Commit: 
https://github.com/vim/vim/commit/8c55d60658b7ee3458dca57fc5eec90ca9bb9bf3
Author: zeertzjq <zeert...@outlook.com>
Date:   Wed Mar 13 20:42:26 2024 +0100

    patch 9.1.0177: Coverity reports dead code
    
    Problem:  Coverity reports dead code.
    Solution: Remove the dead code. Also fix a mistake in ml_get_pos_len()
              and update some comments (zeertzjq).
    
    closes: #14189
    
    Signed-off-by: zeertzjq <zeert...@outlook.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/src/fold.c b/src/fold.c
index 420bcf1b8..2cd4dcd58 100644
--- a/src/fold.c
+++ b/src/fold.c
@@ -107,7 +107,7 @@ copyFoldingState(win_T *wp_from, win_T *wp_to)
 
 // hasAnyFolding() {{{2
 /*
- * Return TRUE if there may be folded lines in the current window.
+ * Return TRUE if there may be folded lines in window "win".
  */
     int
 hasAnyFolding(win_T *win)
@@ -551,7 +551,7 @@ checkCloseRec(garray_T *gap, linenr_T lnum, int level)
     return retval;
 }
 
-// foldCreateAllowed() {{{2
+// foldManualAllowed() {{{2
 /*
  * Return TRUE if it's allowed to manually create or delete a fold.
  * Give an error message and return FALSE if not.
@@ -1089,7 +1089,7 @@ foldAdjustVisual(void)
        mb_adjust_cursor();
 }
 
-// cursor_foldstart() {{{2
+// foldAdjustCursor() {{{2
 /*
  * Move the cursor to the first line of a closed fold.
  */
diff --git a/src/memline.c b/src/memline.c
index a1c29cf0e..5ca50fc1c 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -2686,7 +2686,7 @@ ml_get_len(linenr_T lnum)
     colnr_T
 ml_get_pos_len(pos_T *pos)
 {
-    return ml_get_buf_len(curbuf, curwin->w_cursor.lnum) - pos->col;
+    return ml_get_buf_len(curbuf, pos->lnum) - pos->col;
 }
 
 // return length (excluding the NUL) of the cursor line
@@ -3582,7 +3582,7 @@ ml_replace(linenr_T lnum, char_u *line, int copy)
  * Replace a line for the current buffer.  Like ml_replace() with:
  * "len_arg" is the length of the text, excluding NUL.
  * If "has_props" is TRUE then "line_arg" includes the text properties and
- * "len_arg" includes the NUL of the text.
+ * "len_arg" includes the NUL of the text and text properties.
  * When "copy" is TRUE copy the text into allocated memory, otherwise
  * "line_arg" must be allocated and will be consumed here.
  */
diff --git a/src/ops.c b/src/ops.c
index 3216f3c81..dbdf119a7 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -849,8 +849,8 @@ op_delete(oparg_T *oap)
            }
            else
                beginline(0);               // cursor in column 0
-           truncate_line(FALSE);   // delete the rest of the line
-                                   // leave cursor past last char in line
+           truncate_line(FALSE);   // delete the rest of the line,
+                                   // leaving cursor past last char in line
            if (oap->line_count > 1)
                u_clearline();      // "U" command not possible after "2cc"
        }
@@ -1494,16 +1494,13 @@ swapchar(int op_type, pos_T *pos)
     void
 op_insert(oparg_T *oap, long count1)
 {
-    long               ins_len, pre_textlen = 0;
-    char_u             *firstline, *ins_text;
+    long               pre_textlen = 0;
     colnr_T            ind_pre_col = 0, ind_post_col;
     int                        ind_pre_vcol = 0, ind_post_vcol = 0;
     struct block_def   bd;
     int                        i;
     pos_T              t1;
     pos_T              start_insert;
-                       // offset when cursor was moved in insert mode
-    int                        offset = 0;
 
     // edit() changes this - record it for OP_APPEND
     bd.is_MAX = (curwin->w_curswant == MAXCOL);
@@ -1540,14 +1537,9 @@ op_insert(oparg_T *oap, long count1)
        // Get indent information
        ind_pre_col = (colnr_T)getwhitecols_curline();
        ind_pre_vcol = get_indent();
-       firstline = ml_get(oap->start.lnum) + bd.textcol;
        pre_textlen = ml_get_len(oap->start.lnum) - bd.textcol;
-
        if (oap->op_type == OP_APPEND)
-       {
-           firstline += bd.textlen;
            pre_textlen -= bd.textlen;
-       }
     }
 
     if (oap->op_type == OP_APPEND)
@@ -1601,10 +1593,14 @@ op_insert(oparg_T *oap, long count1)
 
     if (oap->block_mode)
     {
+       long                    ins_len;
+       char_u                  *firstline, *ins_text;
        struct block_def        bd2;
        int                     did_indent = FALSE;
        size_t                  len;
        int                     add;
+       // offset when cursor was moved in insert mode
+       int                     offset = 0;
 
        // If indent kicked in, the firstline might have changed
        // but only do that, if the indent actually increased.
@@ -2654,6 +2650,7 @@ do_addsub(
     uvarnumber_T       n;
     uvarnumber_T       oldn;
     char_u     *ptr;
+    int                linelen;
     int                c;
     int                todel;
     int                do_hex;
@@ -2687,9 +2684,10 @@ do_addsub(
 
     curwin->w_cursor = *pos;
     ptr = ml_get(pos->lnum);
+    linelen = ml_get_len(pos->lnum);
     col = pos->col;
 
-    if (*ptr == NUL || col + !!save_coladd >= (int)STRLEN(ptr))
+    if (col + !!save_coladd >= linelen)
        goto theend;
 
     /*
@@ -2869,8 +2867,7 @@ do_addsub(
        // get the number value (unsigned)
        if (visual && VIsual_mode != 'V')
            maxlen = (curbuf->b_visual.vi_curswant == MAXCOL
-                   ? (int)STRLEN(ptr) - col
-                   : length);
+                   ? linelen - col : length);
 
        int overflow = FALSE;
        vim_str2nr(ptr + col, &pre, &length,
diff --git a/src/quickfix.c b/src/quickfix.c
index 006c1346f..0bf4cfe6b 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -6203,7 +6203,7 @@ vgr_match_buflines(
        else
        {
            char_u  *str = ml_get_buf(buf, lnum, FALSE);
-           int     line_len = ml_get_buf_len(buf, lnum);
+           colnr_T linelen = ml_get_buf_len(buf, lnum);
            int     score;
            int_u   matches[MAX_FUZZY_MATCHES];
            int_u   sz = ARRAY_LENGTH(matches);
@@ -6242,7 +6242,7 @@ vgr_match_buflines(
                if ((flags & VGR_GLOBAL) == 0)
                    break;
                col = matches[pat_len - 1] + col + 1;
-               if (col > line_len)
+               if (col > linelen)
                    break;
            }
        }
@@ -6612,7 +6612,7 @@ ex_vimgrep(exarg_T *eap)
        goto theend;
     }
 
-    // Jump to first match if the current window is not 'winfixbuf'
+    // Jump to first match.
     if (!qf_list_empty(qf_get_curlist(qi)))
     {
        if ((args.flags & VGR_NOJUMP) == 0)
diff --git a/src/spellsuggest.c b/src/spellsuggest.c
index ded04af1a..c6e61832d 100644
--- a/src/spellsuggest.c
+++ b/src/spellsuggest.c
@@ -508,7 +508,6 @@ spell_suggest(int count)
        ++badlen;
        end_visual_mode();
        // make sure we don't include the NUL at the end of the line
-       line = ml_get_curline();
        if (badlen > ml_get_curline_len() - (int)curwin->w_cursor.col)
            badlen = ml_get_curline_len() - (int)curwin->w_cursor.col;
     }
diff --git a/src/testdir/test_normal.vim b/src/testdir/test_normal.vim
index dc68a158a..b18063747 100644
--- a/src/testdir/test_normal.vim
+++ b/src/testdir/test_normal.vim
@@ -2364,6 +2364,14 @@ func Test_normal30_changecase()
   %d
   call assert_beeps('norm! ~')
 
+  " Test with multiple lines
+  call setline(1, ['AA', 'BBBB', 'CCCCCC', 'DDDDDDDD'])
+  norm! ggguG
+  call assert_equal(['aa', 'bbbb', 'cccccc', 'dddddddd'], getline(1, '$'))
+  norm! GgUgg
+  call assert_equal(['AA', 'BBBB', 'CCCCCC', 'DDDDDDDD'], getline(1, '$'))
+  %d
+
   " Test for changing case across lines using 'whichwrap'
   call setline(1, ['aaaaaa', 'aaaaaa'])
   normal! gg10~
diff --git a/src/version.c b/src/version.c
index 6bdf89695..78c496b73 100644
--- a/src/version.c
+++ b/src/version.c
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    177,
 /**/
     176,
 /**/

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E1rkUlf-00HRbU-GK%40256bit.org.

Raspunde prin e-mail lui