2189 Commits

Author SHA1 Message Date
Mitchell Hashimoto
9c165ecbd2 terminal: clamp cursor left above scroll region with XTREVWRAP2
Fixes a crash found through fuzzing. This crash is also exhibited in
xterm (as of v384). The issue arises when you set the cursor above the top
scroll margin, then issue a large cursor left (CSI D) with extended reverse
wrap (?1045) set. Extended reverse wrap loops back until it reaches the top
scroll then wraps around. But since the cursor is before the top scroll,
xterm just arbitrarily moves back into negative row numbers, which reads into
bad memory.

We decided to fix this by clamping to (0,0) and exiting because this
will mimic the xterm behavior for valid values of cursor left count
(prior to crashing).
2023-10-26 22:38:33 -07:00
Mitchell Hashimoto
63854cbd3a config: default inspector keybind to same as chromium 2023-10-26 14:43:09 -07:00
Mitchell Hashimoto
5d062947da core: check for inspector activity before recording event
Fixes #732
2023-10-26 14:40:25 -07:00
Mitchell Hashimoto
28aace4393 Merge pull request #728 from mitchellh/cimgui
Terminal Inspector v1
2023-10-26 10:12:39 -07:00
Mitchell Hashimoto
0baf3522b4 terminal: bring back unimplemented logs 2023-10-26 09:53:57 -07:00
Mitchell Hashimoto
99591f280b terminal: addWithOverflow to detect max int 2023-10-26 09:50:29 -07:00
Mitchell Hashimoto
2fd2693693 termio: MessageData should pick appropriately sized int for len 2023-10-26 09:36:56 -07:00
Mitchell Hashimoto
b049cb7d21 command: allow relative paths in PATH 2023-10-26 09:30:11 -07:00
Nameless
41de71ae9e fuzz: termio.MessageData small_size is max of 255, not 256 2023-10-25 11:44:21 -05:00
Nameless
49f1866f28 add tests for fuzzed results, clean up unimplemented osc warning 2023-10-25 11:44:16 -05:00
Nameless
81f7ae63b0 fuzz: src/terminal/stream.zig
osc.zig: undefined pointer was dereferenced when warning was issued
for handler missing
Parser.zig: too many parameters was not handled in the final case
Parser.zig: parameters being too long (>255 digits) was not handled
2023-10-25 11:42:13 -05:00
Mitchell Hashimoto
c12bb4a035 inspector: reset vt seq number on clear 2023-10-25 09:24:37 -07:00
Mitchell Hashimoto
a6c765d1c0 inspector: termio filter also checks metadata values 2023-10-25 08:59:39 -07:00
Mitchell Hashimoto
b91f4c6b0c inspector: minor style tweak 2023-10-25 08:56:58 -07:00
Mitchell Hashimoto
2ecbc8d04e inspector: add OSC command metadata to inspector 2023-10-25 08:55:15 -07:00
Mitchell Hashimoto
74d9996eb8 inspector: always increment seq number for vt events 2023-10-24 22:26:39 -07:00
Mitchell Hashimoto
b70498e77a inspector: reversed a checkbox 2023-10-24 22:04:01 -07:00
Mitchell Hashimoto
7604bf1cac inspector: forgot a file 2023-10-24 21:57:14 -07:00
Mitchell Hashimoto
c1469eb7b2 inspector: track lots of metadata for vt events 2023-10-24 21:56:38 -07:00
Mitchell Hashimoto
ecbd52015b termio: inspector forces byte-at-a-time processing 2023-10-24 21:35:56 -07:00
Mitchell Hashimoto
a72bfc4a31 inspector: add sequence number to termio 2023-10-24 21:26:34 -07:00
Mitchell Hashimoto
ff54c466cd inspector: termio pause/resume 2023-10-24 21:20:08 -07:00
Mitchell Hashimoto
dc11513c1b inspector: add basic termio seq filter 2023-10-24 21:15:00 -07:00
Mitchell Hashimoto
ccb1cea49a inspector: filter terminal io events by kind 2023-10-24 20:55:29 -07:00
Mitchell Hashimoto
c60ead99aa inspector: format termio a little better, incomplete 2023-10-24 20:31:26 -07:00
Mitchell Hashimoto
7b2af3a039 inspector: start termio log 2023-10-24 15:27:17 -07:00
Mitchell Hashimoto
5da0e0dab6 inspector: show kitty graphics metadata 2023-10-24 15:27:17 -07:00
Mitchell Hashimoto
dbe4530377 inspector: fix key memory leak 2023-10-24 15:27:17 -07:00
Mitchell Hashimoto
60c8ae806b inspector: remove unused next id system 2023-10-24 15:27:17 -07:00
Mitchell Hashimoto
d82a4760da inspector: note memory leak 2023-10-24 15:27:17 -07:00
Mitchell Hashimoto
25106f9644 inspector: add clear keyboard events button 2023-10-24 15:27:17 -07:00
Mitchell Hashimoto
f560423e3e inspector: render key events 2023-10-24 15:27:17 -07:00
Mitchell Hashimoto
a162c7c47f inspector: move inspector to dedicated folder 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
00ed6069f6 inspector: render basic key inspector 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
534ecb2d80 circbuf: iterator yields pointers 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
7f5f6d01cf inspector: keep track of keyboard events (not rendered yet) 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
4ed6112e6d move circular buffer to src/ 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
41dbbf43d2 terminal: circular buffer has append, clear, iterator 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
0fb7a02791 inspector: give cell picker modal a reasonable title 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
eaa7777fbb inspector: cell inspector 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
bc398327f2 inspector: track mouse state 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
e40cfc791d inspector: add keyboard info 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
ccde455fa0 inspector: cursor style information 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
0f0195fb97 inspector: screen window 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
a9279f9871 apprt/glfw: does not implement inspector 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
6cfa9de4df apprt/embedded: do not lock render state for inspector render 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
aa24221acf inspector: show imgui demo window only in debug 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
880d7869a9 inspector: show modes 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
c8b9bea1e1 apprt: none has app/surface so tests pass 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
5a299e14e4 all threads are notified of inspector state, trigger render 2023-10-24 15:27:15 -07:00