diff --git a/src/screen_find.c b/src/screen_find.c
index 0d9d51f0d2ce959f4e5d53dac032ac8811694be7..890f58cf14579dcf0436ec8012fa7f41437488e0 100644 (file)
--- a/src/screen_find.c
+++ b/src/screen_find.c
list_window_paint_callback_t paint_callback,
void *callback_data)
{
- char *search_str, *iter;
+ char *search_str, *iter, *temp;
const int WRLN_MAX_LINE_SIZE = 1024;
int key = 65;
command_t cmd;
while(1) {
key = screen_getch(screen.findbuf);
/* if backspace or delete was pressed, process instead of ending loop */
- if (key == 127 || key == 330) {
+ if (key == KEY_BACKSPACE || key == KEY_DC) {
int i;
if (search_str <= g_utf8_find_prev_char(screen.findbuf, iter))
iter = g_utf8_find_prev_char(screen.findbuf, iter);
ungetch(key);
if ((cmd=get_keyboard_command()) != CMD_NONE)
do_input_event(cmd);
+
+ temp = g_strdup(search_str);
+ g_free(screen.findbuf);
+ screen.findbuf = temp;
}