Patch 8.1.1032
Problem:    Warnings from clang static analyzer. (Yegappan Lakshmanan)
Solution:   Fix relevant warnings.
Files:      src/arabic.c, src/edit.c, src/eval.c, src/fileio.c, src/normal.c,
            src/option.c, src/os_unix.c, src/regexp.c, src/screen.c,
            src/channel.c, src/charset.c, src/message.c


*** ../vim-8.1.1031/src/arabic.c        2018-09-30 21:43:17.175693433 +0200
--- src/arabic.c        2019-03-20 22:22:35.211792256 +0100
***************
*** 578,586 ****
      /* half-shape current and previous character */
      shape_c = half_shape(prev_c);
  
-     /* Save away current character */
-     curr_c = c;
- 
      curr_laa = A_firstc_laa(c, *c1p);
      prev_laa = A_firstc_laa(prev_c, prev_c1);
  
--- 578,583 ----
*** ../vim-8.1.1031/src/edit.c  2019-02-17 17:44:36.199875566 +0100
--- src/edit.c  2019-03-20 22:27:34.349141549 +0100
***************
*** 4109,4119 ****
      static buf_T *
  ins_compl_next_buf(buf_T *buf, int flag)
  {
!     static win_T *wp;
  
!     if (flag == 'w')          /* just windows */
      {
!       if (buf == curbuf)      /* first call for this flag/expansion */
            wp = curwin;
        while ((wp = (wp->w_next != NULL ? wp->w_next : firstwin)) != curwin
                && wp->w_buffer->b_scanned)
--- 4109,4119 ----
      static buf_T *
  ins_compl_next_buf(buf_T *buf, int flag)
  {
!     static win_T *wp = NULL;
  
!     if (flag == 'w')          // just windows
      {
!       if (buf == curbuf || wp == NULL)  // first call for this flag/expansion
            wp = curwin;
        while ((wp = (wp->w_next != NULL ? wp->w_next : firstwin)) != curwin
                && wp->w_buffer->b_scanned)
*** ../vim-8.1.1031/src/eval.c  2019-03-19 23:04:13.762889231 +0100
--- src/eval.c  2019-03-21 21:26:31.371960388 +0100
***************
*** 8544,8550 ****
      char_u    *p;
      garray_T  ga;
      int               len;
!     int               save_did_emsg = did_emsg;
  
      ga_init2(&ga, 1, 80);
  
--- 8544,8550 ----
      char_u    *p;
      garray_T  ga;
      int               len;
!     int               save_did_emsg;
  
      ga_init2(&ga, 1, 80);
  
***************
*** 8552,8558 ****
        ++emsg_skip;
      while (*arg != NUL && *arg != '|' && *arg != '\n')
      {
-       p = arg;
        ret = eval1_emsg(&arg, &rettv, !eap->skip);
        if (ret == FAIL)
            break;
--- 8552,8557 ----
*** ../vim-8.1.1031/src/fileio.c        2019-02-21 12:16:06.196542536 +0100
--- src/fileio.c        2019-03-21 21:27:36.035466453 +0100
***************
*** 2322,2331 ****
        vim_free(fenc);
  #ifdef USE_ICONV
      if (iconv_fd != (iconv_t)-1)
-     {
        iconv_close(iconv_fd);
-       iconv_fd = (iconv_t)-1;
-     }
  #endif
  
      if (!read_buffer && !read_stdin)
--- 2322,2328 ----
*** ../vim-8.1.1031/src/normal.c        2019-02-17 17:44:36.215875493 +0100
--- src/normal.c        2019-03-21 21:28:19.967132356 +0100
***************
*** 214,220 ****
      {NL,      nv_down,        0,                      FALSE},
      {Ctrl_K,  nv_error,       0,                      0},
      {Ctrl_L,  nv_clear,       0,                      0},
!     {Ctrl_M,  nv_down,        0,                      TRUE},
      {Ctrl_N,  nv_down,        NV_STS,                 FALSE},
      {Ctrl_O,  nv_ctrlo,       0,                      0},
      {Ctrl_P,  nv_up,          NV_STS,                 FALSE},
--- 214,220 ----
      {NL,      nv_down,        0,                      FALSE},
      {Ctrl_K,  nv_error,       0,                      0},
      {Ctrl_L,  nv_clear,       0,                      0},
!     {CAR,     nv_down,        0,                      TRUE},
      {Ctrl_N,  nv_down,        NV_STS,                 FALSE},
      {Ctrl_O,  nv_ctrlo,       0,                      0},
      {Ctrl_P,  nv_up,          NV_STS,                 FALSE},
***************
*** 4263,4269 ****
      CLEAR_POS(&found_pos);
      for (;;)
      {
-       valid = FALSE;
        t = searchit(curwin, curbuf, &curwin->w_cursor, NULL, FORWARD,
                       pat, 1L, searchflags, RE_LAST, (linenr_T)0, NULL, NULL);
        if (curwin->w_cursor.lnum >= old_pos.lnum)
--- 4263,4268 ----
*** ../vim-8.1.1031/src/option.c        2019-02-17 17:44:36.215875493 +0100
--- src/option.c        2019-03-21 21:29:31.654589459 +0100
***************
*** 4405,4411 ****
            key = 0;
            if (*arg == '<')
            {
-               nextchar = 0;
                opt_idx = -1;
                /* look out for <t_>;> */
                if (arg[1] == 't' && arg[2] == '_' && arg[3] && arg[4])
--- 4405,4410 ----
***************
*** 7945,7951 ****
                        && p[len] == ':'
                        && p[len + 1] != NUL)
                {
!                   c1 = c2 = c3 = 0;
                    s = p + len + 1;
                    c1 = mb_ptr2char_adv(&s);
                    if (mb_char2cells(c1) > 1)
--- 7944,7950 ----
                        && p[len] == ':'
                        && p[len + 1] != NUL)
                {
!                   c2 = c3 = 0;
                    s = p + len + 1;
                    c1 = mb_ptr2char_adv(&s);
                    if (mb_char2cells(c1) > 1)
***************
*** 9379,9384 ****
--- 9378,9384 ----
      if (!starting && errmsg == NULL && *get_vim_var_str(VV_OPTION_TYPE) == 
NUL)
      {
        char_u buf_old[11], buf_new[11], buf_type[7];
+ 
        vim_snprintf((char *)buf_old, 10, "%ld", old_value);
        vim_snprintf((char *)buf_new, 10, "%ld", value);
        vim_snprintf((char *)buf_type, 7, "%s", (opt_flags & OPT_LOCAL) ? 
"local" : "global");
*** ../vim-8.1.1031/src/os_unix.c       2019-03-02 10:13:36.796974835 +0100
--- src/os_unix.c       2019-03-21 21:30:50.757993290 +0100
***************
*** 6147,6155 ****
        }
  # endif
  #ifdef FEAT_JOB_CHANNEL
!       /* also call when ret == 0, we may be polling a keep-open channel */
        if (ret >= 0)
!           ret = channel_poll_check(ret, &fds);
  #endif
  
  #else /* HAVE_SELECT */
--- 6147,6155 ----
        }
  # endif
  #ifdef FEAT_JOB_CHANNEL
!       // also call when ret == 0, we may be polling a keep-open channel
        if (ret >= 0)
!           channel_poll_check(ret, &fds);
  #endif
  
  #else /* HAVE_SELECT */
*** ../vim-8.1.1031/src/regexp.c        2019-03-20 21:18:31.233018949 +0100
--- src/regexp.c        2019-03-21 21:31:39.977623686 +0100
***************
*** 2785,2791 ****
      *place++ = op;
      *place++ = NUL;
      *place++ = NUL;
!     place = re_put_long(place, (long_u)val);
  }
  
  /*
--- 2785,2791 ----
      *place++ = op;
      *place++ = NUL;
      *place++ = NUL;
!     re_put_long(place, (long_u)val);
  }
  
  /*
*** ../vim-8.1.1031/src/screen.c        2019-03-09 11:45:45.650134366 +0100
--- src/screen.c        2019-03-21 21:34:18.596438405 +0100
***************
*** 4900,4906 ****
                    else
                    {
                        char_u *p;
!                       int     len = n_extra;
                        int     i;
                        int     saved_nextra = n_extra;
  
--- 4900,4906 ----
                    else
                    {
                        char_u *p;
!                       int     len;
                        int     i;
                        int     saved_nextra = n_extra;
  
***************
*** 5505,5512 ****
            if (vcol < v + col - win_col_off(wp))
                vcol = v + col - win_col_off(wp);
  #ifdef FEAT_CONCEAL
!           /* Get rid of the boguscols now, we want to draw until the right
!            * edge for 'cursorcolumn'. */
            col -= boguscols;
            boguscols = 0;
  #endif
--- 5505,5512 ----
            if (vcol < v + col - win_col_off(wp))
                vcol = v + col - win_col_off(wp);
  #ifdef FEAT_CONCEAL
!           // Get rid of the boguscols now, we want to draw until the right
!           // edge for 'cursorcolumn'.
            col -= boguscols;
            boguscols = 0;
  #endif
***************
*** 10466,10472 ****
  
        attr = attr_nosel;
        tabcount = 0;
-       scol = 0;
        for (tp = first_tabpage; tp != NULL && col < Columns - 4;
                                                             tp = tp->tp_next)
        {
--- 10466,10471 ----
***************
*** 10799,10805 ****
      int               o;
      int               this_ru_col;
      int               off = 0;
!     int               width = Columns;
  
      /* If 'ruler' off or redrawing disabled, don't do anything */
      if (!p_ru)
--- 10798,10804 ----
      int               o;
      int               this_ru_col;
      int               off = 0;
!     int               width;
  
      /* If 'ruler' off or redrawing disabled, don't do anything */
      if (!p_ru)
*** ../vim-8.1.1031/src/channel.c       2019-03-04 12:09:43.901396026 +0100
--- src/channel.c       2019-03-21 21:35:28.531918170 +0100
***************
*** 1720,1726 ****
  channel_get_all(channel_T *channel, ch_part_T part, int *outlen)
  {
      readq_T *head = &channel->ch_part[part].ch_head;
!     readq_T *node = head->rq_next;
      long_u  len = 0;
      char_u  *res;
      char_u  *p;
--- 1720,1726 ----
  channel_get_all(channel_T *channel, ch_part_T part, int *outlen)
  {
      readq_T *head = &channel->ch_part[part].ch_head;
!     readq_T *node;
      long_u  len = 0;
      char_u  *res;
      char_u  *p;
*** ../vim-8.1.1031/src/charset.c       2019-02-16 15:09:21.213946217 +0100
--- src/charset.c       2019-03-21 21:36:34.535428275 +0100
***************
*** 1055,1061 ****
            if (col2 >= colmax)         /* doesn't fit */
            {
                size = colmax - col + col_adj;
-               tab_corr = FALSE;
                break;
            }
        }
--- 1055,1060 ----
***************
*** 1108,1114 ****
                {
                    /* calculate effective window width */
                    int width = (colnr_T)wp->w_width - sbrlen - numberwidth;
!                   int prev_width = col ? ((colnr_T)wp->w_width - (sbrlen + 
col)) : 0;
                    if (width == 0)
                        width = (colnr_T)wp->w_width;
                    added += ((size - prev_width) / width) * vim_strsize(p_sbr);
--- 1107,1114 ----
                {
                    /* calculate effective window width */
                    int width = (colnr_T)wp->w_width - sbrlen - numberwidth;
!                   int prev_width = col
!                                ? ((colnr_T)wp->w_width - (sbrlen + col)) : 0;
                    if (width == 0)
                        width = (colnr_T)wp->w_width;
                    added += ((size - prev_width) / width) * vim_strsize(p_sbr);
***************
*** 1963,1969 ****
  
  /*
   * Return TRUE if "str" starts with a backslash that should be removed.
!  * For MS-DOS, WIN32 and OS/2 this is only done when the character after the
   * backslash is not a normal file name character.
   * '$' is a valid file name character, we don't remove the backslash before
   * it.  This means it is not possible to use an environment variable after a
--- 1963,1969 ----
  
  /*
   * Return TRUE if "str" starts with a backslash that should be removed.
!  * For MS-DOS, MSWIN and OS/2 this is only done when the character after the
   * backslash is not a normal file name character.
   * '$' is a valid file name character, we don't remove the backslash before
   * it.  This means it is not possible to use an environment variable after a
*** ../vim-8.1.1031/src/message.c       2019-02-22 13:42:00.276540703 +0100
--- src/message.c       2019-03-21 21:38:41.270490119 +0100
***************
*** 4491,4497 ****
            case 'c':
            case 's':
            case 'S':
-               length_modifier = '\0';
                str_arg_l = 1;
                switch (fmt_spec)
                {
--- 4491,4496 ----
***************
*** 4872,4878 ****
                                 * zero value is formatted with an
                                 * explicit precision of zero */
                                precision = num_of_digits + 1;
-                               precision_specified = 1;
                            }
                        }
                        /* zero padding to specified precision? */
--- 4871,4876 ----
*** ../vim-8.1.1031/src/version.c       2019-03-21 21:16:32.988734329 +0100
--- src/version.c       2019-03-21 21:44:22.203978084 +0100
***************
*** 781,782 ****
--- 781,784 ----
  {   /* Add new patch number below this line */
+ /**/
+     1032,
  /**/

-- 
The primary purpose of the DATA statement is to give names to constants;
instead of referring to pi as 3.141592653589793 at every appearance, the
variable PI can be given that value with a DATA statement and used instead
of the longer form of the constant.  This also simplifies modifying the
program, should the value of pi change.
        -- FORTRAN manual for Xerox Computers

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui