int _find (char **lines, int nblines, int skip, char *search)
{
int len = strlen (search);
- int i, j, k;
+ int i, j;
for (i = skip; i < nblines; i++) {
for (j = 0; lines[i][j] != 0; j++) {
- int count = 0;
- for (k = 0; k < len; k++) {
- if (lines[i][j + k] == search[k]) {
- count++;
- }
- }
- if (count == len) {
+ if (strncmp (lines[i] + j, search, len) == 0) {
return i;
}
}
mvaddch (win->ysize + win->yoffset - 1, win->xsize + win->xoffset, ACS_DARROW);
}
+ int slen = (search) ? strlen (search) : 0;
for (i = 0; (i < win->ysize) && (lines[GETSKIP (skip, sskip) + i]); i++) {
unsigned char *pt = (unsigned char *)(lines[GETSKIP (skip, sskip) + i]);
+ int highlight = 0;
for (j = 0; (j < win->xsize) && (pt[j] != '\0'); j++) {
+ if ((slen) && (strncmp ((char *)(pt + j), search, slen) == 0)) {
+ highlight = slen;
+ }
if (pt[j] == 128) {
set_color (imagenta);
mvaddch (win->yoffset + i, win->xoffset + j, '.');
- set_color (black);
} else {
+ if (highlight) {
+ set_color (ired);
+ highlight--;
+ }
mvaddch (win->yoffset + i, win->xoffset + j, (char)pt[j]);
}
+ set_color (black);
}
for (; j < win->xsize; j++) {
mvaddch (win->yoffset + i, win->xoffset + j, ' ');