summaryrefslogtreecommitdiff
path: root/gdb/completer.c
diff options
context:
space:
mode:
authorKlee Dienes <kdienes@apple.com>2002-11-20 08:58:01 +0000
committerKlee Dienes <kdienes@apple.com>2002-11-20 08:58:01 +0000
commit19b51b9061547fe7bd454e036715cfa325e612b8 (patch)
tree8df800304d781b8dd1f06c0a02133da9af51899f /gdb/completer.c
parent50fca0a56c3bda789fbb8afabc37b791ad246206 (diff)
downloadgdb-19b51b9061547fe7bd454e036715cfa325e612b8.tar.gz
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.
Diffstat (limited to 'gdb/completer.c')
-rw-r--r--gdb/completer.c31
1 files changed, 25 insertions, 6 deletions
diff --git a/gdb/completer.c b/gdb/completer.c
index 67ea300f14b..7fa17594893 100644
--- a/gdb/completer.c
+++ b/gdb/completer.c
@@ -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);
+}