Xinqi Bao's Git
projects
/
st.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
Correctly initialize altscreen when defaultbg is not 0.
[st.git]
/
st.c
diff --git
a/st.c
b/st.c
index
6756f76
..
0fa0c86
100644
(file)
--- a/
st.c
+++ b/
st.c
@@
-362,7
+362,7
@@
static void tsetdirtattr(int);
static void tsetmode(bool, bool, int *, int);
static void tfulldirt(void);
static void techo(char *, int);
static void tsetmode(bool, bool, int *, int);
static void tfulldirt(void);
static void techo(char *, int);
-static
u
long tdefcolor(int *, int *, int);
+static long tdefcolor(int *, int *, int);
static inline bool match(uint, uint);
static void ttynew(void);
static void ttyread(void);
static inline bool match(uint, uint);
static void ttynew(void);
static void ttyread(void);
@@
-420,7
+420,6
@@
static int isfullutf8(char *, int);
static ssize_t xwrite(int, char *, size_t);
static void *xmalloc(size_t);
static void *xrealloc(void *, size_t);
static ssize_t xwrite(int, char *, size_t);
static void *xmalloc(size_t);
static void *xrealloc(void *, size_t);
-static void *xcalloc(size_t, size_t);
static void (*handler[LASTEvent])(XEvent *) = {
[KeyPress] = kpress,
static void (*handler[LASTEvent])(XEvent *) = {
[KeyPress] = kpress,
@@
-509,16
+508,6
@@
xrealloc(void *p, size_t len) {
return p;
}
return p;
}
-void *
-xcalloc(size_t nmemb, size_t size) {
- void *p = calloc(nmemb, size);
-
- if(!p)
- die("Out of memory\n");
-
- return p;
-}
-
int
utf8decode(char *s, long *u) {
uchar c;
int
utf8decode(char *s, long *u) {
uchar c;
@@
-1370,7
+1359,7
@@
treset(void) {
void
tnew(int col, int row) {
void
tnew(int col, int row) {
-
memset(&term, 0, sizeof(Term))
;
+
term = (Term){ .c = { .attr = { .fg = defaultfg, .bg = defaultbg } } }
;
tresize(col, row);
term.numlock = 1;
tresize(col, row);
term.numlock = 1;
@@
-1626,7
+1615,7
@@
tdeleteline(int n) {
tscrollup(term.c.y, n);
}
tscrollup(term.c.y, n);
}
-
u
long
+long
tdefcolor(int *attr, int *npar, int l) {
long idx = -1;
uint r, g, b;
tdefcolor(int *attr, int *npar, int l) {
long idx = -1;
uint r, g, b;
@@
-1677,7
+1666,7
@@
tdefcolor(int *attr, int *npar, int l) {
void
tsetattr(int *attr, int l) {
int i;
void
tsetattr(int *attr, int l) {
int i;
-
u
long idx;
+ long idx;
for(i = 0; i < l; i++) {
switch(attr[i]) {
for(i = 0; i < l; i++) {
switch(attr[i]) {
@@
-2536,8
+2525,8
@@
tresize(int col, int row) {
/* allocate any new rows */
for(/* i == minrow */; i < row; i++) {
term.dirty[i] = 1;
/* allocate any new rows */
for(/* i == minrow */; i < row; i++) {
term.dirty[i] = 1;
- term.line[i] = x
calloc(col,
sizeof(Glyph));
- term.alt
[i] = xcalloc(col,
sizeof(Glyph));
+ term.line[i] = x
malloc(col *
sizeof(Glyph));
+ term.alt
[i] = xmalloc(col *
sizeof(Glyph));
}
if(col > term.col) {
bp = term.tabs + term.col;
}
if(col > term.col) {
bp = term.tabs + term.col;
@@
-3111,7
+3100,7
@@
xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
winy + font->ascent,
(FcChar8 *)u8fs,
u8fblen);
winy + font->ascent,
(FcChar8 *)u8fs,
u8fblen);
- xp +=
CEIL(font->width * cwscale * u8fl)
;
+ xp +=
xw.cw * u8fl
;
}
break;
}
break;
@@
-3121,7
+3110,7
@@
xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
u8fblen += u8cblen;
}
if(doesexist) {
u8fblen += u8cblen;
}
if(doesexist) {
- if (oneatatime)
;
+ if (oneatatime)
continue;
break;
}
continue;
break;
}
@@
-3184,7
+3173,7
@@
xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
xp, winy + frc[i].font->ascent,
(FcChar8 *)u8c, u8cblen);
xp, winy + frc[i].font->ascent,
(FcChar8 *)u8c, u8cblen);
- xp +=
CEIL(font->width * cwscale)
;
+ xp +=
xw.cw
;
}
/*
}
/*
@@
-3258,6
+3247,7
@@
xsettitle(char *p) {
Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
&prop);
XSetWMName(xw.dpy, xw.win, &prop);
Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
&prop);
XSetWMName(xw.dpy, xw.win, &prop);
+ XFree(prop.value);
}
void
}
void
@@
-3606,8
+3596,8
@@
run(void) {
ttyread();
if(blinktimeout) {
blinkset = tattrset(ATTR_BLINK);
ttyread();
if(blinktimeout) {
blinkset = tattrset(ATTR_BLINK);
- if(!blinkset
&& term.mode & ATTR_BLINK
)
-
term.mode &= ~(
MODE_BLINK);
+ if(!blinkset)
+
MODBIT(term.mode, 0,
MODE_BLINK);
}
}
}
}
@@
-3713,7
+3703,7
@@
main(int argc, char *argv[]) {
xw.fh = (int)hr;
if(bitm & XNegative && xw.fx == 0)
xw.fx = -1;
xw.fh = (int)hr;
if(bitm & XNegative && xw.fx == 0)
xw.fx = -1;
- if(bitm &
X
Negative && xw.fy == 0)
+ if(bitm &
Y
Negative && xw.fy == 0)
xw.fy = -1;
if(xw.fh != 0 && xw.fw != 0)
xw.fy = -1;
if(xw.fh != 0 && xw.fw != 0)