/* CLI utilities.
- Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ Copyright (C) 2011-2016 Free Software Foundation, Inc.
This file is part of GDB.
#ifndef CLI_UTILS_H
#define CLI_UTILS_H
-/* *PP is a string denoting a number. Get the number of the. Advance
- *PP after the string and any trailing whitespace.
+/* *PP is a string denoting a number. Get the number. Advance *PP
+ after the string and any trailing whitespace.
- Currently the string can either be a number, or "$" followed by the
- name of a convenience variable, or ("$" or "$$") followed by digits. */
+ The string can either be a number, or "$" followed by the name of a
+ convenience variable, or ("$" or "$$") followed by digits.
+
+ TRAILER is a character which can be found after the number; most
+ commonly this is `-'. If you don't want a trailer, use \0. */
+
+extern int get_number_trailer (const char **pp, int trailer);
+
+/* Convenience. Like get_number_trailer, but with no TRAILER. */
+
+extern int get_number_const (const char **);
+
+/* Like get_number_const, but takes a non-const "char **". */
extern int get_number (char **);
/* The string being parsed. When parsing has finished, this points
past the last parsed token. */
- char *string;
+ const char *string;
/* Last value returned. */
int last_retval;
/* When parsing a range, a pointer past the final token in the
range. */
- char *end_ptr;
+ const char *end_ptr;
/* Non-zero when parsing a range. */
int in_range;
get_number_or_range_state. STRING is the string to be parsed. */
extern void init_number_or_range (struct get_number_or_range_state *state,
- char *string);
+ const char *string);
/* Parse a number or a range.
A number will be of the form handled by get_number.
be interpreted as typing a command such as "delete break" with
no arguments. */
-extern int number_is_in_list (char *list, int number);
-
-/* Skip leading whitespace characters in INP, returning an updated
- pointer. If INP is NULL, return NULL. */
-
-extern char *skip_spaces (char *inp);
-
-/* A const-correct version of the above. */
-
-extern const char *skip_spaces_const (const char *inp);
-
-/* Skip leading non-whitespace characters in INP, returning an updated
- pointer. If INP is NULL, return NULL. */
-
-#define skip_to_space(INP) ((char *) skip_to_space_const (INP))
-
-/* A const-correct version of the above. */
-
-extern const char *skip_to_space_const (const char *inp);
+extern int number_is_in_list (const char *list, int number);
/* Reverse S to the last non-whitespace character without skipping past
START. */
extern char *extract_arg (char **arg);
+/* A const-correct version of "extract_arg".
+
+ Since the returned value is xmalloc'd, it eventually needs to be
+ xfree'ed, which prevents us from making it const as well. */
+
+extern char *extract_arg_const (const char **arg);
+
/* 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,
or be followed by whitespace. Returns 1 if it finds the argument,