Introduction
Introduction Statistics Contact Development Disclaimer Help
add some more control codes - lchat - A line oriented chat front end for ii.
git clone git://git.suckless.org/lchat
Log
Files
Refs
README
---
commit c2233eb6bae4c356cd92d71b9173bd3c62fed00e
parent 5ee1873a1ec3bc220efc5e1d1203b6fec97b8b71
Author: shuall <[email protected]>
Date: Tue, 18 Jul 2017 20:37:40 -0400
add some more control codes
Using st, and these are more for my own convenience.
I'm not sure how they translate to other terminals.
- ctrl+u sends NAK, so clear line on NAK
- home and end don't send 'home' and 'end' vt100 codes,
they send \033[7~ and \033[8~ respectively
Diffstat:
M slackline.c | 33 +++++++++++++++++++++++++++++…
M slackline.h | 3 ++-
2 files changed, 35 insertions(+), 1 deletion(-)
---
diff --git a/slackline.c b/slackline.c
@@ -157,9 +157,39 @@ sl_keystroke(struct slackline *sl, int key)
sl->last -= ncur - sl->ptr;
*sl->last = '\0';
break;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ sl->nummod = key;
+ sl->esc = ESC_BRACKET_NUM;
+ return 0;
}
sl->esc = ESC_NONE;
return 0;
+ case ESC_BRACKET_NUM:
+ switch(key) {
+ case '~':
+ switch(sl->nummod) {
+ case '7':
+ sl->bcur = sl->rcur = 0;
+ sl->ptr = sl->buf;
+ break;
+ case '8':
+ sl->rcur = sl->rlen;
+ sl->bcur = sl_postobyte(sl, sl->rcur);
+ sl->ptr = sl->buf + sl->bcur;
+ break;
+ }
+ sl->esc = ESC_NONE;
+ return 0;
+ }
}
/* handle ctl keys */
@@ -188,6 +218,9 @@ sl_keystroke(struct slackline *sl, int key)
sl->ptr = ncur;
return 0;
+ case 21: /* ctrl+u or clearline, weird that it's a NAK */
+ sl_reset(sl);
+ return 0;
}
/* byte-wise composing of UTF-8 runes */
diff --git a/slackline.h b/slackline.h
@@ -3,7 +3,7 @@
#include <stdbool.h>
-enum esc_seq {ESC_NONE, ESC, ESC_BRACKET};
+enum esc_seq {ESC_NONE, ESC, ESC_BRACKET, ESC_BRACKET_NUM};
struct slackline {
/* buffer */
@@ -21,6 +21,7 @@ struct slackline {
size_t rlen; /* amount of runes */
enum esc_seq esc;
+ char nummod;
/* UTF-8 handling */
char ubuf[6]; /* UTF-8 buffer */
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.