Make check_for_argument skip whitespace after arg itself

Basically every caller of check_for_argument needs to skip space after
the argument.  This patch makes check_for_argument do it itself.

Suggested by Philippe Waroquiers.

gdb/ChangeLog:
2019-06-13  Pedro Alves <palves@redhat.com>

	* ax-gdb.c (agent_command_1): Remove skip_spaces call.
	* breakpoint.c (watch_maybe_just_location): Remove skip_spaces
	call.
	* cli/cli-cmds.c (apropos_command): Remove skip_spaces call.
	* cli/cli-utils.c (extract_info_print_args): Remove skip_spaces
	calls.
	(check_for_argument): Skip spaces after argument.
This commit is contained in:
Pedro Alves 2019-06-13 00:06:52 +01:00
parent b9a3f8429b
commit cbba3ecd36
6 changed files with 15 additions and 12 deletions

View file

@ -1,3 +1,13 @@
2019-06-13 Pedro Alves <palves@redhat.com>
* ax-gdb.c (agent_command_1): Remove skip_spaces call.
* breakpoint.c (watch_maybe_just_location): Remove skip_spaces
call.
* cli/cli-cmds.c (apropos_command): Remove skip_spaces call.
* cli/cli-utils.c (extract_info_print_args): Remove skip_spaces
calls.
(check_for_argument): Skip spaces after argument.
2019-06-13 Pedro Alves <palves@redhat.com> 2019-06-13 Pedro Alves <palves@redhat.com>
* thread.c (thread_apply_command): Adjust TID parsing. * thread.c (thread_apply_command): Adjust TID parsing.

View file

@ -2634,8 +2634,6 @@ agent_command_1 (const char *exp, int eval)
{ {
struct linespec_result canonical; struct linespec_result canonical;
exp = skip_spaces (exp);
event_location_up location event_location_up location
= new_linespec_location (&exp, symbol_name_match_type::WILD); = new_linespec_location (&exp, symbol_name_match_type::WILD);
decode_line_full (location.get (), DECODE_LINE_FUNFIRSTLINE, NULL, decode_line_full (location.get (), DECODE_LINE_FUNFIRSTLINE, NULL,

View file

@ -10896,10 +10896,7 @@ watch_maybe_just_location (const char *arg, int accessflag, int from_tty)
if (arg if (arg
&& (check_for_argument (&arg, "-location", sizeof ("-location") - 1) && (check_for_argument (&arg, "-location", sizeof ("-location") - 1)
|| check_for_argument (&arg, "-l", sizeof ("-l") - 1))) || check_for_argument (&arg, "-l", sizeof ("-l") - 1)))
{ just_location = 1;
arg = skip_spaces (arg);
just_location = 1;
}
watch_command_1 (arg, accessflag, from_tty, just_location, 0); watch_command_1 (arg, accessflag, from_tty, just_location, 0);
} }

View file

@ -1381,9 +1381,6 @@ apropos_command (const char *arg, int from_tty)
{ {
bool verbose = arg && check_for_argument (&arg, "-v", 2); bool verbose = arg && check_for_argument (&arg, "-v", 2);
if (verbose)
arg = skip_spaces (arg);
if (arg == NULL || *arg == '\0') if (arg == NULL || *arg == '\0')
error (_("REGEXP string is empty")); error (_("REGEXP string is empty"));

View file

@ -139,7 +139,6 @@ extract_info_print_args (const char **args,
/* Check for NAMEREGEXP or -- NAMEREGEXP. */ /* Check for NAMEREGEXP or -- NAMEREGEXP. */
if (**args != '-' || check_for_argument (args, "--", 2)) if (**args != '-' || check_for_argument (args, "--", 2))
{ {
*args = skip_spaces (*args);
*regexp = *args; *regexp = *args;
*args = NULL; *args = NULL;
return true; return true;
@ -155,7 +154,6 @@ extract_info_print_args (const char **args,
if (check_for_argument (args, "-q", 2)) if (check_for_argument (args, "-q", 2))
{ {
*quiet = true; *quiet = true;
*args = skip_spaces (*args);
return true; return true;
} }
@ -459,6 +457,7 @@ check_for_argument (const char **str, const char *arg, int arg_len)
&& ((*str)[arg_len] == '\0' || isspace ((*str)[arg_len]))) && ((*str)[arg_len] == '\0' || isspace ((*str)[arg_len])))
{ {
*str += arg_len; *str += arg_len;
*str = skip_spaces (*str);
return 1; return 1;
} }
return 0; return 0;

View file

@ -188,7 +188,9 @@ extern std::string extract_arg (const char **arg);
/* A helper function that looks for an argument at the start of a /* A helper function that looks for an argument at the start of a
string. The argument must also either be at the end of the string, string. The argument must also either be at the end of the string,
or be followed by whitespace. Returns 1 if it finds the argument, or be followed by whitespace. Returns 1 if it finds the argument,
0 otherwise. If the argument is found, it updates *STR. */ 0 otherwise. If the argument is found, it updates *STR to point
past the argument and past any whitespace following the
argument. */
extern int check_for_argument (const char **str, const char *arg, int arg_len); extern int check_for_argument (const char **str, const char *arg, int arg_len);
/* Same, for non-const STR. */ /* Same, for non-const STR. */