Do not loop forever when search finds an empty match, GitHub issue 2203.

pull/2209/head
Nicholas Marriott 2020-05-10 09:59:34 +01:00
parent 79a9a7b931
commit 5fa377d927
1 changed files with 4 additions and 1 deletions

View File

@ -2445,7 +2445,8 @@ window_copy_search_lr_regex(struct grid *gd, u_int *ppx, u_int *psx, u_int py,
len += gd->sx;
}
if (regexec(reg, buf, 1, &regmatch, eflags) == 0) {
if (regexec(reg, buf, 1, &regmatch, eflags) == 0 &&
regmatch.rm_so != regmatch.rm_eo) {
foundx = first;
foundy = py;
window_copy_cstrtocellpos(gd, len, &foundx, &foundy,
@ -2547,6 +2548,8 @@ window_copy_last_regex(struct grid *gd, u_int py, u_int first, u_int last,
foundy = py;
oldx = first;
while (regexec(preg, buf + px, 1, &regmatch, eflags) == 0) {
if (regmatch.rm_so == regmatch.rm_eo)
break;
window_copy_cstrtocellpos(gd, len, &foundx, &foundy,
buf + px + regmatch.rm_so);
if (foundy > py || foundx >= last)