Merge remote-tracking branch 'upstream/master'
						commit
						95ccc62779
					
				
							
								
								
									
										4
									
								
								config.h
								
								
								
								
							
							
						
						
									
										4
									
								
								config.h
								
								
								
								
							|  | @ -5,12 +5,12 @@ | |||
|  * | ||||
|  * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
 | ||||
|  */ | ||||
| static char *font = "Fira Code:size=11:antialias=true;autohint=true"; | ||||
| static char *font = "Fira Code:size=10:antialias=true;autohint=true"; | ||||
| static char *font2[] = { | ||||
|     "Noto Color Emoji:size=10:antialias=true;autohint=true" | ||||
| }; | ||||
| static int borderpx = 2; | ||||
| float alpha = 0.95; | ||||
| float alpha = 0.7; | ||||
| 
 | ||||
| /* Lines to move per scroll */ | ||||
| const unsigned int mousescrollincrement = 5; | ||||
|  |  | |||
							
								
								
									
										57
									
								
								st.c
								
								
								
								
							
							
						
						
									
										57
									
								
								st.c
								
								
								
								
							|  | @ -193,18 +193,18 @@ static void tputc(Rune); | |||
| static void treset(void); | ||||
| static void tscrollup(int, int, int); | ||||
| static void tscrolldown(int, int, int); | ||||
| static void tsetattr(int *, int); | ||||
| static void tsetchar(Rune, Glyph *, int, int); | ||||
| static void tsetattr(const int *, int); | ||||
| static void tsetchar(Rune, const Glyph *, int, int); | ||||
| static void tsetdirt(int, int); | ||||
| static void tsetscroll(int, int); | ||||
| 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 void tfulldirt(void); | ||||
| static void tcontrolcode(uchar ); | ||||
| static void tdectest(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 tstrsequence(uchar); | ||||
| 
 | ||||
|  | @ -233,10 +233,10 @@ static int iofd = 1; | |||
| static int cmdfd; | ||||
| static pid_t pid; | ||||
| 
 | ||||
| static uchar utfbyte[UTF_SIZ + 1] = {0x80,    0, 0xC0, 0xE0, 0xF0}; | ||||
| static uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8}; | ||||
| static Rune utfmin[UTF_SIZ + 1] = {       0,    0,  0x80,  0x800,  0x10000}; | ||||
| static Rune utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF}; | ||||
| static const uchar utfbyte[UTF_SIZ + 1] = {0x80,    0, 0xC0, 0xE0, 0xF0}; | ||||
| static const uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8}; | ||||
| static const Rune utfmin[UTF_SIZ + 1] = {       0,    0,  0x80,  0x800,  0x10000}; | ||||
| static const Rune utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF}; | ||||
| 
 | ||||
| ssize_t | ||||
| xwrite(int fd, const char *s, size_t len) | ||||
|  | @ -276,12 +276,14 @@ xrealloc(void *p, size_t len) | |||
| } | ||||
| 
 | ||||
| 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)); | ||||
| 
 | ||||
| 	return s; | ||||
| 	return p; | ||||
| } | ||||
| 
 | ||||
| size_t | ||||
|  | @ -525,7 +527,7 @@ selsnap(int *x, int *y, int direction) | |||
| { | ||||
| 	int newx, newy, xt, yt; | ||||
| 	int delim, prevdelim; | ||||
| 	Glyph *gp, *prevgp; | ||||
| 	const Glyph *gp, *prevgp; | ||||
| 
 | ||||
| 	switch (sel.snap) { | ||||
| 	case SNAP_WORD: | ||||
|  | @ -598,7 +600,7 @@ getsel(void) | |||
| { | ||||
| 	char *str, *ptr; | ||||
| 	int y, bufsize, lastx, linelen; | ||||
| 	Glyph *gp, *last; | ||||
| 	const Glyph *gp, *last; | ||||
| 
 | ||||
| 	if (sel.ob.x == -1) | ||||
| 		return NULL; | ||||
|  | @ -765,7 +767,7 @@ stty(char **args) | |||
| } | ||||
| 
 | ||||
| int | ||||
| ttynew(char *line, char *cmd, char *out, char **args) | ||||
| ttynew(const char *line, char *cmd, const char *out, char **args) | ||||
| { | ||||
| 	int m, s; | ||||
| 
 | ||||
|  | @ -798,14 +800,15 @@ ttynew(char *line, char *cmd, char *out, char **args) | |||
| 		break; | ||||
| 	case 0: | ||||
| 		close(iofd); | ||||
| 		close(m); | ||||
| 		setsid(); /* create a new process group */ | ||||
| 		dup2(s, 0); | ||||
| 		dup2(s, 1); | ||||
| 		dup2(s, 2); | ||||
| 		if (ioctl(s, TIOCSCTTY, NULL) < 0) | ||||
| 			die("ioctl TIOCSCTTY failed: %s\n", strerror(errno)); | ||||
| 		close(s); | ||||
| 		close(m); | ||||
| 		if (s > 2) | ||||
| 			close(s); | ||||
| #ifdef __OpenBSD__ | ||||
| 		if (pledge("stdio getpw proc exec", NULL) == -1) | ||||
| 			die("pledge\n"); | ||||
|  | @ -1253,9 +1256,9 @@ tmoveto(int x, int y) | |||
| } | ||||
| 
 | ||||
| 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 */ | ||||
| 		0, 0, 0, 0, 0, 0, 0, 0, /* H - O */ | ||||
| 		0, 0, 0, 0, 0, 0, 0, 0, /* P - W */ | ||||
|  | @ -1370,7 +1373,7 @@ tdeleteline(int n) | |||
| } | ||||
| 
 | ||||
| int32_t | ||||
| tdefcolor(int *attr, int *npar, int l) | ||||
| tdefcolor(const int *attr, int *npar, int l) | ||||
| { | ||||
| 	int32_t idx = -1; | ||||
| 	uint r, g, b; | ||||
|  | @ -1420,7 +1423,7 @@ tdefcolor(int *attr, int *npar, int l) | |||
| } | ||||
| 
 | ||||
| void | ||||
| tsetattr(int *attr, int l) | ||||
| tsetattr(const int *attr, int l) | ||||
| { | ||||
| 	int i; | ||||
| 	int32_t idx; | ||||
|  | @ -1538,9 +1541,9 @@ tsetscroll(int t, int b) | |||
| } | ||||
| 
 | ||||
| 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) { | ||||
| 		if (priv) { | ||||
|  | @ -1923,7 +1926,15 @@ strhandle(void) | |||
| 	case ']': /* OSC -- Operating System Command */ | ||||
| 		switch (par) { | ||||
| 		case 0: | ||||
| 			if (narg > 1) { | ||||
| 				xsettitle(strescseq.args[1]); | ||||
| 				xseticontitle(strescseq.args[1]); | ||||
| 			} | ||||
| 			return; | ||||
| 		case 1: | ||||
| 			if (narg > 1) | ||||
| 				xseticontitle(strescseq.args[1]); | ||||
| 			return; | ||||
| 		case 2: | ||||
| 			if (narg > 1) | ||||
| 				xsettitle(strescseq.args[1]); | ||||
|  | @ -2082,7 +2093,7 @@ void | |||
| tdumpline(int n) | ||||
| { | ||||
| 	char buf[UTF_SIZ]; | ||||
| 	Glyph *bp, *end; | ||||
| 	const Glyph *bp, *end; | ||||
| 
 | ||||
| 	bp = &term.line[n][0]; | ||||
| 	end = &bp[MIN(tlinelen(n), term.col) - 1]; | ||||
|  |  | |||
							
								
								
									
										4
									
								
								st.h
								
								
								
								
							
							
						
						
									
										4
									
								
								st.h
								
								
								
								
							|  | @ -97,7 +97,7 @@ void tnew(int, int); | |||
| void tresize(int, int); | ||||
| void tsetdirtattr(int); | ||||
| void ttyhangup(void); | ||||
| int ttynew(char *, char *, char *, char **); | ||||
| int ttynew(const char *, char *, const char *, char **); | ||||
| size_t ttyread(void); | ||||
| void ttyresize(int, int); | ||||
| void ttywrite(const char *, size_t, int); | ||||
|  | @ -115,7 +115,7 @@ size_t utf8encode(Rune, char *); | |||
| 
 | ||||
| void *xmalloc(size_t); | ||||
| void *xrealloc(void *, size_t); | ||||
| char *xstrdup(char *); | ||||
| char *xstrdup(const char *); | ||||
| 
 | ||||
| int isboxdraw(Rune); | ||||
| ushort boxdrawindex(const Glyph *); | ||||
|  |  | |||
							
								
								
									
										1
									
								
								win.h
								
								
								
								
							
							
						
						
									
										1
									
								
								win.h
								
								
								
								
							|  | @ -30,6 +30,7 @@ void xdrawline(Line, int, int, int); | |||
| void xfinishdraw(void); | ||||
| void xloadcols(void); | ||||
| int xsetcolorname(int, const char *); | ||||
| void xseticontitle(char *); | ||||
| void xsettitle(char *); | ||||
| int xsetcursor(int); | ||||
| void xsetmode(int, unsigned int); | ||||
|  |  | |||
							
								
								
									
										34
									
								
								x.c
								
								
								
								
							
							
						
						
									
										34
									
								
								x.c
								
								
								
								
							|  | @ -50,7 +50,7 @@ typedef struct { | |||
| /* X modifiers */ | ||||
| #define XK_ANY_MOD    UINT_MAX | ||||
| #define XK_NO_MOD     0 | ||||
| #define XK_SWITCH_MOD (1<<13) | ||||
| #define XK_SWITCH_MOD (1<<13|1<<14) | ||||
| 
 | ||||
| /* function definitions used in config.h */ | ||||
| static void clipcopy(const Arg *); | ||||
|  | @ -97,7 +97,7 @@ typedef struct { | |||
| 	Window win; | ||||
| 	Drawable buf; | ||||
| 	GlyphFontSpec *specbuf; /* font spec buffer used for rendering */ | ||||
| 	Atom xembed, wmdeletewin, netwmname, netwmpid; | ||||
| 	Atom xembed, wmdeletewin, netwmname, netwmiconname, netwmpid; | ||||
| 	struct { | ||||
| 		XIM xim; | ||||
| 		XIC xic; | ||||
|  | @ -166,7 +166,7 @@ static void xresize(int, int); | |||
| static void xhints(void); | ||||
| static int xloadcolor(int, const char *, Color *); | ||||
| static int xloadfont(Font *, FcPattern *); | ||||
| static void xloadfonts(char *, double); | ||||
| static void xloadfonts(const char *, double); | ||||
| static int xloadsparefont(FcPattern *, int); | ||||
| static void xloadsparefonts(void); | ||||
| static void xunloadfont(Font *); | ||||
|  | @ -411,7 +411,9 @@ mousereport(XEvent *e) | |||
| 			button = 3; | ||||
| 		} else { | ||||
| 			button -= Button1; | ||||
| 			if (button >= 3) | ||||
| 			if (button >= 7) | ||||
| 				button += 128 - 7; | ||||
| 			else if (button >= 3) | ||||
| 				button += 64 - 3; | ||||
| 		} | ||||
| 		if (e->xbutton.type == ButtonPress) { | ||||
|  | @ -1005,7 +1007,7 @@ xloadfont(Font *f, FcPattern *pattern) | |||
| } | ||||
| 
 | ||||
| void | ||||
| xloadfonts(char *fontstr, double fontsize) | ||||
| xloadfonts(const char *fontstr, double fontsize) | ||||
| { | ||||
| 	FcPattern *pattern; | ||||
| 	double fontval; | ||||
|  | @ -1013,7 +1015,7 @@ xloadfonts(char *fontstr, double fontsize) | |||
| 	if (fontstr[0] == '-') | ||||
| 		pattern = XftXlfdParse(fontstr, False, False); | ||||
| 	else | ||||
| 		pattern = FcNameParse((FcChar8 *)fontstr); | ||||
| 		pattern = FcNameParse((const FcChar8 *)fontstr); | ||||
| 
 | ||||
| 	if (!pattern) | ||||
| 		die("can't open font %s\n", fontstr); | ||||
|  | @ -1354,6 +1356,7 @@ xinit(int cols, int rows) | |||
| 	xw.xembed = XInternAtom(xw.dpy, "_XEMBED", False); | ||||
| 	xw.wmdeletewin = XInternAtom(xw.dpy, "WM_DELETE_WINDOW", False); | ||||
| 	xw.netwmname = XInternAtom(xw.dpy, "_NET_WM_NAME", False); | ||||
| 	xw.netwmiconname = XInternAtom(xw.dpy, "_NET_WM_ICON_NAME", False); | ||||
| 	XSetWMProtocols(xw.dpy, xw.win, &xw.wmdeletewin, 1); | ||||
| 
 | ||||
| 	xw.netwmpid = XInternAtom(xw.dpy, "_NET_WM_PID", False); | ||||
|  | @ -1764,14 +1767,29 @@ xsetenv(void) | |||
| 	setenv("WINDOWID", buf, 1); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| xseticontitle(char *p) | ||||
| { | ||||
| 	XTextProperty prop; | ||||
| 	DEFAULT(p, opt_title); | ||||
| 
 | ||||
| 	if (Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle, | ||||
| 	                                &prop) != Success) | ||||
| 		return; | ||||
| 	XSetWMIconName(xw.dpy, xw.win, &prop); | ||||
| 	XSetTextProperty(xw.dpy, xw.win, &prop, xw.netwmiconname); | ||||
| 	XFree(prop.value); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| xsettitle(char *p) | ||||
| { | ||||
| 	XTextProperty prop; | ||||
| 	DEFAULT(p, opt_title); | ||||
| 
 | ||||
| 	Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle, | ||||
| 			&prop); | ||||
| 	if (Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle, | ||||
| 	                                &prop) != Success) | ||||
| 		return; | ||||
| 	XSetWMName(xw.dpy, xw.win, &prop); | ||||
| 	XSetTextProperty(xw.dpy, xw.win, &prop, xw.netwmname); | ||||
| 	XFree(prop.value); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue