# HG changeset patch # User Bram Moolenaar # Date 1439313240 -7200 # Node ID 286fd54c7ae38a47e80c4e0bacd9748fe2914883 # Parent 7ce1f4e998bbfd417e4f9f3ef0a24da628f54484 patch 7.4.822 Problem: More problems reported by coverity. Solution: Avoid the warnings. (Christian Brabandt) diff --git a/src/eval.c b/src/eval.c --- a/src/eval.c +++ b/src/eval.c @@ -6736,7 +6736,7 @@ list_join_inner(gap, l, sep, echo_style, len = (int)STRLEN(s); sumlen += len; - ga_grow(join_gap, 1); + (void)ga_grow(join_gap, 1); p = ((join_T *)join_gap->ga_data) + (join_gap->ga_len++); if (tofree != NULL || s != numbuf) { @@ -19590,7 +19590,7 @@ error: goto error; } - ga_grow(&ga, cplen); + (void)ga_grow(&ga, cplen); mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen); ga.ga_len += cplen; @@ -19610,7 +19610,7 @@ error: } /* add a terminating NUL */ - ga_grow(&ga, 1); + (void)ga_grow(&ga, 1); ga_append(&ga, NUL); rettv->vval.v_string = ga.ga_data; diff --git a/src/ex_cmds.c b/src/ex_cmds.c --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -6856,7 +6856,8 @@ helptags_one(dir, ext, tagfname, add_hel /* * Sort the tags. */ - sort_strings((char_u **)ga.ga_data, ga.ga_len); + if (ga.ga_data != NULL) + sort_strings((char_u **)ga.ga_data, ga.ga_len); /* * Check for duplicates. diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c --- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -3051,7 +3051,7 @@ fopen_noinh_readbin(filename) { int fdflags = fcntl(fd_tmp, F_GETFD); if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0) - fcntl(fd_tmp, F_SETFD, fdflags | FD_CLOEXEC); + (void)fcntl(fd_tmp, F_SETFD, fdflags | FD_CLOEXEC); } # endif @@ -3841,7 +3841,7 @@ script_line_start() { /* Grow the array before starting the timer, so that the time spent * here isn't counted. */ - ga_grow(&si->sn_prl_ga, (int)(sourcing_lnum - si->sn_prl_ga.ga_len)); + (void)ga_grow(&si->sn_prl_ga, (int)(sourcing_lnum - si->sn_prl_ga.ga_len)); si->sn_prl_idx = sourcing_lnum - 1; while (si->sn_prl_ga.ga_len <= si->sn_prl_idx && si->sn_prl_ga.ga_len < si->sn_prl_ga.ga_maxlen) diff --git a/src/ex_getln.c b/src/ex_getln.c --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -2312,7 +2312,7 @@ getexmodeline(promptc, cookie, indent) add_indent: while (get_indent_str(p, 8, FALSE) < indent) { - ga_grow(&line_ga, 2); /* one more for the NUL */ + (void)ga_grow(&line_ga, 2); /* one more for the NUL */ p = (char_u *)line_ga.ga_data; s = skipwhite(p); mch_memmove(s + 1, s, line_ga.ga_len - (s - p) + 1); diff --git a/src/fold.c b/src/fold.c --- a/src/fold.c +++ b/src/fold.c @@ -2446,7 +2446,7 @@ foldUpdateIEMSRecurse(gap, level, startl if (getlevel == foldlevelMarker && flp->start <= flp->lvl - level && flp->lvl > 0) { - foldFind(gap, startlnum - 1, &fp); + (void)foldFind(gap, startlnum - 1, &fp); if (fp >= ((fold_T *)gap->ga_data) + gap->ga_len || fp->fd_top >= startlnum) fp = NULL; @@ -2508,7 +2508,7 @@ foldUpdateIEMSRecurse(gap, level, startl } if (lvl < level + i) { - foldFind(&fp->fd_nested, flp->lnum - fp->fd_top, &fp2); + (void)foldFind(&fp->fd_nested, flp->lnum - fp->fd_top, &fp2); if (fp2 != NULL) bot = fp2->fd_top + fp2->fd_len - 1 + fp->fd_top; } diff --git a/src/gui.c b/src/gui.c --- a/src/gui.c +++ b/src/gui.c @@ -1575,7 +1575,7 @@ gui_set_shellsize(mustset, fit_to_displa base_height = gui_get_base_height(); if (fit_to_display) /* Remember the original window position. */ - gui_mch_get_winpos(&x, &y); + (void)gui_mch_get_winpos(&x, &y); #ifdef USE_SUN_WORKSHOP if (!mustset && usingSunWorkShop @@ -5366,7 +5366,7 @@ gui_do_findrepl(flags, find_text, repl_t { /* Search for the next match. */ i = msg_scroll; - do_search(NULL, down ? '/' : '?', ga.ga_data, 1L, + (void)do_search(NULL, down ? '/' : '?', ga.ga_data, 1L, SEARCH_MSG + SEARCH_MARK, NULL); msg_scroll = i; /* don't let an error message set msg_scroll */ } diff --git a/src/gui_w16.c b/src/gui_w16.c --- a/src/gui_w16.c +++ b/src/gui_w16.c @@ -282,7 +282,7 @@ gui_mswin_get_menu_height( result = MyWindowProc(hwnd, uMsg, wParam, lParam); if (result == HTCLIENT) { - gui_mch_get_winpos(&x, &y); + (void)gui_mch_get_winpos(&x, &y); xPos -= x; if (xPos < 48) /* TODO should use system metric?*/ diff --git a/src/gui_w32.c b/src/gui_w32.c --- a/src/gui_w32.c +++ b/src/gui_w32.c @@ -17,7 +17,7 @@ * scrollbars, etc. * * Note: Clipboard stuff, for cutting and pasting text to other windows, is in - * os_win32.c. (It can also be done from the terminal version). + * winclip.c. (It can also be done from the terminal version). * * TODO: Some of the function signatures ought to be updated for Win64; * e.g., replace LONG with LONG_PTR, etc. @@ -76,7 +76,7 @@ gui_mch_set_rendering_options(char_u *s) char_u name[128]; char_u value[128]; - copy_option_part(&p, item, sizeof(item), ","); + copy_option_part(&p, item, sizeof(item), ","); if (p == NULL) break; q = &item[0]; @@ -1227,7 +1227,7 @@ set_tabline_font(void) return result; } #endif - gui_mch_get_winpos(&x, &y); + (void)gui_mch_get_winpos(&x, &y); xPos -= x; if (xPos < 48) /* TODO should use system metric? */ diff --git a/src/if_cscope.c b/src/if_cscope.c --- a/src/if_cscope.c +++ b/src/if_cscope.c @@ -1076,8 +1076,8 @@ err_closing: /* * PRIVATE: cs_find * - * query cscope using command line interface. parse the output and use tselect - * to allow choices. like Nvi, creates a pipe to send to/from query/cscope. + * Query cscope using command line interface. Parse the output and use tselect + * to allow choices. Like Nvi, creates a pipe to send to/from query/cscope. * * returns TRUE if we jump to a tag or abort, FALSE if not. */ @@ -1214,7 +1214,10 @@ cs_find_common(opt, pat, forceit, verbos nummatches = (int *)alloc(sizeof(int)*csinfo_size); if (nummatches == NULL) + { + vim_free(cmd); return FALSE; + } /* Send query to all open connections, then count the total number * of matches so we can alloc all in one swell foop. */ @@ -1289,7 +1292,7 @@ cs_find_common(opt, pat, forceit, verbos # ifdef FEAT_WINDOWS if (postponed_split != 0) { - win_split(postponed_split > 0 ? postponed_split : 0, + (void)win_split(postponed_split > 0 ? postponed_split : 0, postponed_split_flags); RESET_BINDING(curwin); postponed_split = 0; @@ -2085,6 +2088,8 @@ cs_print_tags_priv(matches, cntxts, num_ strcpy(tbuf, matches[0]); ptag = strtok(tbuf, "\t"); + if (ptag == NULL) + return; newsize = (int)(strlen(cstag_msg) + strlen(ptag)); buf = (char *)alloc(newsize); diff --git a/src/if_xcmdsrv.c b/src/if_xcmdsrv.c --- a/src/if_xcmdsrv.c +++ b/src/if_xcmdsrv.c @@ -1265,12 +1265,12 @@ serverEventProc(dpy, eventPtr) /* Initialize the result property. */ ga_init2(&reply, 1, 100); #ifdef FEAT_MBYTE - ga_grow(&reply, 50 + STRLEN(p_enc)); + (void)ga_grow(&reply, 50 + STRLEN(p_enc)); sprintf(reply.ga_data, "%cr%c-E %s%c-s %s%c-r ", 0, 0, p_enc, 0, serial, 0); reply.ga_len = 14 + STRLEN(p_enc) + STRLEN(serial); #else - ga_grow(&reply, 50); + (void)ga_grow(&reply, 50); sprintf(reply.ga_data, "%cr%c-s %s%c-r ", 0, 0, serial, 0); reply.ga_len = 10 + STRLEN(serial); @@ -1351,15 +1351,10 @@ serverEventProc(dpy, eventPtr) continue; pcPtr->code = code; - if (res != NULL) - { - res = serverConvert(enc, res, &tofree); - if (tofree == NULL) - res = vim_strsave(res); - pcPtr->result = res; - } - else - pcPtr->result = vim_strsave((char_u *)""); + res = serverConvert(enc, res, &tofree); + if (tofree == NULL) + res = vim_strsave(res); + pcPtr->result = res; break; } } diff --git a/src/move.c b/src/move.c --- a/src/move.c +++ b/src/move.c @@ -1512,7 +1512,7 @@ scrolldown_clamp() --curwin->w_topline; #endif #ifdef FEAT_FOLDING - hasFolding(curwin->w_topline, &curwin->w_topline, NULL); + (void)hasFolding(curwin->w_topline, &curwin->w_topline, NULL); #endif --curwin->w_botline; /* approximate w_botline */ curwin->w_valid &= ~(VALID_WROW|VALID_CROW|VALID_BOTLINE); diff --git a/src/normal.c b/src/normal.c --- a/src/normal.c +++ b/src/normal.c @@ -2865,10 +2865,8 @@ do_mouse(oap, c, dir, count, fixindent) end_visual.col = leftcol; else end_visual.col = rightcol; - if (curwin->w_cursor.lnum < + if (curwin->w_cursor.lnum >= (start_visual.lnum + end_visual.lnum) / 2) - end_visual.lnum = end_visual.lnum; - else end_visual.lnum = start_visual.lnum; /* move VIsual to the right column */ @@ -3807,8 +3805,8 @@ clear_showcmd() } # ifdef FEAT_FOLDING /* Include closed folds as a whole. */ - hasFolding(top, &top, NULL); - hasFolding(bot, NULL, &bot); + (void)hasFolding(top, &top, NULL); + (void)hasFolding(bot, NULL, &bot); # endif lines = bot - top + 1; @@ -5954,7 +5952,7 @@ nv_scroll(cap) lnum = curwin->w_topline; while (n-- > 0 && lnum < curwin->w_botline - 1) { - hasFolding(lnum, NULL, &lnum); + (void)hasFolding(lnum, NULL, &lnum); ++lnum; } n = lnum - curwin->w_topline; @@ -6254,7 +6252,7 @@ nv_gotofile(cap) { /* do autowrite if necessary */ if (curbufIsChanged() && curbuf->b_nwindows <= 1 && !P_HID(curbuf)) - autowrite(curbuf, FALSE); + (void)autowrite(curbuf, FALSE); setpcmark(); (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST, P_HID(curbuf) ? ECMD_HIDE : 0, curwin); diff --git a/src/os_unix.c b/src/os_unix.c --- a/src/os_unix.c +++ b/src/os_unix.c @@ -7001,7 +7001,7 @@ do_xterm_trace() /* Rely on the same mouse code for the duration of this */ mouse_code = find_termcode(mouse_name); prev_row = mouse_row; - prev_row = mouse_col; + prev_col = mouse_col; xterm_trace = 2; /* Find the offset of the chars, there might be a scrollbar on the diff --git a/src/regexp.c b/src/regexp.c --- a/src/regexp.c +++ b/src/regexp.c @@ -3824,14 +3824,14 @@ bt_regexec_both(line, col, tm) /* Use an item size of 1 byte, since we push different things * onto the regstack. */ ga_init2(®stack, 1, REGSTACK_INITIAL); - ga_grow(®stack, REGSTACK_INITIAL); + (void)ga_grow(®stack, REGSTACK_INITIAL); regstack.ga_growsize = REGSTACK_INITIAL * 8; } if (backpos.ga_data == NULL) { ga_init2(&backpos, sizeof(backpos_T), BACKPOS_INITIAL); - ga_grow(&backpos, BACKPOS_INITIAL); + (void)ga_grow(&backpos, BACKPOS_INITIAL); backpos.ga_growsize = BACKPOS_INITIAL * 8; } diff --git a/src/syntax.c b/src/syntax.c --- a/src/syntax.c +++ b/src/syntax.c @@ -6670,7 +6670,7 @@ syntime_report() spp = &(SYN_ITEMS(curwin->w_s)[idx]); if (spp->sp_time.count > 0) { - ga_grow(&ga, 1); + (void)ga_grow(&ga, 1); p = ((time_entry_T *)ga.ga_data) + ga.ga_len; p->total = spp->sp_time.total; profile_add(&total_total, &spp->sp_time.total); diff --git a/src/ui.c b/src/ui.c --- a/src/ui.c +++ b/src/ui.c @@ -2903,7 +2903,7 @@ retnomove: break; first = FALSE; #ifdef FEAT_FOLDING - hasFolding(curwin->w_topline, &curwin->w_topline, NULL); + (void)hasFolding(curwin->w_topline, &curwin->w_topline, NULL); #endif #ifdef FEAT_DIFF if (curwin->w_topfill < diff_check(curwin, curwin->w_topline)) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 822, +/**/ 821, /**/ 820, diff --git a/src/window.c b/src/window.c --- a/src/window.c +++ b/src/window.c @@ -141,7 +141,7 @@ do_window(nchar, Prenum, xchar) #ifdef FEAT_GUI need_mouse_correct = TRUE; #endif - win_split((int)Prenum, 0); + (void)win_split((int)Prenum, 0); break; #ifdef FEAT_VERTSPLIT @@ -159,7 +159,7 @@ do_window(nchar, Prenum, xchar) # ifdef FEAT_GUI need_mouse_correct = TRUE; # endif - win_split((int)Prenum, WSP_VERT); + (void)win_split((int)Prenum, WSP_VERT); break; #endif @@ -2586,7 +2586,7 @@ win_close_othertab(win, free_buf, tp) return; /* When closing the last window in a tab page remove the tab page. */ - if (tp == NULL ? firstwin == lastwin : tp->tp_firstwin == tp->tp_lastwin) + if (tp->tp_firstwin == tp->tp_lastwin) { if (tp == first_tabpage) first_tabpage = tp->tp_next;