* ada-lang.c (ada_read_renaming_var_value): Pass const
[deliverable/binutils-gdb.git] / gdb / cli / cli-utils.h
index 313caf47eda2b28ce068994baa4a3ea1a61e5b52..152fb89671350d99994ec990c68b0bd873e925f9 100644 (file)
@@ -1,9 +1,12 @@
-/* Header file for GDB CLI utility library.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+/* CLI utilities.
+
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+
+   This file is part of GDB.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#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.
+
+   Currently the string can either be a number,  or "$" followed by the
+   name of a convenience variable, or ("$" or "$$") followed by digits.  */
+
+extern int get_number (char **);
+
+/* An object of this type is passed to get_number_or_range.  It must
+   be initialized by calling init_number_or_range.  This type is
+   defined here so that it can be stack-allocated, but all members
+   other than `finished' and `string' should be treated as opaque.  */
+
+struct get_number_or_range_state
+{
+  /* Non-zero if parsing has completed.  */
+  int finished;
+
+  /* The string being parsed.  When parsing has finished, this points
+     past the last parsed token.  */
+  char *string;
+
+  /* Last value returned.  */
+  int last_retval;
+
+  /* When parsing a range, the final value in the range.  */
+  int end_value;
+
+  /* When parsing a range, a pointer past the final token in the
+     range.  */
+  char *end_ptr;
+
+  /* Non-zero when parsing a range.  */
+  int in_range;
+};
+
+/* Initialize a get_number_or_range_state for use with
+   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);
+
+/* Parse a number or a range.
+   A number will be of the form handled by get_number.
+   A range will be of the form <number1> - <number2>, and 
+   will represent all the integers between number1 and number2,
+   inclusive.
+
+   While processing a range, this fuction is called iteratively;
+   At each call it will return the next value in the range.
+
+   At the beginning of parsing a range, the char pointer STATE->string will
+   be advanced past <number1> and left pointing at the '-' token.
+   Subsequent calls will not advance the pointer until the range
+   is completed.  The call that completes the range will advance
+   the pointer past <number2>.  */
+
+extern int get_number_or_range (struct get_number_or_range_state *state);
+
+/* Accept a number and a string-form list of numbers such as is 
+   accepted by get_number_or_range.  Return TRUE if the number is
+   in the list.
+
+   By definition, an empty list includes all numbers.  This is to 
+   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);
+
+/* Reverse S to the last non-whitespace character without skipping past
+   START.  */
+
+extern char *remove_trailing_whitespace (const char *start, char *s);
 
-#if !defined (CLI_UTILS_H)
-# define CLI_UTILS_H 1
+/* A helper function to extract an argument from *ARG.  An argument is
+   delimited by whitespace.  The return value is either NULL if no
+   argument was found, or an xmalloc'd string.  */
 
-/* Write character C to gdb_stdout using GDB's paging mechanism and return C.
-   May return nonlocally.  */
+extern char *extract_arg (char **arg);
 
-extern int putchar_filtered (int c);
+/* 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,
+   0 otherwise.  If the argument is found, it updates *STR.  */
+extern int check_for_argument (char **str, char *arg, int arg_len);
 
-#endif /* !defined (CLI_UTILS_H) */
+#endif /* CLI_UTILS_H */
This page took 0.026155 seconds and 4 git commands to generate.