* [PATCH BlueZ] gatttool: Add command completion for interactive mode
@ 2012-02-29 20:17 Jefferson Delfes
2012-03-01 2:10 ` Johan Hedberg
0 siblings, 1 reply; 2+ messages in thread
From: Jefferson Delfes @ 2012-02-29 20:17 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Jefferson Delfes
---
attrib/interactive.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/attrib/interactive.c b/attrib/interactive.c
index a772362..be81424 100644
--- a/attrib/interactive.c
+++ b/attrib/interactive.c
@@ -800,6 +800,33 @@ static gboolean prompt_read(GIOChannel *chan, GIOCondition cond,
return TRUE;
}
+static char *completion_generator(const char *text, int state)
+{
+ static int index = 0, len = 0;
+ const char *cmd = NULL;
+
+ if (state == 0) {
+ index = 0;
+ len = strlen(text);
+ }
+
+ while ((cmd = commands[index].cmd) != NULL) {
+ index++;
+ if (strncmp(cmd, text, len) == 0)
+ return strdup(cmd);
+ }
+
+ return NULL;
+}
+
+static char **commands_completion(const char *text, int start, int end)
+{
+ if (start == 0)
+ return rl_completion_matches(text, &completion_generator);
+ else
+ return NULL;
+}
+
int interactive(const gchar *src, const gchar *dst, int psm)
{
GIOChannel *pchan;
@@ -820,6 +847,7 @@ int interactive(const gchar *src, const gchar *dst, int psm)
events = G_IO_IN | G_IO_ERR | G_IO_HUP | G_IO_NVAL;
g_io_add_watch(pchan, events, prompt_read, NULL);
+ rl_attempted_completion_function = commands_completion;
rl_callback_handler_install(get_prompt(), parse_line);
g_main_loop_run(event_loop);
--
1.7.9.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-03-01 2:10 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-29 20:17 [PATCH BlueZ] gatttool: Add command completion for interactive mode Jefferson Delfes
2012-03-01 2:10 ` Johan Hedberg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).