Compare commits
9 Commits
9aa119dc5b
...
667493fbc4
Author | SHA1 | Date |
---|---|---|
celso | 667493fbc4 | |
celso | 8b642a44e0 | |
celso | 23a3014ca8 | |
celso | 8d8fbb51fa | |
celso | 0a150530fa | |
celso | 344c75863e | |
celso | 4d6768c0f8 | |
celso | e603aa84ca | |
celso | 9890bfbc3b |
|
@ -1,5 +1,5 @@
|
||||||
# st version
|
# st version
|
||||||
VERSION = 0.9.2
|
VERSION = 0.9.1
|
||||||
|
|
||||||
# Customize below to fit your system
|
# Customize below to fit your system
|
||||||
|
|
||||||
|
|
15
st.c
15
st.c
|
@ -112,8 +112,8 @@ enum escape_state {
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
Glyph attr; /* current char attributes */
|
Glyph attr; /* current char attributes */
|
||||||
int x;
|
int x; /* terminal column */
|
||||||
int y;
|
int y; /* terminal row */
|
||||||
char state;
|
char state;
|
||||||
} TCursor;
|
} TCursor;
|
||||||
|
|
||||||
|
@ -1361,7 +1361,6 @@ csiparse(void)
|
||||||
{
|
{
|
||||||
char *p = csiescseq.buf, *np;
|
char *p = csiescseq.buf, *np;
|
||||||
long int v;
|
long int v;
|
||||||
int sep = ';'; /* colon or semi-colon, but not both */
|
|
||||||
|
|
||||||
csiescseq.narg = 0;
|
csiescseq.narg = 0;
|
||||||
if (*p == '?') {
|
if (*p == '?') {
|
||||||
|
@ -1379,9 +1378,7 @@ csiparse(void)
|
||||||
v = -1;
|
v = -1;
|
||||||
csiescseq.arg[csiescseq.narg++] = v;
|
csiescseq.arg[csiescseq.narg++] = v;
|
||||||
p = np;
|
p = np;
|
||||||
if (sep == ';' && *p == ':')
|
if (*p != ';' || csiescseq.narg == ESC_ARG_SIZ)
|
||||||
sep = ':'; /* allow override to colon once */
|
|
||||||
if (*p != sep || csiescseq.narg == ESC_ARG_SIZ)
|
|
||||||
break;
|
break;
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
|
@ -2408,12 +2405,16 @@ tstrsequence(uchar c)
|
||||||
void
|
void
|
||||||
tcontrolcode(uchar ascii)
|
tcontrolcode(uchar ascii)
|
||||||
{
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
switch (ascii) {
|
switch (ascii) {
|
||||||
case '\t': /* HT */
|
case '\t': /* HT */
|
||||||
tputtab(1);
|
tputtab(1);
|
||||||
return;
|
return;
|
||||||
case '\b': /* BS */
|
case '\b': /* BS */
|
||||||
tmoveto(term.c.x-1, term.c.y);
|
for (i = 1; term.c.x && term.line[term.c.y][term.c.x - i].u == 0; ++i)
|
||||||
|
;
|
||||||
|
tmoveto(term.c.x - i, term.c.y);
|
||||||
return;
|
return;
|
||||||
case '\r': /* CR */
|
case '\r': /* CR */
|
||||||
tmoveto(0, term.c.y);
|
tmoveto(0, term.c.y);
|
||||||
|
|
17
x.c
17
x.c
|
@ -1235,7 +1235,7 @@ xinit(int cols, int rows)
|
||||||
{
|
{
|
||||||
XGCValues gcvalues;
|
XGCValues gcvalues;
|
||||||
Cursor cursor;
|
Cursor cursor;
|
||||||
Window parent, root;
|
Window parent;
|
||||||
pid_t thispid = getpid();
|
pid_t thispid = getpid();
|
||||||
XColor xmousefg, xmousebg;
|
XColor xmousefg, xmousebg;
|
||||||
|
|
||||||
|
@ -1275,19 +1275,16 @@ xinit(int cols, int rows)
|
||||||
| ButtonMotionMask | ButtonPressMask | ButtonReleaseMask;
|
| ButtonMotionMask | ButtonPressMask | ButtonReleaseMask;
|
||||||
xw.attrs.colormap = xw.cmap;
|
xw.attrs.colormap = xw.cmap;
|
||||||
|
|
||||||
root = XRootWindow(xw.dpy, xw.scr);
|
|
||||||
if (!(opt_embed && (parent = strtol(opt_embed, NULL, 0))))
|
if (!(opt_embed && (parent = strtol(opt_embed, NULL, 0))))
|
||||||
parent = root;
|
parent = XRootWindow(xw.dpy, xw.scr);
|
||||||
xw.win = XCreateWindow(xw.dpy, root, xw.l, xw.t,
|
xw.win = XCreateWindow(xw.dpy, parent, xw.l, xw.t,
|
||||||
win.w, win.h, 0, XDefaultDepth(xw.dpy, xw.scr), InputOutput,
|
win.w, win.h, 0, XDefaultDepth(xw.dpy, xw.scr), InputOutput,
|
||||||
xw.vis, CWBackPixel | CWBorderPixel | CWBitGravity
|
xw.vis, CWBackPixel | CWBorderPixel | CWBitGravity
|
||||||
| CWEventMask | CWColormap, &xw.attrs);
|
| CWEventMask | CWColormap, &xw.attrs);
|
||||||
if (parent != root)
|
|
||||||
XReparentWindow(xw.dpy, xw.win, parent, xw.l, xw.t);
|
|
||||||
|
|
||||||
memset(&gcvalues, 0, sizeof(gcvalues));
|
memset(&gcvalues, 0, sizeof(gcvalues));
|
||||||
gcvalues.graphics_exposures = False;
|
gcvalues.graphics_exposures = False;
|
||||||
dc.gc = XCreateGC(xw.dpy, xw.win, GCGraphicsExposures,
|
dc.gc = XCreateGC(xw.dpy, parent, GCGraphicsExposures,
|
||||||
&gcvalues);
|
&gcvalues);
|
||||||
xw.buf = XCreatePixmap(xw.dpy, xw.win, win.w, win.h,
|
xw.buf = XCreatePixmap(xw.dpy, xw.win, win.w, win.h,
|
||||||
DefaultDepth(xw.dpy, xw.scr));
|
DefaultDepth(xw.dpy, xw.scr));
|
||||||
|
@ -1727,9 +1724,6 @@ xseticontitle(char *p)
|
||||||
XTextProperty prop;
|
XTextProperty prop;
|
||||||
DEFAULT(p, opt_title);
|
DEFAULT(p, opt_title);
|
||||||
|
|
||||||
if (p[0] == '\0')
|
|
||||||
p = opt_title;
|
|
||||||
|
|
||||||
if (Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
|
if (Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
|
||||||
&prop) != Success)
|
&prop) != Success)
|
||||||
return;
|
return;
|
||||||
|
@ -1744,9 +1738,6 @@ xsettitle(char *p)
|
||||||
XTextProperty prop;
|
XTextProperty prop;
|
||||||
DEFAULT(p, opt_title);
|
DEFAULT(p, opt_title);
|
||||||
|
|
||||||
if (p[0] == '\0')
|
|
||||||
p = opt_title;
|
|
||||||
|
|
||||||
if (Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
|
if (Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
|
||||||
&prop) != Success)
|
&prop) != Success)
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue