diff options
-rw-r--r-- | editors/vi.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/editors/vi.c b/editors/vi.c index d37357edd..d20481fbd 100644 --- a/editors/vi.c +++ b/editors/vi.c | |||
@@ -1128,11 +1128,16 @@ static int get_motion_char(void) | |||
1128 | int c, cnt; | 1128 | int c, cnt; |
1129 | 1129 | ||
1130 | c = get_one_char(); | 1130 | c = get_one_char(); |
1131 | if (c != '0' && isdigit(c)) { | 1131 | if (isdigit(c)) { |
1132 | // get any non-zero motion count | 1132 | if (c != '0') { |
1133 | for (cnt = 0; isdigit(c); c = get_one_char()) | 1133 | // get any non-zero motion count |
1134 | cnt = cnt * 10 + (c - '0'); | 1134 | for (cnt = 0; isdigit(c); c = get_one_char()) |
1135 | cmdcnt = (cmdcnt ?: 1) * cnt; | 1135 | cnt = cnt * 10 + (c - '0'); |
1136 | cmdcnt = (cmdcnt ?: 1) * cnt; | ||
1137 | } else { | ||
1138 | // ensure standalone '0' works | ||
1139 | cmdcnt = 0; | ||
1140 | } | ||
1136 | } | 1141 | } |
1137 | 1142 | ||
1138 | return c; | 1143 | return c; |