mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-22 20:36:50 +03:00
edit/editcmd.c:
* Fix encoding in replace confirm dialog * Correct handle error codes from search engine
This commit is contained in:
parent
ea2740059b
commit
1d18f3227e
@ -1237,7 +1237,7 @@ edit_replace_prompt (WEdit * edit, char *replace_text, int xpos, int ypos)
|
|||||||
size_t label_len;
|
size_t label_len;
|
||||||
label_len = label_text->len;
|
label_len = label_text->len;
|
||||||
g_string_append (label_text, replace_text);
|
g_string_append (label_text, replace_text);
|
||||||
convert_to_display (label_text->str + label_len);
|
g_string_append (label_text, " ?");
|
||||||
}
|
}
|
||||||
quick_widgets[5].text = label_text->str;
|
quick_widgets[5].text = label_text->str;
|
||||||
|
|
||||||
@ -1641,11 +1641,13 @@ edit_replace_cmd (WEdit *edit, int again)
|
|||||||
char *input1 = NULL; /* user input from the dialog */
|
char *input1 = NULL; /* user input from the dialog */
|
||||||
char *input2 = NULL;
|
char *input2 = NULL;
|
||||||
char *input3 = NULL;
|
char *input3 = NULL;
|
||||||
|
char *str_for_prompt_dialog = NULL;
|
||||||
int replace_yes;
|
int replace_yes;
|
||||||
int replace_continue;
|
int replace_continue;
|
||||||
int treplace_prompt = 0;
|
int treplace_prompt = 0;
|
||||||
long times_replaced = 0, last_search;
|
long times_replaced = 0, last_search;
|
||||||
int argord[NUM_REPL_ARGS];
|
int argord[NUM_REPL_ARGS];
|
||||||
|
gboolean once_found = FALSE;
|
||||||
|
|
||||||
if (!edit) {
|
if (!edit) {
|
||||||
g_free (saved1), saved1 = NULL;
|
g_free (saved1), saved1 = NULL;
|
||||||
@ -1677,6 +1679,8 @@ edit_replace_cmd (WEdit *edit, int again)
|
|||||||
g_free (disp1);
|
g_free (disp1);
|
||||||
g_free (disp2);
|
g_free (disp2);
|
||||||
g_free (disp3);
|
g_free (disp3);
|
||||||
|
str_for_prompt_dialog = g_strdup(input2);
|
||||||
|
|
||||||
|
|
||||||
input1 = edit_replace_cmd__conv_to_input(input1);
|
input1 = edit_replace_cmd__conv_to_input(input1);
|
||||||
input2 = edit_replace_cmd__conv_to_input(input2);
|
input2 = edit_replace_cmd__conv_to_input(input2);
|
||||||
@ -1757,10 +1761,13 @@ edit_replace_cmd (WEdit *edit, int again)
|
|||||||
|
|
||||||
if (! mc_search_run(edit->search, (void *) edit, edit->search_start, last_search, &len))
|
if (! mc_search_run(edit->search, (void *) edit, edit->search_start, last_search, &len))
|
||||||
{
|
{
|
||||||
// TODO: handle edit->search->error
|
if (!(edit->search->error == MC_SEARCH_E_OK || (once_found && edit->search->error == MC_SEARCH_E_NOTFOUND)))
|
||||||
|
{
|
||||||
|
edit_error_dialog (_ ("Search"), edit->search->error_str);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
once_found = TRUE;
|
||||||
new_start = edit->search->normal_offset;
|
new_start = edit->search->normal_offset;
|
||||||
|
|
||||||
edit->search_start = new_start = edit->search->normal_offset;
|
edit->search_start = new_start = edit->search->normal_offset;
|
||||||
@ -1792,7 +1799,7 @@ edit_replace_cmd (WEdit *edit, int again)
|
|||||||
/*so that undo stops at each query */
|
/*so that undo stops at each query */
|
||||||
edit_push_key_press (edit);
|
edit_push_key_press (edit);
|
||||||
|
|
||||||
switch (edit_replace_prompt (edit, input2, /* and prompt 2/3 down */
|
switch (edit_replace_prompt (edit, str_for_prompt_dialog, /* and prompt 2/3 down */
|
||||||
(edit->num_widget_columns -
|
(edit->num_widget_columns -
|
||||||
CONFIRM_DLG_WIDTH) / 2,
|
CONFIRM_DLG_WIDTH) / 2,
|
||||||
edit->num_widget_lines * 2 /
|
edit->num_widget_lines * 2 /
|
||||||
@ -1903,6 +1910,7 @@ edit_replace_cmd (WEdit *edit, int again)
|
|||||||
edit->force = REDRAW_COMPLETELY;
|
edit->force = REDRAW_COMPLETELY;
|
||||||
edit_scroll_screen_over_cursor (edit);
|
edit_scroll_screen_over_cursor (edit);
|
||||||
cleanup:
|
cleanup:
|
||||||
|
g_free (str_for_prompt_dialog);
|
||||||
g_free (input1);
|
g_free (input1);
|
||||||
g_free (input2);
|
g_free (input2);
|
||||||
g_free (input3);
|
g_free (input3);
|
||||||
|
Loading…
Reference in New Issue
Block a user