Commit Graph
45 Commits
Author SHA1 Message Date
Kovid Goyal a7f6105393 Use Unsafe rather than Dangerous to be consistent 2022-11-14 15:41:55 +05:30
Kovid Goyal e8a321d097 Port code to serialize key events as CSI to Go 2022-11-14 15:41:55 +05:30
Kovid Goyal ea8fb10c05 Password input: Handle SIGTSTP 2022-11-14 15:41:55 +05:30
Kovid Goyal 67115530b4 Make the loop API a thin wrapper around internal methods 2022-11-14 15:41:55 +05:30
Kovid Goyal 5cf10023c9 Nicer API for setting loop options 2022-11-14 15:41:55 +05:30
Kovid Goyal 457aab7c41 Simplify timer removal 2022-11-14 15:41:54 +05:30
Kovid Goyal dcec926590 Do not allow adding timers before loop is run 2022-11-14 15:41:54 +05:30
Kovid Goyal 6d6bba4a4c debugprintln should be in-band for the loop 2022-11-14 15:41:54 +05:30
Kovid Goyal 5cc5759f3e flush_pending_writes must be non-blocking 2022-11-14 15:41:54 +05:30
Kovid Goyal 9c58cb3f41 ... 2022-11-14 15:41:52 +05:30
Kovid Goyal a75d59643c Use one less channel 2022-11-14 15:41:52 +05:30
Kovid Goyal bf35817d73 No need to store most channels on self 2022-11-14 15:41:52 +05:30
Kovid Goyal 1b90c03304 Refactor loop code into its own package 2022-11-14 15:41:52 +05:30
Kovid Goyal 4a49c3940a Switch to using goroutines rather than a select()
More complex code since now we have to synchronize between threads,
but a good way to teach myself more about goroutines.
2022-11-14 15:41:52 +05:30
Kovid Goyal fa4711bd04 Give the kill signal time to be delivered 2022-11-14 15:41:51 +05:30
Kovid Goyal 2ffba1c422 Work on implementing ttyio via TUI 2022-11-14 15:41:51 +05:30
Kovid Goyal 6f8c884bb5 Also handle SIGPIPE as the Go runtime does funky things with this signal 2022-11-14 15:41:51 +05:30
Kovid Goyal 80c5ac891d Add license info to Go files 2022-11-14 15:41:51 +05:30
Kovid Goyal 6a2393299b Add a write completed callback 2022-11-14 15:41:51 +05:30
Kovid Goyal ab66b3f4c0 Add timer infra to the loop 2022-11-14 15:41:51 +05:30
Kovid Goyal 7280c712d6 Move escape code parser into wcswidth package 2022-11-14 15:41:50 +05:30
Kovid Goyal 9be2247081 Dont use the syscall package 2022-11-14 15:41:50 +05:30
Kovid Goyal e68b5fa504 Add callback for screen resize handling 2022-11-14 15:41:50 +05:30
Kovid Goyal c2ef6c986b Password input now works 2022-11-14 15:41:50 +05:30
Kovid Goyal 619fcb0681 Allow debug printing 2022-11-14 15:41:50 +05:30
Kovid Goyal 10a39d3757 Fix reset mode incorrectly setting mode instead 2022-11-14 15:41:50 +05:30
Kovid Goyal d2a15a2009 Make using alternate screen the default 2022-11-14 15:41:50 +05:30
Kovid Goyal 235eb868b2 More misc fixes for TUI 2022-11-14 15:41:50 +05:30
Kovid Goyal 5703a3370e Move wcswidth into its own package as it is very slow to build 2022-11-14 15:41:50 +05:30
Kovid Goyal 5dca2a1a25 Fix stringifying mods 2022-11-14 15:41:50 +05:30
Kovid Goyal 4b18b575cd Misc fixes for TUI 2022-11-14 15:41:50 +05:30
Kovid Goyal 818f68ec53 Initialize various maps 2022-11-14 15:41:50 +05:30
Kovid Goyal cd54fefa99 Ignore more types of temporary errors 2022-11-14 15:41:50 +05:30
Kovid Goyal 4ab5456ead Less layering 2022-11-14 15:41:49 +05:30
Kovid Goyal 10d11bc749 Drop another dependency 2022-11-14 15:41:49 +05:30
Kovid Goyal 19ffbc6f3d Implement wcswidth() for Go 2022-11-14 15:41:49 +05:30
Kovid Goyal 79b1af28b4 Fix errors reported by compiler 2022-11-14 15:41:49 +05:30
Kovid Goyal 05d768d8df Generate a wcwidth for Go as well 2022-11-14 15:41:49 +05:30
Kovid Goyal 9d56f8eed2 Use TUI to build a nice password read control 2022-11-14 15:41:49 +05:30
Kovid Goyal 42a5129553 Wire up key handling 2022-11-14 15:41:49 +05:30
Kovid Goyal d6ed20323b Implement key event parsing and matching 2022-11-14 15:41:49 +05:30
Kovid Goyal 63fdbd3fa0 Start work on decoding key events in Go 2022-11-14 15:41:49 +05:30
Kovid Goyal 99fde8723a Wire up the signal handlers 2022-11-14 15:41:49 +05:30
Kovid Goyal 526a331f47 Wire up a bunch of callbacks 2022-11-14 15:41:49 +05:30
Kovid Goyal 3c3e7b7f70 Start work on proper TUI support 2022-11-14 15:41:49 +05:30