From 9898219c44c4ae57ee8c3cd630935d5e971b431c Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Sun, 14 Jul 2019 13:08:33 -0400 Subject: Handle OSC in shotty --- bin/shotty.c | 45 ++++++++++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 13 deletions(-) (limited to 'bin') diff --git a/bin/shotty.c b/bin/shotty.c index a39c4f90..a75ba850 100644 --- a/bin/shotty.c +++ b/bin/shotty.c @@ -148,22 +148,24 @@ static char updateNUL(wchar_t ch) { enum { CSI = '[', + ST = '\\', + OSC = ']', CUU = 'A', - CUD, - CUF, - CUB, - CNL, - CPL, - CHA, - CUP, - ED = 'J', - EL, - DL = 'M', + CUD = 'B', + CUF = 'C', + CUB = 'D', + CNL = 'E', + CPL = 'F', + CHA = 'G', + CUP = 'H', + ED = 'J', + EL = 'K', + DL = 'M', DCH = 'P', VPA = 'd', - SM = 'h', - RM = 'l', - SGR, + SM = 'h', + RM = 'l', + SGR = 'm', }; static char updateESC(wchar_t ch) { @@ -176,6 +178,7 @@ static char updateESC(wchar_t ch) { case '(': discard = true; return ESC; case '=': return NUL; case CSI: return CSI; + case OSC: return OSC; default: warnx("unhandled ESC %lc", ch); return NUL; } } @@ -313,12 +316,28 @@ static char updateCSI(wchar_t ch) { return NUL; } +static char updateOSC(wchar_t ch) { + static bool esc; + switch (ch) { + break; case BEL: return NUL; + break; case ESC: esc = true; + break; case ST: { + if (!esc) break; + esc = false; + return NUL; + } + } + esc = false; + return NUL; +} + static void update(wchar_t ch) { static char seq; switch (seq) { break; case NUL: seq = updateNUL(ch); break; case ESC: seq = updateESC(ch); break; case CSI: seq = updateCSI(ch); + break; case OSC: seq = updateOSC(ch); } } -- cgit 1.4.1 b208f5b9eb3beea'/>
path: root/home/.config/nvim/colors (unfollow)
Commit message (Collapse)Author
2019-01-19Revert -std=c11 because GNU sucksJune McEnroe
It wants me to #define all kinds of bullshit to get basic functions like getopt(3).
2019-01-19Fix ordering issue with va_arg callsJune McEnroe
2019-01-19Take event number for save incrJune McEnroe
ev cannot be used for input, as the first thing history() does is clear it.
2019-01-18Add H_SAVE_INCR function to libeditJune McEnroe
2019-01-18Update gfx-cocoa constants for new macOSJune McEnroe
2019-01-17Add Girlpool Tiny Desk ConcertJune McEnroe
Heard some of these songs in the cafe. I keep saying there should be more singing in unison.
2019-01-17Reunify gfx and binJune McEnroe
2019-01-17Reorganize bin and Makefile once againJune McEnroe
2019-01-17Don't use string functions in ttpreJune McEnroe
2019-01-16Fix some symbols in sans8x16June McEnroe
2019-01-15Add basic HISTFILE load and saveJune McEnroe
2019-01-15Add !! alias in cashJune McEnroe
2019-01-15Add shell and unshell targetsJune McEnroe
2019-01-15Use \$ in cash PS1 and add # to RPS1June McEnroe
2019-01-15Use flock(2) when loading and saving historyJune McEnroe
2019-01-15Add sans8x16.psfJune McEnroe
The symbols are still really bad...
2019-01-14Add guides to psfedJune McEnroe
2019-01-14Check for NULL copy or undo buffers in psfedJune McEnroe
2019-01-14Add cash.7 READMEJune McEnroe
2019-01-14Document old=new argument of fc -sJune McEnroe
2019-01-14Allow replacing empty string with fc old=newJune McEnroe
2019-01-13Enable warnings in libeditJune McEnroe
2019-01-13Show full path in RPS1June McEnroe
2019-01-13Shorten $HOME to ~ in prompt expansionJune McEnroe
2019-01-13Document PSlitJune McEnroe
2019-01-13Document PS0June McEnroe
2019-01-13Set PS0 in cashJune McEnroe
2019-01-13Add PS0June McEnroe
2019-01-13Change default ENV from cashrc to env.shJune McEnroe
2019-01-13Use colours in cash promptsJune McEnroe
2019-01-12Set PSlit like NetBSD shJune McEnroe
2019-01-12Install gnupg2 from pkgsrc and symlink gpgJune McEnroe
2019-01-12Reference cash builtin man pages in cash.1 SEE ALSOJune McEnroe
2019-01-12Restore cash builtin man page datesJune McEnroe
2019-01-12Use local libeditJune McEnroe
2019-01-12Replace libedit MakefileJune McEnroe
2019-01-11Import /usr/src/lib/libedit from NetBSD 8.0June McEnroe
2019-01-11Add PSlit for prompt escapesJune McEnroe
2019-01-11Don't make depend automaticallyJune McEnroe