changeset 13130:161b5fe12b11 v8.0.1439

patch 8.0.1439: if cscope fails a search Vim may hang commit https://github.com/vim/vim/commit/1274d33493efb6250470a37b9f4432bb31e87d64 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jan 30 21:47:52 2018 +0100 patch 8.0.1439: if cscope fails a search Vim may hang Problem: If cscope fails a search Vim may hang. Solution: Bail out when a search error is encountered. (Safouane Baroudi, closes #2598)
author Christian Brabandt <cb@256bit.org>
date Tue, 30 Jan 2018 22:00:07 +0100
parents f2f02cb95fbc
children a1667d3bcd5f
files src/if_cscope.c src/version.c
diffstat 2 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/if_cscope.c
+++ b/src/if_cscope.c
@@ -677,7 +677,7 @@ cs_cnt_matches(int idx)
 {
     char *stok;
     char *buf;
-    int nlines;
+    int nlines = 0;
 
     buf = (char *)alloc(CSREAD_BUFSIZE);
     if (buf == NULL)
@@ -700,7 +700,10 @@ cs_cnt_matches(int idx)
 	 * cscope will output error messages before the number-of-lines output.
 	 * Display/discard any output that doesn't match what we want.
 	 * Accept "\S*cscope: X lines", also matches "mlcscope".
+	 * Bail out for the "Unable to search" error.
 	 */
+	if (strstr((const char *)stok, "Unable to search database") != NULL)
+	    break;
 	if ((stok = strtok(buf, (const char *)" ")) == NULL)
 	    continue;
 	if (strstr((const char *)stok, "cscope:") == NULL)
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1439,
+/**/
     1438,
 /**/
     1437,