From 14ad67f639b8cbb4d062eb3556879b7f9f008164 Mon Sep 17 00:00:00 2001 From: Von Random Date: Tue, 2 Apr 2019 19:13:41 +0300 Subject: actually properly use the original disable-bold-italic-fonts patch, apparently I have been doing it wrong --- config.h | 3 +- st-disable-bold-italic-fonts.patch | 67 +++++++++++++++++++++++--------------- 2 files changed, 43 insertions(+), 27 deletions(-) diff --git a/config.h b/config.h index 5171250..16415c8 100644 --- a/config.h +++ b/config.h @@ -9,8 +9,9 @@ static char *font = "xos4 Terminus:bold:pixelsize=14"; static int borderpx = 1; /* disable bold and italic font styles */ -int disablebold = 1; +int disablebold = 0; int disableitalic = 1; +int disableroman = 1; /* * What program is execed by st depends of these precedence rules: diff --git a/st-disable-bold-italic-fonts.patch b/st-disable-bold-italic-fonts.patch index a19584e..026dbe8 100644 --- a/st-disable-bold-italic-fonts.patch +++ b/st-disable-bold-italic-fonts.patch @@ -1,45 +1,60 @@ +# based on Alex Kozadaev's st-disable-bold-italic-fonts.diff +# https://st.suckless.org/patches/disable_bold_italic_fonts/ + +diff --git a/config.def.h b/config.def.h +index 482901e..50a4896 100644 --- a/config.def.h +++ b/config.def.h -@@ -8,6 +8,10 @@ +@@ -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"; - static int borderpx = 2; - -+/* disable bold and italic font styles */ ++ ++/* disable bold, italic and roman fonts globally */ +int disablebold = 0; +int disableitalic = 0; ++int disableroman = 0; + + static int borderpx = 2; + /* - * What program is execed by st depends of these precedence rules: - * 1: program passed with -e +diff --git a/x.c b/x.c +index 5828a3b..ad65501 100644 --- a/x.c +++ b/x.c -@@ -240,6 +240,10 @@ static char *opt_title = NULL; +@@ -244,6 +244,11 @@ static char *opt_title = NULL; static int oldbutton = 3; /* button event on startup: 3 = release */ +/* declared in config.h */ +extern int disablebold; +extern int disableitalic; ++extern int disableroman; + void clipcopy(const Arg *dummy) { -@@ -1152,13 +1156,15 @@ xmakeglyphfontspecs(XftGlyphFontSpec *specs, const Glyph *glyphs, int len, int x - frcflags = FRC_NORMAL; - runewidth = win.cw * ((mode & ATTR_WIDE) ? 2.0f : 1.0f); - if ((mode & ATTR_ITALIC) && (mode & ATTR_BOLD)) { -- font = &dc.ibfont; -+ if (!disableitalic && !disablebold) font = &dc.ibfont; -+ if (disableitalic && !disablebold) font = &dc.bfont; -+ if (!disableitalic && disablebold) font = &dc.ifont; - frcflags = FRC_ITALICBOLD; - } else if (mode & ATTR_ITALIC) { -- font = &dc.ifont; -+ if (!disableitalic) font = &dc.ifont; - frcflags = FRC_ITALIC; - } else if (mode & ATTR_BOLD) { -- font = &dc.bfont; -+ if (!disablebold) font = &dc.bfont; - frcflags = FRC_BOLD; - } - yp = winy + font->ascent; +@@ -960,17 +965,20 @@ xloadfonts(char *fontstr, double fontsize) + win.ch = ceilf(dc.font.height * chscale); + + FcPatternDel(pattern, FC_SLANT); +- FcPatternAddInteger(pattern, FC_SLANT, FC_SLANT_ITALIC); ++ if (!disableitalic) ++ FcPatternAddInteger(pattern, FC_SLANT, FC_SLANT_ITALIC); + if (xloadfont(&dc.ifont, pattern)) + die("can't open font %s\n", fontstr); + + FcPatternDel(pattern, FC_WEIGHT); +- FcPatternAddInteger(pattern, FC_WEIGHT, FC_WEIGHT_BOLD); ++ if (!disablebold) ++ FcPatternAddInteger(pattern, FC_WEIGHT, FC_WEIGHT_BOLD); + if (xloadfont(&dc.ibfont, pattern)) + die("can't open font %s\n", fontstr); + + FcPatternDel(pattern, FC_SLANT); +- FcPatternAddInteger(pattern, FC_SLANT, FC_SLANT_ROMAN); ++ if (!disableroman) ++ FcPatternAddInteger(pattern, FC_SLANT, FC_SLANT_ROMAN); + if (xloadfont(&dc.bfont, pattern)) + die("can't open font %s\n", fontstr); + -- cgit v1.2.3