From 93318b972deeb8b098fe7a13a4b2c2ae750e5c71 Mon Sep 17 00:00:00 2001
From: Benno Schulenberg <bensberg@telfort.nl>
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);
-- 
GitLab