Xinqi Bao's Git
projects
/
st.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
Enable BCE everywhere.
[st.git]
/
st.c
diff --git
a/st.c
b/st.c
index
d7d70e7
..
7250da2
100644
(file)
--- a/
st.c
+++ b/
st.c
@@
-310,7
+310,7
@@
static void strhandle(void);
static void strparse(void);
static void strreset(void);
static void strparse(void);
static void strreset(void);
-static void tclearregion(int, int, int, int
, int
);
+static void tclearregion(int, int, int, int);
static void tcursor(int);
static void tdeletechar(int);
static void tdeleteline(int);
static void tcursor(int);
static void tdeletechar(int);
static void tdeleteline(int);
@@
-1187,7
+1187,7
@@
treset(void) {
term.bot = term.row - 1;
term.mode = MODE_WRAP;
term.bot = term.row - 1;
term.mode = MODE_WRAP;
- tclearregion(0, 0, term.col-1, term.row-1
, 0
);
+ tclearregion(0, 0, term.col-1, term.row-1);
tmoveto(0, 0);
tcursor(CURSOR_SAVE);
}
tmoveto(0, 0);
tcursor(CURSOR_SAVE);
}
@@
-1231,7
+1231,7
@@
tscrolldown(int orig, int n) {
LIMIT(n, 0, term.bot-orig+1);
LIMIT(n, 0, term.bot-orig+1);
- tclearregion(0, term.bot-n+1, term.col-1, term.bot
, 0
);
+ tclearregion(0, term.bot-n+1, term.col-1, term.bot);
for(i = term.bot; i >= orig+n; i--) {
temp = term.line[i];
for(i = term.bot; i >= orig+n; i--) {
temp = term.line[i];
@@
-1251,7
+1251,7
@@
tscrollup(int orig, int n) {
Line temp;
LIMIT(n, 0, term.bot-orig+1);
Line temp;
LIMIT(n, 0, term.bot-orig+1);
- tclearregion(0, orig, term.col-1, orig+n-1
, 0
);
+ tclearregion(0, orig, term.col-1, orig+n-1);
for(i = orig; i <= term.bot-n; i++) {
temp = term.line[i];
for(i = orig; i <= term.bot-n; i++) {
temp = term.line[i];
@@
-1389,7
+1389,7
@@
tsetchar(char *c, Glyph *attr, int x, int y) {
}
void
}
void
-tclearregion(int x1, int y1, int x2, int y2
, int bce
) {
+tclearregion(int x1, int y1, int x2, int y2) {
int x, y, temp;
if(x1 > x2)
int x, y, temp;
if(x1 > x2)
@@
-1405,13
+1405,9
@@
tclearregion(int x1, int y1, int x2, int y2, int bce) {
for(y = y1; y <= y2; y++) {
term.dirty[y] = 1;
for(x = x1; x <= x2; x++) {
for(y = y1; y <= y2; y++) {
term.dirty[y] = 1;
for(x = x1; x <= x2; x++) {
- if(bce) {
- term.line[y][x] = term.c.attr;
- memcpy(term.line[y][x].c, " ", 2);
- term.line[y][x].state |= GLYPH_SET;
- } else {
- term.line[y][x].state = 0;
- }
+ term.line[y][x] = term.c.attr;
+ memcpy(term.line[y][x].c, " ", 2);
+ term.line[y][x].state |= GLYPH_SET;
}
}
}
}
}
}
@@
-1425,13
+1421,13
@@
tdeletechar(int n) {
term.dirty[term.c.y] = 1;
if(src >= term.col) {
term.dirty[term.c.y] = 1;
if(src >= term.col) {
- tclearregion(term.c.x, term.c.y, term.col-1, term.c.y
, 0
);
+ tclearregion(term.c.x, term.c.y, term.col-1, term.c.y);
return;
}
memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src],
size * sizeof(Glyph));
return;
}
memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src],
size * sizeof(Glyph));
- tclearregion(term.col-n, term.c.y, term.col-1, term.c.y
, 0
);
+ tclearregion(term.col-n, term.c.y, term.col-1, term.c.y);
}
void
}
void
@@
-1443,13
+1439,13
@@
tinsertblank(int n) {
term.dirty[term.c.y] = 1;
if(dst >= term.col) {
term.dirty[term.c.y] = 1;
if(dst >= term.col) {
- tclearregion(term.c.x, term.c.y, term.col-1, term.c.y
, 0
);
+ tclearregion(term.c.x, term.c.y, term.col-1, term.c.y);
return;
}
memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src],
size * sizeof(Glyph));
return;
}
memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src],
size * sizeof(Glyph));
- tclearregion(src, term.c.y, dst - 1, term.c.y
, 0
);
+ tclearregion(src, term.c.y, dst - 1, term.c.y);
}
void
}
void
@@
-1475,8
+1471,9
@@
tsetattr(int *attr, int l) {
for(i = 0; i < l; i++) {
switch(attr[i]) {
case 0:
for(i = 0; i < l; i++) {
switch(attr[i]) {
case 0:
- term.c.attr.mode &= ~(ATTR_REVERSE | ATTR_UNDERLINE | ATTR_BOLD \
- | ATTR_ITALIC | ATTR_BLINK);
+ term.c.attr.mode &= ~(ATTR_REVERSE | ATTR_UNDERLINE \
+ | ATTR_BOLD | ATTR_ITALIC \
+ | ATTR_BLINK);
term.c.attr.fg = defaultfg;
term.c.attr.bg = defaultbg;
break;
term.c.attr.fg = defaultfg;
term.c.attr.bg = defaultbg;
break;
@@
-1645,7
+1642,7
@@
tsetmode(bool priv, bool set, int *args, int narg) {
alt = IS_SET(MODE_ALTSCREEN);
if(alt) {
tclearregion(0, 0, term.col-1,
alt = IS_SET(MODE_ALTSCREEN);
if(alt) {
tclearregion(0, 0, term.col-1,
- term.row-1
, 0
);
+ term.row-1);
}
if(set ^ alt) /* set is always 1 or 0 */
tswapscreen();
}
if(set ^ alt) /* set is always 1 or 0 */
tswapscreen();
@@
-1764,19
+1761,19
@@
csihandle(void) {
sel.bx = -1;
switch(csiescseq.arg[0]) {
case 0: /* below */
sel.bx = -1;
switch(csiescseq.arg[0]) {
case 0: /* below */
- tclearregion(term.c.x, term.c.y, term.col-1, term.c.y
, 1
);
+ tclearregion(term.c.x, term.c.y, term.col-1, term.c.y);
if(term.c.y < term.row-1) {
tclearregion(0, term.c.y+1, term.col-1,
if(term.c.y < term.row-1) {
tclearregion(0, term.c.y+1, term.col-1,
- term.row-1
, 1
);
+ term.row-1);
}
break;
case 1: /* above */
if(term.c.y > 1)
}
break;
case 1: /* above */
if(term.c.y > 1)
- tclearregion(0, 0, term.col-1, term.c.y-1
, 1
);
- tclearregion(0, term.c.y, term.c.x, term.c.y
, 1
);
+ tclearregion(0, 0, term.col-1, term.c.y-1);
+ tclearregion(0, term.c.y, term.c.x, term.c.y);
break;
case 2: /* all */
break;
case 2: /* all */
- tclearregion(0, 0, term.col-1, term.row-1
, 1
);
+ tclearregion(0, 0, term.col-1, term.row-1);
break;
default:
goto unknown;
break;
default:
goto unknown;
@@
-1786,13
+1783,13
@@
csihandle(void) {
switch(csiescseq.arg[0]) {
case 0: /* right */
tclearregion(term.c.x, term.c.y, term.col-1,
switch(csiescseq.arg[0]) {
case 0: /* right */
tclearregion(term.c.x, term.c.y, term.col-1,
- term.c.y
, 1
);
+ term.c.y);
break;
case 1: /* left */
break;
case 1: /* left */
- tclearregion(0, term.c.y, term.c.x, term.c.y
, 1
);
+ tclearregion(0, term.c.y, term.c.x, term.c.y);
break;
case 2: /* all */
break;
case 2: /* all */
- tclearregion(0, term.c.y, term.col-1, term.c.y
, 1
);
+ tclearregion(0, term.c.y, term.col-1, term.c.y);
break;
}
break;
break;
}
break;
@@
-1818,7
+1815,7
@@
csihandle(void) {
case 'X': /* ECH -- Erase <n> char */
DEFAULT(csiescseq.arg[0], 1);
tclearregion(term.c.x, term.c.y,
case 'X': /* ECH -- Erase <n> char */
DEFAULT(csiescseq.arg[0], 1);
tclearregion(term.c.x, term.c.y,
- term.c.x + csiescseq.arg[0] - 1, term.c.y
, 1
);
+ term.c.x + csiescseq.arg[0] - 1, term.c.y);
break;
case 'P': /* DCH -- Delete <n> char */
DEFAULT(csiescseq.arg[0], 1);
break;
case 'P': /* DCH -- Delete <n> char */
DEFAULT(csiescseq.arg[0], 1);