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 <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
d56da68057
commit
a25b4c2c42
@ -757,7 +757,7 @@ static void new_screen(int ro, int co)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//----- Synchronize the cursor to Dot --------------------------
|
//----- 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 *beg_cur; // begin and end of "d" line
|
||||||
char *tp;
|
char *tp;
|
||||||
@ -3302,8 +3302,8 @@ static void do_cmd(int c)
|
|||||||
case '+': // +- goto next line
|
case '+': // +- goto next line
|
||||||
do {
|
do {
|
||||||
dot_next();
|
dot_next();
|
||||||
dot_skip_over_ws();
|
|
||||||
} while (--cmdcnt > 0);
|
} while (--cmdcnt > 0);
|
||||||
|
dot_skip_over_ws();
|
||||||
break;
|
break;
|
||||||
case 21: // ctrl-U scroll up half screen
|
case 21: // ctrl-U scroll up half screen
|
||||||
dot_scroll((rows - 2) / 2, -1);
|
dot_scroll((rows - 2) / 2, -1);
|
||||||
@ -3451,8 +3451,8 @@ static void do_cmd(int c)
|
|||||||
case '-': // -- goto prev line
|
case '-': // -- goto prev line
|
||||||
do {
|
do {
|
||||||
dot_prev();
|
dot_prev();
|
||||||
dot_skip_over_ws();
|
|
||||||
} while (--cmdcnt > 0);
|
} while (--cmdcnt > 0);
|
||||||
|
dot_skip_over_ws();
|
||||||
break;
|
break;
|
||||||
#if ENABLE_FEATURE_VI_DOT_CMD
|
#if ENABLE_FEATURE_VI_DOT_CMD
|
||||||
case '.': // .- repeat the last modifying command
|
case '.': // .- repeat the last modifying command
|
||||||
|
Loading…
Reference in New Issue
Block a user