notcurses
notcurses copied to clipboard
demo summary table isn't printing headers
we're getting this:
══╤════════╤════════╪═══════╪═════════╪═══════╪══╪══╪══╪═══════╣
1│ intro│ 3.07s│ 455│ 13.33Mi│ 148.0│ 4│ 1│ 5│ 1.32K║
══╧════════╧════════╪═══════╪═════════╪═══════╧══╧══╧══╧═══════╝
3.07s│ 455│ 13.33Mi│
if i have two ncplane_putchar(stdn, '\n');
s leading, it gets displayed:
[schwarzgerat](0) $ ./notcurses-demo -p ../data/ i
runtime│ frames│output(B)│ FPS│%r│%a│%w│TheoFPS║
══╤════════╤════════╪═══════╪═════════╪═══════╪══╪══╪══╪═══════╣
1│ intro│ 3.07s│ 455│ 13.33Mi│ 148.0│ 4│ 1│ 5│ 1.30K║
══╧════════╧════════╪═══════╪═════════╪═══════╧══╧══╧══╧═══════╝
3.07s│ 455│ 13.33Mi│
SIGH.
-------------------------- notcurses debug state -----------------------------
************************* 0x55818f4e90a0 pile ****************************
0000 off y: 0 x: 0 geom y: 64 x: 132 curs y: 63 x: 101 0x55818f4e8fb0 std
bound 0x55818f4e8fb0 ← 0x55818f4e90b0 → (nil) binds (nil)
______________________________________________________________________________
we come out of the alternate screen at 63/101 on a 64/132 terminal.
if we put a notcurses_render()
after the single existing ncplane_putchar('\n')
, it works (though it's a line further down than i'd like). which is evidence of insanity. but so is that 101 =\ =\ =\
we have a workaround, but i hate this. moving it beyond 3.0.0 for now though.
very interestingly, if we quit out in media res, we get the headers without this redundant render. if we run to completion, we don't. what could the difference be there?
it looks like things are now working without the extraneous render call. i'm not sure what fixed it, but there we go.
hrmmm maybe not. it seems to depend on what demos we run? like if we end on [outro]
, we don't seem to get it, but if we end on [intro]
, we do. [keller]
we don't. [jungle]
we do.
do: ijmudcyzs don't: knbgvaoxwtl
except that's not even it, because we don't if we run e.g. ls. hrmm.
so it's maybe looking like....if the last demo draws on the last line, we don't?
presumably this has something to do with leave_alternate_screen()
...
hrmmm if we don't move at the end of leave_alternate_screen()
, it usually works...ugh this is hard to understand =.
i think this kinda requires (or is at least part of) #2414