This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: Difficulty with the readline completion interface in GDB
- From: Eli Zaretskii <eliz at elta dot co dot il>
- To: Daniel Jacobowitz <drow at mvista dot com>
- Cc: bug-readline at gnu dot org, gdb at sources dot redhat dot com
- Date: 19 Jan 2004 08:15:24 +0200
- Subject: Re: Difficulty with the readline completion interface in GDB
- References: <20040118224929.GA8226@nevyn.them.org>
- Reply-to: Eli Zaretskii <eliz at elta dot co dot il>
> Date: Sun, 18 Jan 2004 17:49:29 -0500
> From: Daniel Jacobowitz <drow@mvista.com>
>
> I've spent this morning trying to fix a long-standing bug in GDB's tab
> completion. I think it's unsolvable with the current readline interface
Agreed. This has come up before on GDB mailing lists, see, for example:
http://sources.redhat.com/ml/gdb/2001-09/msg00247.html
> There's a lot of possible solutions. There could be a hook called before
> rl_complete generates the matches list, which could fudge the complete
> characters - most direct solution, not very elegant. A function could be
> called to get the list of complete characters, which would then be sensitive
> to rl_point - not sure what other issues this could cause. The filename
> completion code could search backwards according to the list of filename
> wordbreak characters; this would solve the specific problem but not the
> more general one. Probably there are others.
I think the first solution is the easiest one and will do the job.
The two others need to teach GDB functions dealing with completion too
much context, which they are currently oblivious about. For example,
the back-search method in the last proposal is not easy since you not
always know where to stop the search (e.g., imagine a GDB command that
has 2 file-name arguments, or the "foo.c:bar" case). It's not so hard
to scan forward from some place, but much harder to scan backward.
What is inelegant in the first solution you suggested, Daniel?