From a25b4c2c4245083411011e5054ba859d7c6b8dd6 Mon Sep 17 00:00:00 2001 From: Ron Yorston Date: Sun, 28 Mar 2021 13:23:51 +0100 Subject: vi: code shrink - In the '+' and '-' commands the call to dot_skip_over_ws() is only needed for the final line processed so it can be moved out of the while loop. - Marking sync_cursor() NOINLINE doesn't seem to offer the same advantages it did in 2009 (commit adf922ec2). function old new delta refresh 694 974 +280 do_cmd 4900 4887 -13 sync_cursor 336 - -336 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 1/1 up/down: 280/-349) Total: -69 bytes Signed-off-by: Ron Yorston Signed-off-by: Denys Vlasenko --- editors/vi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'editors/vi.c') diff --git a/editors/vi.c b/editors/vi.c index 323ca4427..4fa67a110 100644 --- a/editors/vi.c +++ b/editors/vi.c @@ -757,7 +757,7 @@ static void new_screen(int ro, int co) } //----- Synchronize the cursor to Dot -------------------------- -static NOINLINE void sync_cursor(char *d, int *row, int *col) +static void sync_cursor(char *d, int *row, int *col) { char *beg_cur; // begin and end of "d" line char *tp; @@ -3302,8 +3302,8 @@ static void do_cmd(int c) case '+': // +- goto next line do { dot_next(); - dot_skip_over_ws(); } while (--cmdcnt > 0); + dot_skip_over_ws(); break; case 21: // ctrl-U scroll up half screen dot_scroll((rows - 2) / 2, -1); @@ -3451,8 +3451,8 @@ static void do_cmd(int c) case '-': // -- goto prev line do { dot_prev(); - dot_skip_over_ws(); } while (--cmdcnt > 0); + dot_skip_over_ws(); break; #if ENABLE_FEATURE_VI_DOT_CMD case '.': // .- repeat the last modifying command -- cgit v1.2.3-55-g6feb