lkml.org 
[lkml]   [2017]   [Dec]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] Optimize final quote removal.
Date
This is additional patch that avoids the memmove when processing the quote on
the end of the parameter.

---
lib/cmdline.c | 9 +++++++--
2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/lib/cmdline.c b/lib/cmdline.c
index c5335a79a177..b1d8a0dc60fc 100644
--- a/lib/cmdline.c
+++ b/lib/cmdline.c
@@ -191,7 +191,13 @@ bool parse_option_str(const char *str, const char *option)
return false;
}

+#define break_arg_end(i) { \
+ if (isspace(args[i]) && !in_quote && !backslash && !in_single) \
+ break; \
+ }
+
#define squash_char { \
+ break_arg_end(i + 1); \
memmove(args + 1, args, i); \
args++; \
i--; \
@@ -209,8 +215,7 @@ char *next_arg(char *args, char **param, char **val)
char *next;

for (i = 0; args[i]; i++) {
- if (isspace(args[i]) && !in_quote && !backslash && !in_single)
- break;
+ break_arg_end(i);

if ((equals == 0) && (args[i] == '='))
equals = i;
--
2.13.6
\
 
 \ /
  Last update: 2017-12-15 22:50    [W:0.160 / U:0.148 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site