mirror of
https://github.com/MidnightCommander/mc
synced 2025-03-10 18:11:35 +03:00
Ticket #3819: mcview: search doesn't grow file as much as needed.
(mcview_do_search): * In main search loop: don't break in case of MC_SEARCH_E_NOTFOUND error. Make next iteration until buffer can be grown. * Make search in the last data chunk. Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
This commit is contained in:
parent
b088459e0e
commit
178628e67f
@ -366,13 +366,25 @@ mcview_do_search (WView * view, off_t want_search_start)
|
||||
break;
|
||||
}
|
||||
|
||||
if (view->search->error == MC_SEARCH_E_ABORT || view->search->error == MC_SEARCH_E_NOTFOUND)
|
||||
/* Search error is here.
|
||||
* MC_SEARCH_E_NOTFOUND: continue search
|
||||
* others: stop
|
||||
*/
|
||||
if (view->search->error != MC_SEARCH_E_NOTFOUND)
|
||||
break;
|
||||
|
||||
search_start = growbufsize - view->search->original_len;
|
||||
}
|
||||
while (search_start > 0 && mcview_may_still_grow (view));
|
||||
|
||||
/* After mcview_may_still_grow (view) == FALSE we have remained last chunk. Search there. */
|
||||
if (!found && view->search->error == MC_SEARCH_E_NOTFOUND && !mcview_search_options.backwards
|
||||
&& mcview_find (&vsm, search_start, mcview_get_filesize (view), &match_len))
|
||||
{
|
||||
mcview_search_show_result (view, match_len);
|
||||
found = TRUE;
|
||||
}
|
||||
|
||||
status_msg_deinit (STATUS_MSG (&vsm));
|
||||
|
||||
if (orig_search_start != 0 && (!found && view->search->error == MC_SEARCH_E_NOTFOUND)
|
||||
|
Loading…
x
Reference in New Issue
Block a user