| To: vim_dev@googlegroups.com |
| Subject: Patch 7.4.822 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.4.822 |
| Problem: More problems reported by coverity. |
| Solution: Avoid the warnings. (Christian Brabandt) |
| Files: src/os_unix.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, |
| src/ex_getln.c, src/fold.c, src/gui.c, src/gui_w16.c, |
| src/gui_w32.c, src/if_cscope.c, src/if_xcmdsrv.c, src/move.c, |
| src/normal.c, src/regexp.c, src/syntax.c, src/ui.c, src/window.c |
| |
| |
| |
| |
| |
| *** 7001,7007 **** |
| /* 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; |
| xterm_trace = 2; |
| |
| /* Find the offset of the chars, there might be a scrollbar on the |
| --- 7001,7007 ---- |
| /* Rely on the same mouse code for the duration of this */ |
| mouse_code = find_termcode(mouse_name); |
| prev_row = mouse_row; |
| ! prev_col = mouse_col; |
| xterm_trace = 2; |
| |
| /* Find the offset of the chars, there might be a scrollbar on the |
| |
| |
| |
| *** 6736,6742 **** |
| len = (int)STRLEN(s); |
| sumlen += len; |
| |
| ! ga_grow(join_gap, 1); |
| p = ((join_T *)join_gap->ga_data) + (join_gap->ga_len++); |
| if (tofree != NULL || s != numbuf) |
| { |
| --- 6736,6742 ---- |
| len = (int)STRLEN(s); |
| sumlen += len; |
| |
| ! (void)ga_grow(join_gap, 1); |
| p = ((join_T *)join_gap->ga_data) + (join_gap->ga_len++); |
| if (tofree != NULL || s != numbuf) |
| { |
| |
| *** 19590,19596 **** |
| goto error; |
| } |
| |
| ! ga_grow(&ga, cplen); |
| mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen); |
| ga.ga_len += cplen; |
| |
| --- 19590,19596 ---- |
| goto error; |
| } |
| |
| ! (void)ga_grow(&ga, cplen); |
| mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen); |
| ga.ga_len += cplen; |
| |
| |
| *** 19610,19616 **** |
| } |
| |
| /* add a terminating NUL */ |
| ! ga_grow(&ga, 1); |
| ga_append(&ga, NUL); |
| |
| rettv->vval.v_string = ga.ga_data; |
| --- 19610,19616 ---- |
| } |
| |
| /* add a terminating NUL */ |
| ! (void)ga_grow(&ga, 1); |
| ga_append(&ga, NUL); |
| |
| rettv->vval.v_string = ga.ga_data; |
| |
| |
| |
| *** 6856,6862 **** |
| /* |
| * Sort the tags. |
| */ |
| ! sort_strings((char_u **)ga.ga_data, ga.ga_len); |
| |
| /* |
| * Check for duplicates. |
| --- 6856,6863 ---- |
| /* |
| * Sort the tags. |
| */ |
| ! if (ga.ga_data != NULL) |
| ! sort_strings((char_u **)ga.ga_data, ga.ga_len); |
| |
| /* |
| * Check for duplicates. |
| |
| |
| |
| *** 3051,3057 **** |
| { |
| int fdflags = fcntl(fd_tmp, F_GETFD); |
| if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0) |
| ! fcntl(fd_tmp, F_SETFD, fdflags | FD_CLOEXEC); |
| } |
| # endif |
| |
| --- 3051,3057 ---- |
| { |
| int fdflags = fcntl(fd_tmp, F_GETFD); |
| if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0) |
| ! (void)fcntl(fd_tmp, F_SETFD, fdflags | FD_CLOEXEC); |
| } |
| # endif |
| |
| |
| *** 3841,3847 **** |
| { |
| /* 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)); |
| 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) |
| --- 3841,3847 ---- |
| { |
| /* Grow the array before starting the timer, so that the time spent |
| * here isn't counted. */ |
| ! (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) |
| |
| |
| |
| *** 2312,2318 **** |
| add_indent: |
| while (get_indent_str(p, 8, FALSE) < indent) |
| { |
| ! 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); |
| --- 2312,2318 ---- |
| add_indent: |
| while (get_indent_str(p, 8, FALSE) < indent) |
| { |
| ! (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); |
| |
| |
| |
| *** 2446,2452 **** |
| if (getlevel == foldlevelMarker && flp->start <= flp->lvl - level |
| && flp->lvl > 0) |
| { |
| ! foldFind(gap, startlnum - 1, &fp); |
| if (fp >= ((fold_T *)gap->ga_data) + gap->ga_len |
| || fp->fd_top >= startlnum) |
| fp = NULL; |
| --- 2446,2452 ---- |
| if (getlevel == foldlevelMarker && flp->start <= flp->lvl - level |
| && flp->lvl > 0) |
| { |
| ! (void)foldFind(gap, startlnum - 1, &fp); |
| if (fp >= ((fold_T *)gap->ga_data) + gap->ga_len |
| || fp->fd_top >= startlnum) |
| fp = NULL; |
| |
| *** 2508,2514 **** |
| } |
| if (lvl < level + i) |
| { |
| ! foldFind(&fp->fd_nested, flp->lnum - fp->fd_top, &fp2); |
| if (fp2 != NULL) |
| bot = fp2->fd_top + fp2->fd_len - 1 + fp->fd_top; |
| } |
| --- 2508,2514 ---- |
| } |
| if (lvl < level + i) |
| { |
| ! (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; |
| } |
| |
| |
| |
| *** 1575,1581 **** |
| base_height = gui_get_base_height(); |
| if (fit_to_display) |
| /* Remember the original window position. */ |
| ! gui_mch_get_winpos(&x, &y); |
| |
| #ifdef USE_SUN_WORKSHOP |
| if (!mustset && usingSunWorkShop |
| --- 1575,1581 ---- |
| base_height = gui_get_base_height(); |
| if (fit_to_display) |
| /* Remember the original window position. */ |
| ! (void)gui_mch_get_winpos(&x, &y); |
| |
| #ifdef USE_SUN_WORKSHOP |
| if (!mustset && usingSunWorkShop |
| |
| *** 5366,5372 **** |
| { |
| /* Search for the next match. */ |
| i = msg_scroll; |
| ! 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 */ |
| } |
| --- 5366,5372 ---- |
| { |
| /* Search for the next match. */ |
| i = msg_scroll; |
| ! (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 */ |
| } |
| |
| |
| |
| *** 282,288 **** |
| result = MyWindowProc(hwnd, uMsg, wParam, lParam); |
| if (result == HTCLIENT) |
| { |
| ! gui_mch_get_winpos(&x, &y); |
| xPos -= x; |
| |
| if (xPos < 48) /*<VN> TODO should use system metric?*/ |
| --- 282,288 ---- |
| result = MyWindowProc(hwnd, uMsg, wParam, lParam); |
| if (result == HTCLIENT) |
| { |
| ! (void)gui_mch_get_winpos(&x, &y); |
| xPos -= x; |
| |
| if (xPos < 48) /*<VN> TODO should use system metric?*/ |
| |
| |
| |
| *** 17,23 **** |
| * 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). |
| * |
| * TODO: Some of the function signatures ought to be updated for Win64; |
| * e.g., replace LONG with LONG_PTR, etc. |
| --- 17,23 ---- |
| * scrollbars, etc. |
| * |
| * Note: Clipboard stuff, for cutting and pasting text to other windows, is in |
| ! * 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,82 **** |
| char_u name[128]; |
| char_u value[128]; |
| |
| ! copy_option_part(&p, item, sizeof(item), ","); |
| if (p == NULL) |
| break; |
| q = &item[0]; |
| --- 76,82 ---- |
| char_u name[128]; |
| char_u value[128]; |
| |
| ! copy_option_part(&p, item, sizeof(item), ","); |
| if (p == NULL) |
| break; |
| q = &item[0]; |
| |
| *** 1227,1233 **** |
| return result; |
| } |
| #endif |
| ! gui_mch_get_winpos(&x, &y); |
| xPos -= x; |
| |
| if (xPos < 48) /* <VN> TODO should use system metric? */ |
| --- 1227,1233 ---- |
| return result; |
| } |
| #endif |
| ! (void)gui_mch_get_winpos(&x, &y); |
| xPos -= x; |
| |
| if (xPos < 48) /* <VN> TODO should use system metric? */ |
| |
| |
| |
| *** 1076,1083 **** |
| /* |
| * 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. |
| * |
| * returns TRUE if we jump to a tag or abort, FALSE if not. |
| */ |
| --- 1076,1083 ---- |
| /* |
| * 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. |
| * |
| * returns TRUE if we jump to a tag or abort, FALSE if not. |
| */ |
| |
| *** 1214,1220 **** |
| --- 1214,1223 ---- |
| |
| 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,1295 **** |
| # ifdef FEAT_WINDOWS |
| if (postponed_split != 0) |
| { |
| ! win_split(postponed_split > 0 ? postponed_split : 0, |
| postponed_split_flags); |
| RESET_BINDING(curwin); |
| postponed_split = 0; |
| --- 1292,1298 ---- |
| # ifdef FEAT_WINDOWS |
| if (postponed_split != 0) |
| { |
| ! (void)win_split(postponed_split > 0 ? postponed_split : 0, |
| postponed_split_flags); |
| RESET_BINDING(curwin); |
| postponed_split = 0; |
| |
| *** 2085,2090 **** |
| --- 2088,2095 ---- |
| |
| strcpy(tbuf, matches[0]); |
| ptag = strtok(tbuf, "\t"); |
| + if (ptag == NULL) |
| + return; |
| |
| newsize = (int)(strlen(cstag_msg) + strlen(ptag)); |
| buf = (char *)alloc(newsize); |
| |
| |
| |
| *** 1265,1276 **** |
| /* Initialize the result property. */ |
| ga_init2(&reply, 1, 100); |
| #ifdef FEAT_MBYTE |
| ! 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); |
| sprintf(reply.ga_data, "%cr%c-s %s%c-r ", |
| 0, 0, serial, 0); |
| reply.ga_len = 10 + STRLEN(serial); |
| --- 1265,1276 ---- |
| /* Initialize the result property. */ |
| ga_init2(&reply, 1, 100); |
| #ifdef FEAT_MBYTE |
| ! (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 |
| ! (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,1365 **** |
| 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 *)""); |
| break; |
| } |
| } |
| --- 1351,1360 ---- |
| continue; |
| |
| pcPtr->code = code; |
| ! res = serverConvert(enc, res, &tofree); |
| ! if (tofree == NULL) |
| ! res = vim_strsave(res); |
| ! pcPtr->result = res; |
| break; |
| } |
| } |
| |
| |
| |
| *** 1512,1518 **** |
| --curwin->w_topline; |
| #endif |
| #ifdef FEAT_FOLDING |
| ! hasFolding(curwin->w_topline, &curwin->w_topline, NULL); |
| #endif |
| --curwin->w_botline; /* approximate w_botline */ |
| curwin->w_valid &= ~(VALID_WROW|VALID_CROW|VALID_BOTLINE); |
| --- 1512,1518 ---- |
| --curwin->w_topline; |
| #endif |
| #ifdef FEAT_FOLDING |
| ! (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); |
| |
| |
| |
| *** 2865,2874 **** |
| end_visual.col = leftcol; |
| else |
| end_visual.col = rightcol; |
| ! 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 */ |
| --- 2865,2872 ---- |
| end_visual.col = leftcol; |
| else |
| end_visual.col = rightcol; |
| ! if (curwin->w_cursor.lnum >= |
| (start_visual.lnum + end_visual.lnum) / 2) |
| end_visual.lnum = start_visual.lnum; |
| |
| /* move VIsual to the right column */ |
| |
| *** 3807,3814 **** |
| } |
| # ifdef FEAT_FOLDING |
| /* Include closed folds as a whole. */ |
| ! hasFolding(top, &top, NULL); |
| ! hasFolding(bot, NULL, &bot); |
| # endif |
| lines = bot - top + 1; |
| |
| --- 3805,3812 ---- |
| } |
| # ifdef FEAT_FOLDING |
| /* Include closed folds as a whole. */ |
| ! (void)hasFolding(top, &top, NULL); |
| ! (void)hasFolding(bot, NULL, &bot); |
| # endif |
| lines = bot - top + 1; |
| |
| |
| *** 5954,5960 **** |
| lnum = curwin->w_topline; |
| while (n-- > 0 && lnum < curwin->w_botline - 1) |
| { |
| ! hasFolding(lnum, NULL, &lnum); |
| ++lnum; |
| } |
| n = lnum - curwin->w_topline; |
| --- 5952,5958 ---- |
| lnum = curwin->w_topline; |
| while (n-- > 0 && lnum < curwin->w_botline - 1) |
| { |
| ! (void)hasFolding(lnum, NULL, &lnum); |
| ++lnum; |
| } |
| n = lnum - curwin->w_topline; |
| |
| *** 6254,6260 **** |
| { |
| /* do autowrite if necessary */ |
| if (curbufIsChanged() && curbuf->b_nwindows <= 1 && !P_HID(curbuf)) |
| ! autowrite(curbuf, FALSE); |
| setpcmark(); |
| (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST, |
| P_HID(curbuf) ? ECMD_HIDE : 0, curwin); |
| --- 6252,6258 ---- |
| { |
| /* do autowrite if necessary */ |
| if (curbufIsChanged() && curbuf->b_nwindows <= 1 && !P_HID(curbuf)) |
| ! (void)autowrite(curbuf, FALSE); |
| setpcmark(); |
| (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST, |
| P_HID(curbuf) ? ECMD_HIDE : 0, curwin); |
| |
| |
| |
| *** 3824,3837 **** |
| /* 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); |
| regstack.ga_growsize = REGSTACK_INITIAL * 8; |
| } |
| |
| if (backpos.ga_data == NULL) |
| { |
| ga_init2(&backpos, sizeof(backpos_T), BACKPOS_INITIAL); |
| ! ga_grow(&backpos, BACKPOS_INITIAL); |
| backpos.ga_growsize = BACKPOS_INITIAL * 8; |
| } |
| |
| --- 3824,3837 ---- |
| /* Use an item size of 1 byte, since we push different things |
| * onto the regstack. */ |
| ga_init2(®stack, 1, 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); |
| ! (void)ga_grow(&backpos, BACKPOS_INITIAL); |
| backpos.ga_growsize = BACKPOS_INITIAL * 8; |
| } |
| |
| |
| |
| |
| *** 6670,6676 **** |
| spp = &(SYN_ITEMS(curwin->w_s)[idx]); |
| if (spp->sp_time.count > 0) |
| { |
| ! 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); |
| --- 6670,6676 ---- |
| spp = &(SYN_ITEMS(curwin->w_s)[idx]); |
| if (spp->sp_time.count > 0) |
| { |
| ! (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); |
| |
| |
| |
| *** 2903,2909 **** |
| break; |
| first = FALSE; |
| #ifdef FEAT_FOLDING |
| ! hasFolding(curwin->w_topline, &curwin->w_topline, NULL); |
| #endif |
| #ifdef FEAT_DIFF |
| if (curwin->w_topfill < diff_check(curwin, curwin->w_topline)) |
| --- 2903,2909 ---- |
| break; |
| first = FALSE; |
| #ifdef FEAT_FOLDING |
| ! (void)hasFolding(curwin->w_topline, &curwin->w_topline, NULL); |
| #endif |
| #ifdef FEAT_DIFF |
| if (curwin->w_topfill < diff_check(curwin, curwin->w_topline)) |
| |
| |
| |
| *** 141,147 **** |
| #ifdef FEAT_GUI |
| need_mouse_correct = TRUE; |
| #endif |
| ! win_split((int)Prenum, 0); |
| break; |
| |
| #ifdef FEAT_VERTSPLIT |
| --- 141,147 ---- |
| #ifdef FEAT_GUI |
| need_mouse_correct = TRUE; |
| #endif |
| ! (void)win_split((int)Prenum, 0); |
| break; |
| |
| #ifdef FEAT_VERTSPLIT |
| |
| *** 159,165 **** |
| # ifdef FEAT_GUI |
| need_mouse_correct = TRUE; |
| # endif |
| ! win_split((int)Prenum, WSP_VERT); |
| break; |
| #endif |
| |
| --- 159,165 ---- |
| # ifdef FEAT_GUI |
| need_mouse_correct = TRUE; |
| # endif |
| ! (void)win_split((int)Prenum, WSP_VERT); |
| break; |
| #endif |
| |
| |
| *** 2586,2592 **** |
| 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 == first_tabpage) |
| first_tabpage = tp->tp_next; |
| --- 2586,2592 ---- |
| return; |
| |
| /* When closing the last window in a tab page remove the tab page. */ |
| ! if (tp->tp_firstwin == tp->tp_lastwin) |
| { |
| if (tp == first_tabpage) |
| first_tabpage = tp->tp_next; |
| |
| |
| |
| *** 743,744 **** |
| --- 743,746 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 822, |
| /**/ |
| |
| -- |
| DENNIS: Listen -- strange women lying in ponds distributing swords is no |
| basis for a system of government. Supreme executive power derives |
| from a mandate from the masses, not from some farcical aquatic |
| ceremony. |
| The Quest for the Holy Grail (Monty Python) |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 /// |