Patch 8.1.0377
Problem: Xdiff doesn't use the Vim memory allocation functions.
Solution: Change the xdl_ defines. Check for out-of-memory. Rename
"ignored" to "vim_ignored".
Files: src/xdiff/xdiff.h, src/xdiff/xpatience.c, src/xdiff/xdiffi.c,
src/channel.c, src/diff.c, src/evalfunc.c, src/ex_cmds.c,
src/fileio.c, src/main.c, src/mbyte.c, src/netbeans.c,
src/os_unix.c, src/os_win32.c, src/ui.c, src/window.c,
src/globals.h, src/term.c
*** ../vim-8.1.0376/src/xdiff/xdiff.h 2018-09-10 17:50:32.713306941 +0200
--- src/xdiff/xdiff.h 2018-09-13 15:18:00.938808604 +0200
***************
*** 108,117 ****
long bsize;
} bdiffparam_t;
! #define xdl_malloc(x) malloc(x)
! #define xdl_free(ptr) free(ptr)
! #define xdl_realloc(ptr,x) realloc(ptr,x)
void *xdl_mmfile_first(mmfile_t *mmf, long *size);
long xdl_mmfile_size(mmfile_t *mmf);
--- 108,118 ----
long bsize;
} bdiffparam_t;
+ #include "vim.h"
! #define xdl_malloc(x) lalloc((x), TRUE)
! #define xdl_free(ptr) vim_free(ptr)
! #define xdl_realloc(ptr,x) vim_realloc((ptr),(x))
void *xdl_mmfile_first(mmfile_t *mmf, long *size);
long xdl_mmfile_size(mmfile_t *mmf);
*** ../vim-8.1.0376/src/xdiff/xpatience.c 2018-09-10 17:50:32.717306902
+0200
--- src/xdiff/xpatience.c 2018-09-13 15:12:42.501925972 +0200
***************
*** 210,215 ****
--- 210,219 ----
int longest = 0, i;
struct entry *entry;
+ /* Added to silence Coverity. */
+ if (sequence == NULL)
+ return map->first;
+
/*
* If not -1, this entry in sequence must never be overridden.
* Therefore, overriding entries before this has no effect, so
*** ../vim-8.1.0376/src/xdiff/xdiffi.c 2018-09-10 17:50:32.713306941 +0200
--- src/xdiff/xdiffi.c 2018-09-13 15:18:46.014371180 +0200
***************
*** 392,400 ****
}
/*
! * If a line is indented more than this, get_indent() just returns this value.
* This avoids having to do absurd amounts of work for data that are not
! * human-readable text, and also ensures that the output of get_indent fits
within
* an int.
*/
#define MAX_INDENT 200
--- 392,400 ----
}
/*
! * If a line is indented more than this, xget_indent() just returns this
value.
* This avoids having to do absurd amounts of work for data that are not
! * human-readable text, and also ensures that the output of xget_indent fits
within
* an int.
*/
#define MAX_INDENT 200
***************
*** 404,410 ****
* columns. Return -1 if line is empty or contains only whitespace. Clamp the
* output value at MAX_INDENT.
*/
! static int get_indent(xrecord_t *rec)
{
long i;
int ret = 0;
--- 404,410 ----
* columns. Return -1 if line is empty or contains only whitespace. Clamp the
* output value at MAX_INDENT.
*/
! static int xget_indent(xrecord_t *rec)
{
long i;
int ret = 0;
***************
*** 492,504 ****
m->indent = -1;
} else {
m->end_of_file = 0;
! m->indent = get_indent(xdf->recs[split]);
}
m->pre_blank = 0;
m->pre_indent = -1;
for (i = split - 1; i >= 0; i--) {
! m->pre_indent = get_indent(xdf->recs[i]);
if (m->pre_indent != -1)
break;
m->pre_blank += 1;
--- 492,504 ----
m->indent = -1;
} else {
m->end_of_file = 0;
! m->indent = xget_indent(xdf->recs[split]);
}
m->pre_blank = 0;
m->pre_indent = -1;
for (i = split - 1; i >= 0; i--) {
! m->pre_indent = xget_indent(xdf->recs[i]);
if (m->pre_indent != -1)
break;
m->pre_blank += 1;
***************
*** 511,517 ****
m->post_blank = 0;
m->post_indent = -1;
for (i = split + 1; i < xdf->nrec; i++) {
! m->post_indent = get_indent(xdf->recs[i]);
if (m->post_indent != -1)
break;
m->post_blank += 1;
--- 511,517 ----
m->post_blank = 0;
m->post_indent = -1;
for (i = split + 1; i < xdf->nrec; i++) {
! m->post_indent = xget_indent(xdf->recs[i]);
if (m->post_indent != -1)
break;
m->post_blank += 1;
*** ../vim-8.1.0376/src/channel.c 2018-09-06 16:27:20.664831945 +0200
--- src/channel.c 2018-09-13 15:20:13.661522640 +0200
***************
*** 1858,1864 ****
{
ch_log_lead(lead, channel, part);
fprintf(log_fd, "'");
! ignored = (int)fwrite(buf, len, 1, log_fd);
fprintf(log_fd, "'\n");
}
return OK;
--- 1858,1864 ----
{
ch_log_lead(lead, channel, part);
fprintf(log_fd, "'");
! vim_ignored = (int)fwrite(buf, len, 1, log_fd);
fprintf(log_fd, "'\n");
}
return OK;
***************
*** 2388,2394 ****
u_sync(TRUE);
/* ignore undo failure, undo is not very useful here */
! ignored = u_save(lnum - empty, lnum + 1);
if (empty)
{
--- 2388,2394 ----
u_sync(TRUE);
/* ignore undo failure, undo is not very useful here */
! vim_ignored = u_save(lnum - empty, lnum + 1);
if (empty)
{
***************
*** 3730,3736 ****
{
ch_log_lead("SEND ", channel, part);
fprintf(log_fd, "'");
! ignored = (int)fwrite(buf_arg, len_arg, 1, log_fd);
fprintf(log_fd, "'\n");
fflush(log_fd);
did_log_msg = TRUE;
--- 3730,3736 ----
{
ch_log_lead("SEND ", channel, part);
fprintf(log_fd, "'");
! vim_ignored = (int)fwrite(buf_arg, len_arg, 1, log_fd);
fprintf(log_fd, "'\n");
fflush(log_fd);
did_log_msg = TRUE;
*** ../vim-8.1.0376/src/diff.c 2018-09-13 13:03:08.228724142 +0200
--- src/diff.c 2018-09-13 15:20:28.509379140 +0200
***************
*** 1203,1212 ****
{
# ifdef TEMPDIRNAMES
if (vim_tempdir != NULL)
! ignored = mch_chdir((char *)vim_tempdir);
else
# endif
! ignored = mch_chdir("/tmp");
shorten_fnames(TRUE);
}
#endif
--- 1203,1212 ----
{
# ifdef TEMPDIRNAMES
if (vim_tempdir != NULL)
! vim_ignored = mch_chdir((char *)vim_tempdir);
else
# endif
! vim_ignored = mch_chdir("/tmp");
shorten_fnames(TRUE);
}
#endif
*** ../vim-8.1.0376/src/evalfunc.c 2018-09-11 20:10:17.138525018 +0200
--- src/evalfunc.c 2018-09-13 15:20:58.541089065 +0200
***************
*** 14016,14022 ****
else if (do_fsync)
/* Ignore the error, the user wouldn't know what to do about it.
* May happen for a device. */
! ignored = fsync(fileno(fd));
#endif
fclose(fd);
}
--- 14016,14022 ----
else if (do_fsync)
/* Ignore the error, the user wouldn't know what to do about it.
* May happen for a device. */
! vim_ignored = fsync(fileno(fd));
#endif
fclose(fd);
}
*** ../vim-8.1.0376/src/ex_cmds.c 2018-08-21 15:12:10.835801673 +0200
--- src/ex_cmds.c 2018-09-13 15:21:18.432897079 +0200
***************
*** 2117,2123 ****
if (st_old.st_uid != tmp_st.st_uid)
/* Changing the owner might fail, in which case the
* file will now owned by the current user, oh well. */
! ignored = fchown(fileno(fp_out), st_old.st_uid, -1);
if (st_old.st_gid != tmp_st.st_gid
&& fchown(fileno(fp_out), -1, st_old.st_gid) == -1)
/* can't set the group to what it should be, remove
--- 2117,2123 ----
if (st_old.st_uid != tmp_st.st_uid)
/* Changing the owner might fail, in which case the
* file will now owned by the current user, oh well. */
! vim_ignored = fchown(fileno(fp_out), st_old.st_uid, -1);
if (st_old.st_gid != tmp_st.st_gid
&& fchown(fileno(fp_out), -1, st_old.st_gid) == -1)
/* can't set the group to what it should be, remove
*** ../vim-8.1.0376/src/fileio.c 2018-09-10 21:04:09.868392665 +0200
--- src/fileio.c 2018-09-13 15:25:58.942199081 +0200
***************
*** 2408,2414 ****
{
/* Use stderr for stdin, makes shell commands work. */
close(0);
! ignored = dup(2);
}
#endif
--- 2408,2414 ----
{
/* Use stderr for stdin, makes shell commands work. */
close(0);
! vim_ignored = dup(2);
}
#endif
***************
*** 3751,3757 ****
{
# ifdef UNIX
# ifdef HAVE_FCHOWN
! ignored = fchown(fd, st_old.st_uid, st_old.st_gid);
# endif
if (mch_stat((char *)IObuff, &st) < 0
|| st.st_uid != st_old.st_uid
--- 3751,3757 ----
{
# ifdef UNIX
# ifdef HAVE_FCHOWN
! vim_ignored = fchown(fd, st_old.st_uid, st_old.st_gid);
# endif
if (mch_stat((char *)IObuff, &st) < 0
|| st.st_uid != st_old.st_uid
***************
*** 4509,4515 ****
#endif
#ifdef HAVE_FTRUNCATE
if (!append)
! ignored = ftruncate(fd, (off_t)0);
#endif
#if defined(WIN3264)
--- 4509,4515 ----
#endif
#ifdef HAVE_FTRUNCATE
if (!append)
! vim_ignored = ftruncate(fd, (off_t)0);
#endif
#if defined(WIN3264)
***************
*** 4789,4795 ****
|| st.st_gid != st_old.st_gid)
{
/* changing owner might not be possible */
! ignored = fchown(fd, st_old.st_uid, -1);
/* if changing group fails clear the group permissions */
if (fchown(fd, -1, st_old.st_gid) == -1 && perm > 0)
perm &= ~070;
--- 4789,4795 ----
|| st.st_gid != st_old.st_gid)
{
/* changing owner might not be possible */
! vim_ignored = fchown(fd, st_old.st_uid, -1);
/* if changing group fails clear the group permissions */
if (fchown(fd, -1, st_old.st_gid) == -1 && perm > 0)
perm &= ~070;
***************
*** 6482,6490 ****
{
tbuf[FGETS_SIZE - 2] = NUL;
#ifdef USE_CR
! ignoredp = fgets_cr((char *)tbuf, FGETS_SIZE, fp);
#else
! ignoredp = fgets((char *)tbuf, FGETS_SIZE, fp);
#endif
} while (tbuf[FGETS_SIZE - 2] != NUL && tbuf[FGETS_SIZE - 2] != '\n');
}
--- 6482,6490 ----
{
tbuf[FGETS_SIZE - 2] = NUL;
#ifdef USE_CR
! vim_ignoredp = fgets_cr((char *)tbuf, FGETS_SIZE, fp);
#else
! vim_ignoredp = fgets((char *)tbuf, FGETS_SIZE, fp);
#endif
} while (tbuf[FGETS_SIZE - 2] != NUL && tbuf[FGETS_SIZE - 2] != '\n');
}
*** ../vim-8.1.0376/src/main.c 2018-09-10 21:04:09.872392623 +0200
--- src/main.c 2018-09-13 15:22:28.516221441 +0200
***************
*** 2632,2638 ****
* Is there any other system that cannot do this?
*/
close(0);
! ignored = dup(2);
#endif
}
--- 2632,2638 ----
* Is there any other system that cannot do this?
*/
close(0);
! vim_ignored = dup(2);
#endif
}
*** ../vim-8.1.0376/src/mbyte.c 2018-09-11 21:30:05.253070476 +0200
--- src/mbyte.c 2018-09-13 15:22:39.728113472 +0200
***************
*** 756,762 ****
* where mblen() returns 0 for invalid character.
* Therefore, following condition includes 0.
*/
! ignored = mblen(NULL, 0); /* First reset the state. */
if (mblen(buf, (size_t)1) <= 0)
n = 2;
else
--- 756,762 ----
* where mblen() returns 0 for invalid character.
* Therefore, following condition includes 0.
*/
! vim_ignored = mblen(NULL, 0); // First reset the state.
if (mblen(buf, (size_t)1) <= 0)
n = 2;
else
*** ../vim-8.1.0376/src/netbeans.c 2018-03-04 16:12:13.000000000 +0100
--- src/netbeans.c 2018-09-13 15:23:17.979745287 +0200
***************
*** 1988,1997 ****
pos = get_off_or_lnum(buf->bufp, &args);
cp = (char *)args;
! ignored = (int)strtol(cp, &cp, 10);
args = (char_u *)cp;
# ifdef NBDEBUG
! if (ignored != -1)
{
nbdebug((" partial line annotation -- Not Yet
Implemented!\n"));
}
--- 1988,1997 ----
pos = get_off_or_lnum(buf->bufp, &args);
cp = (char *)args;
! vim_ignored = (int)strtol(cp, &cp, 10);
args = (char_u *)cp;
# ifdef NBDEBUG
! if (vim_ignored != -1)
{
nbdebug((" partial line annotation -- Not Yet
Implemented!\n"));
}
*** ../vim-8.1.0376/src/os_unix.c 2018-09-12 20:29:05.479670601 +0200
--- src/os_unix.c 2018-09-13 15:24:00.571335689 +0200
***************
*** 357,363 ****
void
mch_write(char_u *s, int len)
{
! ignored = (int)write(1, (char *)s, len);
if (p_wd) /* Unix is too fast, slow down a bit more */
RealWaitForChar(read_cmd_fd, p_wd, NULL, NULL);
}
--- 357,363 ----
void
mch_write(char_u *s, int len)
{
! vim_ignored = (int)write(1, (char *)s, len);
if (p_wd) /* Unix is too fast, slow down a bit more */
RealWaitForChar(read_cmd_fd, p_wd, NULL, NULL);
}
***************
*** 4693,4701 ****
*/
if (fd >= 0)
{
! ignored = dup(fd); /* To replace stdin (fd 0) */
! ignored = dup(fd); /* To replace stdout (fd 1) */
! ignored = dup(fd); /* To replace stderr (fd 2) */
/* Don't need this now that we've duplicated it */
close(fd);
--- 4693,4701 ----
*/
if (fd >= 0)
{
! vim_ignored = dup(fd); /* To replace stdin (fd 0) */
! vim_ignored = dup(fd); /* To replace stdout (fd 1) */
! vim_ignored = dup(fd); /* To replace stderr (fd 2) */
/* Don't need this now that we've duplicated it */
close(fd);
***************
*** 4752,4764 ****
/* set up stdin/stdout/stderr for the child */
close(0);
! ignored = dup(pty_slave_fd);
close(1);
! ignored = dup(pty_slave_fd);
if (gui.in_use)
{
close(2);
! ignored = dup(pty_slave_fd);
}
close(pty_slave_fd); /* has been dupped, close it now */
--- 4752,4764 ----
/* set up stdin/stdout/stderr for the child */
close(0);
! vim_ignored = dup(pty_slave_fd);
close(1);
! vim_ignored = dup(pty_slave_fd);
if (gui.in_use)
{
close(2);
! vim_ignored = dup(pty_slave_fd);
}
close(pty_slave_fd); /* has been dupped, close it now */
***************
*** 4769,4781 ****
/* set up stdin for the child */
close(fd_toshell[1]);
close(0);
! ignored = dup(fd_toshell[0]);
close(fd_toshell[0]);
/* set up stdout for the child */
close(fd_fromshell[0]);
close(1);
! ignored = dup(fd_fromshell[1]);
close(fd_fromshell[1]);
# ifdef FEAT_GUI
--- 4769,4781 ----
/* set up stdin for the child */
close(fd_toshell[1]);
close(0);
! vim_ignored = dup(fd_toshell[0]);
close(fd_toshell[0]);
/* set up stdout for the child */
close(fd_fromshell[0]);
close(1);
! vim_ignored = dup(fd_fromshell[1]);
close(fd_fromshell[1]);
# ifdef FEAT_GUI
***************
*** 4783,4789 ****
{
/* set up stderr for the child */
close(2);
! ignored = dup(1);
}
# endif
}
--- 4783,4789 ----
{
/* set up stderr for the child */
close(2);
! vim_ignored = dup(1);
}
# endif
}
***************
*** 4920,4926 ****
&& (lnum !=
curbuf->b_ml.ml_line_count
|| curbuf->b_p_eol)))
! ignored = write(toshell_fd, "\n",
(size_t)1);
++lnum;
if (lnum > curbuf->b_op_end.lnum)
--- 4920,4926 ----
&& (lnum !=
curbuf->b_ml.ml_line_count
|| curbuf->b_p_eol)))
! vim_ignored = write(toshell_fd, "\n",
(size_t)1);
++lnum;
if (lnum > curbuf->b_op_end.lnum)
***************
*** 5611,5644 ****
/* set up stdin for the child */
close(0);
if (use_null_for_in && null_fd >= 0)
! ignored = dup(null_fd);
else if (fd_in[0] < 0)
! ignored = dup(pty_slave_fd);
else
! ignored = dup(fd_in[0]);
/* set up stderr for the child */
close(2);
if (use_null_for_err && null_fd >= 0)
{
! ignored = dup(null_fd);
stderr_works = FALSE;
}
else if (use_out_for_err)
! ignored = dup(fd_out[1]);
else if (fd_err[1] < 0)
! ignored = dup(pty_slave_fd);
else
! ignored = dup(fd_err[1]);
/* set up stdout for the child */
close(1);
if (use_null_for_out && null_fd >= 0)
! ignored = dup(null_fd);
else if (fd_out[1] < 0)
! ignored = dup(pty_slave_fd);
else
! ignored = dup(fd_out[1]);
if (fd_in[0] >= 0)
close(fd_in[0]);
--- 5611,5644 ----
/* set up stdin for the child */
close(0);
if (use_null_for_in && null_fd >= 0)
! vim_ignored = dup(null_fd);
else if (fd_in[0] < 0)
! vim_ignored = dup(pty_slave_fd);
else
! vim_ignored = dup(fd_in[0]);
/* set up stderr for the child */
close(2);
if (use_null_for_err && null_fd >= 0)
{
! vim_ignored = dup(null_fd);
stderr_works = FALSE;
}
else if (use_out_for_err)
! vim_ignored = dup(fd_out[1]);
else if (fd_err[1] < 0)
! vim_ignored = dup(pty_slave_fd);
else
! vim_ignored = dup(fd_err[1]);
/* set up stdout for the child */
close(1);
if (use_null_for_out && null_fd >= 0)
! vim_ignored = dup(null_fd);
else if (fd_out[1] < 0)
! vim_ignored = dup(pty_slave_fd);
else
! vim_ignored = dup(fd_out[1]);
if (fd_in[0] >= 0)
close(fd_in[0]);
*** ../vim-8.1.0376/src/os_win32.c 2018-09-06 13:14:39.144722527 +0200
--- src/os_win32.c 2018-09-13 15:24:11.255233005 +0200
***************
*** 4388,4394 ****
&& (lnum != curbuf->b_ml.ml_line_count
|| curbuf->b_p_eol)))
{
! WriteFile(g_hChildStd_IN_Wr, "\n", 1, (LPDWORD)&ignored, NULL);
}
++lnum;
--- 4388,4395 ----
&& (lnum != curbuf->b_ml.ml_line_count
|| curbuf->b_p_eol)))
{
! WriteFile(g_hChildStd_IN_Wr, "\n", 1,
! (LPDWORD)&vim_ignored, NULL);
}
++lnum;
*** ../vim-8.1.0376/src/ui.c 2018-05-11 21:58:49.000000000 +0200
--- src/ui.c 2018-09-13 15:24:57.474788997 +0200
***************
*** 403,409 ****
void
ui_breakcheck_force(int force)
{
! int save_us = updating_screen;
/* We do not want gui_resize_shell() to redraw the screen here. */
++updating_screen;
--- 403,409 ----
void
ui_breakcheck_force(int force)
{
! int save_updating_screen = updating_screen;
/* We do not want gui_resize_shell() to redraw the screen here. */
++updating_screen;
***************
*** 415,422 ****
#endif
mch_breakcheck(force);
! if (save_us)
! updating_screen = save_us;
else
reset_updating_screen(FALSE);
}
--- 415,422 ----
#endif
mch_breakcheck(force);
! if (save_updating_screen)
! updating_screen = TRUE;
else
reset_updating_screen(FALSE);
}
***************
*** 1885,1891 ****
#ifdef HAVE_DUP
/* Use stderr for stdin, also works for shell commands. */
close(0);
! ignored = dup(2);
#else
read_cmd_fd = 2; /* read from stderr instead of stdin */
#endif
--- 1885,1891 ----
#ifdef HAVE_DUP
/* Use stderr for stdin, also works for shell commands. */
close(0);
! vim_ignored = dup(2);
#else
read_cmd_fd = 2; /* read from stderr instead of stdin */
#endif
*** ../vim-8.1.0376/src/window.c 2018-08-21 16:56:28.367325278 +0200
--- src/window.c 2018-09-13 15:25:10.614662839 +0200
***************
*** 4436,4442 ****
{
/* Window doesn't have a local directory and we are not in the global
* directory: Change to the global directory. */
! ignored = mch_chdir((char *)globaldir);
VIM_CLEAR(globaldir);
shorten_fnames(TRUE);
}
--- 4436,4442 ----
{
/* Window doesn't have a local directory and we are not in the global
* directory: Change to the global directory. */
! vim_ignored = mch_chdir((char *)globaldir);
VIM_CLEAR(globaldir);
shorten_fnames(TRUE);
}
*** ../vim-8.1.0376/src/globals.h 2018-09-10 21:04:09.868392665 +0200
--- src/globals.h 2018-09-13 15:26:19.670000302 +0200
***************
*** 1621,1628 ****
* can't do anything useful with the value. Assign to this variable to avoid
* the warning.
*/
! EXTERN int ignored;
! EXTERN char *ignoredp;
#ifdef FEAT_EVAL
/* set by alloc_fail(): ID */
--- 1621,1628 ----
* can't do anything useful with the value. Assign to this variable to avoid
* the warning.
*/
! EXTERN int vim_ignored;
! EXTERN char *vim_ignoredp;
#ifdef FEAT_EVAL
/* set by alloc_fail(): ID */
*** ../vim-8.1.0376/src/term.c 2018-09-10 21:04:09.872392623 +0200
--- src/term.c 2018-09-13 15:26:15.598039345 +0200
***************
*** 7013,7019 ****
size_t len;
int pos;
! ignoredp = fgets(line, LINE_LEN, fd);
len = strlen(line);
if (len <= 1 || line[len - 1] != '\n')
--- 7013,7019 ----
size_t len;
int pos;
! vim_ignoredp = fgets(line, LINE_LEN, fd);
len = strlen(line);
if (len <= 1 || line[len - 1] != '\n')
*** ../vim-8.1.0376/src/version.c 2018-09-13 14:57:37.915261048 +0200
--- src/version.c 2018-09-13 15:30:49.183420346 +0200
***************
*** 796,797 ****
--- 796,799 ----
{ /* Add new patch number below this line */
+ /**/
+ 377,
/**/
--
Don't read everything you believe.
/// 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.