cedric pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=ae9226f823c083367ae8f267a2876669c55fa73f

commit ae9226f823c083367ae8f267a2876669c55fa73f
Author: Aleksandar Popadić <aleksandar.popa...@siol.net>
Date:   Fri Dec 27 16:16:17 2013 +0900

    Give commit 5ab7a6f827d141262a9528b465f0c127fa24cc59 another go
    
    "Do not let CUU and CUD scroll off screen."
    Previously I missed how the default values are implemented.
    
    Reviewers: billiob, cedric
    
    Differential Revision: https://phab.enlightenment.org/D417
    
    Signed-off-by: Cedric BAIL <cedric.b...@samsung.com>
---
 src/bin/termptyesc.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c
index 77e1d9d..e28f944 100644
--- a/src/bin/termptyesc.c
+++ b/src/bin/termptyesc.c
@@ -381,22 +381,14 @@ _handle_esc_csi(Termpty *ty, const Eina_Unicode *c, 
Eina_Unicode *ce)
         if (arg < 1) arg = 1;
         DBG("cursor up %d", arg);
         ty->state.wrapnext = 0;
-        for (i = 0; i < arg; i++)
-          {
-             ty->state.cy--;
-             _termpty_text_scroll_rev_test(ty, EINA_FALSE);
-          }
+        ty->state.cy = MAX(0, ty->state.cy - arg);
         break;
       case 'B': // cursor down N
         arg = _csi_arg_get(&b);
         if (arg < 1) arg = 1;
         DBG("cursor down %d", arg);
         ty->state.wrapnext = 0;
-        for (i = 0; i < arg; i++)
-          {
-             ty->state.cy++;
-             _termpty_text_scroll_test(ty, EINA_FALSE);
-          }
+        ty->state.cy = MIN(ty->h - 1, ty->state.cy + arg);
         break;
       case 'D': // cursor left N
         arg = _csi_arg_get(&b);

-- 


Reply via email to