diff options
-rw-r--r-- | src/vte.c | 17 | ||||
-rw-r--r-- | src/vte.h | 3 | ||||
-rw-r--r-- | src/vteapp.c | 1 |
3 files changed, 18 insertions, 3 deletions
@@ -3281,14 +3281,14 @@ vte_terminal_process_incoming(gpointer data) /* Discard the data, we can't use it. */ terminal->pvt->n_incoming = 0; g_free(terminal->pvt->incoming); - terminal->pvt->incoming; + terminal->pvt->incoming = NULL; again = FALSE; } } else { /* No leftovers, clean out the data. */ terminal->pvt->n_incoming = 0; g_free(terminal->pvt->incoming); - terminal->pvt->incoming; + terminal->pvt->incoming = NULL; again = FALSE; } @@ -3551,6 +3551,17 @@ vte_terminal_send(VteTerminal *terminal, const char *encoding, return; } +/* Send a chunk of UTF-8 text to the child. */ +void +vte_terminal_feed_child(VteTerminal *terminal, const char *text, size_t length) +{ + g_return_if_fail(VTE_IS_TERMINAL(terminal)); + if (length == (size_t)-1) { + length = strlen(text); + } + vte_terminal_send(terminal, "UTF-8", text, length); +} + /* Handle the toplevel being reconfigured. */ static gboolean vte_terminal_configure_toplevel(GtkWidget *widget, GdkEventConfigure *event, @@ -3563,7 +3574,7 @@ vte_terminal_configure_toplevel(GtkWidget *widget, GdkEventConfigure *event, g_return_val_if_fail(GTK_WIDGET_TOPLEVEL(widget), FALSE); g_return_val_if_fail(VTE_IS_TERMINAL(data), FALSE); vte_terminal_setup_background(VTE_TERMINAL(data), FALSE); - return TRUE; + return FALSE; } /* Handle a hierarchy-changed signal. */ @@ -94,6 +94,9 @@ void vte_terminal_fork_command(VteTerminal *terminal, void vte_terminal_feed(VteTerminal *terminal, const char *data, size_t length); +void vte_terminal_feed_child(VteTerminal *terminal, + const char *data, + size_t length); void vte_terminal_set_size(VteTerminal *terminal, long columns, long rows); void vte_terminal_set_audible_bell(VteTerminal *terminal, gboolean audible); void vte_terminal_set_scroll_on_output(VteTerminal *terminal, gboolean scroll); diff --git a/src/vteapp.c b/src/vteapp.c index 3d3a119e..e824f8aa 100644 --- a/src/vteapp.c +++ b/src/vteapp.c @@ -133,6 +133,7 @@ main(int argc, char **argv) vte_terminal_feed(VTE_TERMINAL(widget), message, strlen(message)); #endif vte_terminal_fork_command(VTE_TERMINAL(widget), NULL, NULL); + vte_terminal_feed_child(VTE_TERMINAL(widget), "pwd\n", -1); /* Go for it! */ gtk_widget_show_all(window); |