Commit Graph

5051 Commits

Author SHA1 Message Date
nick black
5ce1a11bce [core] undo XTMODKEYS coming out of alternate screen 2021-11-01 21:57:05 -04:00
nick black
7f36bdaba0 [ncvisual_geom] always set up extrinsics 2021-11-01 21:57:05 -04:00
nick black
b19847a06a [visual] extrinsic geometry unit tests 2021-11-01 21:57:05 -04:00
nick black
4028d3f56a ncvisual_geom(NULL, non-NULL) unit test 2021-11-01 21:57:05 -04:00
nick black
a0b34f7062 [core] introduce ncvisual_geom(), replacing ncvisual_blitter_geom() #1684 2021-11-01 21:57:05 -04:00
nick black
71cd76d5c2 [intro] full exit on failure 2021-10-31 12:34:31 -04:00
nick black
469fde0545
clarify resize diagnostic #1696 2021-10-28 20:24:50 -04:00
nick black
cf4d657ece
[marginalized resizecb] move to the location solved for by margins #1472 2021-10-28 17:41:28 -04:00
nick black
0eda63daa5 [core] enable ghpa only on kitty for now #2199 2021-10-28 06:42:19 -04:00
nick black
8ee8b0081d [raster] no need to position x for scroll event #2199 2021-10-28 06:42:19 -04:00
nick black
8a827224ba PixelRender unit test: stretch to available geometry 2021-10-28 06:42:19 -04:00
nick black
50dfab7b7b SixelsRoundtrip unit test: scale to available geometry #2304 2021-10-28 06:42:19 -04:00
nick black
e92aafd1b4 [sixeltests] use REQUIRE instead of CHECK on blit result #2304 2021-10-28 06:42:19 -04:00
nick black
086d77c320 [core] remove egc_rtl(), which only seems to cause problems #2128 2021-10-28 06:42:19 -04:00
nick black
a85a9097f9 [render] gratuitous hpa only on plane changes #2199 2021-10-28 06:42:19 -04:00
nick black
935e96a3bc [stats] add hpa_gratuitous stat #2199 2021-10-28 06:42:19 -04:00
nick black
b81ab750cc [macos] no pthread_condattr_setclock() #2302 2021-10-27 13:43:10 -04:00
nick black
fec64cfc33 [core] use pthread_condattr_setclock rather than pthread_cond_clockwait() #2302 2021-10-27 13:43:10 -04:00
nick black
26d6c27329
[windows] explicit pthread.h include #2303 2021-10-27 13:31:07 -04:00
nick black
29476a1f46
[plot] use cached color values always 2021-10-26 17:40:15 -04:00
nick black
a61af4f982
[plot] realloc channels on cell-pixel geometry change #2172 2021-10-26 17:10:08 -04:00
nick black
1f041edc40
[plot] kill last VLA #2172 2021-10-26 16:10:26 -04:00
nick black
548b4e2729
[CMake] add -Wvla #2301 2021-10-26 16:04:02 -04:00
nick black
f6443e2152
[plot] MB_CUR_MAX -> MB_LEN_MAX, kill VLA 2021-10-26 15:30:18 -04:00
nick black
45b061ad59
[linuxconjammer] kill VLA #2301 2021-10-26 15:29:01 -04:00
nick black
b5e4b58902
[linux] eliminate VLAs 2021-10-26 15:22:21 -04:00
nick black
80153f804d
[plot] calculate color vector once per lifetime #2172 2021-10-26 15:12:51 -04:00
nick black
cc62e81b0e
[fission] kill off VLA #2301 2021-10-26 15:09:30 -04:00
nick black
07fefa3004
[direct] MB_CUR_MAX -> MB_LEN_MAX, no VLAs #2301 2021-10-26 15:09:16 -04:00
nick black
ee784ece64
[tests] MB_CUR_MAX -> MB_LEN_MAX, no VLA #2301 2021-10-26 15:08:51 -04:00
nick black
5d6334a22d
[plots] calculate colors only once per draw run #2172 2021-10-26 14:43:17 -04:00
nick black
2770ae8a0b
[is_linux_console] reword diagnostic so it doesn't look like a failure 2021-10-26 10:39:01 -04:00
nick black
213fea7abd
don't blow away ret->loglevel 2021-10-26 10:37:29 -04:00
nick black
3c52635642
[env] make NOTCURSES_LOGLEVEL actually work 2021-10-26 10:33:44 -04:00
nick black
2cfe37a36a
tighten up init banner's terminfo version 2021-10-26 09:46:44 -04:00
nick black
bd00e7b507
[fission] fix regression where background was drawn above previous material #2299 2021-10-25 23:34:51 -04:00
nick black
5e3eeba355
[xray] destroy planes on exit 2021-10-23 06:26:05 -04:00
nick black
cf570a3d3f
[fission] kill background plane on exit 2021-10-23 06:17:32 -04:00
nick black
a83ff427e0
[egcpool_dup] deal with empty source (ubsan fix) 2021-10-23 05:59:18 -04:00
nick black
7c365fcfd6
[blitters] unit test blitter->string lookup 2021-10-23 05:45:03 -04:00
nick black
c188382f03
[zoo/outro] name planes 2021-10-23 05:12:13 -04:00
nick black
be92819b09
[render] damage glyphs underneath opaque kitty #2297 #1932 2021-10-23 04:48:31 -04:00
nick black
7c2276cce1
[demo-pulse] don't hang time off the end 2021-10-23 04:06:19 -04:00
nick black
a8b9dd4af7
[ncplane_pulse] replace explicit test with notcurses_canfade() 2021-10-23 04:02:10 -04:00
nick black
67c3f64dc2
[yield] always erase bitmap planes on the standard pile #2298 2021-10-23 00:56:31 -04:00
nick black
2a924812c1 [demo] blue up the FPS plot a little 2021-10-22 22:50:57 -04:00
nick black
e746fff33e [trans] add image at end #2275 2021-10-22 22:50:57 -04:00
nick black
48ee66918a
[signals] include SIGBUS among fatal signals 2021-10-22 22:08:02 -04:00
nick black
cd5c913994 [yield] yank demo_nanosleep #1613 2021-10-22 22:00:41 -04:00
nick black
edc10fc054 [yield] pull demo_nanosleep() #1613 2021-10-22 22:00:41 -04:00
nick black
c2ed7d19fe [yield] two threads #1613 2021-10-22 22:00:41 -04:00
nick black
d3d418bb07 [yield] split main loop out suitable as pthread #1613 2021-10-22 22:00:41 -04:00
nick black
ef2c15abf2
[xray] decode in both threads concurrently, 40% FPS improvement #1613 2021-10-22 00:06:32 -04:00
nick black
1bdeb0d258
[demo] FPS not FPSS (thought i already made this change)? 2021-10-21 21:36:41 -04:00
nick black
85b6d55577
[utils] implement notcurses_osversion #2293 2021-10-21 19:02:09 -04:00
nick black
20fa1db5dd define clockwait save in presence of _USE_GNU #2291 2021-10-21 17:07:57 -04:00
nick black
9b30487e4a [windows] define pthread_cond_clockwait() #2292 2021-10-21 17:07:57 -04:00
nick black
a3575ebfd8 [input] switch to pthread_cond_clockwait() #2291 2021-10-21 17:07:57 -04:00
nick black
864e2710a3 [demo] use pthread_cond_clockwait() with CLOCK_MONOTONIC #2291 2021-10-21 17:07:57 -04:00
nick black
3e0ce64b76 [input] try to use CLOCK_MONOTONIC for condvar
By default, Pthread condition variables use the wretched
CLOCK_REALTIME for pthread_cond_timedwait(). We reaaaaaaly
want it to use CLOCK_MONOTONIC instead. Where supported,
use pthread_condvar_setclock() to initialize the input
condvar with CLOCK_MONOTONIC, since every other operation
we perform is clocked against it. Closes #2291.
2021-10-21 17:07:57 -04:00
nick black
a087960ab7
[notcurses-demo] write input readiness to correct pipe side #2290 2021-10-21 14:02:21 -04:00
nick black
398266d10c
[make_sprixel_plane] properly set outx following scale #2278 2021-10-21 03:54:54 -04:00
nick black
d6e574f131
[input] on construction failure, return NULL initdata #2289 2021-10-21 03:16:53 -04:00
nick black
06de7ac582
[init_banner] no extra space when we don't know a version 2021-10-20 09:53:06 -04:00
nick black
86b81dfbd1 [sixel_refresh] bounds-check when damaging render state #2287 2021-10-20 09:41:24 -04:00
nick black
2b86835faa [ncplane_erase] call destroy_tam() #2286 2021-10-20 09:31:44 -04:00
nick black
7be722edb3
[ncplane_reparent_family] resolve use-after-free on error path #1348 2021-10-20 07:06:51 -04:00
nick black
1e4ce97750
[banner] display OS in init banner 2021-10-20 04:49:08 -04:00
nick black
6411b628a4 [utf8_egc_len] don't disqualify output based off wcwidth() #2285 2021-10-20 03:20:55 -05:00
nick black
9483278ba1
dump sprixel_auxiliary_vector, save 50% of kitty/fbcon auxvec space 2021-10-20 02:09:53 -04:00
nick black
d857fedf16 [tester] use NCLOGLEVEL_INFO for initial setup 2021-10-20 01:29:07 -04:00
nick black
2c89553437
[bitmaps] kill memory leak on resize failure path 2021-10-19 20:23:22 -04:00
nick black
5ce9f57540
[plane_blit_sixel]: call destroy_tam() 2021-10-19 19:54:49 -04:00
nick black
18425cd426
[ncplane_reparent_family] don't use invalid pile reference #1348 2021-10-19 19:41:35 -04:00
nick black
a4896720e7
[keller] if we expect success, but fail, error out #2278 2021-10-19 18:05:46 -04:00
nick black
bfdd2ed347
[linux] %hu -> %u for new ioctl 2021-10-19 14:58:39 -04:00
nick black
61b149b357
[boxdemo PoC] properly recover from error #1348 2021-10-19 13:49:45 -04:00
nick black
a12d7a8d15
[base64_rgba3] make pixel assignments a bit clearer 2021-10-19 13:42:04 -04:00
nick black
fa3c872ae6
[grid PoC] free rgba after loading visual #1348 2021-10-18 19:31:44 -04:00
nick black
51043fc959
[putenv_term] don't dereference NULL when lacking TERM variable #1348 2021-10-18 19:29:31 -04:00
nick black
5010911a08
[tabbed PoC] kill dead stores #1348 2021-10-18 19:28:14 -04:00
nick black
b544364ab4
[sprixel] void* for auxvector 2021-10-18 19:11:51 -04:00
nick black
c2fca2392b
[compare_versions] work on empty version string 2021-10-18 19:11:35 -04:00
nick black
f71a0617f7
[fbcon_rebuild] kill dead store 2021-10-18 14:52:57 -04:00
nick black
6d31d6a89b [automaton] refresh pointers after realloc #2279
Wherever we realloc() the escnode array --
create_esctrie_node() mercifully being the sole
place this goes down -- it invalidates all existing
pointers into the array. Properly rematerialize
invalidated pointers by preserving indices around a
creation call. Closes #2279. Thanks, scan-build!
2021-10-18 14:48:52 -04:00
nick black
f4ca9abc9d
[reel PoC] ignore EvType::Release events 2021-10-17 18:42:12 -04:00
nick black
27917d12ec
add set_loglevel_from_env() #2277 2021-10-17 17:12:52 -04:00
nick black
f2eb6f736a
[outro] don't use NCBLIT_PIXEL yet 2021-10-16 23:43:11 -04:00
nick black
1369a36710
unit tests: accomodate sixel runoff 2021-10-16 23:39:27 -04:00
nick black
53b024ebac
interp PoC: accept any key to exit 2021-10-16 21:09:54 -04:00
nick black
3f3fffb7f2
ncplayer: only advance on space 2021-10-16 07:36:14 -04:00
nick black
9d4eadc64a
[kitty] clean TAM on failure #2268 2021-10-16 05:17:16 -04:00
nick black
9d002feea3 remove last instances of ncvisual_render() #1462 2021-10-16 03:39:25 -04:00
nick black
d5626e64aa xray/grid: ncvisual_blit() #1462 2021-10-16 03:39:25 -04:00
nick black
367c17a7df rotate PoCpp: ncvisual_blit() #1462 2021-10-16 03:39:25 -04:00
nick black
02303ee98e notcurses-info: ncvisual_blit, inline all emoji #1462 2021-10-16 03:39:25 -04:00
nick black
36646f1b9b pixel PoC / ncneofetch -> ncvisual_blit() #1462 2021-10-16 03:39:25 -04:00
nick black
5db0f3457b restore ncvisual_inflate(), for now 2021-10-16 03:39:25 -04:00
nick black
0afd815925 all PoCs: ncvisual_render -> ncvisual_blit #1462 2021-10-16 03:39:25 -04:00
nick black
2c8286c099 stacking tests: ncvisual_render() -> ncvisual_blit() #1462 2021-10-16 03:39:25 -04:00
nick black
f096064648 [keller] fix up for ncvisual_blit() #1462 2021-10-16 03:39:25 -04:00
nick black
e95e2fac66 ncvisual_render -> ncvisual_blit (nctetris) 2021-10-16 03:39:25 -04:00
nick black
be42ff909c ncvisual_render -> ncvisual_blit (core/test) #1462 2021-10-16 03:39:25 -04:00
nick black
eb032cc638 [windows] HANDLE, not PHANDLE 2021-10-16 02:52:37 -04:00
nick black
d26374a312
properly name Windows Terminal 2021-10-16 02:51:41 -04:00
nick black
d6a91fb99f
menu PoC: ignore NCTYPE_RELEASE 2021-10-16 02:43:36 -04:00
nick black
4fc1b4493f
stop pushing termtype to interrogate_terminfo 2021-10-16 02:32:04 -04:00
nick black
ec67847806
[ncplayer] restore pause functionality with NCTYPE_RELEASE 2021-10-16 02:03:01 -04:00
joseLuís
383edaece1 remove poc for issue #2266 2021-10-14 12:38:21 +02:00
nick black
fb2078daa6
drop textplay PoC 2021-10-14 05:12:30 -04:00
nick black
b87d8f15f7
[info] expand some emoji into proper literals 2021-10-14 03:45:05 -04:00
nick black
f05f65dc80
notcurses-demo FPS graph: back to straight seconds 2021-10-14 03:32:20 -04:00
nick black
99169aea42
tabbed janitorial work
clean up memory leak of tab names
ignore NCTYPE_RELEASE in tabbed PoC
constify strings in nctabbed_options
2021-10-14 03:26:15 -04:00
nick black
b0b4c965a5 for now, if it's on windows, it's windows terminal #2248 2021-10-14 00:12:43 -04:00
nick black
245f9f85c7
Use Windows pipes for input readiness notification (#2263)
* [windows] use CreatePipe for input #2244
* [input] read and write to Windows readiness handles #2244
* inputready_fd: not on windows, alas
2021-10-14 00:02:18 -04:00
nick black
abea3f9064
constify ncmenu_item/_section strings 2021-10-13 20:38:21 -04:00
nick black
2015e8ffc9
Constify strings in selector/mselector_items
Use internal types to track items within the
selector/mselector widgets, rather than pressing the
user-provided item structs into double-duty. With this
change, we can constify the strings within those
user-provided items. Do so, also removing the internal-side
elements. Update documentation. Closes #2267.
2021-10-13 19:19:43 -04:00
nick black
d82cc8e6f7
interp PoC: clean up ncvisual #2266 2021-10-13 11:18:49 -04:00
nick black
939d54d6a8
contour: enable sextants 2021-10-13 09:42:24 -04:00
joseLuís
b2d745834c add minimal example for #2266 2021-10-13 12:00:43 +02:00
nick black
febaff364b
[BitmapSmoothMove] only WARN in test until sixel supports this #2258 2021-10-12 07:38:39 -04:00
nick black
b8a66fed12
[heuristics] GNU screen 4x never has rgb 2021-10-12 00:57:09 -04:00
nick black
b9fa29247a
[automaton] detect GNU screen + version #2261 2021-10-11 19:05:50 -04:00
nick black
2f2f75ed49
[automaton] match vt101/vt100/vt132 explicitly #2260 2021-10-11 18:37:24 -04:00
nick black
e7e6302391
[uniblocks] don't bail on bad unicode 2021-10-11 03:39:50 -04:00
nick black
ccad129fc2 smooth pixel motion #1682 2021-10-11 03:28:34 -04:00
nick black
676b92187b [tests] tighten up movement in BitmapSmoothMove #1682 2021-10-11 03:28:34 -04:00
nick black
80d968a52e sprixel_load: diagnostic on failure 2021-10-11 03:28:34 -04:00
nick black
56fffba757 [kitty] pass pixel offsets through to sprixel_load() #1682 2021-10-11 03:28:34 -04:00
nick black
9b0bf6af23 BitmapSmoothMove unit test #1682 2021-10-11 03:28:34 -04:00
nick black
8ac0791470 [smoothpixel] check that pixel offsets are within cell geometry bounds #1682 2021-10-11 03:28:34 -04:00
nick black
b42b866189 initial support for pixel offsets
Add pixel offset fields to blitterargs in the pixel
portion of the union. Check in blitter_geom that
pixel offsets are not used with cell blitting.
Prepare the new blitterargs fields. Account for pixel
offsets when calculating cell geometry #1682.
2021-10-11 03:28:34 -04:00
nick black
40dacc3f4e
[DA1] restore comments about VT101, VT100, VT132 2021-10-11 00:19:39 -04:00
nick black
f44799e226
[automaton] require Sixel in DA1, unless it's snowflake alacritty #2257 2021-10-11 00:16:01 -04:00
nick black
39ccdbfcb6
[load_ncinput] send synthesized signal even when draining 2021-10-10 22:03:41 -04:00
nick black
66d8eab7b7
[direct_stop] call del_curterm when not on windows 2021-10-10 18:58:08 -04:00
nick black
36e9ab510d
[direct] allocate TAM when rendering images #2254 2021-10-10 18:53:48 -04:00
nick black
a20ee4c75b
[automaton] extract older XTerm versions #2252 2021-10-10 17:25:32 -04:00
nick black
4b89bf2a1a
[automaton] match old XTerm via DA2 #2252 2021-10-10 17:25:25 -04:00
nick black
f5ec1406fe
[uniblocks] fill in background in chunk 2021-10-09 11:15:15 -04:00
nick black
368d32e337
[xterm] fix DECSDM version check for xterm before 357 #2252 2021-10-09 11:11:37 -04:00
nick black
2148bcc4f2
Revert "[nckeys] move from PUA-B to 'plane 18' #2247"
This reverts commit e83f1f5ba3.
2021-10-09 11:07:26 -04:00
nick black
e83f1f5ba3
[nckeys] move from PUA-B to 'plane 18' #2247 2021-10-09 11:06:51 -04:00
nick black
4df2cab5a2 [automaton] enable 256-creg sixel when DA1 advertises feature 4 #2229 2021-10-09 09:58:28 -04:00
nick black
98884e21a6 [automaton] fold down DA1 rules, extract attrs #2229 2021-10-09 09:58:28 -04:00
nick black
69c2ae3ba0 Pop keyboard stack if we crash in initialization
if we crash while detecting kitty keyboard support, we
currently don't pop the keyboard state. since we set our
desired state before detecting support, this could leave
the terminal in an invalid state. now, we initialize
kbdlevel to UINT_MAX before detection, so that in a crash,
the pop always happens. we reset it at the end of
interrogation, assuming we didn't load it from a query
response. the downside is that a terminal which doesn't
consume this sequence will get hit with it in a crash, but
we're already crashing, so who cares? leaving the terminal
in an invalid state, however, is very annoying.
2021-10-09 09:58:28 -04:00
nick black
5b5e97033d [sprixel] unite TAM allocation/resize path #2240 2021-10-09 07:50:00 -04:00
nick black
0c7a4b3ac6 [kitty] keyboard sanity across screens
A Notcurses program might shift between the regular and
alternate screen freely. At all times, we want the Kitty
keyboard protocol to be locked in. At the same time, we
always want a screen's keyboard state at the time we start
using it preserved, and restored when we're done. Thus:

start: optionally smcup, push the state, set the state, query
leave alternate: pop state, rmcup, push state, set state
enter alternate: pop state, smcup, push state, set state
done: pop state, optionally rmcup

"set state" means both XTMODKEYS and kitty set.

Closes #2249
2021-10-09 06:38:56 -04:00
nick black
7d82b6f067 [windows] use GetConsoleScreenBufferInfo whenever we have handles 2021-10-09 03:14:47 -04:00
nick black
bee03d5b60
[terminfo] on windows init failure, print panic diagnostic 2021-10-09 02:42:52 -04:00
nick black
e8df81ebef
[windows] exit if we can't get ConsoleHandles #2244 2021-10-09 02:01:04 -04:00
nick black
7d6fdceb6e
[internal] break API/ALLOC across headers once more to fix python 2021-10-09 00:44:11 -04:00
nick black
a3ceeac170
unify definitions of API/ALLOC 2021-10-09 00:15:22 -04:00
nick black
87341111b8
[menu] ignore release events 2021-10-08 22:54:03 -04:00
nick black
e4b75f41e7
[POC] reader: always print legend 2021-10-08 20:29:57 -04:00
nick black
a85d1eebf1
[tree] ignore Release events 2021-10-08 20:24:14 -04:00
nick black
617a211581
[reel] ignore RELEASE events 2021-10-08 20:23:51 -04:00
nick black
dfdd77e2c4
[POC] selector/multiselector ignore release events 2021-10-08 19:22:40 -04:00
nick black
a206cfb700
[readline] ignore suppuables 2021-10-08 19:22:14 -04:00
nick black
e127163b91
[reader] ignore release events 2021-10-08 19:22:00 -04:00
nick black
5c801e6a93
[selector] ignore non-mouse release events 2021-10-08 19:16:38 -04:00
nick black
e17e53c99d
[notcurses-demo] ignore Release events 2021-10-08 19:11:30 -04:00
nick black
f118894057
[ncplayer] test for Release after testing for no event 2021-10-08 19:08:32 -04:00
nick black
8632a23484
[kitty] enable keyboard feature 8 2021-10-08 19:07:06 -04:00
nick black
238c444f02
[kitty] interpret modifiers, enter 2021-10-08 18:12:00 -04:00
nick black
58cc956550
[notcurses-input] detail modifiers as input 2021-10-08 18:11:37 -04:00
nick black
ef86dcce1f
[ncplayer] ignore Release events 2021-10-08 17:50:00 -04:00
nick black
07980c13df
[input] set id to -1 if returning error 2021-10-08 17:49:43 -04:00
nick black
5f82a49065
[tetris] drop Release events 2021-10-08 17:41:00 -04:00
nick black
e5f9600066
ncdirect_readline: ignore RELEASE events 2021-10-08 14:14:14 -04:00
nick black
5f9d88fa89 [tests] use universal initialization for ncvisual_options #1682 2021-10-08 01:56:22 -04:00
nick black
88e2ac14ee
[input] handle wezterm's modified functionals 2021-10-08 00:16:30 -04:00
nick black
1456422d89 use explicit CRLF where necessary on windows #2237 2021-10-07 17:43:21 -04:00
nick black
43e3b98125
[ncplayer] ignore release events 2021-10-07 04:26:05 -04:00
nick black
66d6913b69
[ncpp] express EvType enums 2021-10-07 04:04:04 -04:00
nick black
8fc2a4b59b notcurses-input: add media keys 2021-10-07 03:23:42 -04:00
nick black
d95cf30494 [kitty] extract kitty_functional(), NCKEY_BEGIN #2184 2021-10-07 03:23:42 -04:00
nick black
316c192426 [kitty] handle some more functional forms #2184 2021-10-07 03:23:42 -04:00
nick black
bc011591c1 [kitty] handle release event for f0[1-4] #2184 2021-10-07 03:23:42 -04:00
nick black
b2ed0f2da9 [kitty] handle release events for arrows #2184 2021-10-07 03:23:42 -04:00
nick black
7c5bed3732 [kitty] enable evtype level (2), functionals #2184 2021-10-07 03:23:42 -04:00
nick black
8ec6e22b7c
[ffmpeg] treat nan/-nan tbase as 0 #2241 2021-10-06 23:33:55 -04:00
nick black
28d357d252
replace constant with KKEYBOARD_POP 2021-10-06 22:13:07 -04:00
nick black
80f3d6edfb [xtmodkeys] push keyboard state before sending xtmodkeys 2021-10-06 21:53:28 -04:00
nick black
d42b3df708 Initial XTMODKEYS support #2135
Add prep_xtmodkeys() to handle modified function keys.
Unify several paths into load_ncinput(), eliminating
 several paths that missed statistics and drain checks.
Process mouse clicks outside of critical section.
Handle XTMODKEY sequences with parameter 5.
Interpret 0x8 as NCKEY_BACKSPACE on all paths.
Send XTMODKEYS of 2;1 and 4;1 #2135.
2021-10-06 21:53:28 -04:00
nick black
b9d774f746
[intro] avoid dividing by zero without cell-pixel geometry 2021-10-06 21:50:38 -04:00
nick black
c40cdc1528 [demo] find_data: work for windows path separator 2021-10-07 01:46:27 -04:00
nick black
21f38824ad
[input] set evtype on SIGWINCH 2021-10-06 18:30:53 -04:00
nick black
b6e50d3d2d
[readline] implement ctrl+a and ctrl+e #2214 2021-10-06 18:29:42 -04:00
nick black
a643f6397d
[readline] handle other arrow keys for movement in ncdirect_readline() #2214 2021-10-05 08:31:26 -04:00
nick black
e012046302
[readline] handle left arrow in ncdirect_readline #2214 2021-10-05 08:27:42 -04:00
nick black
6e66e74417
[init] use fbuf for all initial emissions #2238 2021-10-05 07:40:48 -04:00
nick black
2adda48d92
[input] extend support for kitty keyboard protocol through level 3 #2184 2021-10-05 06:35:07 -04:00
nick black
4856431ff3
[input] drop mouse events in right/bottom margins #2233 2021-10-05 05:53:08 -04:00
nick black
9502fcea80
[tcache] always track most recent cell geometry #2233 2021-10-05 05:44:39 -04:00
nick black
5a06a27df7
logging: convert some %jxen to PRIx64 2021-10-05 05:00:20 -04:00
nick black
a11a1bbfc9
logging: convert some %jxen to PRIx64 2021-10-05 04:59:20 -04:00
nick black
174c4e269f
logging: convert some %jxen to PRIx64 2021-10-05 04:55:44 -04:00
nick black
a260649628
[automaton] handle eta extension over multicharacter phi nodes #2234 2021-10-05 04:49:12 -04:00
nick black
66801aa254 ncplane_dup: don't make new root planes 2021-10-05 02:15:56 -04:00
nick black
20fb846fbc kill obsolete FIXME 2021-10-05 02:15:56 -04:00
nick black
4aab6a5bc0 reparent: scrub links more completely for safe family reparenting #2235 2021-10-05 02:15:56 -04:00
nick black
45255e48d8 [demo] handle fps graph as family in case it's pixel #2235 2021-10-05 02:15:56 -04:00
nick black
230fb801f0 [pixelplot] set distinct name for pixel plane 2021-10-05 02:15:56 -04:00
nick black
9185ea000c
add ncplane_set_name()/ncplane_name() + documentation 2021-10-04 20:46:47 -04:00
nick black
518eca2f60
move_family_{below,above}() need return int #2232 2021-10-04 13:41:14 -04:00
nick black
a2837a9754
fix unit test for ncplane_move_family() #2232 2021-10-04 05:36:53 -04:00
nick black
099eda88ac
notcurses-info: put 80 columns error in red+bold 2021-10-04 05:36:17 -04:00
nick black
a40c7a5352
FamilyBottom unit test #2232 2021-10-04 05:20:18 -04:00
nick black
e613b81b82
ncplane_move_family_{below, above}() with unit tests #2232 2021-10-04 05:16:58 -04:00
nick black
2b9765e945
finish out ncplane_move_family_{top, bottom}() #2232 2021-10-04 04:18:54 -04:00
nick black
3d21c0a91b
[input] handle backspace when expressed as ctrl expression #2231 2021-10-04 03:35:12 -04:00
nick black
6fa901c4b1
[kitty] fix default background workaround, erp 2021-10-04 02:55:32 -04:00
nick black
8dd84f922e
ncplane_move_family_{below, above}() skeleton #2232 2021-10-04 02:06:37 -04:00
nick black
57a3e79e3c
s/defbg/default background/ 2021-10-04 01:57:08 -04:00
nick black
43fc6afaa3
ncplane_move_family_{above, below}() #2232 2021-10-04 01:50:01 -04:00
nick black
c69849ffb1
track unknown background color if we can't learn it #2226 2021-10-04 01:48:50 -04:00
nick black
e42a76a2d2
Remove and replace ncplane_boundlist()
The function ncplane_boundlist() was poorly-considered,
and ought never have existed. Remove all traces of it.
Add the new functions ncplane_move_family_top() and
ncplane_move_family_bottom(). Replace the
ncplane_boundlist() code in notcurses-demo with a call
to ncplane_move_family_top(). We'll also want
ncplane_move_family_above() and ncplane_move_family_below(),
but they're not yet here. Document all z-axis movement
functions; they were lacking documentation before #2232.
2021-10-04 01:01:35 -04:00
nick black
73b3a43fc7
[notcurses-tester] dump geometry after init #2228 2021-10-03 21:39:52 -04:00
nick black
284bbd4723
notcurses-tester: print TERM earlier #2228 2021-10-03 21:35:41 -04:00
nick black
dfb32779b7 [automaton] handle BEL (0x07) as string terminator #2225 2021-10-02 23:13:13 -05:00
nick black
9c59ea5164 [automaton] move decrpm_asu_cb up #2223 2021-10-02 22:36:26 -05:00
nick black
f3377fd818
[automaton] handle XTGETTCAP, decoding MLterm and old Kitty #2225 2021-10-02 23:23:18 -04:00
nick black
f3c18b3279
[automaton] loop all the way through 9, whoops #2225 2021-10-02 23:04:13 -04:00
nick black
c5cf67e5f1
[automaton] collapse secondary device attribute strings #2227 2021-10-02 15:00:13 -04:00
nick black
fe05035930
[xray] black background, not default #2226 2021-10-02 12:45:07 -04:00
nick black
2b482109af [automaton] remove defunct fill_in_numerics 2021-10-02 12:27:49 -04:00
nick black
5d8fbc6137 [automaton] numeric insertion algorithm perfected #2222 2021-10-02 12:27:49 -04:00
nick black
686a72a697 [automaton] phase I and II of new numeric insert algorithm #2222 2021-10-02 12:27:49 -04:00
nick black
6c45a087bf build cflow following special keys #2222 2021-10-02 12:27:49 -04:00
nick black
f0fd38ef9e [windows] kill some %j conversion in ncmultiselector 2021-10-02 11:27:27 -05:00
nick black
5e07cf9015 [windows] kill %zu conversion 2021-10-02 11:26:24 -05:00
nick black
bbb778b7de
[da1_cb] admit 60 as sent by kmscon 2021-10-02 09:11:34 -04:00
nick black
af62226f69
[plots] always return -1 on x below window 2021-10-01 22:15:58 -04:00
nick black
346e7354a0
[plots] don't redraw plot when there's no change #2221 2021-10-01 21:10:47 -04:00
nick black
fff190fe29
[automaton] NAK: terminfo is not thread-safe =/ 2021-10-01 20:45:33 -04:00
nick black
2498fffbbb
[automaton] unify insertion paths into insert_path() #2183 2021-10-01 20:35:30 -04:00
nick black
ce931a1bd5
[add_cflow] s/csi/seq/g 2021-10-01 20:03:33 -04:00
nick black
57179a1c38 [automaton] pool needn't be so large, methinks 2021-10-01 19:34:49 -04:00
nick black
57e5981b9d [automaton] kill memory leak via arena 2021-10-01 19:34:49 -04:00
nick black
9fc4418912 [automaton] match follow for mouse events 2021-10-01 19:34:49 -04:00
nick black
49365e2d22 decrpm_asu_cb: correct follow 2021-10-01 19:34:49 -04:00
nick black
1442b35fb5 [input] enable prep_special_keys() once more 2021-10-01 19:34:49 -04:00
nick black
f19ffddb40 [automaton] robustify/minimize string matches #2219 2021-10-01 19:34:49 -04:00
nick black
0749800a9d [automaton] better numeric matching #2219 2021-10-01 19:34:49 -04:00
nick black
21cd23d767
logging: replace some llx with PRIx64 2021-10-01 12:35:05 -04:00
nick black
f816365aab clean up some compiler warnings on macOS 2021-10-01 11:32:38 -05:00
nick black
b5c161a07c
Unify control sequence automata #2183 (#2208)
Unify the dynamic, dataflow special keys automaton and the static, codeflow terminal response automaton, yielding a single automaton. Add kitty keyboard support information to `notcurses-info`. Closes #2183.
2021-09-30 05:08:19 -04:00
nick black
05635aa60d [input] windows: don't try to make a pipe 2021-09-29 18:38:04 -04:00
nick black
f6b06c3bfd [input] drain input readiness pipe on clearing input buffer #2216 2021-09-29 18:38:04 -04:00
nick black
81e360e500 [input] activate ready pipes upon producing input data #2216 2021-09-29 18:38:04 -04:00
nick black
5899a71e28 [input] create ready pipes #2216 2021-09-29 18:38:04 -04:00
nick black
9970238514
notcurses-input: fix plot width to legend 2021-09-28 07:36:13 -04:00
nick black
47bffea4ab extract out tiocgwinsz() #2141 2021-09-28 04:30:38 -04:00
nick black
b19c9a7ad1
[ncdirect_readline] return NULL on NCKEY_EOF sans input #2211 2021-09-28 01:59:18 -04:00
nick black
436f24c770
Remove libreadline support, implement low-level ncdirect_readline #2211 (#2212)
It was realized that our libreadline wrapper was incompatible with the new input method, indeed fundamentally so. Rip out all libreadline support. Implement a minimal ncdirect_readline() -- quite minimal, but enough to get by. We'll want to fill this out later.

So no ABI/API breakage, though perhaps some visible behavioral change.
2021-09-28 01:37:44 -04:00
nick black
3ddbb3c2ec
readline PoC 2021-09-27 22:32:19 -04:00
initramfs
671656ea80 fix ncpp throwing heap allocated exceptions 2021-09-27 17:34:22 -04:00
nick black
925fccbbc3
setup_sixel_bitmaps(): update comment re DECSDM #2205 2021-09-26 10:19:47 -04:00
nick black
61c700aafc
notcurses_stop: put newline into fbuf 2021-09-26 09:43:57 -04:00
nick black
580727f9ae
init_sixel: correct comment #2205 2021-09-26 09:39:57 -04:00
nick black
c8f614ae19
sixel_init_inverted: correct comment #2205 2021-09-26 09:37:13 -04:00
nick black
3136abca48
[sixel] don't use the short form of 80+8452; contour barfs 2021-09-26 08:24:02 -04:00
nick black
c5ab28acbd
[termdesc] contour still has classic DECSDM 2021-09-26 07:29:53 -04:00
nick black
2239e1c7fc
[intro] don't require pixels for orca 2021-09-26 07:18:52 -04:00
nick black
8585c0a8a9 [subprocs] use posix_spawn in place of fork+exec #2194 2021-09-26 07:05:19 -04:00
nick black
9d7fb54535 replace ncsubproc_createvpe() with ncexecvpe() #2194 2021-09-26 04:56:06 -04:00
nick black
5553919579 [subprocs] factor out ncexecvpe() #2194 2021-09-26 04:56:06 -04:00
nick black
a5397ea19a [subproc] kill FIXME; set pipes O_CLOEXEC manually in absence of pipe2() 2021-09-26 04:56:06 -04:00
nick black
3c7d23b151 [compat] add set_fd_cloexec() 2021-09-26 04:56:06 -04:00
nick black
4da93eae5d
kill FIXME: detect whether linesigs are enabled on startup 2021-09-26 00:11:33 -04:00
nick black
58f650f0c1 drop mlterm inversion for DECSDM 2021-09-25 22:56:47 -04:00
nick black
0b62a89834 Invert interpretation of DECSDM #2204
more and more terminals are switching their
interpretation of DECSDM to match the actual VT340
behavior, rather than that of XTerm prior to
patchlevel 369. start using \e[?80l by default to
turn DECSDM on. track terminalsXversions which
use the previous behavior, and for them, emit 80h.
continue to always send 8452h, on which i have
no data suggesting anything but one interpretation.
remove pixel_shutdown. note that Alacritty switched
over to the new semantics in 0.15.1.
2021-09-25 22:56:47 -04:00
nick black
9f2eb07ce6 make pixel implementation choice clearer
We were using the value of pixel_shutdown to decide
whether we needed to take a kitty-specific path or
not. Instead, just use the pixel_implementation field
of tinfo, which was added a few weeks back.
2021-09-25 22:56:47 -04:00
nick black
6985d9a715 drop tinfo argument from pixel_init() 2021-09-25 22:56:47 -04:00
nick black
556039eb73
compare_versions: work for multidigit version components 2021-09-25 12:47:56 -04:00
joseLuís
fb003c4eef fix doc-comment on ncplane_erase_region
and another minor typo
2021-09-24 20:01:20 +02:00
joseLuís
2141338e4c revert stylemask return types #2200 2021-09-23 19:32:36 +02:00
joseLuís
1811e3b0ef fix stylemask return types #2200 2021-09-23 16:01:25 +02:00
joseLuís
d55a44ef4b make ncdirect_styles require const reference 2021-09-23 14:44:07 +02:00
nick black
0918fa251e
XTerm 359+ uses correct DECSDM #1782 2021-09-23 06:14:51 -04:00
nick black
eee94d8e40
mintty switches DECSDM in 3.5.2 #1782 2021-09-22 19:44:19 -04:00
nick black
f42a563367
[input] no transitions >= 0x80 2021-09-22 18:18:22 -04:00
magiblot
7fd93b5977 ncwidth: fix heap overrun 2021-09-22 11:59:20 -04:00
nick black
828c06ffde ncplane_erase_region: unit tests 2021-09-21 18:32:39 -04:00
nick black
8a0d924baf ncplane_erase_region(): protect against overflow 2021-09-21 18:32:39 -04:00
nick black
0c41b3ddc5 grid: cli-style 2021-09-21 18:32:39 -04:00
nick black
69e58667c7 [bitmapstates] properly use ncplane_erase_region() 2021-09-21 18:32:39 -04:00
nick black
ad2b806444 add grid PoC 2021-09-21 18:32:39 -04:00
nick black
e770dbff43 ncplane_erase_regions: generalize harder #2181 2021-09-21 18:32:39 -04:00
nick black
72757044da [ncplane_erase_region] generalize #2181 2021-09-21 18:32:39 -04:00
nick black
9733835673
ncplane_erase_region: grotesque copy-and-paste bug =[ 2021-09-20 21:32:16 -04:00
nick black
0fef97c1fb ncneofetch: no scaling when using NCBLIT_PIXEL 2021-09-20 06:22:27 -05:00
nick black
d8c1a67b81
[input] don't tear down input layer on windows for now #2192 2021-09-20 07:01:38 -04:00
nick black
257ec21671
[windows] use WaitForSingleObject 2021-09-20 05:17:42 -04:00
nick black
92f4dce595
use wcsrtombs() in place of wcstombs() 2021-09-20 05:04:25 -04:00
nick black
5412adef4d
[input] set rifd high on WAIT_OBJECT_0 #2192 2021-09-20 04:38:44 -04:00
nick black
690ed75c8f
[input] initialize stdinhandle on windows #2192 2021-09-20 04:33:41 -04:00
nick black
7c197fba59
remove obsolete FIXME 2021-09-20 04:00:57 -04:00
nick black
675a4ac63c
we're using kitty keyboard level 1, not 31 2021-09-20 03:40:35 -04:00