Mercurial > vim
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)