tweaks: elide two parameters and thus a pair of wrapper functions

When just scrolling and the cursor does not need to change position
(that is: it is not on the first or last row of the edit window),
then edit_scroll() has handled everything and there is no need to
additionally redraw anything or update 'placewewant'.
master
Benno Schulenberg 2018-03-12 18:28:44 +01:00
parent 8656f160d7
commit 93318b972d
5 changed files with 28 additions and 42 deletions

View File

@ -187,10 +187,10 @@ char *do_browser(char *path)
selected += width - 1 - (selected % width);
if (selected >= filelist_len)
selected = filelist_len - 1;
} else if (func == do_up_void) {
} else if (func == do_up) {
if (selected >= width)
selected -= width;
} else if (func == do_down_void) {
} else if (func == do_down) {
if (selected + width <= filelist_len - 1)
selected += width;
} else if (func == do_prev_block) {

View File

@ -855,9 +855,9 @@ void shortcut_init(void)
add_to_funcs(do_end, MMAIN,
N_("End"), WITHORSANS(end_gist), BLANKAFTER, VIEW);
add_to_funcs(do_up_void, MMAIN|MHELP|MBROWSER,
add_to_funcs(do_up, MMAIN|MHELP|MBROWSER,
prevline_tag, WITHORSANS(prevline_gist), TOGETHER, VIEW);
add_to_funcs(do_down_void, MMAIN|MHELP|MBROWSER,
add_to_funcs(do_down, MMAIN|MHELP|MBROWSER,
nextline_tag, WITHORSANS(nextline_gist), TOGETHER, VIEW);
#ifndef NANO_TINY
add_to_funcs(do_scroll_up, MMAIN,
@ -1181,19 +1181,19 @@ void shortcut_init(void)
add_to_sclist((MMOST & ~MBROWSER), "Home", KEY_HOME, do_home, 0);
add_to_sclist((MMOST & ~MBROWSER), "^E", 0, do_end, 0);
add_to_sclist((MMOST & ~MBROWSER), "End", KEY_END, do_end, 0);
add_to_sclist(MMAIN|MHELP|MBROWSER, "^P", 0, do_up_void, 0);
add_to_sclist(MMAIN|MHELP|MBROWSER, "^N", 0, do_down_void, 0);
add_to_sclist(MMAIN|MHELP|MBROWSER, "^P", 0, do_up, 0);
add_to_sclist(MMAIN|MHELP|MBROWSER, "^N", 0, do_down, 0);
#ifdef ENABLE_UTF8
if (using_utf8()) {
add_to_sclist(MMAIN|MHELP|MBROWSER, "\xE2\x96\xb2", KEY_UP, do_up_void, 0);
add_to_sclist(MMAIN|MHELP|MBROWSER, "\xE2\x96\xbc", KEY_DOWN, do_down_void, 0);
add_to_sclist(MMAIN|MHELP|MBROWSER, "\xE2\x96\xb2", KEY_UP, do_up, 0);
add_to_sclist(MMAIN|MHELP|MBROWSER, "\xE2\x96\xbc", KEY_DOWN, do_down, 0);
add_to_sclist(MMAIN|MBROWSER, "^\xE2\x96\xb2", CONTROL_UP, do_prev_block, 0);
add_to_sclist(MMAIN|MBROWSER, "^\xE2\x96\xbc", CONTROL_DOWN, do_next_block, 0);
} else
#endif
{
add_to_sclist(MMAIN|MHELP|MBROWSER, "Up", KEY_UP, do_up_void, 0);
add_to_sclist(MMAIN|MHELP|MBROWSER, "Down", KEY_DOWN, do_down_void, 0);
add_to_sclist(MMAIN|MHELP|MBROWSER, "Up", KEY_UP, do_up, 0);
add_to_sclist(MMAIN|MHELP|MBROWSER, "Down", KEY_DOWN, do_down, 0);
add_to_sclist(MMAIN|MBROWSER, "^Up", CONTROL_UP, do_prev_block, 0);
add_to_sclist(MMAIN|MBROWSER, "^Down", CONTROL_DOWN, do_next_block, 0);
}
@ -1553,10 +1553,10 @@ sc *strtosc(const char *input)
s->func = do_right;
else if (!strcasecmp(input, "up") ||
!strcasecmp(input, "prevline"))
s->func = do_up_void;
s->func = do_up;
else if (!strcasecmp(input, "down") ||
!strcasecmp(input, "nextline"))
s->func = do_down_void;
s->func = do_down;
else if (!strcasecmp(input, "prevword"))
s->func = do_prev_word_void;
else if (!strcasecmp(input, "nextword"))

View File

@ -192,12 +192,12 @@ void do_help(void)
if (func == total_refresh) {
total_redraw();
} else if (func == do_up_void) {
do_up(TRUE);
} else if (func == do_down_void) {
} else if (func == do_up) {
do_scroll_up();
} else if (func == do_down) {
if (openfile->edittop->lineno + editwinrows - 1 <
openfile->filebot->lineno)
do_down(TRUE);
do_scroll_down();
} else if (func == do_page_up) {
do_page_up();
} else if (func == do_page_down) {

View File

@ -481,9 +481,8 @@ void do_end(void)
update_line(openfile->current, openfile->current_x);
}
/* Move the cursor to the preceding line or chunk. If scroll_only is TRUE,
* also scroll the screen one row, so the cursor stays in the same spot. */
void do_up(bool really_move)
/* Move the cursor to the preceding line or chunk. */
void do_up(void)
{
filestruct *was_current = openfile->current;
size_t leftedge, target_column;
@ -491,7 +490,7 @@ void do_up(bool really_move)
get_edge_and_target(&leftedge, &target_column);
/* If we can't move up one line or chunk, we're at top of file. */
if (really_move && go_back_chunks(1, &openfile->current, &leftedge) > 0)
if (go_back_chunks(1, &openfile->current, &leftedge) > 0)
return;
set_proper_index_and_pww(&leftedge, target_column, FALSE);
@ -502,9 +501,8 @@ void do_up(bool really_move)
openfile->placewewant = leftedge + target_column;
}
/* Move the cursor to next line or chunk. If scroll_only is TRUE, also
* scroll the screen one row, so the cursor stays in the same spot. */
void do_down(bool really_move)
/* Move the cursor to next line or chunk. */
void do_down(void)
{
filestruct *was_current = openfile->current;
size_t leftedge, target_column;
@ -512,7 +510,7 @@ void do_down(bool really_move)
get_edge_and_target(&leftedge, &target_column);
/* If we can't move down one line or chunk, we're at bottom of file. */
if (really_move && go_forward_chunks(1, &openfile->current, &leftedge) > 0)
if (go_forward_chunks(1, &openfile->current, &leftedge) > 0)
return;
set_proper_index_and_pww(&leftedge, target_column, TRUE);
@ -523,18 +521,6 @@ void do_down(bool really_move)
openfile->placewewant = leftedge + target_column;
}
/* Move up one line or chunk. */
void do_up_void(void)
{
do_up(TRUE);
}
/* Move down one line or chunk. */
void do_down_void(void)
{
do_down(TRUE);
}
#ifndef NANO_TINY
/* Scroll up one line or chunk without scrolling the cursor. */
void do_scroll_up(void)
@ -545,7 +531,8 @@ void do_scroll_up(void)
edit_scroll(BACKWARD);
do_up(openfile->current_y == editwinrows - 1);
if (openfile->current_y == editwinrows - 1)
do_up();
}
/* Scroll down one line or chunk without scrolling the cursor. */
@ -554,7 +541,8 @@ void do_scroll_down(void)
if (openfile->current->next != NULL || openfile->current_y > 0)
edit_scroll(FORWARD);
do_down(openfile->current_y == 0);
if (openfile->current_y == 0)
do_down();
}
#endif

View File

@ -386,10 +386,8 @@ void do_prev_word_void(void);
void do_next_word_void(void);
void do_home(void);
void do_end(void);
void do_up(bool really_move);
void do_down(bool really_move);
void do_up_void(void);
void do_down_void(void);
void do_up(void);
void do_down(void);
#ifndef NANO_TINY
void do_scroll_up(void);
void do_scroll_down(void);