|
|
@ -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 tsetattr(const int *, int);
|
|
|
|
static void tsetchar(Rune, Glyph *, 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 const uchar utfbyte[UTF_SIZ + 1] = {0x80, 0, 0xC0, 0xE0, 0xF0};
|
|
|
|
static uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8};
|
|
|
|
static const uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8};
|
|
|
|
static Rune utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000};
|
|
|
|
static const Rune utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000};
|
|
|
|
static Rune utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF};
|
|
|
|
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];
|
|
|
|