diff options
-rw-r--r-- | find.c | 6 | ||||
-rw-r--r-- | ted.c | 4 |
2 files changed, 7 insertions, 3 deletions
@@ -451,14 +451,14 @@ static void find_menu_frame(Ted *ted, Rect menu_bounds) { } static void find_open(Ted *ted, bool replace) { - if (!ted->find && ted->active_buffer) { + if (ted->active_buffer && ted_is_regular_buffer(ted, ted->active_buffer)) { ted->prev_active_buffer = ted->active_buffer; ted_switch_to_buffer(ted, &ted->find_buffer); ted->find = true; buffer_select_all(ted->active_buffer); + ted->replace = replace; + find_update(ted, true); } - ted->replace = replace; - find_update(ted, true); } static void find_close(Ted *ted) { @@ -51,6 +51,10 @@ static void ted_full_path(Ted *ted, char const *relpath, char *abspath, size_t a path_full(ted->cwd, relpath, abspath, abspath_size); } +static bool ted_is_regular_buffer(Ted *ted, TextBuffer *buffer) { + return buffer >= ted->buffers && buffer < ted->buffers + TED_MAX_BUFFERS; +} + // Check the various places a file could be, and return the full path. static Status ted_get_file(Ted const *ted, char const *name, char *out, size_t outsz) { if (ted->search_cwd && fs_file_exists(name)) { |