From 98446b48101d0a31a663ac831fcd0dda09f84e85 Mon Sep 17 00:00:00 2001 From: nick black Date: Wed, 15 Jan 2020 05:57:39 -0500 Subject: [PATCH] render: fix setting of channel on wide --- src/lib/internal.h | 4 ++-- src/lib/render.c | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/lib/internal.h b/src/lib/internal.h index aa02bb613..ed777f7e1 100644 --- a/src/lib/internal.h +++ b/src/lib/internal.h @@ -316,13 +316,13 @@ ns_to_timespec(uint64_t ns, struct timespec* ts){ } static inline void -cell_debug(const ncplane* p, const cell* c){ +cell_debug(const egcpool* p, const cell* c){ if(cell_simple_p(c)){ fprintf(stderr, "gcluster: %u %c attr: 0x%08x chan: 0x%016lx\n", c->gcluster, c->gcluster, c->attrword, c->channels); }else{ fprintf(stderr, "gcluster: %u %s attr: 0x%08x chan: 0x%016lx\n", - c->gcluster, extended_gcluster(p, c), c->attrword, c->channels); + c->gcluster, egcpool_extended_gcluster(p, c), c->attrword, c->channels); } } diff --git a/src/lib/render.c b/src/lib/render.c index c16b125fb..570132c81 100644 --- a/src/lib/render.c +++ b/src/lib/render.c @@ -293,6 +293,20 @@ fprintf(stderr, "WROTE %u [%c] to %d/%d (%d/%d)\n", prevcell->gcluster, prevcell fprintf(stderr, "WROTE %u [%s] to %d/%d (%d/%d)\n", prevcell->gcluster, egcpool_extended_gcluster(&nc->pool, prevcell), y, x, absy, absx); }*/ crender->damaged = true; + if(cell_double_wide_p(targc)){ + ncplane* tmpp = crender->p; + ++crender; + crender->p = tmpp; + ++x; + ++prevcell; + ++targc; + targc->gcluster = 0; + targc->channels = targc[-1].channels; + targc->attrword = targc[-1].attrword; + if(cellcmp_and_dupfar(&nc->pool, prevcell, crender->p, targc)){ + crender->damaged = true; + } + } } } }