2002-11-19 Klee Dienes <kdienes@apple.com>

Adam Fedor  <fedor@gnu.org>

        * completer.c (skip_quoted_chars): Renamed from skip_chars.  Add
        the ability to explicitly specify the quote characters and word
        break characters; if NULL is specified for either, use the old
        behavior of using the characters used by the completer.
        (skip_chars): New function.  Convenience wrapper around
        skip_quoted_chars to provide the original skip_chars behavior.
        * completer.h (skip_quoted_chars): Add prototype.
This commit is contained in:
Klee Dienes 2002-11-20 08:58:01 +00:00
parent 193eb15dba
commit 4e87b8328c
3 changed files with 39 additions and 7 deletions

View File

@ -1,3 +1,14 @@
2002-11-19 Klee Dienes <kdienes@apple.com>
Adam Fedor <fedor@gnu.org>
* completer.c (skip_quoted_chars): Renamed from skip_chars. Add
the ability to explicitly specify the quote characters and word
break characters; if NULL is specified for either, use the old
behavior of using the characters used by the completer.
(skip_chars): New function. Convenience wrapper around
skip_quoted_chars to provide the original skip_chars behavior.
* completer.h (skip_quoted_chars): Add prototype.
2002-11-19 Andrew Cagney <ac131313@redhat.com>
Problems reported by Paul Eggert.

View File

@ -678,16 +678,25 @@ line_completion_function (char *text, int matches, char *line_buffer, int point)
return (output);
}
/* Skip over a possibly quoted word (as defined by the quote characters
and word break characters the completer uses). Returns pointer to the
location after the "word". */
/* Skip over the possibly quoted word STR (as defined by the quote
characters QUOTECHARS and the the word break characters
BREAKCHARS). Returns pointer to the location after the "word". If
either QUOTECHARS or BREAKCHARS is NULL, use the same values used
by the completer. */
char *
skip_quoted (char *str)
skip_quoted_chars (char *str, char *quotechars, char *breakchars)
{
char quote_char = '\0';
char *scan;
if (quotechars == NULL)
quotechars = gdb_completer_quote_characters;
if (breakchars == NULL)
breakchars = gdb_completer_word_break_characters;
for (scan = str; *scan != '\0'; scan++)
{
if (quote_char != '\0')
@ -700,16 +709,26 @@ skip_quoted (char *str)
break;
}
}
else if (strchr (gdb_completer_quote_characters, *scan))
else if (strchr (quotechars, *scan))
{
/* Found start of a quoted string. */
quote_char = *scan;
}
else if (strchr (gdb_completer_word_break_characters, *scan))
else if (strchr (breakchars, *scan))
{
break;
}
}
return (scan);
}
/* Skip over the possibly quoted word STR (as defined by the quote
characters and word break characters used by the completer).
Returns pointer to the location after the "word". */
char *
skip_quoted (char *str)
{
return skip_quoted_chars (str, NULL, NULL);
}

View File

@ -39,6 +39,8 @@ extern char *get_gdb_completer_quote_characters (void);
/* Exported to linespec.c */
extern char *skip_quoted (char *str);
extern char *skip_quoted_chars (char *, char *, char *);
extern char *skip_quoted (char *);
#endif /* defined (COMPLETER_H) */