Hi,

the patch below updates libXft to version 2.3.3.
ok ? comments ?

Index: ChangeLog
===================================================================
RCS file: /cvs/OpenBSD/xenocara/lib/libXft/ChangeLog,v
retrieving revision 1.6
diff -u -p -u -r1.6 ChangeLog
--- ChangeLog   12 Jul 2014 10:10:57 -0000      1.6
+++ ChangeLog   10 Jun 2019 16:52:02 -0000
@@ -1,3 +1,79 @@
+commit a266847d3c17dcdfcac719a1aa970ad54f4b545a
+Author: Alan Coopersmith <[email protected]>
+Date:   Sat Mar 16 11:03:38 2019 -0700
+
+    libXft 2.3.3
+    
+    Signed-off-by: Alan Coopersmith <[email protected]>
+
+commit fab5adf8fa3073862267e14aece1adf9eed0541c
+Author: Alan Coopersmith <[email protected]>
+Date:   Sat Mar 16 11:03:17 2019 -0700
+
+    Add description of libXft to README.md
+    
+    Signed-off-by: Alan Coopersmith <[email protected]>
+
+commit b397ffb23f02389b6c6168e7826605789907d740
+Author: Alan Coopersmith <[email protected]>
+Date:   Fri Dec 7 19:42:33 2018 -0800
+
+    Update configure.ac bug URL for gitlab migration
+    
+    Signed-off-by: Alan Coopersmith <[email protected]>
+
+commit bdfb2b0e0fbf02ae69fe6cb2fbe352c4231e5c54
+Author: Alan Coopersmith <[email protected]>
+Date:   Mon Nov 19 22:20:38 2018 -0800
+
+    Update README for gitlab migration
+    
+    Signed-off-by: Alan Coopersmith <[email protected]>
+
+commit c418dc7594f98359ae10815f62ee3efc0a511cf8
+Author: Mihail Konev <[email protected]>
+Date:   Thu Jan 26 13:52:49 2017 +1000
+
+    autogen: add default patch prefix
+    
+    Signed-off-by: Mihail Konev <[email protected]>
+
+commit 6a12debafe35963d205e0dc78eb742ad898312b7
+Author: Emil Velikov <[email protected]>
+Date:   Mon Mar 9 12:00:52 2015 +0000
+
+    autogen.sh: use quoted string variables
+    
+    Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent
+    fall-outs, when they contain space.
+    
+    Signed-off-by: Emil Velikov <[email protected]>
+    Reviewed-by: Peter Hutterer <[email protected]>
+    Signed-off-by: Peter Hutterer <[email protected]>
+
+commit 0d3402d1138afe9854452eb494acc649faa0dc9e
+Author: Peter Hutterer <[email protected]>
+Date:   Tue Jan 24 10:32:07 2017 +1000
+
+    autogen.sh: use exec instead of waiting for configure to finish
+    
+    Syncs the invocation of configure with the one from the server.
+    
+    Signed-off-by: Peter Hutterer <[email protected]>
+    Reviewed-by: Emil Velikov <[email protected]>
+
+commit e8a83226bc10afb587f6f34daac44d2ef809c85e
+Author: Keith Packard <[email protected]>
+Date:   Sun Oct 19 18:00:26 2014 -0500
+
+    XftDrawSrcPicture: Use XRenderCreateSolidFill when available
+    
+    Instead of creating 1x1 pictures, use the solid pictures added in
+    Render version 0.10
+    
+    Signed-off-by: Keith Packard <[email protected]>
+    Reviewed-by: Adam Jackson <[email protected]>
+
 commit 214f9b5306d833e2787c75fe41dfdc9228fcb738
 Author: Alan Coopersmith <[email protected]>
 Date:   Thu Jun 5 23:04:54 2014 -0700
Index: Makefile.am
===================================================================
RCS file: /cvs/OpenBSD/xenocara/lib/libXft/Makefile.am,v
retrieving revision 1.4
diff -u -p -u -r1.4 Makefile.am
--- Makefile.am 11 Nov 2010 10:18:57 -0000      1.4
+++ Makefile.am 10 Jun 2019 16:52:02 -0000
@@ -35,3 +35,5 @@ ChangeLog:
        $(CHANGELOG_CMD)
 
 dist-hook: ChangeLog INSTALL
+
+EXTRA_DIST = README.md
Index: Makefile.in
===================================================================
RCS file: /cvs/OpenBSD/xenocara/lib/libXft/Makefile.in,v
retrieving revision 1.10
diff -u -p -u -r1.10 Makefile.in
--- Makefile.in 11 Oct 2016 22:15:30 -0000      1.10
+++ Makefile.in 10 Jun 2019 16:52:02 -0000
@@ -72,7 +72,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = .
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in $(srcdir)/config.h.in \
        $(srcdir)/xft.pc.in $(top_srcdir)/configure \
        $(top_srcdir)/include/X11/Xft/Xft.h.in AUTHORS COPYING \
@@ -342,6 +342,7 @@ SUBDIRS = man src
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = xft.pc
 MAINTAINERCLEANFILES = ChangeLog INSTALL
+EXTRA_DIST = README.md
 all: config.h
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
Index: NEWS
===================================================================
RCS file: /cvs/OpenBSD/xenocara/lib/libXft/NEWS,v
retrieving revision 1.5
diff -u -p -u -r1.5 NEWS
--- NEWS        12 Jul 2014 10:10:57 -0000      1.5
+++ NEWS        10 Jun 2019 16:52:02 -0000
@@ -1,11 +1,16 @@
                        Xft
                X FreeType library
-                 Version 2.3.0
-                   2012-03-07
+                 Version 2.3.3
+                   2019-03-16
 
 Xft version 2.1 was the first stand alone release of Xft, a library that
 connects X applications with the FreeType font rasterization library. Xft
 uses fontconfig to locate fonts so it has no configuration files.
+
+Version 2.3.3
+
+Use XRenderCreateSolidFill when available (Render version 0.10 or later)
+in XftDrawSrcPicture.
 
 Version 2.3.2
 
Index: README
===================================================================
RCS file: README
diff -N README
--- README      10 Mar 2012 14:09:34 -0000      1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,52 +0,0 @@
-                       Xft
-               X FreeType library
-
-Xft version 2.1 was the first stand alone release of Xft, a library that
-connects X applications with the FreeType font rasterization library. Xft
-uses fontconfig to locate fonts so it has no configuration files.
-
-Before building Xft you will need to have installed:
-       freetype                        http://freetype.org/
-       fontconfig                      http://fontconfig.org/
-       libX11, libXext, & libXrender   http://x.org/
-
-All questions regarding this software should be directed at the
-Xorg mailing list:
-
-        http://lists.freedesktop.org/mailman/listinfo/xorg
-
-Please submit bug reports to the Xorg bugzilla:
-
-        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
-
-The master development code repository can be found at:
-
-        git://anongit.freedesktop.org/git/xorg/lib/libXft
-
-        http://cgit.freedesktop.org/xorg/lib/libXft
-
-For patch submission instructions, see:
-
-       http://www.x.org/wiki/Development/Documentation/SubmittingPatches
-
-For more information on the git code manager, see:
-
-        http://wiki.x.org/wiki/GitPage
-
-To release a version of this library:
-
- 1.     Update the version number in configure.ac
- 2.     Fix the NEWS file
-                Change version number
-                Set the date
-               add highlights
- 3.     Commit those changes
- 4.     rebuild the configuration files with autogen.sh
-                sh autogen.sh --sysconfdir=/etc --prefix=/usr 
--mandir=/usr/share/man
- 5.     Follow the steps listed in
-       http://xorg.freedesktop.org/wiki/Development/Documentation/ReleaseHOWTO
-
-Keith Packard
[email protected]
-
-
Index: README.md
===================================================================
RCS file: README.md
diff -N README.md
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ README.md   10 Jun 2019 16:52:02 -0000
@@ -0,0 +1,47 @@
+libXft - X FreeType library
+---------------------------
+
+libXft is the client side font rendering library, using libfreetype,
+libX11, and the X Render extension to display anti-aliased text.
+
+Xft version 2.1 was the first stand alone release of Xft, a library that
+connects X applications with the FreeType font rasterization library. Xft
+uses fontconfig to locate fonts so it has no configuration files.
+
+Before building Xft you will need to have installed:
+ - FreeType                             https://freetype.org/
+ - Fontconfig                           https://fontconfig.org/
+ - libX11, libXext, & libXrender        https://x.org/
+
+All questions regarding this software should be directed at the
+Xorg mailing list:
+
+  https://lists.x.org/mailman/listinfo/xorg
+
+The master development code repository can be found at:
+
+  https://gitlab.freedesktop.org/xorg/lib/libXft
+
+Please submit bug reports and requests to merge patches there.
+
+For patch submission instructions, see:
+
+  https://www.x.org/wiki/Development/Documentation/SubmittingPatches
+
+To release a version of this library:
+
+ 1. Update the version number in configure.ac
+ 2. Fix the NEWS file  
+    Change version number  
+    Set the date  
+    add highlights
+ 3. Commit those changes
+ 4. rebuild the configuration files with autogen.sh  
+    sh autogen.sh --sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man
+ 5. Follow the steps listed in
+    https://www.x.org/wiki/Development/Documentation/ReleaseHOWTO/
+
+Keith Packard  
[email protected]
+
+
Index: aclocal.m4
===================================================================
RCS file: /cvs/OpenBSD/xenocara/lib/libXft/aclocal.m4,v
retrieving revision 1.13
diff -u -p -u -r1.13 aclocal.m4
--- aclocal.m4  11 Oct 2016 22:15:30 -0000      1.13
+++ aclocal.m4  10 Jun 2019 16:52:02 -0000
@@ -5383,7 +5383,7 @@ _LT_EOF
        _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
        if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test 
"$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs 
$deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-soname 
${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib 
$libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
          _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
@@ -8606,32 +8606,63 @@ m4_ifndef([_LT_PROG_F77],               [AC_DEFUN([_L
 m4_ifndef([_LT_PROG_FC],               [AC_DEFUN([_LT_PROG_FC])])
 m4_ifndef([_LT_PROG_CXX],              [AC_DEFUN([_LT_PROG_CXX])])
 
-# pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
-# serial 1 (pkg-config-0.24)
-# 
-# Copyright © 2004 Scott James Remnant <[email protected]>.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# PKG_PROG_PKG_CONFIG([MIN-VERSION])
-# ----------------------------------
+dnl pkg.m4 - Macros to locate and utilise pkg-config.   -*- Autoconf -*-
+dnl serial 11 (pkg-config-0.29.1)
+dnl
+dnl Copyright © 2004 Scott James Remnant <[email protected]>.
+dnl Copyright © 2012-2015 Dan Nicholson <[email protected]>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+dnl 02111-1307, USA.
+dnl
+dnl As a special exception to the GNU General Public License, if you
+dnl distribute this file as part of a program that contains a
+dnl configuration script generated by Autoconf, you may include it under
+dnl the same distribution terms that you use for the rest of that
+dnl program.
+
+dnl PKG_PREREQ(MIN-VERSION)
+dnl -----------------------
+dnl Since: 0.29
+dnl
+dnl Verify that the version of the pkg-config macros are at least
+dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
+dnl installed version of pkg-config, this checks the developer's version
+dnl of pkg.m4 when generating configure.
+dnl
+dnl To ensure that this macro is defined, also add:
+dnl m4_ifndef([PKG_PREREQ],
+dnl     [m4_fatal([must install pkg-config 0.29 or later before running 
autoconf/autogen])])
+dnl
+dnl See the "Since" comment for each macro you use to see what version
+dnl of the macros you require.
+m4_defun([PKG_PREREQ],
+[m4_define([PKG_MACROS_VERSION], [0.29.1])
+m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
+    [m4_fatal([pkg.m4 version $1 or higher is required but 
]PKG_MACROS_VERSION[ found])])
+])dnl PKG_PREREQ
+
+dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
+dnl ----------------------------------
+dnl Since: 0.16
+dnl
+dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
+dnl first found in the path. Checks that the version of pkg-config found
+dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
+dnl used since that's the first version where most current features of
+dnl pkg-config existed.
 AC_DEFUN([PKG_PROG_PKG_CONFIG],
 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
 
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
@@ -8653,18 +8684,19 @@ if test -n "$PKG_CONFIG"; then
                PKG_CONFIG=""
        fi
 fi[]dnl
-])# PKG_PROG_PKG_CONFIG
+])dnl PKG_PROG_PKG_CONFIG
 
-# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
-#
-# Check to see whether a particular set of modules exists.  Similar
-# to PKG_CHECK_MODULES(), but does not set variables or print errors.
-#
-# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
-# only at the first occurence in configure.ac, so if the first place
-# it's called might be skipped (such as if it is within an "if", you
-# have to call PKG_CHECK_EXISTS manually
-# --------------------------------------------------------------
+dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------------------------------
+dnl Since: 0.18
+dnl
+dnl Check to see whether a particular set of modules exists. Similar to
+dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
+dnl
+dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+dnl only at the first occurence in configure.ac, so if the first place
+dnl it's called might be skipped (such as if it is within an "if", you
+dnl have to call PKG_CHECK_EXISTS manually
 AC_DEFUN([PKG_CHECK_EXISTS],
 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
 if test -n "$PKG_CONFIG" && \
@@ -8674,8 +8706,10 @@ m4_ifvaln([$3], [else
   $3])dnl
 fi])
 
-# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
-# ---------------------------------------------
+dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+dnl ---------------------------------------------
+dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
+dnl pkg_failed based on the result.
 m4_define([_PKG_CONFIG],
 [if test -n "$$1"; then
     pkg_cv_[]$1="$$1"
@@ -8687,10 +8721,11 @@ m4_define([_PKG_CONFIG],
  else
     pkg_failed=untried
 fi[]dnl
-])# _PKG_CONFIG
+])dnl _PKG_CONFIG
 
-# _PKG_SHORT_ERRORS_SUPPORTED
-# -----------------------------
+dnl _PKG_SHORT_ERRORS_SUPPORTED
+dnl ---------------------------
+dnl Internal check to see if pkg-config supports short errors.
 AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -8698,19 +8733,17 @@ if $PKG_CONFIG --atleast-pkgconfig-versi
 else
         _pkg_short_errors_supported=no
 fi[]dnl
-])# _PKG_SHORT_ERRORS_SUPPORTED
+])dnl _PKG_SHORT_ERRORS_SUPPORTED
 
 
-# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
-# [ACTION-IF-NOT-FOUND])
-#
-#
-# Note that if there is a possibility the first call to
-# PKG_CHECK_MODULES might not happen, you should be sure to include an
-# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
-#
-#
-# --------------------------------------------------------------
+dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl --------------------------------------------------------------
+dnl Since: 0.4.0
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
+dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
 AC_DEFUN([PKG_CHECK_MODULES],
 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
 AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
@@ -8764,16 +8797,40 @@ else
         AC_MSG_RESULT([yes])
        $3
 fi[]dnl
-])# PKG_CHECK_MODULES
+])dnl PKG_CHECK_MODULES
 
 
-# PKG_INSTALLDIR(DIRECTORY)
-# -------------------------
-# Substitutes the variable pkgconfigdir as the location where a module
-# should install pkg-config .pc files. By default the directory is
-# $libdir/pkgconfig, but the default can be changed by passing
-# DIRECTORY. The user can override through the --with-pkgconfigdir
-# parameter.
+dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl ---------------------------------------------------------------------
+dnl Since: 0.29
+dnl
+dnl Checks for existence of MODULES and gathers its build flags with
+dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
+dnl and VARIABLE-PREFIX_LIBS from --libs.
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
+dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
+dnl configure.ac.
+AC_DEFUN([PKG_CHECK_MODULES_STATIC],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+_save_PKG_CONFIG=$PKG_CONFIG
+PKG_CONFIG="$PKG_CONFIG --static"
+PKG_CHECK_MODULES($@)
+PKG_CONFIG=$_save_PKG_CONFIG[]dnl
+])dnl PKG_CHECK_MODULES_STATIC
+
+
+dnl PKG_INSTALLDIR([DIRECTORY])
+dnl -------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable pkgconfigdir as the location where a module
+dnl should install pkg-config .pc files. By default the directory is
+dnl $libdir/pkgconfig, but the default can be changed by passing
+dnl DIRECTORY. The user can override through the --with-pkgconfigdir
+dnl parameter.
 AC_DEFUN([PKG_INSTALLDIR],
 [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
 m4_pushdef([pkg_description],
@@ -8784,16 +8841,18 @@ AC_ARG_WITH([pkgconfigdir],
 AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
 m4_popdef([pkg_default])
 m4_popdef([pkg_description])
-]) dnl PKG_INSTALLDIR
+])dnl PKG_INSTALLDIR
 
 
-# PKG_NOARCH_INSTALLDIR(DIRECTORY)
-# -------------------------
-# Substitutes the variable noarch_pkgconfigdir as the location where a
-# module should install arch-independent pkg-config .pc files. By
-# default the directory is $datadir/pkgconfig, but the default can be
-# changed by passing DIRECTORY. The user can override through the
-# --with-noarch-pkgconfigdir parameter.
+dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
+dnl --------------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable noarch_pkgconfigdir as the location where a
+dnl module should install arch-independent pkg-config .pc files. By
+dnl default the directory is $datadir/pkgconfig, but the default can be
+dnl changed by passing DIRECTORY. The user can override through the
+dnl --with-noarch-pkgconfigdir parameter.
 AC_DEFUN([PKG_NOARCH_INSTALLDIR],
 [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
 m4_pushdef([pkg_description],
@@ -8804,7 +8863,24 @@ AC_ARG_WITH([noarch-pkgconfigdir],
 AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
 m4_popdef([pkg_default])
 m4_popdef([pkg_description])
-]) dnl PKG_NOARCH_INSTALLDIR
+])dnl PKG_NOARCH_INSTALLDIR
+
+
+dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------
+dnl Since: 0.28
+dnl
+dnl Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])dnl PKG_CHECK_VAR
 
 # Copyright (C) 2002-2012 Free Software Foundation, Inc.
 #
@@ -9829,7 +9905,7 @@ AC_SUBST([am__untar])
 
 dnl xorg-macros.m4.  Generated from xorg-macros.m4.in xorgversion.m4 by 
configure.
 dnl
-dnl Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights 
reserved.
+dnl Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights 
reserved.
 dnl
 dnl Permission is hereby granted, free of charge, to any person obtaining a
 dnl copy of this software and associated documentation files (the "Software"),
@@ -9866,7 +9942,7 @@ dnl DEALINGS IN THE SOFTWARE.
 # See the "minimum version" comment for each macro you use to see what
 # version you require.
 m4_defun([XORG_MACROS_VERSION],[
-m4_define([vers_have], [1.19.0])
+m4_define([vers_have], [1.19.2])
 m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
 m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
 m4_if(m4_cmp(maj_have, maj_needed), 0,,
@@ -9944,6 +10020,17 @@ AC_DEFUN([XORG_MANPAGE_SECTIONS],[
 AC_REQUIRE([AC_CANONICAL_HOST])
 AC_REQUIRE([AC_PROG_SED])
 
+case $host_os in
+    solaris*)
+        # Solaris 2.0 - 11.3 use SysV man page section numbers, so we
+        # check for a man page file found in later versions that use
+        # traditional section numbers instead
+        AC_CHECK_FILE([/usr/share/man/man7/attributes.7],
+                [SYSV_MAN_SECTIONS=false], [SYSV_MAN_SECTIONS=true])
+        ;;
+    *) SYSV_MAN_SECTIONS=false ;;
+esac
+
 if test x$APP_MAN_SUFFIX = x    ; then
     APP_MAN_SUFFIX=1
 fi
@@ -9959,9 +10046,9 @@ if test x$LIB_MAN_DIR = x    ; then
 fi
 
 if test x$FILE_MAN_SUFFIX = x    ; then
-    case $host_os in
-       solaris*)       FILE_MAN_SUFFIX=4  ;;
-       *)              FILE_MAN_SUFFIX=5  ;;
+    case $SYSV_MAN_SECTIONS in
+       true)                           FILE_MAN_SUFFIX=4  ;;
+       *)                              FILE_MAN_SUFFIX=5  ;;
     esac
 fi
 if test x$FILE_MAN_DIR = x    ; then
@@ -9969,9 +10056,9 @@ if test x$FILE_MAN_DIR = x    ; then
 fi
 
 if test x$MISC_MAN_SUFFIX = x    ; then
-    case $host_os in
-       solaris*)       MISC_MAN_SUFFIX=5  ;;
-       *)              MISC_MAN_SUFFIX=7  ;;
+    case $SYSV_MAN_SECTIONS in
+       true)                           MISC_MAN_SUFFIX=5  ;;
+       *)                              MISC_MAN_SUFFIX=7  ;;
     esac
 fi
 if test x$MISC_MAN_DIR = x    ; then
@@ -9979,9 +10066,9 @@ if test x$MISC_MAN_DIR = x    ; then
 fi
 
 if test x$DRIVER_MAN_SUFFIX = x    ; then
-    case $host_os in
-       solaris*)       DRIVER_MAN_SUFFIX=7  ;;
-       *)              DRIVER_MAN_SUFFIX=4  ;;
+    case $SYSV_MAN_SECTIONS in
+       true)                           DRIVER_MAN_SUFFIX=7  ;;
+       *)                              DRIVER_MAN_SUFFIX=4  ;;
     esac
 fi
 if test x$DRIVER_MAN_DIR = x    ; then
@@ -9989,9 +10076,9 @@ if test x$DRIVER_MAN_DIR = x    ; then
 fi
 
 if test x$ADMIN_MAN_SUFFIX = x    ; then
-    case $host_os in
-       solaris*)       ADMIN_MAN_SUFFIX=1m ;;
-       *)              ADMIN_MAN_SUFFIX=8  ;;
+    case $SYSV_MAN_SECTIONS in
+       true)                           ADMIN_MAN_SUFFIX=1m ;;
+       *)                              ADMIN_MAN_SUFFIX=8  ;;
     esac
 fi
 if test x$ADMIN_MAN_DIR = x    ; then
@@ -10252,13 +10339,24 @@ m4_ifval([$1],
 fi])
 
 # Test for the ability of xmlto to generate a text target
+#
+# NOTE: xmlto 0.0.27 or higher return a non-zero return code in the
+# following test for empty XML docbook files.
+# For compatibility reasons use the following empty XML docbook file and if
+# it fails try it again with a non-empty XML file.
 have_xmlto_text=no
 cat > conftest.xml << "EOF"
 EOF
 AS_IF([test "$have_xmlto" = yes],
       [AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1],
              [have_xmlto_text=yes],
-             [AC_MSG_WARN([xmlto cannot generate text format, this format 
skipped])])])
+             [# Try it again with a non-empty XML file.
+              cat > conftest.xml << "EOF"
+<x></x>
+EOF
+              AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 
2>&1],
+                    [have_xmlto_text=yes],
+                    [AC_MSG_WARN([xmlto cannot generate text format, this 
format skipped])])])])
 rm -f conftest.xml
 AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes])
 AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes])
@@ -11654,8 +11752,9 @@ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
 macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
 INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
 mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
-|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \
-echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing 
possibly empty INSTALL.' >&2)"
+|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \
+touch \$(top_srcdir)/INSTALL; \
+echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' 
>&2))"
 AC_SUBST([INSTALL_CMD])
 ]) # XORG_INSTALL
 dnl Copyright 2005 Red Hat, Inc
@@ -11716,10 +11815,11 @@ AC_DEFUN([XORG_RELEASE_VERSION],[
 #
 #
 AC_DEFUN([XORG_CHANGELOG], [
-CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > 
\$(top_srcdir)/.changelog.tmp && \
+CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > 
\$(top_srcdir)/.changelog.tmp) 2>/dev/null && \
 mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
-|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \
-echo 'git directory not found: installing possibly empty changelog.' >&2)"
+|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( 
\
+touch \$(top_srcdir)/ChangeLog; \
+echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))"
 AC_SUBST([CHANGELOG_CMD])
 ]) # XORG_CHANGELOG
 
Index: compile
===================================================================
RCS file: /cvs/OpenBSD/xenocara/lib/libXft/compile,v
retrieving revision 1.1
diff -u -p -u -r1.1 compile
--- compile     12 Jul 2014 10:10:57 -0000      1.1
+++ compile     10 Jun 2019 16:52:02 -0000
@@ -3,7 +3,7 @@
 
 scriptversion=2012-10-14.11; # UTC
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 # Written by Tom Tromey <[email protected]>.
 #
 # This program is free software; you can redistribute it and/or modify
Index: configure
===================================================================
RCS file: /cvs/OpenBSD/xenocara/lib/libXft/configure,v
retrieving revision 1.14
diff -u -p -u -r1.14 configure
--- configure   11 Oct 2016 22:15:30 -0000      1.14
+++ configure   10 Jun 2019 16:52:02 -0000
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libXft 2.3.2.
+# Generated by GNU Autoconf 2.69 for libXft 2.3.3.
 #
-# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
+# Report bugs to <https://gitlab.freedesktop.org/xorg/lib/libXft/issues>.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -275,7 +275,7 @@ fi
     $as_echo "$0: be upgraded to zsh 4.3.4 or later."
   else
     $as_echo "$0: Please tell [email protected] and
-$0: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
+$0: https://gitlab.freedesktop.org/xorg/lib/libXft/issues
 $0: about your system, including any error possibly output
 $0: before this message. Then install a modern shell, or
 $0: manually run the script under such a shell if you do
@@ -591,9 +591,9 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='libXft'
 PACKAGE_TARNAME='libXft'
-PACKAGE_VERSION='2.3.2'
-PACKAGE_STRING='libXft 2.3.2'
-PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
+PACKAGE_VERSION='2.3.3'
+PACKAGE_STRING='libXft 2.3.3'
+PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/lib/libXft/issues'
 PACKAGE_URL=''
 
 ac_unique_file="Makefile.am"
@@ -1355,7 +1355,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libXft 2.3.2 to adapt to many kinds of systems.
+\`configure' configures libXft 2.3.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1425,7 +1425,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libXft 2.3.2:";;
+     short | recursive ) echo "Configuration of libXft 2.3.3:";;
    esac
   cat <<\_ACEOF
 
@@ -1493,7 +1493,7 @@ Some influential environment variables:
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
-Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
+Report bugs to <https://gitlab.freedesktop.org/xorg/lib/libXft/issues>.
 _ACEOF
 ac_status=$?
 fi
@@ -1556,7 +1556,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libXft configure 2.3.2
+libXft configure 2.3.3
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1880,7 +1880,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libXft $as_me 2.3.2, which was
+It was created by libXft $as_me 2.3.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2709,7 +2709,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libXft'
- VERSION='2.3.2'
+ VERSION='2.3.3'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -9345,7 +9345,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >
        hardcode_shlibpath_var=no
        hardcode_direct_absolute=yes
        if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test 
"$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-         archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs 
$compiler_flags'
+         archive_cmds='$CC -shared $pic_flag ${wl}-soname ${wl}$soname -o $lib 
$libobjs $deplibs $compiler_flags'
          archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs 
$compiler_flags ${wl}-retain-symbols-file,$export_symbols'
          hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
          export_dynamic_flag_spec='${wl}-E'
@@ -17395,10 +17395,11 @@ _ACEOF
 
 
 
-CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > 
\$(top_srcdir)/.changelog.tmp && \
+CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > 
\$(top_srcdir)/.changelog.tmp) 2>/dev/null && \
 mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
-|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \
-echo 'git directory not found: installing possibly empty changelog.' >&2)"
+|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( 
\
+touch \$(top_srcdir)/ChangeLog; \
+echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))"
 
 
 
@@ -17406,14 +17407,45 @@ echo 'git directory not found: installin
 macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
 INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
 mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
-|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \
-echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing 
possibly empty INSTALL.' >&2)"
+|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \
+touch \$(top_srcdir)/INSTALL; \
+echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' 
>&2))"
 
 
 
 
 
 
+case $host_os in
+    solaris*)
+        # Solaris 2.0 - 11.3 use SysV man page section numbers, so we
+        # check for a man page file found in later versions that use
+        # traditional section numbers instead
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 
/usr/share/man/man7/attributes.7" >&5
+$as_echo_n "checking for /usr/share/man/man7/attributes.7... " >&6; }
+if ${ac_cv_file__usr_share_man_man7_attributes_7+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  test "$cross_compiling" = yes &&
+  as_fn_error $? "cannot check for file existence when cross compiling" 
"$LINENO" 5
+if test -r "/usr/share/man/man7/attributes.7"; then
+  ac_cv_file__usr_share_man_man7_attributes_7=yes
+else
+  ac_cv_file__usr_share_man_man7_attributes_7=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_file__usr_share_man_man7_attributes_7" >&5
+$as_echo "$ac_cv_file__usr_share_man_man7_attributes_7" >&6; }
+if test "x$ac_cv_file__usr_share_man_man7_attributes_7" = xyes; then :
+  SYSV_MAN_SECTIONS=false
+else
+  SYSV_MAN_SECTIONS=true
+fi
+
+        ;;
+    *) SYSV_MAN_SECTIONS=false ;;
+esac
+
 if test x$APP_MAN_SUFFIX = x    ; then
     APP_MAN_SUFFIX=1
 fi
@@ -17429,9 +17461,9 @@ if test x$LIB_MAN_DIR = x    ; then
 fi
 
 if test x$FILE_MAN_SUFFIX = x    ; then
-    case $host_os in
-       solaris*)       FILE_MAN_SUFFIX=4  ;;
-       *)              FILE_MAN_SUFFIX=5  ;;
+    case $SYSV_MAN_SECTIONS in
+       true)                           FILE_MAN_SUFFIX=4  ;;
+       *)                              FILE_MAN_SUFFIX=5  ;;
     esac
 fi
 if test x$FILE_MAN_DIR = x    ; then
@@ -17439,9 +17471,9 @@ if test x$FILE_MAN_DIR = x    ; then
 fi
 
 if test x$MISC_MAN_SUFFIX = x    ; then
-    case $host_os in
-       solaris*)       MISC_MAN_SUFFIX=5  ;;
-       *)              MISC_MAN_SUFFIX=7  ;;
+    case $SYSV_MAN_SECTIONS in
+       true)                           MISC_MAN_SUFFIX=5  ;;
+       *)                              MISC_MAN_SUFFIX=7  ;;
     esac
 fi
 if test x$MISC_MAN_DIR = x    ; then
@@ -17449,9 +17481,9 @@ if test x$MISC_MAN_DIR = x    ; then
 fi
 
 if test x$DRIVER_MAN_SUFFIX = x    ; then
-    case $host_os in
-       solaris*)       DRIVER_MAN_SUFFIX=7  ;;
-       *)              DRIVER_MAN_SUFFIX=4  ;;
+    case $SYSV_MAN_SECTIONS in
+       true)                           DRIVER_MAN_SUFFIX=7  ;;
+       *)                              DRIVER_MAN_SUFFIX=4  ;;
     esac
 fi
 if test x$DRIVER_MAN_DIR = x    ; then
@@ -17459,9 +17491,9 @@ if test x$DRIVER_MAN_DIR = x    ; then
 fi
 
 if test x$ADMIN_MAN_SUFFIX = x    ; then
-    case $host_os in
-       solaris*)       ADMIN_MAN_SUFFIX=1m ;;
-       *)              ADMIN_MAN_SUFFIX=8  ;;
+    case $SYSV_MAN_SECTIONS in
+       true)                           ADMIN_MAN_SUFFIX=1m ;;
+       *)                              ADMIN_MAN_SUFFIX=8  ;;
     esac
 fi
 if test x$ADMIN_MAN_DIR = x    ; then
@@ -18392,7 +18424,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libXft $as_me 2.3.2, which was
+This file was extended by libXft $as_me 2.3.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18452,13 +18484,13 @@ $config_headers
 Configuration commands:
 $config_commands
 
-Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>."
+Report bugs to <https://gitlab.freedesktop.org/xorg/lib/libXft/issues>."
 
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libXft config.status 2.3.2
+libXft config.status 2.3.3
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
Index: configure.ac
===================================================================
RCS file: /cvs/OpenBSD/xenocara/lib/libXft/configure.ac,v
retrieving revision 1.6
diff -u -p -u -r1.6 configure.ac
--- configure.ac        12 Jul 2014 10:10:57 -0000      1.6
+++ configure.ac        10 Jun 2019 16:52:02 -0000
@@ -27,8 +27,8 @@ AC_PREREQ([2.60])
 # version.  This version number will be substituted into Xft.h
 # Please bump the minor library number at each release as well.
 #
-AC_INIT([libXft], [2.3.2],
-        [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXft])
+AC_INIT([libXft], [2.3.3],
+        [https://gitlab.freedesktop.org/xorg/lib/libXft/issues], [libXft])
 AC_CONFIG_SRCDIR([Makefile.am])
 AC_CONFIG_HEADERS([config.h])
 
Index: src/xftdpy.c
===================================================================
RCS file: /cvs/OpenBSD/xenocara/lib/libXft/src/xftdpy.c,v
retrieving revision 1.4
diff -u -p -u -r1.4 xftdpy.c
--- src/xftdpy.c        20 Oct 2013 12:40:02 -0000      1.4
+++ src/xftdpy.c        10 Jun 2019 16:52:02 -0000
@@ -106,6 +106,10 @@ _XftDisplayInfoGet (Display *dpy, FcBool
        if (major < 0 || (major == 0 && minor <= 2))
            info->use_free_glyphs = FcFalse;
 
+       info->hasSolid = FcFalse;
+       if (major > 0 || (major == 0 && minor >= 10))
+           info->hasSolid = FcTrue;
+
        pf.type = PictTypeDirect;
        pf.depth = 32;
        pf.direct.redMask = 0xff;
Index: src/xftdraw.c
===================================================================
RCS file: /cvs/OpenBSD/xenocara/lib/libXft/src/xftdraw.c,v
retrieving revision 1.4
diff -u -p -u -r1.4 xftdraw.c
--- src/xftdraw.c       20 Oct 2013 12:40:02 -0000      1.4
+++ src/xftdraw.c       10 Jun 2019 16:52:02 -0000
@@ -333,39 +333,52 @@ XftDrawSrcPicture (XftDraw *draw, _Xcons
      * Pick one to replace at random
      */
     i = (unsigned int) arc4random_uniform (XFT_NUM_SOLID_COLOR);
-    /*
-     * Recreate if it was for the wrong screen
-     */
-    if (info->colors[i].screen != draw->screen && info->colors[i].pict)
-    {
-       XRenderFreePicture (dpy, info->colors[i].pict);
-       info->colors[i].pict = 0;
-    }
-    /*
-     * Create picture if necessary
-     */
-    if (!info->colors[i].pict)
-    {
-       Pixmap                      pix;
-        XRenderPictureAttributes    pa;
 
-       pix = XCreatePixmap (dpy, RootWindow (dpy, draw->screen), 1, 1,
-                            info->solidFormat->depth);
-       pa.repeat = True;
-       info->colors[i].pict = XRenderCreatePicture (draw->dpy,
-                                                    pix,
-                                                    info->solidFormat,
-                                                    CPRepeat, &pa);
-       XFreePixmap (dpy, pix);
+    if (info->hasSolid) {
+       /*
+        * Free any existing entry
+        */
+       if (info->colors[i].pict)
+           XRenderFreePicture (dpy, info->colors[i].pict);
+       /*
+        * Create picture
+        */
+       info->colors[i].pict = XRenderCreateSolidFill (draw->dpy, 
&color->color);
+    } else {
+       if (info->colors[i].screen != draw->screen && info->colors[i].pict)
+       {
+           XRenderFreePicture (dpy, info->colors[i].pict);
+           info->colors[i].pict = 0;
+       }
+       /*
+        * Create picture if necessary
+        */
+       if (!info->colors[i].pict)
+       {
+           Pixmap                          pix;
+           XRenderPictureAttributes    pa;
+
+           pix = XCreatePixmap (dpy, RootWindow (dpy, draw->screen), 1, 1,
+                                info->solidFormat->depth);
+           pa.repeat = True;
+           info->colors[i].pict = XRenderCreatePicture (draw->dpy,
+                                                        pix,
+                                                        info->solidFormat,
+                                                        CPRepeat, &pa);
+           XFreePixmap (dpy, pix);
+       }
+       /*
+        * Set to the new color
+        */
+       info->colors[i].color = color->color;
+       info->colors[i].screen = draw->screen;
+       XRenderFillRectangle (dpy, PictOpSrc,
+                             info->colors[i].pict,
+                             &color->color, 0, 0, 1, 1);
     }
-    /*
-     * Set to the new color
-     */
     info->colors[i].color = color->color;
     info->colors[i].screen = draw->screen;
-    XRenderFillRectangle (dpy, PictOpSrc,
-                         info->colors[i].pict,
-                         &color->color, 0, 0, 1, 1);
+
     return info->colors[i].pict;
 }
 
Index: src/xftint.h
===================================================================
RCS file: /cvs/OpenBSD/xenocara/lib/libXft/src/xftint.h,v
retrieving revision 1.4
diff -u -p -u -r1.4 xftint.h
--- src/xftint.h        11 Jun 2012 19:23:03 -0000      1.4
+++ src/xftint.h        10 Jun 2019 16:52:02 -0000
@@ -245,6 +245,7 @@ typedef struct _XftDisplayInfo {
     XExtCodes              *codes;
     FcPattern              *defaults;
     FcBool                 hasRender;
+    FcBool                 hasSolid;
     XftFont                *fonts;
     XRenderPictFormat      *solidFormat;
     unsigned long          glyph_memory;

-- 
Matthieu Herrb

Reply via email to