From 4c15436de803759fed3519822a29f5d2c045dcf5 Mon Sep 17 00:00:00 2001 From: nick black Date: Mon, 12 Oct 2020 02:54:18 -0400 Subject: [PATCH] render: don't check tcache->cuf until necessary --- src/lib/render.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/lib/render.c b/src/lib/render.c index f77f94360..03d862751 100644 --- a/src/lib/render.c +++ b/src/lib/render.c @@ -719,12 +719,12 @@ stage_cursor(notcurses* nc, FILE* out, int y, int x){ if(nc->rstate.y == y){ // only need move x const int xdiff = x - nc->rstate.x; if(xdiff > 0){ - if(nc->tcache.cuf && nc->tcache.cuf1){ - if(xdiff == 1){ - ret = term_emit("cuf1", tiparm(nc->tcache.cuf1), out, false); - }else{ - ret = term_emit("cuf", tiparm(nc->tcache.cuf, xdiff), out, false); - } + if(xdiff == 1 && nc->tcache.cuf1){ + ret = term_emit("cuf1", tiparm(nc->tcache.cuf1), out, false); + nc->rstate.x = x; + return ret; + }else if(nc->tcache.cuf){ + ret = term_emit("cuf", tiparm(nc->tcache.cuf, xdiff), out, false); nc->rstate.x = x; return ret; } @@ -733,6 +733,7 @@ stage_cursor(notcurses* nc, FILE* out, int y, int x){ } // cub1/cub tend to be destructive in my experiments :/ } + // cup is required, no need to check for existence ret = term_emit("cup", tiparm(nc->tcache.cup, y, x), out, false); if(ret == 0){ nc->rstate.x = x;