Compare commits
	
		
			14 Commits
		
	
	
		
			667493fbc4
			...
			9aa119dc5b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 9aa119dc5b | |||
| b72575e0ba | |||
| b9e3a50a5e | |||
| 3a5cb6f5fa | |||
| 290270185f | |||
| 71e9008164 | |||
| 74f7d621e1 | |||
| 636c250557 | |||
| 24b6482415 | |||
| 
						 | 
					a0274bc20e | ||
| 
						 | 
					5dbcca4926 | ||
| 
						 | 
					d63b9eb902 | ||
| 
						 | 
					497a756382 | ||
| 
						 | 
					8c68ec5241 | 
@ -1,5 +1,5 @@
 | 
				
			|||||||
# st version
 | 
					# st version
 | 
				
			||||||
VERSION = 0.9.1
 | 
					VERSION = 0.9.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 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; /* terminal column */
 | 
						int x;
 | 
				
			||||||
	int y; /* terminal row */
 | 
						int y;
 | 
				
			||||||
	char state;
 | 
						char state;
 | 
				
			||||||
} TCursor;
 | 
					} TCursor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1361,6 +1361,7 @@ 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 == '?') {
 | 
				
			||||||
@ -1378,7 +1379,9 @@ csiparse(void)
 | 
				
			|||||||
			v = -1;
 | 
								v = -1;
 | 
				
			||||||
		csiescseq.arg[csiescseq.narg++] = v;
 | 
							csiescseq.arg[csiescseq.narg++] = v;
 | 
				
			||||||
		p = np;
 | 
							p = np;
 | 
				
			||||||
		if (*p != ';' || csiescseq.narg == ESC_ARG_SIZ)
 | 
							if (sep == ';' && *p == ':')
 | 
				
			||||||
 | 
								sep = ':'; /* allow override to colon once */
 | 
				
			||||||
 | 
							if (*p != sep || csiescseq.narg == ESC_ARG_SIZ)
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		p++;
 | 
							p++;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@ -2405,16 +2408,12 @@ 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 */
 | 
				
			||||||
		for (i = 1; term.c.x && term.line[term.c.y][term.c.x - i].u == 0; ++i)
 | 
							tmoveto(term.c.x-1, term.c.y);
 | 
				
			||||||
			;
 | 
					 | 
				
			||||||
		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;
 | 
						Window parent, root;
 | 
				
			||||||
	pid_t thispid = getpid();
 | 
						pid_t thispid = getpid();
 | 
				
			||||||
	XColor xmousefg, xmousebg;
 | 
						XColor xmousefg, xmousebg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1275,16 +1275,19 @@ 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 = XRootWindow(xw.dpy, xw.scr);
 | 
							parent = root;
 | 
				
			||||||
	xw.win = XCreateWindow(xw.dpy, parent, xw.l, xw.t,
 | 
						xw.win = XCreateWindow(xw.dpy, root, 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, parent, GCGraphicsExposures,
 | 
						dc.gc = XCreateGC(xw.dpy, xw.win, 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));
 | 
				
			||||||
@ -1724,6 +1727,9 @@ 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;
 | 
				
			||||||
@ -1738,6 +1744,9 @@ 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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user