mirror of
https://github.com/MidnightCommander/mc
synced 2025-01-03 10:04:32 +03:00
Refactoring of many conditions.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
This commit is contained in:
parent
5bf69875dc
commit
6c249ec0f2
@ -831,31 +831,29 @@ edit_move_up_paragraph (WEdit * edit, gboolean do_scroll)
|
|||||||
|
|
||||||
if (edit->curs_line > 1)
|
if (edit->curs_line > 1)
|
||||||
{
|
{
|
||||||
if (line_is_blank (edit, edit->curs_line))
|
if (!line_is_blank (edit, edit->curs_line))
|
||||||
{
|
{
|
||||||
if (line_is_blank (edit, edit->curs_line - 1))
|
for (i = edit->curs_line - 1; i != 0; i--)
|
||||||
{
|
if (line_is_blank (edit, i))
|
||||||
for (i = edit->curs_line - 1; i; i--)
|
break;
|
||||||
if (!line_is_blank (edit, i))
|
}
|
||||||
{
|
else if (line_is_blank (edit, edit->curs_line - 1))
|
||||||
i++;
|
{
|
||||||
break;
|
for (i = edit->curs_line - 1; i != 0; i--)
|
||||||
}
|
if (!line_is_blank (edit, i))
|
||||||
}
|
{
|
||||||
else
|
i++;
|
||||||
{
|
break;
|
||||||
for (i = edit->curs_line - 1; i; i--)
|
}
|
||||||
if (line_is_blank (edit, i))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (i = edit->curs_line - 1; i; i--)
|
for (i = edit->curs_line - 1; i != 0; i--)
|
||||||
if (line_is_blank (edit, i))
|
if (line_is_blank (edit, i))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
edit_move_up (edit, edit->curs_line - i, do_scroll);
|
edit_move_up (edit, edit->curs_line - i, do_scroll);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -869,35 +867,27 @@ edit_move_down_paragraph (WEdit * edit, gboolean do_scroll)
|
|||||||
long i;
|
long i;
|
||||||
|
|
||||||
if (edit->curs_line >= edit->total_lines - 1)
|
if (edit->curs_line >= edit->total_lines - 1)
|
||||||
{
|
|
||||||
i = edit->total_lines;
|
i = edit->total_lines;
|
||||||
|
else if (!line_is_blank (edit, edit->curs_line))
|
||||||
|
{
|
||||||
|
for (i = edit->curs_line + 1; i != 0; i++)
|
||||||
|
if (line_is_blank (edit, i) || i >= edit->total_lines)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (line_is_blank (edit, edit->curs_line + 1))
|
||||||
|
{
|
||||||
|
for (i = edit->curs_line + 1; i != 0; i++)
|
||||||
|
if (!line_is_blank (edit, i) || i > edit->total_lines)
|
||||||
|
{
|
||||||
|
i--;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (line_is_blank (edit, edit->curs_line))
|
for (i = edit->curs_line + 1; i != 0; i++)
|
||||||
{
|
if (line_is_blank (edit, i) || i >= edit->total_lines)
|
||||||
if (line_is_blank (edit, edit->curs_line + 1))
|
break;
|
||||||
{
|
|
||||||
for (i = edit->curs_line + 1; i; i++)
|
|
||||||
if (!line_is_blank (edit, i) || i > edit->total_lines)
|
|
||||||
{
|
|
||||||
i--;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (i = edit->curs_line + 1; i; i++)
|
|
||||||
if (line_is_blank (edit, i) || i >= edit->total_lines)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (i = edit->curs_line + 1; i; i++)
|
|
||||||
if (line_is_blank (edit, i) || i >= edit->total_lines)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
edit_move_down (edit, i - edit->curs_line, do_scroll);
|
edit_move_down (edit, i - edit->curs_line, do_scroll);
|
||||||
}
|
}
|
||||||
@ -1421,12 +1411,8 @@ edit_group_undo (WEdit * edit)
|
|||||||
static void
|
static void
|
||||||
edit_delete_to_line_end (WEdit * edit)
|
edit_delete_to_line_end (WEdit * edit)
|
||||||
{
|
{
|
||||||
while (edit_get_byte (edit, edit->curs1) != '\n')
|
while (edit_get_byte (edit, edit->curs1) != '\n' && edit->curs2 != 0)
|
||||||
{
|
|
||||||
if (!edit->curs2)
|
|
||||||
break;
|
|
||||||
edit_delete (edit, 1);
|
edit_delete (edit, 1);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------------------------------- */
|
||||||
@ -1434,12 +1420,8 @@ edit_delete_to_line_end (WEdit * edit)
|
|||||||
static void
|
static void
|
||||||
edit_delete_to_line_begin (WEdit * edit)
|
edit_delete_to_line_begin (WEdit * edit)
|
||||||
{
|
{
|
||||||
while (edit_get_byte (edit, edit->curs1 - 1) != '\n')
|
while (edit_get_byte (edit, edit->curs1 - 1) != '\n' && edit->curs1 != 0)
|
||||||
{
|
|
||||||
if (!edit->curs1)
|
|
||||||
break;
|
|
||||||
edit_backspace (edit, 1);
|
edit_backspace (edit, 1);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------------------------------- */
|
||||||
@ -1506,15 +1488,12 @@ static inline void
|
|||||||
edit_double_newline (WEdit * edit)
|
edit_double_newline (WEdit * edit)
|
||||||
{
|
{
|
||||||
edit_insert (edit, '\n');
|
edit_insert (edit, '\n');
|
||||||
if (edit_get_byte (edit, edit->curs1) == '\n')
|
if (edit_get_byte (edit, edit->curs1) == '\n' || edit_get_byte (edit, edit->curs1 - 2) == '\n')
|
||||||
return;
|
|
||||||
if (edit_get_byte (edit, edit->curs1 - 2) == '\n')
|
|
||||||
return;
|
return;
|
||||||
edit->force |= REDRAW_PAGE;
|
edit->force |= REDRAW_PAGE;
|
||||||
edit_insert (edit, '\n');
|
edit_insert (edit, '\n');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------------------------------- */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -1539,27 +1518,23 @@ insert_spaces_tab (WEdit * edit, gboolean half)
|
|||||||
static inline void
|
static inline void
|
||||||
edit_tab_cmd (WEdit * edit)
|
edit_tab_cmd (WEdit * edit)
|
||||||
{
|
{
|
||||||
int i;
|
if (option_fake_half_tabs && is_in_indent (edit))
|
||||||
|
|
||||||
if (option_fake_half_tabs)
|
|
||||||
{
|
{
|
||||||
if (is_in_indent (edit))
|
/* insert a half tab (usually four spaces) unless there is a
|
||||||
|
half tab already behind, then delete it and insert a
|
||||||
|
full tab. */
|
||||||
|
if (option_fill_tabs_with_spaces || !right_of_four_spaces (edit))
|
||||||
|
insert_spaces_tab (edit, TRUE);
|
||||||
|
else
|
||||||
{
|
{
|
||||||
/*insert a half tab (usually four spaces) unless there is a
|
int i;
|
||||||
half tab already behind, then delete it and insert a
|
|
||||||
full tab. */
|
for (i = 1; i <= HALF_TAB_SIZE; i++)
|
||||||
if (option_fill_tabs_with_spaces || !right_of_four_spaces (edit))
|
edit_backspace (edit, 1);
|
||||||
insert_spaces_tab (edit, TRUE);
|
edit_insert (edit, '\t');
|
||||||
else
|
|
||||||
{
|
|
||||||
for (i = 1; i <= HALF_TAB_SIZE; i++)
|
|
||||||
edit_backspace (edit, 1);
|
|
||||||
edit_insert (edit, '\t');
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (option_fill_tabs_with_spaces)
|
else if (option_fill_tabs_with_spaces)
|
||||||
insert_spaces_tab (edit, FALSE);
|
insert_spaces_tab (edit, FALSE);
|
||||||
else
|
else
|
||||||
edit_insert (edit, '\t');
|
edit_insert (edit, '\t');
|
||||||
@ -1835,6 +1810,7 @@ int
|
|||||||
edit_get_byte (WEdit * edit, off_t byte_index)
|
edit_get_byte (WEdit * edit, off_t byte_index)
|
||||||
{
|
{
|
||||||
off_t p;
|
off_t p;
|
||||||
|
|
||||||
if (byte_index >= (edit->curs1 + edit->curs2) || byte_index < 0)
|
if (byte_index >= (edit->curs1 + edit->curs2) || byte_index < 0)
|
||||||
return '\n';
|
return '\n';
|
||||||
|
|
||||||
@ -1843,10 +1819,8 @@ edit_get_byte (WEdit * edit, off_t byte_index)
|
|||||||
p = edit->curs1 + edit->curs2 - byte_index - 1;
|
p = edit->curs1 + edit->curs2 - byte_index - 1;
|
||||||
return edit->buffers2[p >> S_EDIT_BUF_SIZE][EDIT_BUF_SIZE - (p & M_EDIT_BUF_SIZE) - 1];
|
return edit->buffers2[p >> S_EDIT_BUF_SIZE][EDIT_BUF_SIZE - (p & M_EDIT_BUF_SIZE) - 1];
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
return edit->buffers1[byte_index >> S_EDIT_BUF_SIZE][byte_index & M_EDIT_BUF_SIZE];
|
||||||
return edit->buffers1[byte_index >> S_EDIT_BUF_SIZE][byte_index & M_EDIT_BUF_SIZE];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------------------------------- */
|
||||||
@ -2497,10 +2471,9 @@ edit_push_undo_action (WEdit * edit, long c, ...)
|
|||||||
edit_push_redo_action (edit, c);
|
edit_push_redo_action (edit, c);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (edit->redo_stack_reset)
|
|
||||||
{
|
if (edit->redo_stack_reset)
|
||||||
edit->redo_stack_bottom = edit->redo_stack_pointer = 0;
|
edit->redo_stack_bottom = edit->redo_stack_pointer = 0;
|
||||||
}
|
|
||||||
|
|
||||||
if (edit->undo_stack_bottom != sp
|
if (edit->undo_stack_bottom != sp
|
||||||
&& spm1 != edit->undo_stack_bottom
|
&& spm1 != edit->undo_stack_bottom
|
||||||
@ -2510,16 +2483,11 @@ edit_push_undo_action (WEdit * edit, long c, ...)
|
|||||||
if (edit->undo_stack[spm1] < 0)
|
if (edit->undo_stack[spm1] < 0)
|
||||||
{
|
{
|
||||||
d = edit->undo_stack[(sp - 2) & edit->undo_stack_size_mask];
|
d = edit->undo_stack[(sp - 2) & edit->undo_stack_size_mask];
|
||||||
if (d == c)
|
if (d == c && edit->undo_stack[spm1] > -1000000000)
|
||||||
{
|
{
|
||||||
if (edit->undo_stack[spm1] > -1000000000)
|
if (c < KEY_PRESS) /* --> no need to push multiple do-nothings */
|
||||||
{
|
edit->undo_stack[spm1]--;
|
||||||
if (c < KEY_PRESS) /* --> no need to push multiple do-nothings */
|
return;
|
||||||
{
|
|
||||||
edit->undo_stack[spm1]--;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2592,14 +2560,11 @@ edit_push_redo_action (WEdit * edit, long c, ...)
|
|||||||
if (edit->redo_stack[spm1] < 0)
|
if (edit->redo_stack[spm1] < 0)
|
||||||
{
|
{
|
||||||
d = edit->redo_stack[(sp - 2) & edit->redo_stack_size_mask];
|
d = edit->redo_stack[(sp - 2) & edit->redo_stack_size_mask];
|
||||||
if (d == c)
|
if (d == c && edit->redo_stack[spm1] > -1000000000)
|
||||||
{
|
{
|
||||||
if (edit->redo_stack[spm1] > -1000000000)
|
if (c < KEY_PRESS) /* --> no need to push multiple do-nothings */
|
||||||
{
|
edit->redo_stack[spm1]--;
|
||||||
if (c < KEY_PRESS) /* --> no need to push multiple do-nothings */
|
return;
|
||||||
edit->redo_stack[spm1]--;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2641,7 +2606,6 @@ edit_push_redo_action (WEdit * edit, long c, ...)
|
|||||||
if (edit->redo_stack_pointer != edit->redo_stack_bottom
|
if (edit->redo_stack_pointer != edit->redo_stack_bottom
|
||||||
&& edit->redo_stack[edit->redo_stack_bottom] < KEY_PRESS)
|
&& edit->redo_stack[edit->redo_stack_bottom] < KEY_PRESS)
|
||||||
edit->redo_stack_bottom = edit->redo_stack_pointer = 0;
|
edit->redo_stack_bottom = edit->redo_stack_pointer = 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------------------------------- */
|
||||||
@ -2667,9 +2631,7 @@ edit_insert (WEdit * edit, int c)
|
|||||||
|
|
||||||
/* Mark file as modified, unless the file hasn't been fully loaded */
|
/* Mark file as modified, unless the file hasn't been fully loaded */
|
||||||
if (edit->loading_done)
|
if (edit->loading_done)
|
||||||
{
|
|
||||||
edit_modification (edit);
|
edit_modification (edit);
|
||||||
}
|
|
||||||
|
|
||||||
/* now we must update some info on the file and check if a redraw is required */
|
/* now we must update some info on the file and check if a redraw is required */
|
||||||
if (c == '\n')
|
if (c == '\n')
|
||||||
@ -2757,7 +2719,7 @@ edit_delete (WEdit * edit, const int byte_delete)
|
|||||||
int cw = 1;
|
int cw = 1;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!edit->curs2)
|
if (edit->curs2 == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
#ifdef HAVE_CHARSET
|
#ifdef HAVE_CHARSET
|
||||||
@ -2858,7 +2820,7 @@ edit_backspace (WEdit * edit, const int byte_delete)
|
|||||||
|
|
||||||
p = *(edit->buffers1[(edit->curs1 - 1) >> S_EDIT_BUF_SIZE] +
|
p = *(edit->buffers1[(edit->curs1 - 1) >> S_EDIT_BUF_SIZE] +
|
||||||
((edit->curs1 - 1) & M_EDIT_BUF_SIZE));
|
((edit->curs1 - 1) & M_EDIT_BUF_SIZE));
|
||||||
if (!((edit->curs1 - 1) & M_EDIT_BUF_SIZE))
|
if (((edit->curs1 - 1) & M_EDIT_BUF_SIZE) == 0)
|
||||||
{
|
{
|
||||||
g_free (edit->buffers1[edit->curs1 >> S_EDIT_BUF_SIZE]);
|
g_free (edit->buffers1[edit->curs1 >> S_EDIT_BUF_SIZE]);
|
||||||
edit->buffers1[edit->curs1 >> S_EDIT_BUF_SIZE] = NULL;
|
edit->buffers1[edit->curs1 >> S_EDIT_BUF_SIZE] = NULL;
|
||||||
@ -2926,7 +2888,7 @@ edit_cursor_move (WEdit * edit, off_t increment)
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (increment > 0)
|
else
|
||||||
{
|
{
|
||||||
for (; increment > 0; increment--)
|
for (; increment > 0; increment--)
|
||||||
{
|
{
|
||||||
@ -2969,9 +2931,9 @@ edit_eol (WEdit * edit, off_t current)
|
|||||||
if (current >= edit->last_byte)
|
if (current >= edit->last_byte)
|
||||||
return edit->last_byte;
|
return edit->last_byte;
|
||||||
|
|
||||||
for (;; current++)
|
for (; edit_get_byte (edit, current) != '\n'; current++)
|
||||||
if (edit_get_byte (edit, current) == '\n')
|
;
|
||||||
break;
|
|
||||||
return current;
|
return current;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2984,9 +2946,9 @@ edit_bol (WEdit * edit, off_t current)
|
|||||||
if (current <= 0)
|
if (current <= 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
for (;; current--)
|
for (; edit_get_byte (edit, current - 1) != '\n'; current--)
|
||||||
if (edit_get_byte (edit, current - 1) == '\n')
|
;
|
||||||
break;
|
|
||||||
return current;
|
return current;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3022,7 +2984,7 @@ edit_move_forward (WEdit * edit, off_t current, long lines, off_t upto)
|
|||||||
long next;
|
long next;
|
||||||
if (lines < 0)
|
if (lines < 0)
|
||||||
lines = 0;
|
lines = 0;
|
||||||
while (lines--)
|
while (lines-- != 0)
|
||||||
{
|
{
|
||||||
next = edit_eol (edit, current) + 1;
|
next = edit_eol (edit, current) + 1;
|
||||||
if (next > edit->last_byte)
|
if (next > edit->last_byte)
|
||||||
@ -3043,7 +3005,7 @@ edit_move_backward (WEdit * edit, off_t current, long lines)
|
|||||||
if (lines < 0)
|
if (lines < 0)
|
||||||
lines = 0;
|
lines = 0;
|
||||||
current = edit_bol (edit, current);
|
current = edit_bol (edit, current);
|
||||||
while ((lines--) && current != 0)
|
while (lines-- != 0 && current != 0)
|
||||||
current = edit_bol (edit, current - 1);
|
current = edit_bol (edit, current - 1);
|
||||||
return current;
|
return current;
|
||||||
}
|
}
|
||||||
@ -3104,17 +3066,13 @@ edit_move_forward3 (WEdit * edit, off_t current, long cols, off_t upto)
|
|||||||
if (c == '\t')
|
if (c == '\t')
|
||||||
col += TAB_SIZE - col % TAB_SIZE;
|
col += TAB_SIZE - col % TAB_SIZE;
|
||||||
else if (c == '\n')
|
else if (c == '\n')
|
||||||
{
|
return (upto != 0 ? (off_t) col : p);
|
||||||
if (upto != 0)
|
|
||||||
return (off_t) col;
|
if ((c < 32 || c == 127) && (orig_c == c
|
||||||
else
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
else if ((c < 32 || c == 127) && (orig_c == c
|
|
||||||
#ifdef HAVE_CHARSET
|
#ifdef HAVE_CHARSET
|
||||||
|| (!mc_global.utf8_display && !edit->utf8)
|
|| (!mc_global.utf8_display && !edit->utf8)
|
||||||
#endif
|
#endif
|
||||||
))
|
))
|
||||||
/* '\r' is shown as ^M, so we must advance 2 characters */
|
/* '\r' is shown as ^M, so we must advance 2 characters */
|
||||||
/* Caret notation for control characters */
|
/* Caret notation for control characters */
|
||||||
col += 2;
|
col += 2;
|
||||||
@ -3262,22 +3220,18 @@ edit_move_to_prev_col (WEdit * edit, off_t p)
|
|||||||
if (is_in_indent (edit) && option_fake_half_tabs)
|
if (is_in_indent (edit) && option_fake_half_tabs)
|
||||||
{
|
{
|
||||||
edit_update_curs_col (edit);
|
edit_update_curs_col (edit);
|
||||||
if (space_width)
|
if (space_width != 0 && edit->curs_col % (HALF_TAB_SIZE * space_width) != 0)
|
||||||
{
|
{
|
||||||
if (edit->curs_col % (HALF_TAB_SIZE * space_width))
|
int q;
|
||||||
{
|
|
||||||
int q;
|
|
||||||
|
|
||||||
q = edit->curs_col;
|
q = edit->curs_col;
|
||||||
edit->curs_col -= (edit->curs_col % (HALF_TAB_SIZE * space_width));
|
edit->curs_col -= (edit->curs_col % (HALF_TAB_SIZE * space_width));
|
||||||
p = edit_bol (edit, edit->curs1);
|
p = edit_bol (edit, edit->curs1);
|
||||||
|
edit_cursor_move (edit,
|
||||||
edit_cursor_move (edit, edit_move_forward3 (edit, p, edit->curs_col, 0)
|
edit_move_forward3 (edit, p, edit->curs_col,
|
||||||
- edit->curs1);
|
0) - edit->curs1);
|
||||||
|
if (!left_of_four_spaces (edit))
|
||||||
if (!left_of_four_spaces (edit))
|
edit_cursor_move (edit, edit_move_forward3 (edit, p, q, 0) - edit->curs1);
|
||||||
edit_cursor_move (edit, edit_move_forward3 (edit, p, q, 0) - edit->curs1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3358,21 +3312,18 @@ edit_mark_cmd (WEdit * edit, gboolean unmark)
|
|||||||
edit_set_markers (edit, 0, 0, 0, 0);
|
edit_set_markers (edit, 0, 0, 0, 0);
|
||||||
edit->force |= REDRAW_PAGE;
|
edit->force |= REDRAW_PAGE;
|
||||||
}
|
}
|
||||||
|
else if (edit->mark2 >= 0)
|
||||||
|
{
|
||||||
|
edit->end_mark_curs = -1;
|
||||||
|
edit_set_markers (edit, edit->curs1, -1, edit->curs_col + edit->over_col,
|
||||||
|
edit->curs_col + edit->over_col);
|
||||||
|
edit->force |= REDRAW_PAGE;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (edit->mark2 >= 0)
|
edit->end_mark_curs = edit->curs1;
|
||||||
{
|
edit_set_markers (edit, edit->mark1, edit->curs1, edit->column1,
|
||||||
edit->end_mark_curs = -1;
|
edit->curs_col + edit->over_col);
|
||||||
edit_set_markers (edit, edit->curs1, -1, edit->curs_col + edit->over_col,
|
|
||||||
edit->curs_col + edit->over_col);
|
|
||||||
edit->force |= REDRAW_PAGE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
edit->end_mark_curs = edit->curs1;
|
|
||||||
edit_set_markers (edit, edit->mark1, edit->curs1, edit->column1,
|
|
||||||
edit->curs_col + edit->over_col);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3437,9 +3388,7 @@ edit_delete_line (WEdit * edit)
|
|||||||
* beyond EOF.
|
* beyond EOF.
|
||||||
*/
|
*/
|
||||||
while (edit_get_byte (edit, edit->curs1) != '\n')
|
while (edit_get_byte (edit, edit->curs1) != '\n')
|
||||||
{
|
|
||||||
(void) edit_delete (edit, 1);
|
(void) edit_delete (edit, 1);
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Delete '\n' char.
|
* Delete '\n' char.
|
||||||
@ -3453,9 +3402,7 @@ edit_delete_line (WEdit * edit)
|
|||||||
* Note, that edit_get_byte() returns '\n' when byte position is < 0.
|
* Note, that edit_get_byte() returns '\n' when byte position is < 0.
|
||||||
*/
|
*/
|
||||||
while (edit_get_byte (edit, edit->curs1 - 1) != '\n')
|
while (edit_get_byte (edit, edit->curs1 - 1) != '\n')
|
||||||
{
|
|
||||||
(void) edit_backspace (edit, 1);
|
(void) edit_backspace (edit, 1);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------------------------------- */
|
||||||
@ -3544,7 +3491,7 @@ edit_execute_key_command (WEdit * edit, unsigned long command, int char_for_inse
|
|||||||
macro_index = -1;
|
macro_index = -1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (command == CK_RepeatStopRecord || command == CK_RepeatStartStopRecord)
|
if (command == CK_RepeatStopRecord || command == CK_RepeatStartStopRecord)
|
||||||
{
|
{
|
||||||
edit_repeat_macro_cmd (edit);
|
edit_repeat_macro_cmd (edit);
|
||||||
macro_index = -1;
|
macro_index = -1;
|
||||||
@ -3668,11 +3615,9 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
|
|||||||
if (char_for_insertion >= 0)
|
if (char_for_insertion >= 0)
|
||||||
{
|
{
|
||||||
/* if non persistent selection and text selected */
|
/* if non persistent selection and text selected */
|
||||||
if (!option_persistent_selections)
|
if (!option_persistent_selections && edit->mark1 != edit->mark2)
|
||||||
{
|
edit_block_delete_cmd (edit);
|
||||||
if (edit->mark1 != edit->mark2)
|
|
||||||
edit_block_delete_cmd (edit);
|
|
||||||
}
|
|
||||||
if (edit->overwrite)
|
if (edit->overwrite)
|
||||||
{
|
{
|
||||||
/* remove char only one time, after input first byte, multibyte chars */
|
/* remove char only one time, after input first byte, multibyte chars */
|
||||||
@ -3743,15 +3688,12 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
|
|||||||
case CK_Right:
|
case CK_Right:
|
||||||
case CK_WordLeft:
|
case CK_WordLeft:
|
||||||
case CK_WordRight:
|
case CK_WordRight:
|
||||||
if (edit->mark2 >= 0)
|
if (!option_persistent_selections && edit->mark2 >= 0)
|
||||||
{
|
{
|
||||||
if (!option_persistent_selections)
|
if (edit->column_highlight)
|
||||||
{
|
edit_push_undo_action (edit, COLUMN_ON);
|
||||||
if (edit->column_highlight)
|
edit->column_highlight = 0;
|
||||||
edit_push_undo_action (edit, COLUMN_ON);
|
edit_mark_cmd (edit, TRUE);
|
||||||
edit->column_highlight = 0;
|
|
||||||
edit_mark_cmd (edit, TRUE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3785,65 +3727,44 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
|
|||||||
{
|
{
|
||||||
case CK_BackSpace:
|
case CK_BackSpace:
|
||||||
/* if non persistent selection and text selected */
|
/* if non persistent selection and text selected */
|
||||||
if (!option_persistent_selections)
|
if (!option_persistent_selections && edit->mark1 != edit->mark2)
|
||||||
{
|
edit_block_delete_cmd (edit);
|
||||||
if (edit->mark1 != edit->mark2)
|
else if (option_cursor_beyond_eol && edit->over_col > 0)
|
||||||
{
|
|
||||||
edit_block_delete_cmd (edit);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (option_cursor_beyond_eol && edit->over_col > 0)
|
|
||||||
{
|
|
||||||
edit->over_col--;
|
edit->over_col--;
|
||||||
break;
|
else if (option_backspace_through_tabs && is_in_indent (edit))
|
||||||
}
|
|
||||||
if (option_backspace_through_tabs && is_in_indent (edit))
|
|
||||||
{
|
{
|
||||||
while (edit_get_byte (edit, edit->curs1 - 1) != '\n' && edit->curs1 > 0)
|
while (edit_get_byte (edit, edit->curs1 - 1) != '\n' && edit->curs1 > 0)
|
||||||
edit_backspace (edit, 1);
|
edit_backspace (edit, 1);
|
||||||
break;
|
}
|
||||||
|
else if (option_fake_half_tabs && is_in_indent (edit) && right_of_four_spaces (edit))
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < HALF_TAB_SIZE; i++)
|
||||||
|
edit_backspace (edit, 1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
edit_backspace (edit, 0);
|
||||||
if (option_fake_half_tabs)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
if (is_in_indent (edit) && right_of_four_spaces (edit))
|
|
||||||
{
|
|
||||||
for (i = 0; i < HALF_TAB_SIZE; i++)
|
|
||||||
edit_backspace (edit, 1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
edit_backspace (edit, 0);
|
|
||||||
break;
|
break;
|
||||||
case CK_Delete:
|
case CK_Delete:
|
||||||
/* if non persistent selection and text selected */
|
/* if non persistent selection and text selected */
|
||||||
if (!option_persistent_selections)
|
if (!option_persistent_selections && edit->mark1 != edit->mark2)
|
||||||
|
edit_block_delete_cmd (edit);
|
||||||
|
else
|
||||||
{
|
{
|
||||||
if (edit->mark1 != edit->mark2)
|
if (option_cursor_beyond_eol && edit->over_col > 0)
|
||||||
{
|
edit_insert_over (edit);
|
||||||
edit_block_delete_cmd (edit);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (option_cursor_beyond_eol && edit->over_col > 0)
|
if (option_fake_half_tabs && is_in_indent (edit) && left_of_four_spaces (edit))
|
||||||
edit_insert_over (edit);
|
|
||||||
|
|
||||||
if (option_fake_half_tabs)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
if (is_in_indent (edit) && left_of_four_spaces (edit))
|
|
||||||
{
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
for (i = 1; i <= HALF_TAB_SIZE; i++)
|
for (i = 1; i <= HALF_TAB_SIZE; i++)
|
||||||
edit_delete (edit, 1);
|
edit_delete (edit, 1);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
edit_delete (edit, 0);
|
||||||
}
|
}
|
||||||
edit_delete (edit, 0);
|
|
||||||
break;
|
break;
|
||||||
case CK_DeleteToWordBegin:
|
case CK_DeleteToWordBegin:
|
||||||
edit->over_col = 0;
|
edit->over_col = 0;
|
||||||
@ -3877,9 +3798,7 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
|
|||||||
{
|
{
|
||||||
edit_insert (edit, '\n');
|
edit_insert (edit, '\n');
|
||||||
if (option_return_does_auto_indent)
|
if (option_return_does_auto_indent)
|
||||||
{
|
|
||||||
edit_auto_indent (edit);
|
edit_auto_indent (edit);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CK_Return:
|
case CK_Return:
|
||||||
@ -3902,34 +3821,28 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
|
|||||||
edit->column_highlight = 1;
|
edit->column_highlight = 1;
|
||||||
case CK_Left:
|
case CK_Left:
|
||||||
case CK_MarkLeft:
|
case CK_MarkLeft:
|
||||||
if (option_fake_half_tabs)
|
if (option_fake_half_tabs && is_in_indent (edit) && right_of_four_spaces (edit))
|
||||||
{
|
{
|
||||||
if (is_in_indent (edit) && right_of_four_spaces (edit))
|
if (option_cursor_beyond_eol && edit->over_col > 0)
|
||||||
{
|
edit->over_col--;
|
||||||
if (option_cursor_beyond_eol && edit->over_col > 0)
|
else
|
||||||
edit->over_col--;
|
edit_cursor_move (edit, -HALF_TAB_SIZE);
|
||||||
else
|
edit->force &= (0xFFF - REDRAW_CHAR_ONLY);
|
||||||
edit_cursor_move (edit, -HALF_TAB_SIZE);
|
|
||||||
edit->force &= (0xFFF - REDRAW_CHAR_ONLY);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
edit_left_char_move_cmd (edit);
|
else
|
||||||
|
edit_left_char_move_cmd (edit);
|
||||||
break;
|
break;
|
||||||
case CK_MarkColumnRight:
|
case CK_MarkColumnRight:
|
||||||
edit->column_highlight = 1;
|
edit->column_highlight = 1;
|
||||||
case CK_Right:
|
case CK_Right:
|
||||||
case CK_MarkRight:
|
case CK_MarkRight:
|
||||||
if (option_fake_half_tabs)
|
if (option_fake_half_tabs && is_in_indent (edit) && left_of_four_spaces (edit))
|
||||||
{
|
{
|
||||||
if (is_in_indent (edit) && left_of_four_spaces (edit))
|
edit_cursor_move (edit, HALF_TAB_SIZE);
|
||||||
{
|
edit->force &= (0xFFF - REDRAW_CHAR_ONLY);
|
||||||
edit_cursor_move (edit, HALF_TAB_SIZE);
|
|
||||||
edit->force &= (0xFFF - REDRAW_CHAR_ONLY);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
edit_right_char_move_cmd (edit);
|
else
|
||||||
|
edit_right_char_move_cmd (edit);
|
||||||
break;
|
break;
|
||||||
case CK_TopOnScreen:
|
case CK_TopOnScreen:
|
||||||
case CK_MarkToPageBegin:
|
case CK_MarkToPageBegin:
|
||||||
@ -4012,9 +3925,7 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
|
|||||||
edit->force |= REDRAW_PAGE;
|
edit->force |= REDRAW_PAGE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
check_and_wrap_line (edit);
|
check_and_wrap_line (edit);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -4076,8 +3987,9 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
|
|||||||
if (edit->book_mark)
|
if (edit->book_mark)
|
||||||
{
|
{
|
||||||
struct _book_mark *p;
|
struct _book_mark *p;
|
||||||
|
|
||||||
p = (struct _book_mark *) book_mark_find (edit, edit->curs_line);
|
p = (struct _book_mark *) book_mark_find (edit, edit->curs_line);
|
||||||
if (p->next)
|
if (p->next != NULL)
|
||||||
{
|
{
|
||||||
p = p->next;
|
p = p->next;
|
||||||
if (p->line >= edit->start_line + edit->widget.lines || p->line < edit->start_line)
|
if (p->line >= edit->start_line + edit->widget.lines || p->line < edit->start_line)
|
||||||
@ -4090,9 +4002,10 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
|
|||||||
if (edit->book_mark)
|
if (edit->book_mark)
|
||||||
{
|
{
|
||||||
struct _book_mark *p;
|
struct _book_mark *p;
|
||||||
|
|
||||||
p = (struct _book_mark *) book_mark_find (edit, edit->curs_line);
|
p = (struct _book_mark *) book_mark_find (edit, edit->curs_line);
|
||||||
while (p->line == edit->curs_line)
|
while (p->line == edit->curs_line)
|
||||||
if (p->prev)
|
if (p->prev != NULL)
|
||||||
p = p->prev;
|
p = p->prev;
|
||||||
if (p->line >= 0)
|
if (p->line >= 0)
|
||||||
{
|
{
|
||||||
@ -4140,11 +4053,8 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
|
|||||||
break;
|
break;
|
||||||
case CK_Paste:
|
case CK_Paste:
|
||||||
/* if non persistent selection and text selected */
|
/* if non persistent selection and text selected */
|
||||||
if (!option_persistent_selections)
|
if (!option_persistent_selections && edit->mark1 != edit->mark2)
|
||||||
{
|
edit_block_delete_cmd (edit);
|
||||||
if (edit->mark1 != edit->mark2)
|
|
||||||
edit_block_delete_cmd (edit);
|
|
||||||
}
|
|
||||||
if (option_cursor_beyond_eol && edit->over_col > 0)
|
if (option_cursor_beyond_eol && edit->over_col > 0)
|
||||||
edit_insert_over (edit);
|
edit_insert_over (edit);
|
||||||
edit_paste_from_X_buf_cmd (edit);
|
edit_paste_from_X_buf_cmd (edit);
|
||||||
@ -4192,17 +4102,14 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
|
|||||||
case CK_Complete:
|
case CK_Complete:
|
||||||
/* if text marked shift block */
|
/* if text marked shift block */
|
||||||
if (edit->mark1 != edit->mark2 && !option_persistent_selections)
|
if (edit->mark1 != edit->mark2 && !option_persistent_selections)
|
||||||
{
|
|
||||||
edit_move_block_to_left (edit);
|
edit_move_block_to_left (edit);
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
edit_complete_word_cmd (edit);
|
edit_complete_word_cmd (edit);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case CK_Find:
|
case CK_Find:
|
||||||
edit_get_match_keyword_cmd (edit);
|
edit_get_match_keyword_cmd (edit);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef HAVE_ASPELL
|
#ifdef HAVE_ASPELL
|
||||||
case CK_SpellCheckCurrentWord:
|
case CK_SpellCheckCurrentWord:
|
||||||
edit_suggest_current_word (edit);
|
edit_suggest_current_word (edit);
|
||||||
@ -4214,6 +4121,7 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
|
|||||||
edit_set_spell_lang ();
|
edit_set_spell_lang ();
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case CK_Date:
|
case CK_Date:
|
||||||
{
|
{
|
||||||
char s[BUF_MEDIUM];
|
char s[BUF_MEDIUM];
|
||||||
@ -4224,7 +4132,6 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
|
|||||||
FMT_LOCALTIME_CURRENT (s, sizeof (s), time_format);
|
FMT_LOCALTIME_CURRENT (s, sizeof (s), time_format);
|
||||||
edit_print_string (edit, s);
|
edit_print_string (edit, s);
|
||||||
edit->force |= REDRAW_PAGE;
|
edit->force |= REDRAW_PAGE;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CK_Goto:
|
case CK_Goto:
|
||||||
|
Loading…
Reference in New Issue
Block a user