mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 7.4.1940
Problem: "gd" hangs in some situations. (Eric Biggers) Solution: Remove the SEARCH_START flag when looping. Add a test.
This commit is contained in:
@@ -4250,7 +4250,7 @@ find_decl(
|
||||
int len,
|
||||
int locally,
|
||||
int thisblock,
|
||||
int searchflags) /* flags passed to searchit() */
|
||||
int flags_arg) /* flags passed to searchit() */
|
||||
{
|
||||
char_u *pat;
|
||||
pos_T old_pos;
|
||||
@@ -4261,6 +4261,7 @@ find_decl(
|
||||
int save_p_scs;
|
||||
int retval = OK;
|
||||
int incll;
|
||||
int searchflags = flags_arg;
|
||||
|
||||
if ((pat = alloc(len + 7)) == NULL)
|
||||
return FAIL;
|
||||
@@ -4346,8 +4347,10 @@ find_decl(
|
||||
|
||||
/* For finding a local variable and the match is before the "{" search
|
||||
* to find a later match. For K&R style function declarations this
|
||||
* skips the function header without types. */
|
||||
* skips the function header without types. Remove SEARCH_START from
|
||||
* flags to avoid getting stuck at one position. */
|
||||
found_pos = curwin->w_cursor;
|
||||
searchflags &= ~SEARCH_START;
|
||||
}
|
||||
|
||||
if (t == FAIL)
|
||||
|
Reference in New Issue
Block a user