Move font/fontspec variables into x.c and XWindow
Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
This commit is contained in:
		
							
								
								
									
										11
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								st.c
									
									
									
									
									
								
							| @ -28,9 +28,6 @@ | ||||
| #include <X11/cursorfont.h> | ||||
| #include <X11/Xft/Xft.h> | ||||
|  | ||||
| #define Glyph Glyph_ | ||||
| #define Font Font_ | ||||
|  | ||||
| #include "st.h" | ||||
| #include "win.h" | ||||
|  | ||||
| @ -196,7 +193,6 @@ static size_t utf8validate(Rune *, size_t); | ||||
| static char *base64dec(const char *); | ||||
|  | ||||
| static ssize_t xwrite(int, const char *, size_t); | ||||
| static void *xrealloc(void *, size_t); | ||||
|  | ||||
| /* Globals */ | ||||
| TermWindow win; | ||||
| @ -218,10 +214,6 @@ static CSIEscape csiescseq; | ||||
| static STREscape strescseq; | ||||
| static int iofd = 1; | ||||
|  | ||||
| char *usedfont = NULL; | ||||
| double usedfontsize = 0; | ||||
| double defaultfontsize = 0; | ||||
|  | ||||
| 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}; | ||||
| @ -2516,9 +2508,6 @@ tresize(int col, int row) | ||||
| 		free(term.alt[i]); | ||||
| 	} | ||||
|  | ||||
| 	/* resize to new width */ | ||||
| 	term.specbuf = xrealloc(term.specbuf, col * sizeof(GlyphFontSpec)); | ||||
|  | ||||
| 	/* resize to new height */ | ||||
| 	term.line = xrealloc(term.line, row * sizeof(Line)); | ||||
| 	term.alt  = xrealloc(term.alt,  row * sizeof(Line)); | ||||
|  | ||||
							
								
								
									
										8
									
								
								st.h
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								st.h
									
									
									
									
									
								
							| @ -92,6 +92,7 @@ typedef unsigned short ushort; | ||||
|  | ||||
| typedef uint_least32_t Rune; | ||||
|  | ||||
| #define Glyph Glyph_ | ||||
| typedef struct { | ||||
| 	Rune u;           /* character code */ | ||||
| 	ushort mode;      /* attribute flags */ | ||||
| @ -100,7 +101,6 @@ typedef struct { | ||||
| } Glyph; | ||||
|  | ||||
| typedef Glyph *Line; | ||||
| typedef XftGlyphFontSpec GlyphFontSpec; | ||||
|  | ||||
| typedef struct { | ||||
| 	Glyph attr; /* current char attributes */ | ||||
| @ -116,7 +116,6 @@ typedef struct { | ||||
| 	Line *line;   /* screen */ | ||||
| 	Line *alt;    /* alternate screen */ | ||||
| 	int *dirty;  /* dirtyness of lines */ | ||||
| 	GlyphFontSpec *specbuf; /* font spec buffer used for rendering */ | ||||
| 	TCursor c;    /* cursor */ | ||||
| 	int top;      /* top    scroll limit */ | ||||
| 	int bot;      /* bottom scroll limit */ | ||||
| @ -213,6 +212,7 @@ size_t utf8decode(char *, Rune *, size_t); | ||||
| size_t utf8encode(Rune, char *); | ||||
|  | ||||
| void *xmalloc(size_t); | ||||
| void *xrealloc(void *, size_t); | ||||
| char *xstrdup(char *); | ||||
|  | ||||
| /* Globals */ | ||||
| @ -231,10 +231,6 @@ extern char *opt_name; | ||||
| extern char *opt_title; | ||||
| extern int oldbutton; | ||||
|  | ||||
| extern char *usedfont; | ||||
| extern double usedfontsize; | ||||
| extern double defaultfontsize; | ||||
|  | ||||
| /* config.h globals */ | ||||
| extern char font[]; | ||||
| extern int borderpx; | ||||
|  | ||||
							
								
								
									
										18
									
								
								x.c
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								x.c
									
									
									
									
									
								
							| @ -17,10 +17,6 @@ | ||||
|  | ||||
| static char *argv0; | ||||
| #include "arg.h" | ||||
|  | ||||
| #define Glyph Glyph_ | ||||
| #define Font Font_ | ||||
|  | ||||
| #include "st.h" | ||||
| #include "win.h" | ||||
|  | ||||
| @ -35,6 +31,7 @@ static char *argv0; | ||||
|  | ||||
| typedef XftDraw *Draw; | ||||
| typedef XftColor Color; | ||||
| typedef XftGlyphFontSpec GlyphFontSpec; | ||||
|  | ||||
| /* Purely graphic info */ | ||||
| typedef struct { | ||||
| @ -42,6 +39,7 @@ typedef struct { | ||||
| 	Colormap cmap; | ||||
| 	Window win; | ||||
| 	Drawable buf; | ||||
| 	GlyphFontSpec *specbuf; /* font spec buffer used for rendering */ | ||||
| 	Atom xembed, wmdeletewin, netwmname, netwmpid; | ||||
| 	XIM xim; | ||||
| 	XIC xic; | ||||
| @ -59,6 +57,7 @@ typedef struct { | ||||
| } XSelection; | ||||
|  | ||||
| /* Font structure */ | ||||
| #define Font Font_ | ||||
| typedef struct { | ||||
| 	int height; | ||||
| 	int width; | ||||
| @ -166,6 +165,9 @@ typedef struct { | ||||
| /* Fontcache is an array now. A new font will be appended to the array. */ | ||||
| static Fontcache frc[16]; | ||||
| static int frclen = 0; | ||||
| static char *usedfont = NULL; | ||||
| static double usedfontsize = 0; | ||||
| static double defaultfontsize = 0; | ||||
|  | ||||
| void | ||||
| zoom(const Arg *arg) | ||||
| @ -605,6 +607,9 @@ xresize(int col, int row) | ||||
| 			DefaultDepth(xw.dpy, xw.scr)); | ||||
| 	XftDrawChange(xw.draw, xw.buf); | ||||
| 	xclear(0, 0, win.w, win.h); | ||||
|  | ||||
| 	/* resize to new width */ | ||||
| 	xw.specbuf = xrealloc(xw.specbuf, col * sizeof(GlyphFontSpec)); | ||||
| } | ||||
|  | ||||
| ushort | ||||
| @ -965,6 +970,9 @@ xinit(void) | ||||
| 	XSetForeground(xw.dpy, dc.gc, dc.col[defaultbg].pixel); | ||||
| 	XFillRectangle(xw.dpy, xw.buf, dc.gc, 0, 0, win.w, win.h); | ||||
|  | ||||
| 	/* font spec buffer */ | ||||
| 	xw.specbuf = xmalloc(term.col * sizeof(GlyphFontSpec)); | ||||
|  | ||||
| 	/* Xft rendering context */ | ||||
| 	xw.draw = XftDrawCreate(xw.dpy, xw.buf, xw.vis, xw.cmap); | ||||
|  | ||||
| @ -1456,7 +1464,7 @@ drawregion(int x1, int y1, int x2, int y2) | ||||
|  | ||||
| 		term.dirty[y] = 0; | ||||
|  | ||||
| 		specs = term.specbuf; | ||||
| 		specs = xw.specbuf; | ||||
| 		numspecs = xmakeglyphfontspecs(specs, &term.line[y][x1], x2 - x1, x1, y); | ||||
|  | ||||
| 		i = ox = 0; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user