summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2010-07-31 16:44:19 +0200
committerBram Moolenaar <Bram@vim.org>2010-07-31 16:44:19 +0200
commita9d52e3b7925ef119b5d0d9fca14faac634effb0 (patch)
tree151c52ad2e282b8e264aee2fc7af3db76d8c2071
parenta26559b553079c3959ee142a010b2e000c180323 (diff)
Fixes for coverity warnings.
-rw-r--r--runtime/doc/diff.txt4
-rw-r--r--runtime/doc/todo.txt5
-rw-r--r--src/diff.c5
-rw-r--r--src/ex_getln.c2
-rw-r--r--src/hardcopy.c7
-rw-r--r--src/misc2.c5
-rw-r--r--src/netbeans.c7
-rw-r--r--src/normal.c3
-rw-r--r--src/option.c3
-rw-r--r--src/spell.c3
-rw-r--r--src/ui.c3
11 files changed, 25 insertions, 22 deletions
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 1b5c2a1392..c94bf69a3a 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,4 +1,4 @@
-*diff.txt* For Vim version 7.3c. Last change: 2009 Sep 15
+*diff.txt* For Vim version 7.3c. Last change: 2010 Jul 31
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -57,6 +57,7 @@ In each of the edited files these options are set:
'diff' on
'scrollbind' on
+ 'cursorbind' on
'scrollopt' includes "hor"
'wrap' off
'foldmethod' "diff"
@@ -133,6 +134,7 @@ the old values are not remembered.
'diff' off
'scrollbind' off
+ 'cursorbind' off
'scrollopt' without "hor"
'wrap' on
'foldmethod' "manual"
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index d50f65add4..e887fd35fc 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -30,8 +30,6 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
-After ":diffoff" scroll binding doesn't stop completely.
-
Windows 7: "Open with..." menu starts Vim without a file.
Need to use other registry methods in if_ole.cpp?
@@ -39,9 +37,6 @@ Windows 7: installing Vim again doesn't find the previously installed Vim.
Move more common code from if_python.c and if_python3.c to if_py_both.h
-Add filetype completion to user commands. (Christian Brabandt, 2010 Jul 26)
-But call it "filetype" instead of "syntax"?
-
Uninspected issues on http://scan.coverity.com/rung2.html
Before release 7.3:
diff --git a/src/diff.c b/src/diff.c
index e733ccd45c..9b6d2791f0 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -1177,6 +1177,9 @@ ex_diffoff(eap)
{
/* Set 'diff', 'scrollbind' off and 'wrap' on. */
wp->w_p_diff = FALSE;
+#ifdef FEAT_CURSORBIND
+ wp->w_p_crb = FALSE;
+#endif
wp->w_p_scb = FALSE;
wp->w_p_wrap = TRUE;
#ifdef FEAT_FOLDING
@@ -2360,7 +2363,7 @@ ex_diffgetput(eap)
}
/* restore curwin/curbuf and a few other things */
- if (idx_other == idx_to)
+ if (eap->cmdidx != CMD_diffget)
{
/* Syncing undo only works for the current buffer, but we change
* another buffer. Sync undo if the command was typed. This isn't
diff --git a/src/ex_getln.c b/src/ex_getln.c
index b292f63916..790d5315a0 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -3780,7 +3780,7 @@ vim_strsave_fnameescape(fname, shell)
/* '>' and '+' are special at the start of some commands, e.g. ":edit" and
* ":write". "cd -" has a special meaning. */
- if (*p == '>' || *p == '+' || (*p == '-' && p[1] == NUL))
+ if (p != NULL && (*p == '>' || *p == '+' || (*p == '-' && p[1] == NUL)))
escape_fname(&p);
return p;
diff --git a/src/hardcopy.c b/src/hardcopy.c
index 744a2a2f19..0747dc9d3e 100644
--- a/src/hardcopy.c
+++ b/src/hardcopy.c
@@ -1943,6 +1943,7 @@ prt_open_resource(resource)
fclose(fd_resource);
return FALSE;
}
+ fclose(fd_resource);
prt_resfile.line_end = -1;
prt_resfile.line_start = 0;
@@ -1956,7 +1957,6 @@ prt_open_resource(resource)
{
EMSG2(_("E618: file \"%s\" is not a PostScript resource file"),
resource->filename);
- fclose(fd_resource);
return FALSE;
}
@@ -1974,7 +1974,6 @@ prt_open_resource(resource)
{
EMSG2(_("E619: file \"%s\" is not a supported PostScript resource file"),
resource->filename);
- fclose(fd_resource);
return FALSE;
}
offset += (int)STRLEN(PRT_RESOURCE_RESOURCE);
@@ -1993,7 +1992,6 @@ prt_open_resource(resource)
{
EMSG2(_("E619: file \"%s\" is not a supported PostScript resource file"),
resource->filename);
- fclose(fd_resource);
return FALSE;
}
@@ -2036,12 +2034,9 @@ prt_open_resource(resource)
{
EMSG2(_("E619: file \"%s\" is not a supported PostScript resource file"),
resource->filename);
- fclose(fd_resource);
return FALSE;
}
- fclose(fd_resource);
-
return TRUE;
}
diff --git a/src/misc2.c b/src/misc2.c
index 6b9ffe151c..96813a4841 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -4533,8 +4533,9 @@ vim_findfile_init(path, filename, stopdirs, level, free_visited, find_what,
* This is needed if the parameter path is fully qualified.
*/
search_ctx->ffsc_start_dir = vim_strsave(search_ctx->ffsc_fix_path);
- if (search_ctx->ffsc_start_dir)
- search_ctx->ffsc_fix_path[0] = NUL;
+ if (search_ctx->ffsc_start_dir == NULL)
+ goto error_return;
+ search_ctx->ffsc_fix_path[0] = NUL;
}
/* create an absolute path */
diff --git a/src/netbeans.c b/src/netbeans.c
index 00c7ce20b9..68914eb12e 100644
--- a/src/netbeans.c
+++ b/src/netbeans.c
@@ -3682,17 +3682,18 @@ addsigntype(
if (buf->signmaplen == 0) /* first allocation */
{
buf->signmaplen = 5;
- buf->signmap = (int *)alloc_clear(buf->signmaplen * sizeof(int *));
+ buf->signmap = (int *)alloc_clear(buf->signmaplen * sizeof(int));
}
else /* grow it */
{
int incr;
int oldlen = buf->signmaplen;
+
buf->signmaplen *= 2;
incr = buf->signmaplen - oldlen;
buf->signmap = (int *)vim_realloc(buf->signmap,
- buf->signmaplen*sizeof(int *));
- vim_memset(buf->signmap + oldlen, 0, incr * sizeof(int *));
+ buf->signmaplen * sizeof(int));
+ vim_memset(buf->signmap + oldlen, 0, incr * sizeof(int));
}
}
diff --git a/src/normal.c b/src/normal.c
index e17aec3154..b76e40d1de 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -6358,7 +6358,7 @@ nv_csearch(cap)
nv_brackets(cap)
cmdarg_T *cap;
{
- pos_T new_pos;
+ pos_T new_pos = INIT_POS_T(0, 0, 0);
pos_T prev_pos;
pos_T *pos = NULL; /* init for GCC */
pos_T old_pos; /* cursor position before command */
@@ -6436,7 +6436,6 @@ nv_brackets(cap)
{
if (cap->nchar == '*')
cap->nchar = '/';
- new_pos.lnum = 0;
prev_pos.lnum = 0;
if (cap->nchar == 'm' || cap->nchar == 'M')
{
diff --git a/src/option.c b/src/option.c
index 2c5e88bfbd..06e569ca45 100644
--- a/src/option.c
+++ b/src/option.c
@@ -3212,6 +3212,8 @@ set_init_1()
options[opt_idx].def_val[VI_DEFAULT] = buf;
options[opt_idx].flags |= P_DEF_ALLOCED;
}
+ else
+ vim_free(buf); /* cannot happen */
}
if (mustfree)
vim_free(cdpath);
@@ -4262,6 +4264,7 @@ do_set(arg, opt_flags)
* 'foldmethod' becomes "marker" instead of "diff" and that
* "wrap" gets set. */
if (curwin->w_p_diff
+ && opt_idx >= 0 /* shut up coverity warning */
&& (options[opt_idx].indir == PV_FDM
|| options[opt_idx].indir == PV_WRAP))
goto skip;
diff --git a/src/spell.c b/src/spell.c
index 6d4d47ea21..30510ad271 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -9439,7 +9439,8 @@ spell_add_word(word, len, bad, idx, undo)
fseek(fd, fpos_next, SEEK_SET);
}
}
- fclose(fd);
+ if (fd != NULL)
+ fclose(fd);
}
}
diff --git a/src/ui.c b/src/ui.c
index fbdc325355..a05490c67c 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -3100,6 +3100,9 @@ get_fpos_of_mouse(mpos)
if (mpos->col > 0)
--mpos->col;
+#ifdef FEAT_VIRTUALEDIT
+ mpos->coladd = 0;
+#endif
return IN_BUFFER;
}