Commit Graph

3838 Commits (fef33ad2aa9616041bc60a3e57d291473c1ecde4)

Author SHA1 Message Date
nick black 8df91e35a9
unit test for virtual cursor on scrolling plane #1649 3 years ago
nick black 0941efbea5
unit tests for ncplane_moverel() 3 years ago
nick black da3f485ace
notcurses-info: add many triangles 3 years ago
nick black 8dc65b6db1 notcurses-info: always emit newline #1837 3 years ago
nick black 669cf758df
locate_cursor_early: fix compilation 3 years ago
nick black e870e12285
locate_cursor_early: require ttyfd #1880 3 years ago
nick black acc66372b5
add utf8_codepoint_length() #1871 3 years ago
nick black 70b8bba715
Merge branch 'master' of github.com:dankamongmen/notcurses 3 years ago
nick black d7aac5461a reacquire cursor following init banner
when using NCOPTION_PRESERVE_CURSOR, we want to reacquire
the true cursor position after printing the init banner,
rather than trying to figure out how many lines it made
us scroll, and keeping that up to date. this improves the
notcurses-info output on freebsd, where the compiler line
was occupying more than one row. closes #1880.
3 years ago
nick black 50a7996b4f
notcurses_detected_terminal: use termdesc_longterm() 3 years ago
nick black 5451ecd890
return version in ncdirect_detected_terminal() 3 years ago
nick black bc213921be
interrogate_terminfo: placeholders for cursor
always get the cursor location from query responses,
so that we load u7 into the escape table even though
it wasn't found in terminfo. this is needed on freebsd,
where termcap doesn't seem to have u7 in it.
3 years ago
nick black 4ed41259c9
don't emit smkx twice, flatten all initial writes 3 years ago
nick black 488a36eaf5
ncplayer: remove meaningless notcurses_check_pixel_support() call 3 years ago
nick black dc02a8f04b
notcurses_stop_minimal: use reliable I/O
fflush(), so far as i can tell, cannot be reliably used
in glibc. after it fails once, subsequent calls return 0
and do not set errno -- only the persistent ferror() serves
to indicate that flushing is not going on. instead, write
into the render state's memstream, and then use reliable
blocking_write() to dump it to stdout. closes #1872.
3 years ago
nick black ed8c369d4e on pile change, clear old sprixels #1875 3 years ago
nick black 9d27bf1869
remove meaningless notcurses_check_pixel_supprot() from ncplayer 3 years ago
nick black 588f8d3789
drop signals at the end of reset_term_attributes() #1872 3 years ago
nick black 205a8bd764
faster nccell_width()
nccell_width() ought simply consult the nccell's width
field to get a column count (it was written before the
rearrangement of nccell). do so. fix up the macros
CELL_CHAR_INITIALIZER and CELL_INITIALIZER to assign a
width of 1 for non-printing characters, matching the
behavior of utf8_egc_len() on whitespace. instead of
hard-coding the logic in ncplane_put() for multicolumn
glyphs, call nccell_wide_right_p() and wide_left_p().
use nccell_width() in ncplane_putc_yx(), fixing it for
glyphs of more than 2 columns.
3 years ago
nick black 505f38956d
Fade unit test: use CELL_CHAR_INITIALIZER 3 years ago
nick black 0e341fa3de
notcurses-info.1: describe output 3 years ago
nick black 1287d8bd03
combine some writes 3 years ago
nick black d558c8d6e1
require set_pixel_blitter() for sixel_blit 3 years ago
nick black 5af6f58e07
Visual: render 1x1->fullscreen #1675 3 years ago
nick black feccb7dab8
purge wayward notcurses_debug() calls in pile unit tests 3 years ago
nick black f219a21732
ResizeThenRotateFromMemory is garbage =[ 3 years ago
nick black 4d1681bf11
fix dumb error in ResizeThenRotateFromMemory #1722 3 years ago
nick black d8c37337d9
allow different backends to specify their own padding requirements #1722 3 years ago
nick black a10959345a
null media implementation: don't colorize warning 3 years ago
nick black cb6ffee3a7
OpenImageIO: simplify TypeDesc declarations #1722 3 years ago
nick black d70aed8939
tighten up banner warnings 3 years ago
nick black c2a076a6b3
banners: properly account lines 3 years ago
nick black 4f8a8597a1
fold a few escape emissions down into single flushes 3 years ago
nick black 4cc69c445d
rasterize: use a single ncflush(), even with SUM 3 years ago
nick black 8bdd4b3908
ncfputc: we can use putc() here 3 years ago
nick black 5d7f2ce92f
visual_banner: always print to nc->ttyfp 3 years ago
nick black de8bb9d498
clearall: take a FILE, not an fd 3 years ago
nick black a99d096666
input: convert some stderr to logerror/logwarn() 3 years ago
nick black a36c13da13
merge notcurses-info changes from kitty branch 3 years ago
nick black 9c1f489bb6
merge ncseqs.h from kitty branch 3 years ago
nick black b4bf1297e1
only invert DECSDM on MLterm < 3.9.1 #1869 3 years ago
nick black 6615f52fe3
extract MLterm version from XTVERSION #1869 3 years ago
nick black ef2e4e626e
[dragon] properly size input visual #1723 3 years ago
nick black bf3caa8198
disable kitty ASU while it breaks graphics #1864 3 years ago
nick black 581a33f5e2
a mysterious space! 3 years ago
nick black 4c8bfbd405
notcurses-info: rewrite U13 in terms of NCANGLE* 3 years ago
nick black 0bfa8c33fd [sixel] clean up cells even when under a new sixel #1537 3 years ago
nick black 5cf24d4d2e mojibake: add emoji from unicode 14.0β 3 years ago
nick black 4a8d075e64
add NCBOXOUTER #1858 3 years ago
nick black 7e2c6fc005
notcurses-info: tighten up all output 3 years ago
nick black 62e0c226d8
brighten up initial banner 3 years ago
nick black 866ffd91dd
tighten up initial banners further 3 years ago
nick black a1d011fdc2
notcurses-info: hold off on displaying logo 3 years ago
nick black 89fee267b7
notcurses-info: pack more densely 3 years ago
nick black 62dd65dd84
tighten up intro banner #1837 3 years ago
nick black 1193e40fd1
notcurses-info: show logo pursuant to #1649 3 years ago
nick black 3596b2b2a2
NEWS: describe pure changes 3 years ago
nick black 37fbd526ed
ncvisual_blitset_geom: handle non-origin with CHILDPLANE #1854 3 years ago
nick black 35b57ddb91
remove useless notcurses_check_pixel_support() calls 3 years ago
nick black 4177486e26
mark capability functions as ((pure)) 3 years ago
nick black 15d6cfaf35
allow pixels to stdplane with NCVISUAL_OPTION_CHILDPLANE #1854 3 years ago
nick black 6f1bbf82d0
add prefix_data() 3 years ago
nick black a17800b034
notcurses-info: add fractions 3 years ago
nick black 301e76956e
[querylex] handle fail on set cregs 3 years ago
nick black 5861d16d33
expand accepting states for primary device attributes 3 years ago
nick black ea41c5ebaf fix cell_extended_p() for big-endian 3 years ago
nick black 0efe1bf40e
kill obsolete FIXME 3 years ago
nick black 569e06f519
media tests: remove treacherous sleep(3)s 3 years ago
nick black 7c72bb55ed
When terminal is identified, send minimal queries
We might have already unambiguously identified our terminal
by the time we start probing (the Linux console, for instance,
is identified via ioctl()s). If we have, we still want to
send non-identification-related queries in, particularly to
get the cursor position. This fixes up notcurses-info on the
Linux console (#1837).
3 years ago
nick black 0d2ed04c1a
notcurses-info: be boring but reliable wrt glyphs 3 years ago
nick black a21113a66a
ncls: use NCSCALE_HIRES with NCBLIT_PIXEL by default 3 years ago
nick black 1734c39de0
flashier braille coloring in notcurses-info 3 years ago
nick black 67d203c4eb
Support both DCS and SM/RM-style SU
Synchronized Updates are implemented in two different ways,
depending on the terminal. Some use DCS, and some use SM/RM.
If the terminal replies with a ?2026 advertisement, use
SM/RM. Otherwise, if heuristics suggest it, use DCS.
Closes #1850.
3 years ago
nick black 45c6a229ce
extract cell-pixel geometry from linux framebuffer console #1369 3 years ago
nick black a95b28c2e5
fix XTVERSION parsing for unbound version strings 3 years ago
nick black 2895615e06
detect drawable linux framebuffer #1369 3 years ago
nick black 670e49b0ed
brown-bagger; check for basu before applying offset for ASU 3 years ago
nick black 3cbbbc5f77
save a system call on synchronized updates #1845 3 years ago
nick black ca556c3457
rewrite big staggered if() in xtversion with table #1845 3 years ago
nick black 0d03e7fbbc
fix begin synchronized update emission #1845 3 years ago
nick black c4901c84a2
support DCS ASU in kitty/vte/iterm/alacritty without discovery #1845 3 years ago
nick black fe6ef441bc
add TERMINAL_ITERM to discoverable terminals 3 years ago
nick black 6523c01ab7
create empty auxvec when wiping transparent cells
If we're a transparent sprixcell, we don't need an
auxiliary vector...until we do. If we reload the sprixel,
we have to update the auxiliary vectors, and assume one
is there. Since we're going to be getting rid of auxvecs
for kitty once we're using animation extensions, just go
ahead and always create one. Closes #1847.
3 years ago
nick black d06eb772b4 update damaged glyphs behind a kitty opaque cell #1704 3 years ago
nick black 7aea2147d4 statepixel: don't use alternate screen #1704 3 years ago
nick black 4aeab4e987
No ASU on Linux, no cursor_hack
Pull out the dreadful 'cursor_hack' code that was
used for MLterm. If you send DECSDM the way MLterm
wants it, you don't have the problem of the cursor
becoming visible whenever you draw a Sixel. We send
it as expected now, so that's all good.

On the Linux console, we were using an uninitialized
variable for ASU detection. This has been remedied.
3 years ago
nick black e2c4de2515
make ubuntu tests label fit in the shield 3 years ago
nick black cbd3483010
fix up DenyControlASCII test to admit NUL 3 years ago
nick black 6ba67a6f21
accept NULs in is_control_egc(), fixing notcurses-input 3 years ago
nick black 490c89f694 add ncplane_scrolling_p() #1841 3 years ago
nick black b185e2528c get ResizeAndRotateFromMemory working sans leaks/breakage #1800 3 years ago
nick black 4c61a48d5a interp PoC: print labels 3 years ago
nick black 81df2dc323 rotate PoC: run faster #1800 3 years ago
nick black 42bb520445 ffmpeg_blit: don't assign data in details_seed 3 years ago
nick black 1b32823e42 bulk up ResizeThenRotateFromFile test 3 years ago
nick black cbc9a6ce6e rotate_visual: throw in some diagnostics 3 years ago
nick black 3896b7f50b allow add_*_escapes() to be called multiple times 3 years ago
nick black 95a4511045 drop ownership in ffmpeg routines #1800 3 years ago
nick black 64abad918e
fix up LayoutLeadingSpaces test not to send tabs 3 years ago
nick black 7361683d3b
deny control characters in cells and plane emissions #1840 3 years ago
nick black afffc96508 add compare_versions, don't use C=1 with kitty < 0.20.0 3 years ago
nick black 42fee43cf2 only set pixel_cursor_hack if cursor is hidden 3 years ago
nick black f6f3d633ae ffmpeg: don't stick new data in details #1800 3 years ago
nick black 6aee702291
honor LINES/COLUMNS if TIOCGWINSZ fails #1826 3 years ago
nick black 81ee3a8d95
ncvisual_rotate: no need to force rgba explicitly #1800 3 years ago
nick black e32ae497d2
unit test for rotate+resize+render #1800 3 years ago
nick black afbdee5ae5
extract build_supported_styles() into its own function 3 years ago
nick black 23b19581e8 fix up freebsd11 build (dump getrandom(2)) 3 years ago
nick black e287187108
fix up is_linux_console() for non-linux builds 3 years ago
nick black a16cd3be31
rotate PoCPP was basically a PoC, move to src/poc/ #1800 3 years ago
nick black 68e498a583
ncls: disable cursor 3 years ago
nick black e813e3abe4
ncls: default to NCBLIT_PIXEL #1835 3 years ago
nick black 88a369e997
[normal] don't run without utf8 3 years ago
nick black dc6f697995
interp PoC: less debugging cruft 3 years ago
nick black 8fe8e35efe
set quadrants for linux console only if we reprogrammed the font, or found them 3 years ago
nick black 5c0f06eaf3
[outro] make it work in ascii 3 years ago
nick black ed89e4f9c9
stop using sgr entirely #1818 3 years ago
nick black 8c37c56d29
colorize supported vs non-supported caps in notcurses-info 3 years ago
nick black 9973788efb
restore NCSTYLE_BLINK for now, add 25m to turn it off #1818 3 years ago
nick black 8a265920b7
unify style backends for direct+rendered modes #1818 3 years ago
nick black 5c4e8f8536
new coerce_styles to replace term_setstyles
Add new internal function coerce_styles(). This only,
and explicitly, attempts to work on UNDERLINE, BOLD, ITALICS,
STRUCK, and UNDERCURL. It does not use sgr0, eliminating the
need to recover colors on a style change. It furthermore fixes
a bug when undercurl and underline changed at the same time.
Finally, it is written in a way suitable for calling from
ncdirect, meaning we can eliminate the duplicated code
therein (its own copy of term_setstyles()) #1818.
3 years ago
nick black 5377197600
notcurses-info: colorize sextants, quadrants, halfblocks 3 years ago
nick black 63271e5f54
add ESCAPE_NOBOLD (sgr22) to avoid sgr0 #1818 3 years ago
nick black 8cb70a30bb
ncdirect: send sgr0 and sgr to the same FILE, kill DIM/REVERSE #1818 3 years ago
nick black 3c75654b67
move is_linux_console to interrogate_term() so it's used in direct mode #1828 3 years ago
nick black f8f44cf7d2 notcurses-info: colorize braille 3 years ago
nick black bf114aea48
notcurses-info: colorize eighths 3 years ago
nick black 4eeb61a691
notcurses-info: colorize symbols for legacy computing 3 years ago
nick black 36813470fc
grammar fix in comment 3 years ago
nick black 1b613835dc notcurses-info: color the braille 3 years ago
nick black 8b0c138b72 hey, VTE supports ucurl, sweet 3 years ago
nick black b1fd24a970 notcurses-info: use some coloring #1823 3 years ago
nick black 5f06c2eef9 account for initial output lines for scrolling #1823 3 years ago
nick black e74070fd32 somewhat daring and dangerous scrolling for rendered mode #1823 3 years ago
nick black 30b9e2b6fb get NCSTYLE_STRUCK into supported_styles 3 years ago
nick black c0a61357d8 notcurses-info: print check/x for styles 3 years ago
nick black 9ed9f6bfc0 add USE_READLINE cmake flag 3 years ago
nick black 186049b3b5 cjkscroll PoC: use NO_ALTERNATE_SCREEN|PRESERVE_CURSOR #1823 3 years ago
nick black c21cadb6e7 scroll PoC: use NO_ALTERNATE_SCREEN|PRESERVE_CURSOR #1823 3 years ago
nick black 1c38c8b39a notcurses-info: set scrolling on standard plane #1823 3 years ago
nick black e734409187 implement NCOPTION_PRESERVE_CURSOR #1823 3 years ago
nick black 9f92986a6b always send DSRCPR at init, use it to verify u7
for NCOPTION_PRESERVE_CURSOR, we want to know the location
of the cursor at startup. go ahead and always send a DSRCPR
in terminal interrogation. if we get a reply to it, hey, we
just verified that the terminal knows DSRCPR.

if we find a u7 value in terminfo that's different from the
standard DSRCPR, we ought send that in addition. #1816
3 years ago
nick black fd8875e757 notcurses-info: move to rendered mode output #1823 3 years ago
nick black c0a73b939b
some fatty did eat the oslo accords 3 years ago
nick black e44ee78b2e
sgr-full: explore entire style space #1818 3 years ago
nick black 9d7f07771b
GTFO NCSTYLE_DIM, NCSTYLE_REVERSE #1818 3 years ago
nick black d08b65f323
ncdirect_stream(): if bitmap wraps the screen, move up one more y #1820 3 years ago
nick black 7b570ba813 direct mode: don't scroll on image out due to overambitious sizing #1804 3 years ago
nick black ce073d22ac
fallin demo: no write to failed alloc 3 years ago
nick black 4064ede06c
sprixel_auxiliary_vector: don't deref NULL on alloc failure 3 years ago