diff --git a/src/panel.h b/src/panel.h
index 65bde53..cf2cac2 100644
a
|
b
|
typedef struct WPanel { |
96 | 96 | struct stat dir_stat; /* Stat of current dir: used by execute () */ |
97 | 97 | |
98 | 98 | gboolean searching; |
| 99 | char previous_search_buffer [256]; |
99 | 100 | char search_buffer [256]; |
100 | 101 | char search_char [MB_LEN_MAX]; /*buffer for multibytes characters*/ |
101 | 102 | int search_chpoint; /*point after last characters in search_char*/ |
diff --git a/src/screen.c b/src/screen.c
index 1425796..43bdedb 100644
a
|
b
|
start_search (WPanel * panel) |
2471 | 2471 | panel->selected = 0; |
2472 | 2472 | else |
2473 | 2473 | move_down (panel); |
| 2474 | |
| 2475 | gboolean recall_search_string = panel->search_buffer[0] == '\0'; |
| 2476 | |
| 2477 | if (recall_search_string) |
| 2478 | { |
| 2479 | /* in case if there was no search string we need to recall |
| 2480 | previous string, with which we ended previous searching */ |
| 2481 | strncpy(panel->search_buffer, panel->previous_search_buffer, 256); |
| 2482 | } |
| 2483 | |
2474 | 2484 | do_search (panel, 0); |
2475 | 2485 | } |
2476 | 2486 | else |
… |
… |
static void |
2488 | 2498 | stop_search (WPanel * panel) |
2489 | 2499 | { |
2490 | 2500 | panel->searching = FALSE; |
| 2501 | |
| 2502 | gboolean had_search_string = panel->search_buffer[0] != '\0'; |
| 2503 | |
| 2504 | /* if user had overrdied search string, we need to store it to the |
| 2505 | previous_search_buffer */ |
| 2506 | if (had_search_string) { |
| 2507 | strncpy(panel->previous_search_buffer, panel->search_buffer, 256); |
| 2508 | } |
| 2509 | |
2491 | 2510 | display_mini_info (panel); |
2492 | 2511 | } |
2493 | 2512 | |