Diff between fecdfcd323f6289a6a989d34802035ef4c7735f8 and c75500df329173b81bed26a151fba793c5b492e9

Changed Files

File Additions Deletions Status
tools/obexctl.c +35 -7 modified

Full Patch

diff --git a/tools/obexctl.c b/tools/obexctl.c
index 3236616..05bbd3e 100644
--- a/tools/obexctl.c
+++ b/tools/obexctl.c
@@ -83,6 +83,27 @@ static void disconnect_handler(DBusConnection *connection, void *user_data)
 	bt_shell_set_prompt(PROMPT_OFF);
 }
 
+static char *generic_generator(const char *text, int state, GList *source)
+{
+	static int index = 0;
+
+	if (!state) {
+		index = 0;
+	}
+
+	return g_dbus_proxy_path_lookup(source, &index, text);
+}
+
+static char *session_generator(const char *text, int state)
+{
+	return generic_generator(text, state, sessions);
+}
+
+static char *transfer_generator(const char *text, int state)
+{
+	return generic_generator(text, state, transfers);
+}
+
 static void connect_reply(DBusMessage *message, void *user_data)
 {
 	DBusError error;
@@ -1786,14 +1807,21 @@ static const struct bt_shell_menu main_menu = {
 	.name = "main",
 	.entries = {
 	{ "connect",      "<dev> [uuid]", cmd_connect, "Connect session" },
-	{ "disconnect",   "[session]", cmd_disconnect, "Disconnect session" },
+	{ "disconnect",   "[session]", cmd_disconnect, "Disconnect session",
+						session_generator },
 	{ "list",         NULL,       cmd_list, "List available sessions" },
-	{ "show",         "[session]", cmd_show, "Session information" },
-	{ "select",       "<session>", cmd_select, "Select default session" },
-	{ "info",         "<object>", cmd_info, "Object information" },
-	{ "cancel",       "<transfer>", cmd_cancel, "Cancel transfer" },
-	{ "suspend",      "<transfer>", cmd_suspend, "Suspend transfer" },
-	{ "resume",       "<transfer>", cmd_resume, "Resume transfer" },
+	{ "show",         "[session]", cmd_show, "Session information",
+						session_generator },
+	{ "select",       "<session>", cmd_select, "Select default session",
+						session_generator },
+	{ "info",         "<object>", cmd_info, "Object information",
+						transfer_generator },
+	{ "cancel",       "<transfer>", cmd_cancel, "Cancel transfer",
+						transfer_generator },
+	{ "suspend",      "<transfer>", cmd_suspend, "Suspend transfer",
+						transfer_generator },
+	{ "resume",       "<transfer>", cmd_resume, "Resume transfer",
+						transfer_generator },
 	{ "send",         "<file>",   cmd_send, "Send file" },
 	{ "pull",	  "<file>",   cmd_pull,
 					"Pull Vobject & stores in file" },