[PATCH] lineedit: trivial codeshrink for vi-mode
Natanael Copa
ncopa at alpinelinux.org
Fri May 29 08:08:56 UTC 2015
Introduce and use BB_isalnum_or_underscore().
bloatcheck on x86_64:
function old new delta
BB_isalnum_or_underscore - 46 +46
vi_end_motion 176 166 -10
vi_back_motion 169 155 -14
vi_word_motion 190 172 -18
BB_isalnum 39 - -39
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/3 up/down: 46/-81) Total: -35
bytes
Signed-off-by: Natanael Copa <ncopa at alpinelinux.org>
---
libbb/lineedit.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/libbb/lineedit.c b/libbb/lineedit.c
index a83e07c..507b829 100644
--- a/libbb/lineedit.c
+++ b/libbb/lineedit.c
@@ -81,6 +81,9 @@
static bool BB_isspace(CHAR_T c) { return ((unsigned)c < 256 && isspace(c)); }
# if ENABLE_FEATURE_EDITING_VI
static bool BB_isalnum(CHAR_T c) { return ((unsigned)c < 256 && isalnum(c)); }
+static bool BB_isalnum_or_underscore(CHAR_T c) {
+ return (BB_isalnum(c) || c == '_');
+}
# endif
static bool BB_ispunct(CHAR_T c) { return ((unsigned)c < 256 && ispunct(c)); }
# undef isspace
@@ -1572,9 +1575,9 @@ vi_word_motion(int eat)
{
CHAR_T *command = command_ps;
- if (BB_isalnum(command[cursor]) || command[cursor] == '_') {
+ if (BB_isalnum_or_underscore(command[cursor])) {
while (cursor < command_len
- && (BB_isalnum(command[cursor+1]) || command[cursor+1] == '_')
+ && (BB_isalnum_or_underscore(command[cursor+1]))
) {
input_forward();
}
@@ -1616,9 +1619,9 @@ vi_end_motion(void)
input_forward();
if (cursor >= command_len-1)
return;
- if (BB_isalnum(command[cursor]) || command[cursor] == '_') {
+ if (BB_isalnum_or_underscore(command[cursor])) {
while (cursor < command_len-1
- && (BB_isalnum(command[cursor+1]) || command[cursor+1] == '_')
+ && (BB_isalnum_or_underscore(command[cursor+1]))
) {
input_forward();
}
@@ -1651,9 +1654,9 @@ vi_back_motion(void)
input_backward(1);
if (cursor <= 0)
return;
- if (BB_isalnum(command[cursor]) || command[cursor] == '_') {
+ if (BB_isalnum_or_underscore(command[cursor])) {
while (cursor > 0
- && (BB_isalnum(command[cursor-1]) || command[cursor-1] == '_')
+ && (BB_isalnum_or_underscore(command[cursor-1]))
) {
input_backward(1);
}
--
2.4.1
More information about the busybox
mailing list