|
|
|
@ -42,11 +42,6 @@ enum { SCupdate, SCredraw }; |
|
|
|
|
|
|
|
|
|
typedef int Color; |
|
|
|
|
|
|
|
|
|
typedef struct { |
|
|
|
|
KeySym k; |
|
|
|
|
char s[ESCSIZ]; |
|
|
|
|
} Key; |
|
|
|
|
|
|
|
|
|
typedef struct { |
|
|
|
|
char c; /* character code */ |
|
|
|
|
char mode; /* attribute flags */ |
|
|
|
@ -125,7 +120,6 @@ static void tcpos(int); |
|
|
|
|
static void tcursor(int); |
|
|
|
|
static void tdeletechar(int); |
|
|
|
|
static void tdeleteline(int); |
|
|
|
|
static void tdump(void); |
|
|
|
|
static void tinsertblank(int); |
|
|
|
|
static void tinsertblankline(int); |
|
|
|
|
static void tmoveto(int, int); |
|
|
|
@ -170,6 +164,26 @@ static int cmdfd; |
|
|
|
|
static pid_t pid; |
|
|
|
|
static int running; |
|
|
|
|
|
|
|
|
|
#ifdef DEBUG |
|
|
|
|
void |
|
|
|
|
tdump(void) { |
|
|
|
|
int row, col; |
|
|
|
|
Glyph c; |
|
|
|
|
|
|
|
|
|
for(row = 0; row < term.row; row++) { |
|
|
|
|
for(col = 0; col < term.col; col++) { |
|
|
|
|
if(col == term.c.x && row == term.c.y) |
|
|
|
|
putchar('#'); |
|
|
|
|
else { |
|
|
|
|
c = term.line[row][col]; |
|
|
|
|
putchar(c.state & CRset ? c.c : '.'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
putchar('\n'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
die(const char *errstr, ...) { |
|
|
|
|
va_list ap; |
|
|
|
@ -797,24 +811,6 @@ tputs(char *s, int len) { |
|
|
|
|
tputc(*s++); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
tdump(void) { |
|
|
|
|
int row, col; |
|
|
|
|
Glyph c; |
|
|
|
|
|
|
|
|
|
for(row = 0; row < term.row; row++) { |
|
|
|
|
for(col = 0; col < term.col; col++) { |
|
|
|
|
if(col == term.c.x && row == term.c.y) |
|
|
|
|
putchar('#'); |
|
|
|
|
else { |
|
|
|
|
c = term.line[row][col]; |
|
|
|
|
putchar(c.state & CRset ? c.c : '.'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
putchar('\n'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
tresize(int col, int row) { |
|
|
|
|
int i; |
|
|
|
|