From 23c9e8b3bc86ac1083dd97b00c943fbb7af7bc29 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 20 Jan 2017 19:59:54 +0100 Subject: [PATCH 1/2] patch 8.0.0207: leaking file descriptor when system() fails Problem: Leaking file descriptor when system() cannot find the buffer. (Coverity) Solution: Close the file descriptor. (Dominique Pelle, closes #1398) --- src/evalfunc.c | 1 + src/version.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/evalfunc.c b/src/evalfunc.c index 4b6bfaa137..c7be082faf 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -11832,6 +11832,7 @@ get_cmd_output_as_rettv( if (buf == NULL) { EMSGN(_(e_nobufnr), argvars[1].vval.v_number); + fclose(fd); goto errret; } diff --git a/src/version.c b/src/version.c index f3c4a4bf5e..e350e9c110 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 207, /**/ 206, /**/ From 25b0e6b701a7a8dfcb4f60e217360a5c75053d8c Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 20 Jan 2017 21:51:53 +0100 Subject: [PATCH 2/2] patch 8.0.0208: internally used commands end up in history Problem: Internally used commands for CTRL-Z and mouse click end up in history. (Matthew Malcomson) Solution: Use do_cmdline_cmd() instead of stuffing them in the readahead buffer. (James McCoy, closes #1395) --- src/edit.c | 2 +- src/normal.c | 4 ++-- src/version.c | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/edit.c b/src/edit.c index 51a12b3301..8e6ca5da9d 100644 --- a/src/edit.c +++ b/src/edit.c @@ -1025,7 +1025,7 @@ doESCkey: case Ctrl_Z: /* suspend when 'insertmode' set */ if (!p_im) goto normalchar; /* insert CTRL-Z as normal char */ - stuffReadbuff((char_u *)":st\r"); + do_cmdline_cmd((char_u *)"stop"); c = Ctrl_O; /*FALLTHROUGH*/ diff --git a/src/normal.c b/src/normal.c index 3456b73be4..8724553a9a 100644 --- a/src/normal.c +++ b/src/normal.c @@ -2982,9 +2982,9 @@ do_mouse( if (State & INSERT) stuffcharReadbuff(Ctrl_O); if (curwin->w_llist_ref == NULL) /* quickfix window */ - stuffReadbuff((char_u *)":.cc\n"); + do_cmdline_cmd((char_u *)".cc"); else /* location list window */ - stuffReadbuff((char_u *)":.ll\n"); + do_cmdline_cmd((char_u *)".ll"); got_click = FALSE; /* ignore drag&release now */ } #endif diff --git a/src/version.c b/src/version.c index e350e9c110..c2a80dc5ff 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 208, /**/ 207, /**/