From ae9226f823c083367ae8f267a2876669c55fa73f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksandar=20Popadi=C4=87?= Date: Fri, 27 Dec 2013 16:16:17 +0900 Subject: [PATCH] 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 --- 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 77e1d9d4..e28f9440 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);