|
@ -186,18 +186,18 @@ static void tputc(Rune); |
|
|
static void treset(void); |
|
|
static void treset(void); |
|
|
static void tscrollup(int, int); |
|
|
static void tscrollup(int, int); |
|
|
static void tscrolldown(int, int); |
|
|
static void tscrolldown(int, int); |
|
|
static void tsetattr(int *, int); |
|
|
|
|
|
static void tsetchar(Rune, Glyph *, int, int); |
|
|
|
|
|
|
|
|
static void tsetattr(const int *, int); |
|
|
|
|
|
static void tsetchar(Rune, const Glyph *, int, int); |
|
|
static void tsetdirt(int, int); |
|
|
static void tsetdirt(int, int); |
|
|
static void tsetscroll(int, int); |
|
|
static void tsetscroll(int, int); |
|
|
static void tswapscreen(void); |
|
|
static void tswapscreen(void); |
|
|
static void tsetmode(int, int, int *, int); |
|
|
|
|
|
|
|
|
static void tsetmode(int, int, const int *, int); |
|
|
static int twrite(const char *, int, int); |
|
|
static int twrite(const char *, int, int); |
|
|
static void tfulldirt(void); |
|
|
static void tfulldirt(void); |
|
|
static void tcontrolcode(uchar ); |
|
|
static void tcontrolcode(uchar ); |
|
|
static void tdectest(char ); |
|
|
static void tdectest(char ); |
|
|
static void tdefutf8(char); |
|
|
static void tdefutf8(char); |
|
|
static int32_t tdefcolor(int *, int *, int); |
|
|
|
|
|
|
|
|
static int32_t tdefcolor(const int *, int *, int); |
|
|
static void tdeftran(char); |
|
|
static void tdeftran(char); |
|
|
static void tstrsequence(uchar); |
|
|
static void tstrsequence(uchar); |
|
|
|
|
|
|
|
@ -226,10 +226,10 @@ static int iofd = 1; |
|
|
static int cmdfd; |
|
|
static int cmdfd; |
|
|
static pid_t pid; |
|
|
static pid_t pid; |
|
|
|
|
|
|
|
|
static uchar utfbyte[UTF_SIZ + 1] = {0x80, 0, 0xC0, 0xE0, 0xF0}; |
|
|
|
|
|
static uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8}; |
|
|
|
|
|
static Rune utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000}; |
|
|
|
|
|
static Rune utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF}; |
|
|
|
|
|
|
|
|
static const uchar utfbyte[UTF_SIZ + 1] = {0x80, 0, 0xC0, 0xE0, 0xF0}; |
|
|
|
|
|
static const uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8}; |
|
|
|
|
|
static const Rune utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000}; |
|
|
|
|
|
static const Rune utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF}; |
|
|
|
|
|
|
|
|
ssize_t |
|
|
ssize_t |
|
|
xwrite(int fd, const char *s, size_t len) |
|
|
xwrite(int fd, const char *s, size_t len) |
|
@ -269,12 +269,14 @@ xrealloc(void *p, size_t len) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
char * |
|
|
char * |
|
|
xstrdup(char *s) |
|
|
|
|
|
|
|
|
xstrdup(const char *s) |
|
|
{ |
|
|
{ |
|
|
if ((s = strdup(s)) == NULL) |
|
|
|
|
|
|
|
|
char *p; |
|
|
|
|
|
|
|
|
|
|
|
if ((p = strdup(s)) == NULL) |
|
|
die("strdup: %s\n", strerror(errno)); |
|
|
die("strdup: %s\n", strerror(errno)); |
|
|
|
|
|
|
|
|
return s; |
|
|
|
|
|
|
|
|
return p; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
size_t |
|
|
size_t |
|
@ -518,7 +520,7 @@ selsnap(int *x, int *y, int direction) |
|
|
{ |
|
|
{ |
|
|
int newx, newy, xt, yt; |
|
|
int newx, newy, xt, yt; |
|
|
int delim, prevdelim; |
|
|
int delim, prevdelim; |
|
|
Glyph *gp, *prevgp; |
|
|
|
|
|
|
|
|
const Glyph *gp, *prevgp; |
|
|
|
|
|
|
|
|
switch (sel.snap) { |
|
|
switch (sel.snap) { |
|
|
case SNAP_WORD: |
|
|
case SNAP_WORD: |
|
@ -591,7 +593,7 @@ getsel(void) |
|
|
{ |
|
|
{ |
|
|
char *str, *ptr; |
|
|
char *str, *ptr; |
|
|
int y, bufsize, lastx, linelen; |
|
|
int y, bufsize, lastx, linelen; |
|
|
Glyph *gp, *last; |
|
|
|
|
|
|
|
|
const Glyph *gp, *last; |
|
|
|
|
|
|
|
|
if (sel.ob.x == -1) |
|
|
if (sel.ob.x == -1) |
|
|
return NULL; |
|
|
return NULL; |
|
@ -758,7 +760,7 @@ stty(char **args) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
int |
|
|
int |
|
|
ttynew(char *line, char *cmd, char *out, char **args) |
|
|
|
|
|
|
|
|
ttynew(const char *line, char *cmd, const char *out, char **args) |
|
|
{ |
|
|
{ |
|
|
int m, s; |
|
|
int m, s; |
|
|
|
|
|
|
|
@ -1186,9 +1188,9 @@ tmoveto(int x, int y) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void |
|
|
void |
|
|
tsetchar(Rune u, Glyph *attr, int x, int y) |
|
|
|
|
|
|
|
|
tsetchar(Rune u, const Glyph *attr, int x, int y) |
|
|
{ |
|
|
{ |
|
|
static char *vt100_0[62] = { /* 0x41 - 0x7e */ |
|
|
|
|
|
|
|
|
static const char *vt100_0[62] = { /* 0x41 - 0x7e */ |
|
|
"↑", "↓", "→", "←", "█", "▚", "☃", /* A - G */ |
|
|
"↑", "↓", "→", "←", "█", "▚", "☃", /* A - G */ |
|
|
0, 0, 0, 0, 0, 0, 0, 0, /* H - O */ |
|
|
0, 0, 0, 0, 0, 0, 0, 0, /* H - O */ |
|
|
0, 0, 0, 0, 0, 0, 0, 0, /* P - W */ |
|
|
0, 0, 0, 0, 0, 0, 0, 0, /* P - W */ |
|
@ -1300,7 +1302,7 @@ tdeleteline(int n) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
int32_t |
|
|
int32_t |
|
|
tdefcolor(int *attr, int *npar, int l) |
|
|
|
|
|
|
|
|
tdefcolor(const int *attr, int *npar, int l) |
|
|
{ |
|
|
{ |
|
|
int32_t idx = -1; |
|
|
int32_t idx = -1; |
|
|
uint r, g, b; |
|
|
uint r, g, b; |
|
@ -1350,7 +1352,7 @@ tdefcolor(int *attr, int *npar, int l) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void |
|
|
void |
|
|
tsetattr(int *attr, int l) |
|
|
|
|
|
|
|
|
tsetattr(const int *attr, int l) |
|
|
{ |
|
|
{ |
|
|
int i; |
|
|
int i; |
|
|
int32_t idx; |
|
|
int32_t idx; |
|
@ -1468,9 +1470,9 @@ tsetscroll(int t, int b) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void |
|
|
void |
|
|
tsetmode(int priv, int set, int *args, int narg) |
|
|
|
|
|
|
|
|
tsetmode(int priv, int set, const int *args, int narg) |
|
|
{ |
|
|
{ |
|
|
int alt, *lim; |
|
|
|
|
|
|
|
|
int alt; const int *lim; |
|
|
|
|
|
|
|
|
for (lim = args + narg; args < lim; ++args) { |
|
|
for (lim = args + narg; args < lim; ++args) { |
|
|
if (priv) { |
|
|
if (priv) { |
|
@ -2020,7 +2022,7 @@ void |
|
|
tdumpline(int n) |
|
|
tdumpline(int n) |
|
|
{ |
|
|
{ |
|
|
char buf[UTF_SIZ]; |
|
|
char buf[UTF_SIZ]; |
|
|
Glyph *bp, *end; |
|
|
|
|
|
|
|
|
const Glyph *bp, *end; |
|
|
|
|
|
|
|
|
bp = &term.line[n][0]; |
|
|
bp = &term.line[n][0]; |
|
|
end = &bp[MIN(tlinelen(n), term.col) - 1]; |
|
|
end = &bp[MIN(tlinelen(n), term.col) - 1]; |
|
|