|
|
@ -42,11 +42,6 @@ enum { SCupdate, SCredraw };
|
|
|
|
|
|
|
|
|
|
|
|
typedef int Color;
|
|
|
|
typedef int Color;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
|
|
|
KeySym k;
|
|
|
|
|
|
|
|
char s[ESCSIZ];
|
|
|
|
|
|
|
|
} Key;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
typedef struct {
|
|
|
|
char c; /* character code */
|
|
|
|
char c; /* character code */
|
|
|
|
char mode; /* attribute flags */
|
|
|
|
char mode; /* attribute flags */
|
|
|
@ -125,7 +120,6 @@ static void tcpos(int);
|
|
|
|
static void tcursor(int);
|
|
|
|
static void tcursor(int);
|
|
|
|
static void tdeletechar(int);
|
|
|
|
static void tdeletechar(int);
|
|
|
|
static void tdeleteline(int);
|
|
|
|
static void tdeleteline(int);
|
|
|
|
static void tdump(void);
|
|
|
|
|
|
|
|
static void tinsertblank(int);
|
|
|
|
static void tinsertblank(int);
|
|
|
|
static void tinsertblankline(int);
|
|
|
|
static void tinsertblankline(int);
|
|
|
|
static void tmoveto(int, int);
|
|
|
|
static void tmoveto(int, int);
|
|
|
@ -170,6 +164,26 @@ static int cmdfd;
|
|
|
|
static pid_t pid;
|
|
|
|
static pid_t pid;
|
|
|
|
static int running;
|
|
|
|
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
|
|
|
|
void
|
|
|
|
die(const char *errstr, ...) {
|
|
|
|
die(const char *errstr, ...) {
|
|
|
|
va_list ap;
|
|
|
|
va_list ap;
|
|
|
@ -797,24 +811,6 @@ tputs(char *s, int len) {
|
|
|
|
tputc(*s++);
|
|
|
|
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
|
|
|
|
void
|
|
|
|
tresize(int col, int row) {
|
|
|
|
tresize(int col, int row) {
|
|
|
|
int i;
|
|
|
|
int i;
|
|
|
|