@@ -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;