tsetattr(int *attr, int l) {
int i;
-#ifdef TRUECOLOR /* ESC [ ? <fg/bg> ; <r> ; <g> ; <b> m */
- Color col;
- if(escseq.priv && escseq.len == 4) { /* True color extension :) */
- col = (escseq.arg[1]<<16) + (escseq.arg[2]<<8) + escseq.arg[3];
- switch(escseq.arg[0]) {
- case 3: /* foreground */
- term.c.attr.fg = col;
- break;
- case 4: /* background */
- term.c.attr.bg = col;
- break;
- }
- }
- else
-#endif
for(i = 0; i < l; i++) {
switch(attr[i]) {
case 0:
memset(&escseq, 0, sizeof(escseq));
}
+void
+tputtab(void) {
+ int space = TAB - term.c.x % TAB;
+
+ if(term.c.x + space >= term.col)
+ space--;
+
+ for(; space > 0; space--)
+ tcursor(CSright);
+}
+
void
tputc(char c) {
static int inesc = 0;
tsetchar(c);
tcursor(CSright);
break;
+ case '\t':
+ tputtab();
+ break;
case '\b':
tcursor(CSleft);
break;
xw.dis = XOpenDisplay(NULL);
xw.scr = XDefaultScreen(xw.dis);
- if(!(xw.dis && xw.scr))
+ if(!xw.dis)
die("can not open display");
/* font */
int
main(int argc, char *argv[]) {
if(argc == 2 && !strncmp("-v", argv[1], 3))
- die("st-"", © 2009 st engineers\n");
+ die("st-" VERSION ", © 2009 st engineers\n");
else if(argc != 1)
die("usage: st [-v]\n");
setlocale(LC_CTYPE, "");