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~",

-- 


Reply via email to