apply font2 patch
This commit is contained in:
		@@ -26,6 +26,7 @@ The [suckless terminal (st)](https://st.suckless.org/) with some additional feat
 | 
			
		||||
 | 
			
		||||
+ Vertcenter
 | 
			
		||||
+ Scrollback
 | 
			
		||||
+ font2
 | 
			
		||||
+ updated to latest version 0.8.2
 | 
			
		||||
 | 
			
		||||
## Installation for newbs
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								config.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								config.h
									
									
									
									
									
								
							@@ -6,6 +6,7 @@
 | 
			
		||||
 * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
 | 
			
		||||
 */
 | 
			
		||||
static char *font = "mono:pixelsize=16:antialias=true:autohint=true";
 | 
			
		||||
static char *font2[] = { "Inconsolata for Powerline:pixelsize=16:antialias=true:autohint=true" };
 | 
			
		||||
static int borderpx = 2;
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										101
									
								
								x.c
									
									
									
									
									
								
							
							
						
						
									
										101
									
								
								x.c
									
									
									
									
									
								
							@@ -166,6 +166,8 @@ static void xhints(void);
 | 
			
		||||
static int xloadcolor(int, const char *, Color *);
 | 
			
		||||
static int xloadfont(Font *, FcPattern *);
 | 
			
		||||
static void xloadfonts(char *, double);
 | 
			
		||||
static int xloadsparefont(FcPattern *, int);
 | 
			
		||||
static void xloadsparefonts(void);
 | 
			
		||||
static void xunloadfont(Font *);
 | 
			
		||||
static void xunloadfonts(void);
 | 
			
		||||
static void xsetenv(void);
 | 
			
		||||
@@ -314,6 +316,7 @@ zoomabs(const Arg *arg)
 | 
			
		||||
{
 | 
			
		||||
	xunloadfonts();
 | 
			
		||||
	xloadfonts(usedfont, arg->f);
 | 
			
		||||
	xloadsparefonts();
 | 
			
		||||
	cresize(0, 0);
 | 
			
		||||
	redraw();
 | 
			
		||||
	xhints();
 | 
			
		||||
@@ -1023,6 +1026,101 @@ xloadfonts(char *fontstr, double fontsize)
 | 
			
		||||
	FcPatternDestroy(pattern);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
xloadsparefont(FcPattern *pattern, int flags)
 | 
			
		||||
{
 | 
			
		||||
	FcPattern *match;
 | 
			
		||||
	FcResult result;
 | 
			
		||||
 | 
			
		||||
	match = FcFontMatch(NULL, pattern, &result);
 | 
			
		||||
	if (!match) {
 | 
			
		||||
		return 1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (!(frc[frclen].font = XftFontOpenPattern(xw.dpy, match))) {
 | 
			
		||||
		FcPatternDestroy(match);
 | 
			
		||||
		return 1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	frc[frclen].flags = flags;
 | 
			
		||||
	/* Believe U+0000 glyph will present in each default font */
 | 
			
		||||
	frc[frclen].unicodep = 0;
 | 
			
		||||
	frclen++;
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
xloadsparefonts(void)
 | 
			
		||||
{
 | 
			
		||||
	FcPattern *pattern;
 | 
			
		||||
	double sizeshift, fontval;
 | 
			
		||||
	int fc;
 | 
			
		||||
	char **fp;
 | 
			
		||||
 | 
			
		||||
	if (frclen != 0)
 | 
			
		||||
		die("can't embed spare fonts. cache isn't empty");
 | 
			
		||||
 | 
			
		||||
	/* Calculate count of spare fonts */
 | 
			
		||||
	fc = sizeof(font2) / sizeof(*font2);
 | 
			
		||||
	if (fc == 0)
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	/* Allocate memory for cache entries. */
 | 
			
		||||
	if (frccap < 4 * fc) {
 | 
			
		||||
		frccap += 4 * fc - frccap;
 | 
			
		||||
		frc = xrealloc(frc, frccap * sizeof(Fontcache));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for (fp = font2; fp - font2 < fc; ++fp) {
 | 
			
		||||
 | 
			
		||||
		if (**fp == '-')
 | 
			
		||||
			pattern = XftXlfdParse(*fp, False, False);
 | 
			
		||||
		else
 | 
			
		||||
			pattern = FcNameParse((FcChar8 *)*fp);
 | 
			
		||||
 | 
			
		||||
		if (!pattern)
 | 
			
		||||
			die("can't open spare font %s\n", *fp);
 | 
			
		||||
 | 
			
		||||
		if (defaultfontsize > 0) {
 | 
			
		||||
			sizeshift = usedfontsize - defaultfontsize;
 | 
			
		||||
			if (sizeshift != 0 &&
 | 
			
		||||
					FcPatternGetDouble(pattern, FC_PIXEL_SIZE, 0, &fontval) ==
 | 
			
		||||
					FcResultMatch) {
 | 
			
		||||
				fontval += sizeshift;
 | 
			
		||||
				FcPatternDel(pattern, FC_PIXEL_SIZE);
 | 
			
		||||
				FcPatternDel(pattern, FC_SIZE);
 | 
			
		||||
				FcPatternAddDouble(pattern, FC_PIXEL_SIZE, fontval);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		FcPatternAddBool(pattern, FC_SCALABLE, 1);
 | 
			
		||||
 | 
			
		||||
		FcConfigSubstitute(NULL, pattern, FcMatchPattern);
 | 
			
		||||
		XftDefaultSubstitute(xw.dpy, xw.scr, pattern);
 | 
			
		||||
 | 
			
		||||
		if (xloadsparefont(pattern, FRC_NORMAL))
 | 
			
		||||
			die("can't open spare font %s\n", *fp);
 | 
			
		||||
 | 
			
		||||
		FcPatternDel(pattern, FC_SLANT);
 | 
			
		||||
		FcPatternAddInteger(pattern, FC_SLANT, FC_SLANT_ITALIC);
 | 
			
		||||
		if (xloadsparefont(pattern, FRC_ITALIC))
 | 
			
		||||
			die("can't open spare font %s\n", *fp);
 | 
			
		||||
 | 
			
		||||
		FcPatternDel(pattern, FC_WEIGHT);
 | 
			
		||||
		FcPatternAddInteger(pattern, FC_WEIGHT, FC_WEIGHT_BOLD);
 | 
			
		||||
		if (xloadsparefont(pattern, FRC_ITALICBOLD))
 | 
			
		||||
			die("can't open spare font %s\n", *fp);
 | 
			
		||||
 | 
			
		||||
		FcPatternDel(pattern, FC_SLANT);
 | 
			
		||||
		FcPatternAddInteger(pattern, FC_SLANT, FC_SLANT_ROMAN);
 | 
			
		||||
		if (xloadsparefont(pattern, FRC_BOLD))
 | 
			
		||||
			die("can't open spare font %s\n", *fp);
 | 
			
		||||
 | 
			
		||||
		FcPatternDestroy(pattern);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
xunloadfont(Font *f)
 | 
			
		||||
{
 | 
			
		||||
@@ -1113,6 +1211,9 @@ xinit(int cols, int rows)
 | 
			
		||||
	usedfont = (opt_font == NULL)? font : opt_font;
 | 
			
		||||
	xloadfonts(usedfont, 0);
 | 
			
		||||
 | 
			
		||||
	/* spare fonts */
 | 
			
		||||
	xloadsparefonts();
 | 
			
		||||
 | 
			
		||||
	/* colors */
 | 
			
		||||
	xw.cmap = XCreateColormap(xw.dpy, parent, xw.vis, None);
 | 
			
		||||
	xloadcols();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user