billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=3b971ca7abd789dade8f73a0957aa75f1262c7a9
commit 3b971ca7abd789dade8f73a0957aa75f1262c7a9 Author: Boris Faure <bill...@gmail.com> Date: Mon Jan 20 23:10:49 2014 +0100 fix pasting. Closes T706 --- src/bin/termio.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/bin/termio.c b/src/bin/termio.c index c8b5a63..72b5b2b 100644 --- a/src/bin/termio.c +++ b/src/bin/termio.c @@ -1828,14 +1828,16 @@ _getsel_cb(void *data, Evas_Object *obj EINA_UNUSED, Elm_Selection_Data *ev) { if (ev->len > 0) { - char *tmp, *s; - size_t i; + char *tmp; // apparently we have to convert \n into \r in terminal land. - tmp = malloc(ev->len); + tmp = malloc(ev->len + 1); if (tmp) { - s = ev->data; + char *s = ev->data; + size_t i; + + tmp[ev->len] = '\0'; for (i = 0; i < ev->len; i++) { tmp[i] = s[i]; @@ -1846,7 +1848,7 @@ _getsel_cb(void *data, Evas_Object *obj EINA_UNUSED, Elm_Selection_Data *ev) termpty_write(sd->pty, "\x1b[200~", sizeof("\x1b[200~") - 1); - termpty_write(sd->pty, tmp, ev->len - 1); + termpty_write(sd->pty, tmp, ev->len); if (sd->pty->state.bracketed_paste) termpty_write(sd->pty, "\x1b[201~", --