[hackers] [dmenu] Prepared 4.9 release. || Anselm R Garbe

From: <git_AT_suckless.org>
Date: Sun, 3 Feb 2019 21:54:26 +0100 (CET)

commit 65be875f5adf31e9c4762ac8a8d74b1dfdd78584
Author: Anselm R Garbe <anselm_AT_garbe.ca>
AuthorDate: Sat Feb 2 04:54:15 2019 -0800
Commit: Anselm R Garbe <anselm_AT_garbe.ca>
CommitDate: Sat Feb 2 04:54:15 2019 -0800

    Prepared 4.9 release.

diff --git a/LICENSE b/LICENSE
index d0c6d64..6ed8ad3 100644
--- a/LICENSE
+++ b/LICENSE
_AT_@ -1,6 +1,6 @@
 MIT/X Consortium License
 
-© 2006-2014 Anselm R Garbe <anselm_AT_garbe.us>
+© 2006-2019 Anselm R Garbe <anselm_AT_garbe.ca>
 © 2006-2008 Sander van Dijk <a.h.vandijk_AT_gmail.com>
 © 2006-2007 Michał Janeczek <janeczek_AT_gmail.com>
 © 2007 Kris Maglione <jg_AT_suckless.org>
_AT_@ -8,7 +8,7 @@ MIT/X Consortium License
 © 2009 Markus Schnalke <meillo_AT_marmaro.de>
 © 2009 Evan Gates <evan.gates_AT_gmail.com>
 © 2010-2012 Connor Lane Smith <cls_AT_lubutu.com>
-© 2014-2018 Hiltjo Posthuma <hiltjo_AT_codemadness.org>
+© 2014-2019 Hiltjo Posthuma <hiltjo_AT_codemadness.org>
 © 2015-2018 Quentin Rameau <quinq_AT_fifth.space>
 
 Permission is hereby granted, free of charge, to any person obtaining a
diff --git a/config.mk b/config.mk
index ae34ad8..0929b4a 100644
--- a/config.mk
+++ b/config.mk
_AT_@ -1,5 +1,5 @@
 # dmenu version
-VERSION = 4.8
+VERSION = 4.9
 
 # paths
 PREFIX = /usr/local
diff --git a/drw.c b/drw.c
index c638323..8fd1ca4 100644
--- a/drw.c
+++ b/drw.c
_AT_@ -132,6 +132,19 @@ xfont_create(Drw *drw, const char *fontname, FcPattern *fontpattern)
                 die("no font specified.");
         }
 
+ /* Do not allow using color fonts. This is a workaround for a BadLength
+ * error from Xft with color glyphs. Modelled on the Xterm workaround. See
+ * https://bugzilla.redhat.com/show_bug.cgi?id=1498269
+ * https://lists.suckless.org/dev/1701/30932.html
+ * https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=916349
+ * and lots more all over the internet.
+ */
+ FcBool iscol;
+ if(FcPatternGetBool(xfont->pattern, FC_COLOR, 0, &iscol) == FcResultMatch && iscol) {
+ XftFontClose(drw->dpy, xfont);
+ return NULL;
+ }
+
         font = ecalloc(1, sizeof(Fnt));
         font->xfont = xfont;
         font->pattern = pattern;
_AT_@ -200,7 +213,7 @@ drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount)
         Clr *ret;
 
         /* need at least two colors for a scheme */
- if (!drw || !clrnames || clrcount < 2 || !(ret = ecalloc(clrcount, sizeof(Clr))))
+ if (!drw || !clrnames || clrcount < 2 || !(ret = ecalloc(clrcount, sizeof(XftColor))))
                 return NULL;
 
         for (i = 0; i < clrcount; i++)
_AT_@ -337,6 +350,7 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lp
                         fcpattern = FcPatternDuplicate(drw->fonts->pattern);
                         FcPatternAddCharSet(fcpattern, FC_CHARSET, fccharset);
                         FcPatternAddBool(fcpattern, FC_SCALABLE, FcTrue);
+ FcPatternAddBool(fcpattern, FC_COLOR, FcFalse);
 
                         FcConfigSubstitute(NULL, fcpattern, FcMatchPattern);
                         FcDefaultSubstitute(fcpattern);
Received on Sun Feb 03 2019 - 21:54:26 CET

This archive was generated by hypermail 2.3.0 : Sun Feb 03 2019 - 22:00:22 CET