summaryrefslogtreecommitdiff
path: root/patches/st-font2-20190416-ba72400.diff
diff options
context:
space:
mode:
authorSaumit Dinesan <79687674+Saumit-D@users.noreply.github.com>2021-10-26 12:59:55 +0530
committerGitHub <noreply@github.com>2021-10-26 12:59:55 +0530
commit001e84d25bef36c7c9d8aaabc67d4efd9490e011 (patch)
tree818b214413ff780ef6dcf5d8469ad975db69ebe2 /patches/st-font2-20190416-ba72400.diff
parent8f42f765cb9f411d48cb40ca5edf01112acbe4da (diff)
Delete st-font2-20190416-ba72400.diff
Diffstat (limited to 'patches/st-font2-20190416-ba72400.diff')
-rw-r--r--patches/st-font2-20190416-ba72400.diff167
1 files changed, 0 insertions, 167 deletions
diff --git a/patches/st-font2-20190416-ba72400.diff b/patches/st-font2-20190416-ba72400.diff
deleted file mode 100644
index c7a2950..0000000
--- a/patches/st-font2-20190416-ba72400.diff
+++ /dev/null
@@ -1,167 +0,0 @@
-From ba724004c6a368e452114f7dc147a9978fe0f3b4 Mon Sep 17 00:00:00 2001
-From: Kirill Bugaev <kirill.bugaev87@gmail.com>
-Date: Tue, 16 Apr 2019 04:31:30 +0800
-Subject: [PATCH] This patch allows to add spare font besides default. Some
- glyphs can be not present in default font. For this glyphs st uses
- font-config and try to find them in font cache first. This patch append fonts
- defined in font2 variable to the beginning of font cache. So they will be
- used first for glyphs that absent in default font.
-
----
- config.def.h | 6 +++
- x.c | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 107 insertions(+)
-
-diff --git a/config.def.h b/config.def.h
-index 482901e..676719e 100644
---- a/config.def.h
-+++ b/config.def.h
-@@ -6,6 +6,12 @@
- * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
- */
- static char *font = "Liberation Mono:pixelsize=12:antialias=true:autohint=true";
-+/* Spare fonts */
-+static char *font2[] = {
-+/* "Inconsolata for Powerline:pixelsize=12:antialias=true:autohint=true", */
-+/* "Hack Nerd Font Mono:pixelsize=11:antialias=true:autohint=true", */
-+};
-+
- static int borderpx = 2;
-
- /*
-diff --git a/x.c b/x.c
-index 5828a3b..d37e59d 100644
---- a/x.c
-+++ b/x.c
-@@ -149,6 +149,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);
-@@ -296,6 +298,7 @@ zoomabs(const Arg *arg)
- {
- xunloadfonts();
- xloadfonts(usedfont, arg->f);
-+ xloadsparefonts();
- cresize(0, 0);
- redraw();
- xhints();
-@@ -977,6 +980,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)
- {
-@@ -1057,6 +1155,9 @@ xinit(int cols, int rows)
- usedfont = (opt_font == NULL)? font : opt_font;
- xloadfonts(usedfont, 0);
-
-+ /* spare fonts */
-+ xloadsparefonts();
-+
- /* colors */
- xw.cmap = XDefaultColormap(xw.dpy, xw.scr);
- xloadcols();
---
-2.21.0
-