The code in question was introduced by:
https://sourceware.com/ml/gdb-patches/2008-06/msg00143.html
"The fix is to make sure that the entire expression is passed to
expression_completer, then duplicate some logic there in the case
where location_completer is called."
The logic that was duplicated was much later on removed by the
original explicit locations patch:
commit
87f0e7204722a986f79f245eee716f0870832d47
Author: Keith Seitz <keiths@redhat.com>
AuthorDate: Tue Aug 11 17:09:36 2015 -0700
Commit: Keith Seitz <keiths@redhat.com>
CommitDate: Tue Aug 11 17:09:36 2015 -0700
Explicit locations: add UI features for CLI
@@ -688,16 +880,6 @@ complete_line_internal (const char *text,
rl_completer_word_break_characters =
gdb_completer_file_name_break_characters;
}
- else if (c->completer == location_completer)
- {
- /* Commands which complete on locations want to
- see the entire argument. */
- for (p = word;
- p > tmp_command
- && p[-1] != ' ' && p[-1] != '\t';
- p--)
- ;
- }
However this case in expression_completer was left behind.
I couldn't come up with a test where this currently makes any
difference.
gdb/ChangeLog:
2017-06-29 Pedro Alves <palves@redhat.com>
* completer.c (expression_completer): Remove code that recomputes
'text' from 'word'.
+2017-06-29 Pedro Alves <palves@redhat.com>
+
+ * completer.c (expression_completer): Remove code that recomputes
+ 'text' from 'word'.
+
2017-06-29 Yao Qi <yao.qi@linaro.org>
* regformats/regdat.sh: Generate code with
{
struct type *type = NULL;
char *fieldname;
- const char *p;
enum type_code code = TYPE_CODE_UNDEF;
/* Perform a tentative parse of the expression, to see whether a
}
xfree (fieldname);
- /* Commands which complete on locations want to see the entire
- argument. */
- for (p = word;
- p > text && p[-1] != ' ' && p[-1] != '\t';
- p--)
- ;
-
/* Not ideal but it is what we used to do before... */
- return location_completer (ignore, p, word);
+ return location_completer (ignore, text, word);
}
/* See definition in completer.h. */