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
nick black
0bf192f4c1
sync sixel_draw/kitty_redraw #2189
2021-09-20 02:17:06 -04:00
nick black
e983c83d4e
[input] mask SIGTHR where defined #2191
2021-09-20 02:13:22 -03:00
nick black
343a74ac82
[ncneofetch] don't move logo to left #2138
2021-09-19 23:45:15 -04:00
nick black
e9891bc555
[interp] drop unused variable 'id'
2021-09-19 21:51:49 -05:00
nick black
37fb92dba3
interp PoC: don't use NCOPTION_DRAIN_INPUT
2021-09-19 21:51:05 -05:00
nick black
5c82d5b849
[input] properly convert delaybounds to deadlines
2021-09-19 22:44:10 -04:00
nick black
82a2f19d67
[input] account input events on receive side only
2021-09-19 22:18:37 -04:00
nick black
3faf8ee3fb
[input] introduce NCKEY_EOF #2185
2021-09-19 22:16:31 -04:00
nick black
ea5da346f0
Add keytype indicator to notcurses-input #2182
2021-09-19 21:01:40 -04:00
nick black
99007e128c
[input] add evtype to ncinput, for press/repeat/release #2182
2021-09-19 20:13:02 -04:00
nick black
b0c4a3af97
direct_dump_cellplane: position all lines according to xoff
2021-09-19 18:16:21 -04:00
nick black
0de21824cc
[input] return error once we've emptied ibuf and hit stdineof
2021-09-18 13:05:28 -04:00
nick black
da6fc8420d
[input] consider a drop to be an input_error
2021-09-18 12:42:36 -04:00
nick black
70997670a5
[sprixel_redraw] want the offset, not absolute position #2168
2021-09-18 12:41:37 -04:00
nick black
6849ed9da7
[input] windows fixes
2021-09-18 12:07:02 -04:00
nick black
bea71b99dd
kill debugging cruft
2021-09-18 11:21:04 -04:00
nick black
d36591b01b
[input] handle mouse release, implement stdineof, w00t!
2021-09-18 11:21:04 -04:00
nick black
60ee94b4ca
pump_control_read: return 2 following XTSMGRAPHICS #2174
2021-09-18 11:21:04 -04:00
nick black
e12aceccce
[input] break up events #2174
2021-09-18 11:21:04 -04:00
nick black
24eac43f4f
interrogate_terminfo: allow for NULL termtype
2021-09-18 11:21:04 -04:00
nick black
8f4fa30e7b
[input] replay non-escapes as regular text #2100
2021-09-18 11:21:04 -04:00
nick black
fe34e797a3
[input] more precise utf8 matching
2021-09-18 11:21:04 -04:00
nick black
00f8246bf9
direct_raster: drop unnecessary flush
2021-09-18 11:21:04 -04:00
nick black
811f9334d1
A melange of fixen ( #2179 )
...
* split up ncdirect_dump_{sprixel, cellplane}()
* build ncdirect_dump_cellplane() out of fbuf #2167
* [macos] don't run pandoc in workflow
* [gpm] account for margins in mouse reports
* [in] drop mouse clicks from top/left margins
* [ffmpeg] compile against avformat 59+ w/out warnings
2021-09-18 02:19:09 -04:00
nick black
875b3a56de
direct PoC: remove unnecssary fflush()es
2021-09-17 22:06:34 -05:00
nick black
e6ca5ebd5e
build ncdirect_dump_cellplane() out of fbuf #2167
2021-09-17 20:52:48 -04:00
nick black
8c12ca0c06
split up ncdirect_dump_{sprixel, cellplane}()
2021-09-17 20:52:48 -04:00
nick black
c0f432f99b
setup_signals: block SIGWINCH/SIGCONT for the calling thread #2175
2021-09-17 19:13:51 -04:00
nick black
a6d0a7e2cd
[input] support calling notcures_get() with a NULL ncinput
2021-09-17 19:13:51 -04:00
nick black
5eed1abe8e
notcurses_get: restore old delaybound behavior #2169
2021-09-17 15:46:08 -04:00
nick black
aa6b9486c9
pthread_cond_timedwait() directly returns errno #2169
2021-09-16 17:07:34 -04:00
nick black
8c0d32d986
fix windows build
2021-09-16 07:17:58 -04:00
nick black
1689365b6c
PixelWipe unit test: fix for sixel-based terminals
2021-09-16 06:29:01 -04:00
nick black
b2b9655d6f
don't try to run xrandr on XNU/Windows
2021-09-16 03:27:17 -05:00
nick black
0686a1c390
[input] signal when making space in output buffer
2021-09-16 04:12:46 -04:00
nick black
24c194df1b
[process_bulk] walk the buffer
2021-09-16 02:15:11 -04:00
nick black
78eeaf55ea
Merge branch 'master' into dankamongmen/input-thread
2021-09-16 02:06:56 -04:00
nick black
686aac4689
[input] pthread_cond_wait when no timeout
2021-09-16 02:06:41 -04:00
nick black
1d4c62d446
[input] implement timeouts
2021-09-16 02:03:00 -04:00
nick black
edb9eff34b
[input] serialize terminfo lookups ugh
2021-09-16 01:45:34 -04:00
nick black
81e2fd1351
[input] track linesigs status
2021-09-16 01:39:10 -04:00
nick black
9edd0c7849
[input] load specials from terminfo, except on windows
2021-09-16 01:24:41 -04:00
nick black
3d02a75323
NCOPTION_DRAIN_INPUT in notcurses-info and ncneofetch
2021-09-16 01:11:59 -04:00
nick black
a3ed82ccff
honor NCOPTION_DRAIN_INPUT
2021-09-16 01:07:19 -04:00
nick black
716a37f917
[input] walk specials automaton
2021-09-16 00:10:53 -04:00
nick black
5a64f25ac2
restripe_lastframe: properly index into tmp/lastframe
2021-09-16 00:07:47 -04:00
nick black
bfdd5dd01d
notcurses_input: need lock around refresh()
2021-09-16 00:03:57 -04:00
nick black
fd5708a7cd
unicode 14.0!
2021-09-14 20:00:41 -04:00
nick black
8f900754d5
[input] synthesize SIGINT/SIGQUIT
2021-09-14 19:32:41 -04:00
nick black
c31f20b602
[input] remap 0x7f to NCKEY_BACKSPACE
2021-09-14 19:23:08 -04:00
nick black
c3545a4b40
process_ncinput: fix ictx->isize check
2021-09-14 19:15:30 -04:00
nick black
37cb5adb87
[input] add constant specials to trie
2021-09-14 09:36:19 -04:00
nick black
315edacf08
[input] handle unicode-encoded mouse events
2021-09-14 08:33:18 -04:00
nick black
22f421657d
fix up windows block_on_input()
2021-09-14 06:22:35 -04:00
nick black
9e9a949f0f
[direct] move to new cursor location reports
2021-09-14 06:13:54 -04:00
nick black
6f0ddd8c15
[input] handle multibyte utf8
2021-09-14 05:43:21 -04:00
nick black
1fe5cc9555
[input] build kitty protocol into new input automaton
2021-09-14 05:29:50 -04:00
nick black
7159913530
[input] kill unnecessary state CURSOR_OR_PIXELGEOM
2021-09-14 04:26:27 -04:00
nick black
0dd41f0e79
[input] hand ncinputs back to calling client
2021-09-14 04:15:20 -04:00
nick black
5f00466b38
protect initdata, notcurses_getvec()
2021-09-14 03:50:19 -04:00
nick black
1630a1629f
merge that shit
2021-09-14 03:41:46 -04:00
nick black
3cf5a67b84
input thread #2136
2021-09-14 03:34:53 -04:00
nick black
55c7cc356d
[resize] carefully copy over reuseable parts of lastframe #2165
2021-09-14 03:18:35 -04:00
nick black
39025dd053
eliminate kitty graphics one-off enum type
2021-09-14 00:29:54 -04:00
nick black
20edd5a3cd
purge deprecated cell typedef
2021-09-13 15:30:47 -04:00
nick black
0213e026b2
allow users to set the stdplane's resizecb
...
Hardcode a call to ncplane_resize_maximize() in
notcurses_resize_internal() for the standard plane,
when handling the standard pile. allow the user
to set the standard plane's resize callback beyond
that. closes #2163 .
2021-09-13 13:04:38 -04:00
nick black
76b1ea9842
[kitty] fix 1st gen animation
...
Much as we needed to do in the accounting core for
kitty animation, whether we blitted a sprixcell of
alpha nulls or instead wiped it affects how we
rebuild under KITTY_ANIMATION, which right now is
all Kitty >= 0.20.0 since KITTY_SELFREF is disabled.
This gets KITTY_ANIMATION working perfectly on
bitmapstates. I've accomplished this by stashing a
bool onto the end of each KITTY_ANIMATION-style
auxvector, set high if it originated in a reblit's
null alphas, and low if it was zorched by a wipe.
Set {c, r} arguments to animation directive based
on whether this is set. See #2161 .
2021-09-13 03:05:08 -04:00
nick black
4789aca20f
notcurses.h: remove some more deprecated static inlines
2021-09-13 01:38:30 -04:00
nick black
4e1897c1c0
[kitty] KITTY_ANIMATED rebuild fix #2161
2021-09-12 21:25:10 -04:00
nick black
79610b2efa
more work on input thread
2021-09-12 03:12:07 -04:00
nick black
e54661f425
initialize and shutdown the new input layer from termdesc.c
2021-09-12 03:12:06 -04:00
nick black
b65f7b5e10
[input] tear down thread
2021-09-12 03:12:06 -04:00
nick black
613b2f9d31
extract cancel_and_join() helper
2021-09-12 03:12:06 -04:00
nick black
ff6066ba33
space_for_read(), read_input_nblock()
2021-09-12 03:12:06 -04:00
nick black
b6e5a815a3
[inputthread] scaffolding
2021-09-12 03:12:06 -04:00
nick black
eb70aeed90
start in on input thread
2021-09-12 03:12:06 -04:00
nick black
4ec1bfd8be
[info] differentiate between kitty animation and kitty selfref #2161
2021-09-12 02:17:29 -04:00
nick black
6612d1b149
[kitty] disable KITTY_SELFREF for now #2161
2021-09-12 01:58:29 -04:00
nick black
bd6d0e28fb
[kitty] unite kitty_wipe_animation and kitty_wipe_selfref #2161
2021-09-12 01:58:13 -04:00
nick black
9cc04ea259
[demo] use DETECTMAXONLY for fps graph #2152
2021-09-12 00:09:11 -04:00
nick black
9ec41fe123
[plots] fix NCPLOT_OPTION_DETECTMAXONLY #2152
2021-09-12 00:08:09 -04:00
nick black
88f40df4ae
[plots] print current sample as summary #2152
2021-09-11 23:28:50 -04:00
nick black
fb8b6bfcae
[kitty] multiframe annihilation transitivity
...
When using the reflexive composition extension to the
Kitty graphics protocol, we refer to the previously-
blitted image to rebuild cells, and thus don't have to
keep a copy of the image ourselves. We just blit null-
alpha cells to wipe, and then execute a reflective
composition to rebuild. The auxvector is a single word,
holding the state we were in before the wipe, since we
don't have a copy of the image to look at to determine
the state afresh (and caching it is more efficient
anyway). Good, good.
Except. When we reload the plane, we want to carry over
those wipe cells, yes? I.e. if there was a plane above
the graphic before, and we replace the graphic, that
plane still better be above it. And that means editing
the cell out of the new graphic that we blit up, on the
fly. Which we were doing. Problem is, if we later need
to rebuild that cell, and we reflexively compose using
this new image, *we reflexively compose the edited-out
cell*, and thus remain wiped (our RGB values get set
properly, but we have all 0 alphas). No good!
So instead, in KITTY_SELFREF (the most advanced kitty
implementation, corresponding to reflexive composition),
do a pass at the end and send AAAAA wipes for any
ANNIHILATED{_TRANS} sprixcells. We don't present until
both have hit (since we're using a new image ID), so
there's no flicker, though there is some bandwidth cost.
That handles rebuilding. Problem is, if we then need to
wipe these same sprixcells *again*, our auxvecs were
set to ANNIHILATED{_TRANS}, and thus no wipe takes place.
Rather than blindly propagating the auxvec across the
frames, properly reset the auxvec according to the new
blit. This handles wiping post rebuild, closing the cycle.
Kitty 0.22.0+ now runs the bitmapstates PoC perfectly.
Closes #2143 . woo-hah!
2021-09-11 00:41:23 -04:00
nick black
86ea9d00d0
sprixel_debug: don't perform overeager invalid decoding
2021-09-11 00:41:23 -04:00
nick black
4a6e45adb6
kitty_wipe_selfref: update auxvec with state #2143
2021-09-10 05:54:02 -04:00
nick black
e70302416e
[ncneofetch] try using sysctlbyname() on bsd for totalram
2021-09-10 04:13:10 -03:00
nick black
128c35dc69
[ncneofetch] get total RAM on apple
2021-09-10 02:02:52 -05:00
nick black
51de081616
[ncneofetch] don't go just printing NULLs
2021-09-10 01:52:37 -05:00
nick black
7e6442077b
[input] ctrl+ capitalizes ASCII, reflect when synthesizing signals
2021-09-10 01:50:23 -05:00
nick black
e7fe2d2ffd
[ncneofetch] kill 'KERNEL_XNU unhandled' warning
2021-09-10 02:35:44 -04:00
nick black
5734444d49
ncneofetch: use kern.osproductversion sysctl for macOS version #2158
2021-09-10 01:32:55 -05:00
nick black
54cf38b076
add ncstrwidth_valid() and documentation #2153
2021-09-10 01:28:27 -04:00
nick black
831a65aa7c
[kitty] move cursor prior to positioning command, closes #2155
2021-09-09 00:00:42 -04:00
nick black
956a2b03ec
[sprite] remove old debugging cruft
2021-09-08 07:30:41 -04:00
nick black
d899c5c9d3
notcurses_stop: free rstate fbuf
2021-09-08 07:30:05 -04:00
nick black
2a04effbca
[kitty] reset fbuf prior to init for animation #2150
2021-09-08 07:29:22 -04:00
nick black
762d382ba7
[ncplayer] s/getc/get/
2021-09-08 04:24:19 -04:00
nick black
3610ce26d6
[ncplayer] nonblocking input check even when behind clockwise
2021-09-08 04:12:52 -04:00
nick black
42179890c0
ncplane_mergedown: don't pass unsafe NULL for sprixelstack
2021-09-08 04:05:44 -04:00
nick black
1018a9d78d
[ncvisual_from_plane] kill two dead stores
2021-09-08 04:04:25 -04:00
nick black
0d948dcbf4
[plots] call destructors on error paths
2021-09-08 03:50:55 -04:00
nick black
5527fabdf5
[input] initialize ncinput all the way through
2021-09-08 03:47:16 -04:00
nick black
36825374b9
[shutdown] ensure kitty pop goes to tty
...
In notcurses_stop_minimal(), we need to send most of
our resets prior to sending rmcup. rmcup and the kitty
pop, furthermore, need to be going to the ttyfd to match
their opposites. They were previously going to stdout,
meaning the kitty pop wasn't acted on when we redirected
stdout. Closes #2149 .
2021-09-06 12:27:21 -04:00
nick black
b74b23ad7c
handle kitty's augmented backspace
2021-09-06 11:53:12 -04:00
nick black
d82a30cf97
[sixel] finish opaque side of update_rmatrix #2133
2021-09-06 04:58:22 -04:00
nick black
c24a31d49d
[sixel] update_rmatrix() logic for transparency side #2133
2021-09-06 04:58:22 -04:00
nick black
a406a5f8ef
introduce pixel_refresh #2133
2021-09-06 04:58:22 -04:00
nick black
4dc6b7e826
[plots] kill bogon duplicate plot plane #2133
2021-09-06 03:10:15 -04:00
nick black
953243971d
sprite_draw: properly place bound planes
2021-09-06 02:17:19 -04:00
nick black
16dc202362
[intro] don't fail out on unicode failures
2021-09-06 00:10:41 -04:00
nick black
270572c477
[egcpool] make it safe for c++ callers
2021-09-05 23:58:42 -04:00
nick black
fac2cd7045
[notcurses-input] fix for non-pixel terminals
2021-09-05 23:54:14 -04:00
nick black
d941a012c4
[render] on pile change, move to UNSEEN, not INVALIDATED
2021-09-05 21:36:05 -04:00
nick black
cb039eafdf
restore termios settings before calling rmcup
2021-09-05 20:22:44 -04:00
nick black
a299c3226d
[direct] pop kitty keyboard state to ttyfd #2145
2021-09-05 20:22:18 -04:00
nick black
1c72516c06
[direct] finalize fbuf on exit
2021-09-05 20:17:14 -04:00
nick black
61ee8b8668
sprixel: damage only on sprite_wipe() failure
2021-09-05 19:49:17 -04:00
nick black
1827a7d58d
[sixel] correctly invalidate on wipe #2142
2021-09-05 18:31:38 -04:00
nick black
882664b6c9
notcurses-input: use max sixelgeom as limiter on plot width #2140
2021-09-05 17:10:22 -04:00
nick black
ac5efd529d
[initbanner] properly clreol, ugh
2021-09-05 16:40:38 -04:00
nick black
ca3635c28d
render: sanity when we hit an undamaged cell when debugging #2133
2021-09-05 16:04:13 -04:00
nick black
d07221ecac
closing banner: clear lines #2134
2021-09-04 19:23:20 -04:00
nick black
83bb816c15
clear to end of line in init banner, if el is available #2134
2021-09-04 19:19:55 -04:00
nick black
108012950e
notcurses-info: indicate that el capability is present
2021-09-04 19:07:09 -04:00
nick black
335f47afe8
extract banner code into banner.{ch} #2134
2021-09-04 18:59:45 -04:00
nick black
0be7412376
only synthesize signals on non-windows #2131
2021-09-04 18:17:07 -04:00
nick black
2268328b3d
synthesize SIG{INT, TSTP, QUIT} for appropriate ctrls #2131
2021-09-04 18:00:34 -04:00
nick black
1ace0139ff
mention kitty keyboard protocol support #2131
2021-09-04 17:39:04 -04:00
nick black
f44d5bb97b
[input] close off the kitty specials list #2131
2021-09-04 17:39:04 -04:00
nick black
e1b84d6c41
handle legacy function key encodings #2131
2021-09-04 17:39:04 -04:00
nick black
c340a5b6b0
always add windows special keys #2131
2021-09-04 17:39:04 -04:00
nick black
25afdd8ab6
[kitty] handle level 1 of keyboard protocol #2131
2021-09-04 17:39:04 -04:00
nick black
e1a1ac3497
eliminate double-free of tpreserved
2021-09-03 09:45:08 -04:00
nick black
e968b3972c
fills unit test: require nccell_strdup() success
2021-09-03 05:37:32 -04:00
nick black
39f9dd3b96
kill fbuf_at(), eliminating static analyzer warning #1348
2021-09-03 05:23:37 -04:00
nick black
cd14e914fa
render: eliminate dead stores
2021-09-03 05:23:37 -04:00
nick black
2e1ccdce15
interrogate_terminfo: avoid double-free on error path
2021-09-03 05:23:34 -04:00
nick black
42d1722ec7
reel: protect against NULL bottom plane
2021-09-03 05:22:27 -04:00
nick black
d03051d154
notcurses_core_init: kill memory leak on error path
2021-09-03 05:22:27 -04:00
nick black
429485551a
[ncdirect] postition cursor after blitting image #2059
2021-09-02 20:10:23 -04:00
nick black
6ba5a98a7c
ncdirect_dump_plane: manually scroll before emitting plane #2059
2021-09-02 20:10:23 -04:00
nick black
823e79416b
[input] simplify startup automaton, unpop csi inputs
2021-09-02 17:55:55 -04:00
nick black
582e7b24c5
complete initial libgpm support #1405
2021-09-01 20:03:42 -04:00
nick black
1463049d32
add ncinput_shovel for GPM #1405
2021-09-01 19:40:51 -04:00
nick black
e245fa0fb2
block_on_input: mintty ought fall through to poll
2021-09-01 19:02:25 -04:00
nick black
009530c0cf
properly read cursor report from infd #2130
2021-09-01 03:03:37 -04:00
nick black
ccd2068ee3
calculate pixel-cell geometry from responses
2021-09-01 02:24:34 -04:00
nick black
fcd845c99a
[windows] kill compiler warning
2021-08-31 22:17:10 -04:00
nick black
71f491ad23
sixel_scrub: don't persist sixel override across loop #2106
2021-08-31 19:46:56 -04:00
nick black
0ee5ba4ffe
only use tpreserved when it's not NULL #2132
2021-08-31 15:51:45 -04:00
nick black
0fd2fe7ce1
restore terminal settings on interrogate_terminfo() failure #2132
2021-08-31 15:49:56 -04:00
nick black
556c448ee6
clean_sprixels: drop unnecessary cursor move
2021-08-31 15:00:55 -04:00
nick black
ea75d9355c
[render] adjust bitmaps for scrolling
...
If a sprixel is in SPRIXEL_MOVED, check to see whether
it's the same x position as it was before, and whether
it's moved up a number of rows equal to the number of
scrolls. If that is the case, take the sprixel to
SPRIXEL_QUIESCENT rather than actually redrawing. This
both saves us a blit, and properly aligns bitmaps when
sixels scroll. Closes #2110 .
2021-08-30 22:00:04 -04:00
nick black
ae1121402d
ncneofetch: accept -v
2021-08-30 19:54:52 -04:00
nick black
1b3c580a23
gpm: only use DRAG, DOWN, and UP, not MOVE #1405
2021-08-30 00:00:44 -04:00
nick black
9df967289f
decode GPM events
2021-08-30 00:00:44 -04:00
nick black
d7c74b8fda
multiselect PoC: NCLOGLEVEL_ERROR
2021-08-30 00:00:44 -04:00
nick black
b6844ca214
notcurss-input: NCLOGLEVEL_ERROR
2021-08-30 00:00:44 -04:00
nick black
cd7b4c021d
gpm: add version to banner, launch thread #1405
2021-08-30 00:00:44 -04:00
nick black
88ed5a48ab
[linux] don't close fb fd before font change #2108
2021-08-29 21:10:14 -04:00
nick black
22386f3154
[linux] blit fb copy back after font change
...
After reprogramming the Linux console font, remap
the framebuffer. Verify that the size and geometry
match the copy we made beforehand, and assuming
they do, blit the copy back into the framebuffer.
This allows us to reprogram the console font while
maintaining any graphics present. Closes #2108 .
2021-08-29 21:10:14 -04:00
nick black
6a6b9ad3b8
[linux] move fbdup code into linux.c #2108
2021-08-29 21:10:14 -04:00
nick black
b8e9b235ea
[linux] add copy_and_close_linux_fb #2108
2021-08-29 21:10:14 -04:00
nick black
4bcd773569
[linux] reprogram font before mapping framebuffer
...
You can't reprogram the Linux console font while holding
a map of the framebuffer, annoyingly. Move the attempt to
reprogram the fonts prior to the acquisition of the
framebuffer. The problem with this is that it clears the
framebuffer, so we're going to need to get a copy of it
beforehand, which we will reblit afterwards #2108 .
2021-08-29 18:47:22 -04:00
nick black
38495fd00b
[linux] track halfblocks distinctly from quads wrt font #2121
2021-08-29 18:37:56 -04:00
nick black
e49891100a
mintty has bce
2021-08-29 00:55:28 -04:00
nick black
333c614120
ncneofetch: drop ending newline
2021-08-28 22:35:47 -04:00
nick black
8802bf115e
Windows Terminal lacks smulx, but MinTTY has it
2021-08-28 20:12:30 -04:00
nick black
d7d18dcb64
Windows: GetUserNameExA(NameSamCompatible), correct test
2021-08-28 20:08:42 -04:00
nick black
83744f17bb
Windows: on cygwin/msys2, use regular cursor lookup #2098
2021-08-28 19:37:48 -04:00
nick black
8097b937c0
Windows: introduce tty_check() wrapper for isatty() #2098
2021-08-28 19:37:48 -04:00
nick black
2732620821
stop_minimal: use TCSAFLUSH to stop responses from emerging
2021-08-28 19:29:42 -04:00
nick black
0a959617c6
detect MinTTY with XTVERSION #2115
2021-08-28 19:22:22 -04:00
nick black
eaa67c1974
throw a diagnostic before blocking_write()
2021-08-28 19:18:52 -04:00
nick black
a5dc162a29
send cell geometry query in initial handshake, use result #2098
2021-08-28 18:09:25 -04:00
nick black
84b72e1e6b
lookup_blitset: handle exclusive plotter blitters #2113
2021-08-28 03:00:49 -04:00
nick black
54c1d3bbae
notcurses-input: move legend to bottom row
...
We don't want to possibly draw an NCBLIT_PIXEL plot
over the bottom row, lest we incur undesirable
scrolling. Instead, move the legend from the top row
to the bottom row, and the plot one row above it.
2021-08-28 02:59:30 -04:00
nick black
14533c4e73
linux console: no halfblocks unless we bring 'em #2109
2021-08-28 02:43:13 -04:00
nick black
ff12a1f75b
distinguish between halfblock and quadrant capabilities #2109
2021-08-28 02:39:25 -04:00
nick black
c2616c6cbb
Unit tests for bitmap wandering offscreen to the left and right #1646
2021-08-28 02:11:08 -04:00
nick black
7ad34fc282
sixel: knock out memory leak when replacing annihilated sprixcells #2104
2021-08-28 01:57:20 -04:00
nick black
fad79035e7
gpm: stash connect fd
2021-08-26 18:31:16 -04:00
nick black
bdc593a8ff
fbcon: properly use fbuf
2021-08-26 18:31:16 -04:00
nick black
b13ecb31f9
notcurses-info: show whether we're using gpm
2021-08-26 18:31:16 -04:00
nick black
919a549367
libgpm: keep the fd around #1405
2021-08-26 18:31:16 -04:00
nick black
28bc8411b5
sixel: free sixelmap on recycle #2104
2021-08-26 08:29:04 -04:00
nick black
06351d5a39
windows: s/65001/CP_UTF8
2021-08-26 06:05:03 -04:00
nick black
652b617ec7
Windows: handle hardcoded special key sequences #2097
2021-08-26 06:00:43 -04:00
nick black
e0cef88494
macos: satisfy all need for clock_nanosleep()
2021-08-26 05:19:25 -04:00
nick black
36d7b1ce4b
notcurses-demo: kill invalid cast in summary table
2021-08-26 05:12:23 -04:00
nick black
2620588a47
macos: statepixel does need compat.c
2021-08-26 05:04:54 -04:00
nick black
e35d37e6d1
Windows: need to add ccc/initc
2021-08-26 08:59:20 -04:00
nick black
3abeb81cb8
propagate early cursor report through interrogation #2094
2021-08-26 08:57:05 -04:00
nick black
83976d7fd1
extract_clrs: drop redundant nilayer param
2021-08-26 04:37:35 -04:00
nick black
ae3ada45f3
Windows: use cached inhandle in block_on_input
2021-08-26 08:34:29 -04:00
nick black
1ac2a3c8c8
Windows: invert smkx/rmkx #2097
2021-08-26 08:33:53 -04:00
nick black
35fbb74ed9
Windows: GetConsoleScreenBufferInfo() for cursor location #2094
2021-08-26 08:08:02 -04:00
nick black
db5b3e062c
windows: hack together cursor location report in direct mode #2094
2021-08-26 07:36:53 -04:00
nick black
3e29d3f182
Windows Terminal: define cu[udbf]
2021-08-26 07:35:48 -04:00
nick black
e5207c78c2
windows terminal: disable quads/braille
2021-08-26 06:50:59 -04:00