mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-03 09:46:17 +01:00
gdbus-tool: Fix tab-completion for non-message-bus connections
• `gdbus monitor` can’t work at all for non-message-bus connections, since it can’t subscribe to signals. • Other tab completions for names depend on the connection being a message bus connection, but we still need to print `--dest` (etc.) when tab completing them, even if we can’t print a list of available names. Signed-off-by: Philip Withnall <withnall@endlessm.com> https://bugzilla.gnome.org/show_bug.cgi?id=788594
This commit is contained in:
parent
5564ddef12
commit
b3acf58779
119
gio/gdbus-tool.c
119
gio/gdbus-tool.c
@ -862,27 +862,23 @@ handle_call (gint *argc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* validate and complete destination (bus name) */
|
/* validate and complete destination (bus name) */
|
||||||
if (g_dbus_connection_get_unique_name (c) != NULL)
|
if (complete_names)
|
||||||
{
|
{
|
||||||
/* this only makes sense on message bus connections */
|
print_names (c, FALSE);
|
||||||
if (complete_names)
|
goto out;
|
||||||
{
|
}
|
||||||
print_names (c, FALSE);
|
if (opt_call_dest == NULL)
|
||||||
goto out;
|
{
|
||||||
}
|
if (request_completion)
|
||||||
if (opt_call_dest == NULL)
|
g_print ("--dest \n");
|
||||||
{
|
else
|
||||||
if (request_completion)
|
g_printerr (_("Error: Destination is not specified\n"));
|
||||||
g_print ("--dest \n");
|
goto out;
|
||||||
else
|
}
|
||||||
g_printerr (_("Error: Destination is not specified\n"));
|
if (request_completion && g_strcmp0 ("--dest", completion_prev) == 0)
|
||||||
goto out;
|
{
|
||||||
}
|
print_names (c, g_str_has_prefix (opt_call_dest, ":"));
|
||||||
if (request_completion && g_strcmp0 ("--dest", completion_prev) == 0)
|
goto out;
|
||||||
{
|
|
||||||
print_names (c, g_str_has_prefix (opt_call_dest, ":"));
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!request_completion && !g_dbus_is_name (opt_call_dest))
|
if (!request_completion && !g_dbus_is_name (opt_call_dest))
|
||||||
@ -1619,28 +1615,26 @@ handle_introspect (gint *argc,
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_dbus_connection_get_unique_name (c) != NULL)
|
if (complete_names)
|
||||||
{
|
{
|
||||||
if (complete_names)
|
print_names (c, FALSE);
|
||||||
{
|
goto out;
|
||||||
print_names (c, FALSE);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
/* this only makes sense on message bus connections */
|
|
||||||
if (opt_introspect_dest == NULL)
|
|
||||||
{
|
|
||||||
if (request_completion)
|
|
||||||
g_print ("--dest \n");
|
|
||||||
else
|
|
||||||
g_printerr (_("Error: Destination is not specified\n"));
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
if (request_completion && g_strcmp0 ("--dest", completion_prev) == 0)
|
|
||||||
{
|
|
||||||
print_names (c, g_str_has_prefix (opt_introspect_dest, ":"));
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
/* this only makes sense on message bus connections */
|
||||||
|
if (opt_introspect_dest == NULL)
|
||||||
|
{
|
||||||
|
if (request_completion)
|
||||||
|
g_print ("--dest \n");
|
||||||
|
else
|
||||||
|
g_printerr (_("Error: Destination is not specified\n"));
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
if (request_completion && g_strcmp0 ("--dest", completion_prev) == 0)
|
||||||
|
{
|
||||||
|
print_names (c, g_str_has_prefix (opt_introspect_dest, ":"));
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
if (complete_paths)
|
if (complete_paths)
|
||||||
{
|
{
|
||||||
print_paths (c, opt_introspect_dest, "/");
|
print_paths (c, opt_introspect_dest, "/");
|
||||||
@ -1854,27 +1848,32 @@ handle_monitor (gint *argc,
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_dbus_connection_get_unique_name (c) != NULL)
|
/* Monitoring doesn’t make sense on a non-message-bus connection. */
|
||||||
|
if (g_dbus_connection_get_unique_name (c) == NULL)
|
||||||
{
|
{
|
||||||
if (complete_names)
|
if (!request_completion)
|
||||||
{
|
g_printerr (_("Error: can’t monitor a non-message-bus connection\n"));
|
||||||
print_names (c, FALSE);
|
goto out;
|
||||||
goto out;
|
}
|
||||||
}
|
|
||||||
/* this only makes sense on message bus connections */
|
if (complete_names)
|
||||||
if (opt_monitor_dest == NULL)
|
{
|
||||||
{
|
print_names (c, FALSE);
|
||||||
if (request_completion)
|
goto out;
|
||||||
g_print ("--dest \n");
|
}
|
||||||
else
|
/* this only makes sense on message bus connections */
|
||||||
g_printerr (_("Error: Destination is not specified\n"));
|
if (opt_monitor_dest == NULL)
|
||||||
goto out;
|
{
|
||||||
}
|
if (request_completion)
|
||||||
if (request_completion && g_strcmp0 ("--dest", completion_prev) == 0)
|
g_print ("--dest \n");
|
||||||
{
|
else
|
||||||
print_names (c, g_str_has_prefix (opt_monitor_dest, ":"));
|
g_printerr (_("Error: Destination is not specified\n"));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
if (request_completion && g_strcmp0 ("--dest", completion_prev) == 0)
|
||||||
|
{
|
||||||
|
print_names (c, g_str_has_prefix (opt_monitor_dest, ":"));
|
||||||
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!request_completion && !g_dbus_is_name (opt_monitor_dest))
|
if (!request_completion && !g_dbus_is_name (opt_monitor_dest))
|
||||||
|
Loading…
Reference in New Issue
Block a user