summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin@src.gnome.org>2002-04-22 20:35:47 +0000
committerNalin Dahyabhai <nalin@src.gnome.org>2002-04-22 20:35:47 +0000
commit88ee13eaba3955ff8aa25bf2e4b5a8d52c80c2bb (patch)
tree3343aea72476d4c3386565911f83fce58b2d76bf
parent8421ed85f076ed9e1b72adce56c75e22d1a04ba9 (diff)
downloadvte-88ee13eaba3955ff8aa25bf2e4b5a8d52c80c2bb.tar.gz
Add vte_terminal_feed_child() to send UTF-8 strings to the child process, and
actually apply Havoc's fix right this time.
-rw-r--r--src/vte.c17
-rw-r--r--src/vte.h3
-rw-r--r--src/vteapp.c1
3 files changed, 18 insertions, 3 deletions
diff --git a/src/vte.c b/src/vte.c
index 15a3efe4..952065c9 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -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. */
diff --git a/src/vte.h b/src/vte.h
index 4cfed823..382ddacd 100644
--- a/src/vte.h
+++ b/src/vte.h
@@ -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);