[gnome-builder: 9/11] debuggerui: feed text into the terminal when running commands
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder: 9/11] debuggerui: feed text into the terminal when running commands
- Date: Sat, 4 Jul 2020 17:29:12 +0000 (UTC)
commit 4a58afdcd81b3c08a1f2306bce7e32534a31a221
Author: Christian Hergert <chergert redhat com>
Date: Sat Jul 4 10:19:01 2020 -0700
debuggerui: feed text into the terminal when running commands
src/plugins/debuggerui/ide-debugger-log-view.c | 25 ++++++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)
---
diff --git a/src/plugins/debuggerui/ide-debugger-log-view.c b/src/plugins/debuggerui/ide-debugger-log-view.c
index 0f73f9c5d..b051dcf53 100644
--- a/src/plugins/debuggerui/ide-debugger-log-view.c
+++ b/src/plugins/debuggerui/ide-debugger-log-view.c
@@ -99,17 +99,32 @@ ide_debugger_log_view_set_property (GObject *object,
static void
on_entry_activate_cb (GObject *source,
- GAsyncResult *res,
+ GAsyncResult *result,
gpointer user_data)
{
+ IdeDebugger *debugger = (IdeDebugger *)source;
g_autoptr(IdeDebuggerLogView) self = user_data;
+ g_autoptr(GError) error = NULL;
- g_return_if_fail (IDE_IS_DEBUGGER_LOG_VIEW (self));
- g_return_if_fail (IDE_IS_TASK (res));
+ IDE_ENTRY;
+
+ g_assert (IDE_IS_DEBUGGER (debugger));
+ g_assert (G_IS_ASYNC_RESULT (result));
+ g_assert (IDE_IS_DEBUGGER_LOG_VIEW (self));
gtk_entry_set_text (self->commandentry, "");
gtk_widget_set_sensitive (GTK_WIDGET (self->commandentry), TRUE);
gtk_widget_grab_focus (GTK_WIDGET (self->commandentry));
+
+ if (!ide_debugger_interpret_finish (debugger, result, &error))
+ {
+ vte_terminal_feed (VTE_TERMINAL (self->terminal),
+ error->message,
+ strlen (error->message));
+ vte_terminal_feed (VTE_TERMINAL (self->terminal), "\r\n", 2);
+ }
+
+ IDE_EXIT;
}
static void
@@ -125,6 +140,10 @@ on_entry_activate (IdeDebuggerLogView *self,
if (ide_str_empty0 (text))
return;
+ vte_terminal_feed (VTE_TERMINAL (self->terminal), "> ", 2);
+ vte_terminal_feed (VTE_TERMINAL (self->terminal), text, strlen (text));
+ vte_terminal_feed (VTE_TERMINAL (self->terminal), "\r\n", 2);
+
if (self->debugger != NULL)
{
gtk_widget_set_sensitive (GTK_WIDGET (self->commandentry), FALSE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]