From 93318b972deeb8b098fe7a13a4b2c2ae750e5c71 Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Mon, 12 Mar 2018 18:28:44 +0100 Subject: [PATCH] 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'. --- src/browser.c | 4 ++-- src/global.c | 20 ++++++++++---------- src/help.c | 8 ++++---- src/move.c | 32 ++++++++++---------------------- src/proto.h | 6 ++---- 5 files changed, 28 insertions(+), 42 deletions(-) diff --git a/src/browser.c b/src/browser.c index bae5c96b..68979615 100644 --- a/src/browser.c +++ b/src/browser.c @@ -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) { diff --git a/src/global.c b/src/global.c index 2d4d04f0..e80a94e4 100644 --- a/src/global.c +++ b/src/global.c @@ -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")) diff --git a/src/help.c b/src/help.c index ba659a37..a76c3a44 100644 --- a/src/help.c +++ b/src/help.c @@ -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) { diff --git a/src/move.c b/src/move.c index ac658a3e..92044f41 100644 --- a/src/move.c +++ b/src/move.c @@ -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 diff --git a/src/proto.h b/src/proto.h index 489f2d24..9b151798 100644 --- a/src/proto.h +++ b/src/proto.h @@ -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);