version 1.343, 2023/09/01 14:29:11 |
version 1.344, 2023/09/04 08:01:43 |
|
|
int timeout; /* search has timed out */ |
int timeout; /* search has timed out */ |
#define WINDOW_COPY_SEARCH_TIMEOUT 10000 |
#define WINDOW_COPY_SEARCH_TIMEOUT 10000 |
#define WINDOW_COPY_SEARCH_ALL_TIMEOUT 200 |
#define WINDOW_COPY_SEARCH_ALL_TIMEOUT 200 |
|
#define WINDOW_COPY_SEARCH_MAX_LINE 2000 |
|
|
int jumptype; |
int jumptype; |
struct utf8_data *jumpchar; |
struct utf8_data *jumpchar; |
|
|
len = gd->sx - first; |
len = gd->sx - first; |
endline = gd->hsize + gd->sy - 1; |
endline = gd->hsize + gd->sy - 1; |
pywrap = py; |
pywrap = py; |
while (buf != NULL && pywrap <= endline) { |
while (buf != NULL && |
|
pywrap <= endline && |
|
len < WINDOW_COPY_SEARCH_MAX_LINE) { |
gl = grid_get_line(gd, pywrap); |
gl = grid_get_line(gd, pywrap); |
if (~gl->flags & GRID_LINE_WRAPPED) |
if (~gl->flags & GRID_LINE_WRAPPED) |
break; |
break; |
|
|
len = gd->sx - first; |
len = gd->sx - first; |
endline = gd->hsize + gd->sy - 1; |
endline = gd->hsize + gd->sy - 1; |
pywrap = py; |
pywrap = py; |
while (buf != NULL && (pywrap <= endline)) { |
while (buf != NULL && |
|
pywrap <= endline && |
|
len < WINDOW_COPY_SEARCH_MAX_LINE) { |
gl = grid_get_line(gd, pywrap); |
gl = grid_get_line(gd, pywrap); |
if (~gl->flags & GRID_LINE_WRAPPED) |
if (~gl->flags & GRID_LINE_WRAPPED) |
break; |
break; |
|
|
struct grid *sgd, u_int fx, u_int fy, u_int endline, int cis, int wrap, |
struct grid *sgd, u_int fx, u_int fy, u_int endline, int cis, int wrap, |
int direction, int regex) |
int direction, int regex) |
{ |
{ |
u_int i, px, sx, ssize = 1; |
u_int i, px, sx, ssize = 1; |
int found = 0, cflags = REG_EXTENDED; |
int found = 0, cflags = REG_EXTENDED; |
char *sbuf; |
char *sbuf; |
regex_t reg; |
regex_t reg; |
|
struct grid_line *gl; |
|
|
if (regex) { |
if (regex) { |
sbuf = xmalloc(ssize); |
sbuf = xmalloc(ssize); |
|
|
|
|
if (direction) { |
if (direction) { |
for (i = fy; i <= endline; i++) { |
for (i = fy; i <= endline; i++) { |
|
gl = grid_get_line(gd, i); |
|
if (i != endline && gl->flags & GRID_LINE_WRAPPED) |
|
continue; |
if (regex) { |
if (regex) { |
found = window_copy_search_lr_regex(gd, |
found = window_copy_search_lr_regex(gd, |
&px, &sx, i, fx, gd->sx, ®); |
&px, &sx, i, fx, gd->sx, ®); |
|
|
} |
} |
} else { |
} else { |
for (i = fy + 1; endline < i; i--) { |
for (i = fy + 1; endline < i; i--) { |
|
gl = grid_get_line(gd, i - 1); |
|
if (i != endline && gl->flags & GRID_LINE_WRAPPED) |
|
continue; |
if (regex) { |
if (regex) { |
found = window_copy_search_rl_regex(gd, |
found = window_copy_search_rl_regex(gd, |
&px, &sx, i - 1, 0, fx + 1, ®); |
&px, &sx, i - 1, 0, fx + 1, ®); |