Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libXft for openSUSE:Factory checked 
in at 2021-08-04 22:28:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libXft (Old)
 and      /work/SRC/openSUSE:Factory/.libXft.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libXft"

Wed Aug  4 22:28:35 2021 rev:14 rq:909746 version:2.3.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/libXft/libXft.changes    2019-03-26 
22:29:06.645753737 +0100
+++ /work/SRC/openSUSE:Factory/.libXft.new.1899/libXft.changes  2021-08-04 
22:29:14.201776237 +0200
@@ -1,0 +2,8 @@
+Mon Aug  2 10:18:11 UTC 2021 - Stefan Dirsch <sndir...@suse.com>
+
+- Update to version 2.3.4 
+  * This release handles the deprecation of the 
+    FcNameRegisterObjectTypes API by fontconfig, and provides
+    minor cleanups for compiler warnings and man pages.
+
+-------------------------------------------------------------------

Old:
----
  libXft-2.3.3.tar.bz2

New:
----
  libXft-2.3.4.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libXft.spec ++++++
--- /var/tmp/diff_new_pack.Q71vMQ/_old  2021-08-04 22:29:14.553775808 +0200
+++ /var/tmp/diff_new_pack.Q71vMQ/_new  2021-08-04 22:29:14.553775808 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package libXft
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           libXft
 %define lname  libXft2
-Version:        2.3.3
+Version:        2.3.4
 Release:        0
 Summary:        X FreeType library
 License:        MIT
 Group:          Development/Libraries/C and C++
-Url:            http://xorg.freedesktop.org/
+URL:            http://xorg.freedesktop.org/
 
 #Git-Clone:    git://anongit.freedesktop.org/xorg/lib/libXft
 #Git-Web:      http://cgit.freedesktop.org/xorg/lib/libXft/

++++++ libXft-2.3.3.tar.bz2 -> libXft-2.3.4.tar.bz2 ++++++
++++ 29576 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/ChangeLog new/libXft-2.3.4/ChangeLog
--- old/libXft-2.3.3/ChangeLog  2019-03-16 19:12:43.000000000 +0100
+++ new/libXft-2.3.4/ChangeLog  2021-08-02 02:50:59.000000000 +0200
@@ -1,3 +1,70 @@
+commit 98b121f22c3477b508dd17aa5db99f2ebf36ade4
+Author: Alan Coopersmith <alan.coopersm...@oracle.com>
+Date:   Sun Aug 1 17:49:42 2021 -0700
+
+    libXft 2.3.4
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com>
+
+commit dcd637d0f162e177a73a121feeb9d9e4fd69d4bb
+Author: Samanta Navarro <feri...@riseup.net>
+Date:   Sat Oct 3 11:51:35 2020 +0000
+
+    Fix typo in manual
+
+commit 6e7da3c7c40deed551d14b6bab6f3d1ac256509f
+Author: Keith Packard <kei...@keithp.com>
+Date:   Fri Apr 3 17:53:33 2020 -0700
+
+    Remove call to FcNameRegisterObjectTypes
+    
+    This fontconfig function has been deprecated and no longer does
+    anything.
+    
+    Signed-off-by: Keith Packard <kei...@keithp.com>
+
+commit 26a3a497409279d74827f374e65ae4b8d3c1f1f7
+Author: Keith Packard <kei...@keithp.com>
+Date:   Fri Apr 3 17:43:04 2020 -0700
+
+    Skip 'render' pattern elements with invalid type
+    
+    Fontconfig no longer supports the FcNameRegisterObjectTypes API, which
+    means that any Xft custom fields cannot be specified in a fontconfig
+    name as those will always be set to FcTypeUnknown in the pattern.
+    
+    The only one of those we care about is XFT_RENDER, which was used to
+    disable the Render extension, something most apps probably don't need
+    to support in names anyways. Allow the call requesting this value to
+    return FcResultTypeMismatch and pretend that XFT_RENDER is missing
+    from the pattern.
+    
+    Signed-off-by: Keith Packard <kei...@keithp.com>
+
+commit 972fa05c3df73fd3c99c409c0ac2225a58f76d09
+Author: Thomas E. Dickey <dic...@invisible-island.net>
+Date:   Wed Apr 1 20:57:52 2020 -0400
+
+    build-fix for c89
+    
+    Signed-off-by: Thomas E. Dickey <dic...@invisible-island.net>
+
+commit 86c2355b116fd9febe2ac7f577e7c12e069d3986
+Author: Thomas E. Dickey <dic...@invisible-island.net>
+Date:   Wed Apr 1 20:53:30 2020 -0400
+
+    minor typography fix
+    
+    Signed-off-by: Thomas E. Dickey <dic...@invisible-island.net>
+
+commit ed8bb9667ac1e0f0863a03a44962be9654c4d04e
+Author: Thomas E. Dickey <dic...@invisible-island.net>
+Date:   Wed Apr 1 20:52:25 2020 -0400
+
+    fix most type-conversion warnings from gcc-normal, without object-file 
changes
+    
+    Signed-off-by: Thomas E. Dickey <dic...@invisible-island.net>
+
 commit a266847d3c17dcdfcac719a1aa970ad54f4b545a
 Author: Alan Coopersmith <alan.coopersm...@oracle.com>
 Date:   Sat Mar 16 11:03:38 2019 -0700
@@ -821,7 +888,7 @@
     - Update modular Xorg version
 
 commit 0dd89a9e7ba09ed0c3f90a415b506a4ed89b91bb
-Author: S??ren Sandmann Pedersen <sandm...@daimi.au.dk>
+Author: S??ren Sandmann Pedersen  <sandm...@daimi.au.dk>
 Date:   Wed Jul 27 21:48:38 2005 +0000
 
     Build system for Xft
@@ -860,14 +927,14 @@
         which however is not visible outside the DDX) (Bugzilla #3268).
 
 commit 0161d08ecd543c80e5625bf63d0091dbccd95f4e
-Author: S??ren Sandmann Pedersen <sandm...@daimi.au.dk>
+Author: S??ren Sandmann Pedersen  <sandm...@daimi.au.dk>
 Date:   Fri Aug 13 19:03:15 2004 +0000
 
     Fri Aug 13 21:01:34 2004 Soeren Sandmann <sandm...@daimi.au.dk>
     Fix the build
 
 commit 0641e99b21eead5aaee0c1136dd2d640028f6783
-Author: S??ren Sandmann Pedersen <sandm...@daimi.au.dk>
+Author: S??ren Sandmann Pedersen  <sandm...@daimi.au.dk>
 Date:   Fri Aug 13 18:24:06 2004 +0000
 
     Fri Aug 13 19:53:10 2004 Soeren Sandmann <sandm...@redhat.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/NEWS new/libXft-2.3.4/NEWS
--- old/libXft-2.3.3/NEWS       2019-03-16 19:12:27.000000000 +0100
+++ new/libXft-2.3.4/NEWS       2021-08-02 02:50:43.000000000 +0200
@@ -1,12 +1,17 @@
                        Xft
                X FreeType library
-                 Version 2.3.3
-                   2019-03-16
+                 Version 2.3.4
+                   2021-08-01
 
 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.4
+
+Handle deprecation of FcNameRegisterObjectTypes API by fontconfig.
+Minor cleanups for compiler warnings and man pages.
+
 Version 2.3.3
 
 Use XRenderCreateSolidFill when available (Render version 0.10 or later)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/compile new/libXft-2.3.4/compile
--- old/libXft-2.3.3/compile    2019-03-16 19:12:35.000000000 +0100
+++ new/libXft-2.3.4/compile    2021-08-02 02:50:52.000000000 +0200
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-10-14.11; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
 # Written by Tom Tromey <tro...@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@
 # 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, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -53,7 +53,7 @@
          MINGW*)
            file_conv=mingw
            ;;
-         CYGWIN*)
+         CYGWIN* | MSYS*)
            file_conv=cygwin
            ;;
          *)
@@ -67,7 +67,7 @@
        mingw/*)
          file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
          ;;
-       cygwin/*)
+       cygwin/* | msys/*)
          file=`cygpath -m "$file" || echo "$file"`
          ;;
        wine/*)
@@ -255,7 +255,8 @@
     echo "compile $scriptversion"
     exit $?
     ;;
-  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+  icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
     func_cl_wrapper "$@"      # Doesn't return...
     ;;
 esac
@@ -339,9 +340,9 @@
 # Local Variables:
 # mode: shell-script
 # sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/config.h.in new/libXft-2.3.4/config.h.in
--- old/libXft-2.3.3/config.h.in        2019-03-16 19:12:34.000000000 +0100
+++ new/libXft-2.3.4/config.h.in        2021-08-02 02:50:51.000000000 +0200
@@ -6,12 +6,12 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
+/* Define to 1 if you have the <stdio.h> header file. */
+#undef HAVE_STDIO_H
+
 /* Define to 1 if you have the <stdlib.h> header file. */
 #undef HAVE_STDLIB_H
 
@@ -63,7 +63,9 @@
 /* Patch version of this package */
 #undef PACKAGE_VERSION_PATCHLEVEL
 
-/* Define to 1 if you have the ANSI C header files. */
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+   required in a freestanding environment). This macro is provided for
+   backward compatibility; new code need not use it. */
 #undef STDC_HEADERS
 
 /* Version number of package */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/configure.ac new/libXft-2.3.4/configure.ac
--- old/libXft-2.3.3/configure.ac       2019-03-16 19:12:27.000000000 +0100
+++ new/libXft-2.3.4/configure.ac       2021-08-02 02:50:43.000000000 +0200
@@ -27,7 +27,7 @@
 # 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.3],
+AC_INIT([libXft], [2.3.4],
         [https://gitlab.freedesktop.org/xorg/lib/libXft/issues], [libXft])
 AC_CONFIG_SRCDIR([Makefile.am])
 AC_CONFIG_HEADERS([config.h])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/include/X11/Xft/Xft.h new/libXft-2.3.4/include/X11/Xft/Xft.h
--- old/libXft-2.3.3/include/X11/Xft/Xft.h      2019-03-16 19:12:42.000000000 
+0100
+++ new/libXft-2.3.4/include/X11/Xft/Xft.h      2021-08-02 02:50:58.000000000 
+0200
@@ -30,7 +30,7 @@
 /* #undef will be substituted by configure */
 #define XFT_MAJOR 2
 #define XFT_MINOR 3
-#define XFT_REVISION 3
+#define XFT_REVISION 4
 
 #define XFT_VERSION    ((XFT_MAJOR * 10000) + (XFT_MINOR * 100) + 
(XFT_REVISION))
 #define XftVersion     XFT_VERSION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/man/Xft.man new/libXft-2.3.4/man/Xft.man
--- old/libXft-2.3.3/man/Xft.man        2019-03-16 19:12:27.000000000 +0100
+++ new/libXft-2.3.4/man/Xft.man        2021-08-02 02:50:43.000000000 +0200
@@ -288,7 +288,7 @@
 .BR Drawable ,
 .BR Colormap ,
 and
-.BR Visual
+.B Visual
 of an
 .B XftDraw
 can be queried with
@@ -698,7 +698,7 @@
 \fBXftDrawColormap (XftDraw *\fIdraw\fB);\fR
 .fi
 .B XftDrawColormap
-returns the colormap associatied with the Xft draw object
+returns the colormap associated with the Xft draw object
 .IR draw .
 .PP
 .nf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/missing new/libXft-2.3.4/missing
--- old/libXft-2.3.3/missing    2019-03-16 19:12:35.000000000 +0100
+++ new/libXft-2.3.4/missing    2021-08-02 02:50:52.000000000 +0200
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2013-10-28.13; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@
 # 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, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -101,9 +101,9 @@
   exit $st
 fi
 
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
+perl_URL=https://www.perl.org/
+flex_URL=https://github.com/westes/flex
+gnu_software_URL=https://www.gnu.org/software
 
 program_details ()
 {
@@ -207,9 +207,9 @@
 exit $st
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/src/xftcolor.c new/libXft-2.3.4/src/xftcolor.c
--- old/libXft-2.3.3/src/xftcolor.c     2019-03-16 19:12:27.000000000 +0100
+++ new/libXft-2.3.4/src/xftcolor.c     2021-08-02 02:50:43.000000000 +0200
@@ -90,9 +90,9 @@
        green_len = masklen (visual->green_mask);
        blue_shift = maskbase (visual->blue_mask);
        blue_len = masklen (visual->blue_mask);
-       result->pixel = (((color->red >> (16 - red_len)) << red_shift) |
-                        ((color->green >> (16 - green_len)) << green_shift) |
-                        ((color->blue >> (16 - blue_len)) << blue_shift));
+       result->pixel = (unsigned long)(((color->red   >> (16 - red_len))   << 
red_shift) |
+                                       ((color->green >> (16 - green_len)) << 
green_shift) |
+                                       ((color->blue  >> (16 - blue_len))  << 
blue_shift));
     }
     else
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/src/xftcore.c new/libXft-2.3.4/src/xftcore.c
--- old/libXft-2.3.3/src/xftcore.c      2019-03-16 19:12:27.000000000 +0100
+++ new/libXft-2.3.4/src/xftcore.c      2021-08-02 02:50:43.000000000 +0200
@@ -86,7 +86,7 @@
                    }
                } while (bits & bitsMask);
                XFillRectangle (draw->dpy, draw->drawable,
-                               draw->core.gc, xspan, y, lenspan, 1);
+                               draw->core.gc, xspan, y, (unsigned)lenspan, 1);
                xspan += lenspan;
                w -= lenspan;
            }
@@ -151,7 +151,7 @@
                    bits = *src++;
                } while (bits >= 0x80);
                XFillRectangle (draw->dpy, draw->drawable,
-                               draw->core.gc, xspan, y, lenspan, 1);
+                               draw->core.gc, xspan, y, (unsigned)lenspan, 1);
                xspan += lenspan;
                w -= lenspan;
            }
@@ -207,7 +207,7 @@
                    bits = *src++;
                } while (bits >= 0x80000000);
                XFillRectangle (draw->dpy, draw->drawable,
-                               draw->core.gc, xspan, y, lenspan, 1);
+                               draw->core.gc, xspan, y, (unsigned)lenspan, 1);
                xspan += lenspan;
                w -= lenspan;
            }
@@ -284,7 +284,7 @@
 {
     CARD32  pixel = (CARD32) l_pixel;
 
-    pixel = pixel & (((1 << (len)) - 1) << shift);
+    pixel = pixel & (CARD32)(((1 << (len)) - 1) << shift);
     pixel = pixel << (32 - (shift + len)) >> 24;
     while (len < 8)
     {
@@ -301,7 +301,7 @@
 
     shift = shift - (8 - len);
     if (len <= 8)
-       l_pixel &= (((1 << len) - 1) << (8 - len));
+       l_pixel = l_pixel & (unsigned long)(((1 << len) - 1) << (8 - len));
     if (shift < 0)
        l_pixel >>= -shift;
     else
@@ -373,24 +373,24 @@
  * Other formats are handled by the general case
  */
 
-#define cvt8888to0565(s)    ((((s) >> 3) & 0x001f) | \
-                            (((s) >> 5) & 0x07e0) | \
-                            (((s) >> 8) & 0xf800))
+#define cvt8888to0565(s)    (CARD16)((((s) >> 3) & 0x001f) | \
+                                    (((s) >> 5) & 0x07e0) | \
+                                    (((s) >> 8) & 0xf800))
 
 #define cvt0565to8888(s)    (((((s) << 3) & 0xf8) | (((s) >> 2) & 0x7)) | \
                             ((((s) << 5) & 0xfc00) | (((s) >> 1) & 0x300)) | \
                             ((((s) << 8) & 0xf80000) | (((s) << 3) & 0x70000)))
 
-#define cvt8888to0555(s)    ((((s) >> 3) & 0x001f) | \
-                            (((s) >> 6) & 0x03e0) | \
-                            (((s) >> 7) & 0x7c00))
+#define cvt8888to0555(s)    (CARD16)((((s) >> 3) & 0x001f) | \
+                                    (((s) >> 6) & 0x03e0) | \
+                                    (((s) >> 7) & 0x7c00))
 
 #define cvt0555to8888(s)    (((((s) << 3) & 0xf8) | (((s) >> 2) & 0x7)) | \
                             ((((s) << 6) & 0xf800) | (((s) >> 0) & 0x300)) | \
                             ((((s) << 9) & 0xf80000) | (((s) << 4) & 0x70000)))
 
 
-#define XftIntMult(a,b,t) ( (t) = (a) * (b) + 0x80, ( ( ( (t)>>8 ) + (t) )>>8 
) )
+#define XftIntMult(a,b,t,cast) ( ((t) = (cast)((a) * (b) + 0x80)), ( ( ( 
(t)>>8 ) + (t) )>>8 ) )
 #define XftIntDiv(a,b)  (((CARD16) (a) * 255) / (b))
 
 #define XftGet8(v,i)   ((CARD16) (CARD8) ((v) >> i))
@@ -403,18 +403,18 @@
  * this difference will have two versions using the same convention.
  */
 
-#define XftOverU(x,y,i,a,t) ((t) = XftIntMult(XftGet8(y,i),(a),(t)) + 
XftGet8(x,i),\
-                          (CARD32) ((CARD8) ((t) | (0 - ((t) >> 8)))) << (i))
+#define XftOverU(x,y,i,a,t) ((t) = (CARD16) 
XftIntMult(XftGet8(y,i),(a),(t),CARD16) + XftGet8(x,i),\
+                            (CARD32) ((CARD8) ((t) | (0 - ((t) >> 8)))) << (i))
 
-#define XftOverC(x,y,i,a,t) ((t) = XftIntMult(XftGet8(y,i),XftGet8(a,i),(t)) + 
XftGet8(x,i),\
+#define XftOverC(x,y,i,a,t) ((t) = (CARD16) 
XftIntMult(XftGet8(y,i),XftGet8(a,i),(t),CARD16) + XftGet8(x,i),\
                            (CARD32) ((CARD8) ((t) | (0 - ((t) >> 8)))) << (i))
 
-#define XftInU(x,i,a,t) ((CARD32) XftIntMult(XftGet8(x,i),(a),(t)) << (i))
+#define XftInU(x,i,a,t) ((CARD32) XftIntMult(XftGet8(x,i),(a),(t),CARD16) << 
(i))
 
-#define XftInC(x,i,a,t) ((CARD32) XftIntMult(XftGet8(x,i),XftGet8(a,i),(t)) << 
(i))
+#define XftInC(x,i,a,t) ((CARD32) 
XftIntMult(XftGet8(x,i),XftGet8(a,i),(t),CARD32) << (i))
 
-#define XftGen(x,y,i,ax,ay,t,u,v) ((t) = (XftIntMult(XftGet8(y,i),ay,(u)) + \
-                                        XftIntMult(XftGet8(x,i),ax,(v))),\
+#define XftGen(x,y,i,ax,ay,t,u,v) ((t) = 
(XftIntMult(XftGet8(y,i),ay,(u),CARD32) + \
+                                         
XftIntMult(XftGet8(x,i),ax,(v),CARD32)),\
                                  (CARD32) ((CARD8) ((t) | \
                                                     (0 - ((t) >> 8)))) << (i))
 
@@ -425,7 +425,7 @@
 static CARD32
 fbOver24 (CARD32 x, CARD32 y)
 {
-    CARD16  a = ~x >> 24;
+    CARD16  a = (CARD16)(~x >> 24);
     CARD16  t;
     CARD32  m,n,o;
 
@@ -691,7 +691,7 @@
 
     srca = color->color.alpha >> 8;
     src = (srca << 24 |
-          (color->color.red & 0xff00) << 8 |
+          (CARD32)((color->color.red & 0xff00) << 8) |
           (color->color.green & 0xff00) |
           (color->color.blue) >> 8);
     x -= xftg->metrics.x;
@@ -769,7 +769,7 @@
 
     srca = color->color.alpha >> 8;
     src = (srca << 24 |
-          (color->color.red & 0xff00) << 8 |
+          (CARD32)((color->color.red & 0xff00) << 8) |
           (color->color.green & 0xff00) |
           (color->color.blue) >> 8);
     x -= xftg->metrics.x;
@@ -818,9 +818,9 @@
     CARD16  __a = XftGet8(msk,i); \
     CARD32  __t, __ta; \
     CARD32  __i; \
-    __t = XftIntMult (XftGet8(src,i), __a,__i); \
-    __ta = (CARD8) ~XftIntMult (srca, __a,__i); \
-    __t = __t + XftIntMult(XftGet8(dst,i),__ta,__i); \
+    __t = XftIntMult (XftGet8(src,i), __a,__i,CARD32); \
+    __ta = (CARD8) ~XftIntMult (srca, __a,__i,CARD32); \
+    __t = __t + XftIntMult(XftGet8(dst,i),__ta,__i,CARD32); \
     __t = (CARD32) (CARD8) (__t | (-(__t >> 8))); \
     result = __t << (i); \
 }
@@ -1144,7 +1144,7 @@
            prev_error = XSetErrorHandler (XftGetImageErrorHandler);
            image = XGetImage (dpy, draw->drawable,
                               x1, y1,
-                              width, height, AllPlanes,
+                              (unsigned)width, (unsigned)height, AllPlanes,
                               ZPixmap);
            XSetErrorHandler (prev_error);
            if (!image)
@@ -1162,13 +1162,13 @@
            XGCValues   gcv;
 
            pix = XCreatePixmap (dpy, draw->drawable,
-                                width, height, depth);
+                                (unsigned)width, (unsigned)height, depth);
            gcv.graphics_exposures = False;
            gc = XCreateGC (dpy, pix, GCGraphicsExposures, &gcv);
            XCopyArea (dpy, draw->drawable, pix, gc, x1, y1,
-                      width, height, 0, 0);
+                      (unsigned)width, (unsigned)height, 0, 0);
            XFreeGC (dpy, gc);
-           image = XGetImage (dpy, pix, 0, 0, width, height, AllPlanes,
+           image = XGetImage (dpy, pix, 0, 0, (unsigned)width, 
(unsigned)height, AllPlanes,
                               ZPixmap);
            XFreePixmap (dpy, pix);
        }
@@ -1193,7 +1193,7 @@
        if (image->byte_order != XftNativeByteOrder ())
            XftSwapImage (image);
        XPutImage (dpy, draw->drawable, draw->core.gc, image, 0, 0, x1, y1,
-                  width, height);
+                  (unsigned)width, (unsigned)height);
        XDestroyImage (image);
     }
     else
@@ -1257,8 +1257,8 @@
                if (g_x1 < 0)
                {
                    /* do nothing if the given glyphs are out of range */
-                   short t = glyphs[i-1].font->max_advance_width
-                       + glyphs[i-1].x;
+                   short t = (short)(glyphs[i-1].font->max_advance_width
+                                     + glyphs[i-1].x);
                    if (t < 0 && glyphs[i-1].x > 0)
                        goto bail1;
                }
@@ -1305,7 +1305,7 @@
            prev_error = XSetErrorHandler (XftGetImageErrorHandler);
            image = XGetImage (dpy, draw->drawable,
                               x1, y1,
-                              width, height, AllPlanes,
+                              (unsigned)width, (unsigned)height, AllPlanes,
                               ZPixmap);
            XSetErrorHandler (prev_error);
            if (!image)
@@ -1323,13 +1323,13 @@
            XGCValues   gcv;
 
            pix = XCreatePixmap (dpy, draw->drawable,
-                                width, height, depth);
+                                (unsigned)width, (unsigned)height, depth);
            gcv.graphics_exposures = False;
            gc = XCreateGC (dpy, pix, GCGraphicsExposures, &gcv);
            XCopyArea (dpy, draw->drawable, pix, gc, x1, y1,
-                      width, height, 0, 0);
+                      (unsigned)width, (unsigned)height, 0, 0);
            XFreeGC (dpy, gc);
-           image = XGetImage (dpy, pix, 0, 0, width, height, AllPlanes,
+           image = XGetImage (dpy, pix, 0, 0, (unsigned)width, 
(unsigned)height, AllPlanes,
                               ZPixmap);
            XFreePixmap (dpy, pix);
        }
@@ -1358,7 +1358,7 @@
        if (image->byte_order != XftNativeByteOrder ())
            XftSwapImage (image);
        XPutImage (dpy, draw->drawable, draw->core.gc, image, 0, 0, x1, y1,
-                  width, height);
+                  (unsigned)width, (unsigned)height);
        XDestroyImage (image);
     }
     else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/src/xftdpy.c new/libXft-2.3.4/src/xftdpy.c
--- old/libXft-2.3.3/src/xftdpy.c       2019-03-16 19:12:27.000000000 +0100
+++ new/libXft-2.3.4/src/xftdpy.c       2021-08-02 02:50:43.000000000 +0200
@@ -165,7 +165,7 @@
     _XftDisplayInfo = info;
 
     info->glyph_memory = 0;
-    info->max_glyph_memory = XftDefaultGetInteger (dpy,
+    info->max_glyph_memory = (unsigned long)XftDefaultGetInteger (dpy,
                                                   XFT_MAX_GLYPH_MEMORY, 0,
                                                   XFT_DPY_MAX_GLYPH_MEMORY);
     if (XftDebug () & XFT_DBG_CACHE)
@@ -233,7 +233,7 @@
     }
     while (info->glyph_memory > info->max_glyph_memory)
     {
-       glyph_memory = rand () % info->glyph_memory;
+       glyph_memory = (unsigned long)rand () % info->glyph_memory;
        public = info->fonts;
        while (public)
        {
@@ -274,9 +274,9 @@
     info->defaults = defaults;
     if (!info->max_glyph_memory)
        info->max_glyph_memory = XFT_DPY_MAX_GLYPH_MEMORY;
-    info->max_glyph_memory = XftDefaultGetInteger (dpy,
+    info->max_glyph_memory = (unsigned long)XftDefaultGetInteger (dpy,
                                                   XFT_MAX_GLYPH_MEMORY, 0,
-                                                  info->max_glyph_memory);
+                                                  (int)info->max_glyph_memory);
     if (!info->max_unref_fonts)
        info->max_unref_fonts = XFT_DPY_MAX_UNREF_FONTS;
     info->max_unref_fonts = XftDefaultGetInteger (dpy,
@@ -292,7 +292,7 @@
 
     c0 = *v;
     if (isupper ((int)c0))
-       c0 = tolower (c0);
+       c0 = (char)tolower (c0);
     if (c0 == 't' || c0 == 'y' || c0 == '1')
        return 1;
     if (c0 == 'f' || c0 == 'n' || c0 == '0')
@@ -301,7 +301,7 @@
     {
        c1 = v[1];
        if (isupper ((int)c1))
-           c1 = tolower (c1);
+           c1 = (char)tolower (c1);
        if (c1 == 'n')
            return 1;
        if (c1 == 'f')
@@ -349,7 +349,7 @@
     {
        if (FcNameConstant ((FcChar8 *) v, &i))
            return FcPatternAddInteger (pat, option, i);
-       i = strtol (v, &e, 0);
+       i = (int)strtol (v, &e, 0);
        if (e != v)
            return FcPatternAddInteger (pat, option, i);
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/src/xftdraw.c new/libXft-2.3.4/src/xftdraw.c
--- old/libXft-2.3.3/src/xftdraw.c      2019-03-16 19:12:27.000000000 +0100
+++ new/libXft-2.3.4/src/xftdraw.c      2021-08-02 02:50:43.000000000 +0200
@@ -114,7 +114,7 @@
            {
                if (formats[i].depth == depth)
                {
-                   draw->bits_per_pixel = formats[i].bits_per_pixel;
+                   draw->bits_per_pixel = (unsigned)formats[i].bits_per_pixel;
                    break;
                }
            }
@@ -190,7 +190,7 @@
     draw->dpy = dpy;
     draw->drawable = (Drawable) pixmap;
     draw->screen = _XftDrawScreen (dpy, pixmap, NULL);
-    draw->depth = depth;
+    draw->depth = (unsigned)depth;
     draw->bits_per_pixel = 0;  /* don't find out until we need it */
     draw->visual = NULL;
     draw->colormap = 0;
@@ -216,9 +216,9 @@
        XRenderPictFormat   pf;
 
        pf.type = PictTypeDirect;
-       pf.depth = XftDrawDepth (draw);
+       pf.depth = (int)XftDrawDepth (draw);
        pf.direct.alpha = 0;
-       pf.direct.alphaMask = (1 << pf.depth) - 1;
+       pf.direct.alphaMask = (short)((1 << pf.depth) - 1);
        return XRenderFindFormat (draw->dpy,
                                  (PictFormatType|
                                   PictFormatDepth|
@@ -359,7 +359,7 @@
            XRenderPictureAttributes    pa;
 
            pix = XCreatePixmap (dpy, RootWindow (dpy, draw->screen), 1, 1,
-                                info->solidFormat->depth);
+                                (unsigned)info->solidFormat->depth);
            pa.repeat = True;
            info->colors[i].pict = XRenderCreatePicture (draw->dpy,
                                                         pix,
@@ -525,7 +525,7 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (FT_UInt));
+       glyphs = malloc ((size_t)len * sizeof (FT_UInt));
        if (!glyphs)
            return;
     }
@@ -552,7 +552,7 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (FT_UInt));
+       glyphs = malloc ((size_t)len * sizeof (FT_UInt));
        if (!glyphs)
            return;
     }
@@ -580,7 +580,7 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (FT_UInt));
+       glyphs = malloc ((size_t)len * sizeof (FT_UInt));
        if (!glyphs)
            return;
     }
@@ -614,14 +614,14 @@
     {
        if (i == size)
        {
-           glyphs_new = malloc (size * 2 * sizeof (FT_UInt));
+           glyphs_new = malloc ((size_t)size * 2 * sizeof (FT_UInt));
            if (!glyphs_new)
            {
                if (glyphs != glyphs_local)
                    free (glyphs);
                return;
            }
-           memcpy (glyphs_new, glyphs, size * sizeof (FT_UInt));
+           memcpy (glyphs_new, glyphs, (size_t)size * sizeof (FT_UInt));
            size *= 2;
            if (glyphs != glyphs_local)
                free (glyphs);
@@ -659,14 +659,14 @@
     {
        if (i == size)
        {
-           glyphs_new = malloc (size * 2 * sizeof (FT_UInt));
+           glyphs_new = malloc ((size_t)size * 2 * sizeof (FT_UInt));
            if (!glyphs_new)
            {
                if (glyphs != glyphs_local)
                    free (glyphs);
                return;
            }
-           memcpy (glyphs_new, glyphs, size * sizeof (FT_UInt));
+           memcpy (glyphs_new, glyphs, (size_t)size * sizeof (FT_UInt));
            size *= 2;
            if (glyphs != glyphs_local)
                free (glyphs);
@@ -759,7 +759,7 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (XftGlyphSpec));
+       glyphs = malloc ((size_t)len * sizeof (XftGlyphSpec));
        if (!glyphs)
            return;
     }
@@ -788,7 +788,7 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (XftGlyphFontSpec));
+       glyphs = malloc ((size_t)len * sizeof (XftGlyphFontSpec));
        if (!glyphs)
            return;
     }
@@ -929,7 +929,7 @@
        draw->clip.rect->n == n &&
        (n == 0 || (draw->clip.rect->xOrigin == xOrigin &&
                    draw->clip.rect->yOrigin == yOrigin)) &&
-       !memcmp (XftClipRects (draw->clip.rect), rects, n * sizeof 
(XRectangle)))
+       !memcmp (XftClipRects (draw->clip.rect), rects, (size_t)n * sizeof 
(XRectangle)))
     {
        return True;
     }
@@ -937,14 +937,14 @@
     /*
      * Duplicate the region so future changes can be short circuited
      */
-    new = malloc (sizeof (XftClipRect) + n * sizeof (XRectangle));
+    new = malloc (sizeof (XftClipRect) + (size_t)n * sizeof (XRectangle));
     if (!new)
        return False;
 
     new->n = n;
     new->xOrigin = xOrigin;
     new->yOrigin = yOrigin;
-    memcpy (XftClipRects (new), rects, n * sizeof (XRectangle));
+    memcpy (XftClipRects (new), rects, (size_t)n * sizeof (XRectangle));
 
     /*
      * Destroy existing clip
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/src/xftextent.c new/libXft-2.3.4/src/xftextent.c
--- old/libXft-2.3.3/src/xftextent.c    2019-03-16 19:12:27.000000000 +0100
+++ new/libXft-2.3.4/src/xftextent.c    2021-08-02 02:50:43.000000000 +0200
@@ -100,12 +100,12 @@
                y += xftg->metrics.yOff;
            }
        }
-       extents->x = -overall_left;
-       extents->y = -overall_top;
-       extents->width = overall_right - overall_left;
-       extents->height = overall_bottom - overall_top;
-       extents->xOff = x;
-       extents->yOff = y;
+       extents->x = (short)(-overall_left);
+       extents->y = (short)(-overall_top);
+       extents->width = (unsigned short)(overall_right - overall_left);
+       extents->height = (unsigned short)(overall_bottom - overall_top);
+       extents->xOff = (short)x;
+       extents->yOff = (short)y;
     }
     if (glyphs_loaded)
        _XftFontManageMemory (dpy, pub);
@@ -127,7 +127,7 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (FT_UInt));
+       glyphs = malloc ((size_t)len * sizeof (FT_UInt));
        if (!glyphs)
        {
            memset (extents, '\0', sizeof (XGlyphInfo));
@@ -155,7 +155,7 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (FT_UInt));
+       glyphs = malloc ((size_t)len * sizeof (FT_UInt));
        if (!glyphs)
        {
            memset (extents, '\0', sizeof (XGlyphInfo));
@@ -183,7 +183,7 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (FT_UInt));
+       glyphs = malloc ((size_t)len * sizeof (FT_UInt));
        if (!glyphs)
        {
            memset (extents, '\0', sizeof (XGlyphInfo));
@@ -217,7 +217,7 @@
     {
        if (i == size)
        {
-           glyphs_new = malloc (size * 2 * sizeof (FT_UInt));
+           glyphs_new = malloc ((size_t)size * 2 * sizeof (FT_UInt));
            if (!glyphs_new)
            {
                if (glyphs != glyphs_local)
@@ -225,7 +225,7 @@
                memset (extents, '\0', sizeof (XGlyphInfo));
                return;
            }
-           memcpy (glyphs_new, glyphs, size * sizeof (FT_UInt));
+           memcpy (glyphs_new, glyphs, (size_t)size * sizeof (FT_UInt));
            size *= 2;
            if (glyphs != glyphs_local)
                free (glyphs);
@@ -261,7 +261,7 @@
     {
        if (i == size)
        {
-           glyphs_new = malloc (size * 2 * sizeof (FT_UInt));
+           glyphs_new = malloc ((size_t)size * 2 * sizeof (FT_UInt));
            if (!glyphs_new)
            {
                if (glyphs != glyphs_local)
@@ -269,7 +269,7 @@
                memset (extents, '\0', sizeof (XGlyphInfo));
                return;
            }
-           memcpy (glyphs_new, glyphs, size * sizeof (FT_UInt));
+           memcpy (glyphs_new, glyphs, (size_t)size * sizeof (FT_UInt));
            size *= 2;
            if (glyphs != glyphs_local)
                free (glyphs);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/src/xftfreetype.c new/libXft-2.3.4/src/xftfreetype.c
--- old/libXft-2.3.3/src/xftfreetype.c  2019-03-16 19:12:27.000000000 +0100
+++ new/libXft-2.3.4/src/xftfreetype.c  2021-08-02 02:50:43.000000000 +0200
@@ -58,7 +58,7 @@
     if (!f)
        return NULL;
 
-    XftMemAlloc (XFT_MEM_FILE, sizeof (XftFtFile) + strlen ((char *) file) + 
1);
+    XftMemAlloc (XFT_MEM_FILE, (int)(sizeof (XftFtFile) + strlen ((char *) 
file) + 1));
     if (XftDebug () & XFT_DBG_REF)
        printf ("FontFile %s/%d matches new\n",
                file, id);
@@ -276,7 +276,7 @@
            FT_Done_Face (f->face);
     }
     XftMemFree (XFT_MEM_FILE,
-               sizeof (XftFtFile) + (f->file ? strlen (f->file) + 1 : 0));
+               (sizeof (XftFtFile) + (f->file ? strlen (f->file) + 1 : 0)));
     free (f);
 }
 
@@ -481,10 +481,10 @@
        fi->matrix.xy = fi->matrix.yx = 0;
        break;
     case FcResultMatch:
-       fi->matrix.xx = 0x10000L * font_matrix->xx;
-       fi->matrix.yy = 0x10000L * font_matrix->yy;
-       fi->matrix.xy = 0x10000L * font_matrix->xy;
-       fi->matrix.yx = 0x10000L * font_matrix->yx;
+       fi->matrix.xx = (FT_Fixed)(0x10000L * font_matrix->xx);
+       fi->matrix.yy = (FT_Fixed)(0x10000L * font_matrix->yy);
+       fi->matrix.xy = (FT_Fixed)(0x10000L * font_matrix->xy);
+       fi->matrix.yx = (FT_Fixed)(0x10000L * font_matrix->yx);
        break;
     default:
        goto bail1;
@@ -499,6 +499,15 @@
     if (info->hasRender)
     {
        switch (FcPatternGetBool (pattern, XFT_RENDER, 0, &fi->render)) {
+       case FcResultTypeMismatch:
+           /*
+            * Fontconfig no longer supports xft's custom values in
+            * text patterns, so any name specifying render:true or
+            * render:false will have an invalid type in the resulting
+            * pattern. Just ignore that case so that the app doesn't
+            * just fail
+            */
+           /* fall through ... */
        case FcResultNoMatch:
            fi->render = info->hasRender;
            break;
@@ -869,11 +878,11 @@
      * Sometimes the glyphs are numbered 1..n, other times 0..n-1,
      * accept either numbering scheme by making room in the table
      */
-    num_glyphs = face->num_glyphs + 1;
+    num_glyphs = (int)face->num_glyphs + 1;
     alloc_size = (sizeof (XftFontInt) +
-                 num_glyphs * sizeof (XftGlyph *) +
+                 (size_t)num_glyphs * sizeof (XftGlyph *) +
                  hash_value * sizeof (XftUcsHash));
-    font = malloc (alloc_size);
+    font = malloc ((size_t)alloc_size);
 
     if (!font)
        goto bail2;
@@ -890,12 +899,12 @@
        vector.x = 0;
        vector.y = face->size->metrics.descender;
        FT_Vector_Transform (&vector, &fi->matrix);
-       descent = -(vector.y >> 6);
+       descent = (int)(-(vector.y >> 6));
 
        vector.x = 0;
        vector.y = face->size->metrics.ascender;
        FT_Vector_Transform (&vector, &fi->matrix);
-       ascent = vector.y >> 6;
+       ascent = (int)(vector.y >> 6);
 
        if (fi->minspace)
            height = ascent + descent;
@@ -904,17 +913,17 @@
            vector.x = 0;
            vector.y = face->size->metrics.height;
            FT_Vector_Transform (&vector, &fi->matrix);
-           height = vector.y >> 6;
+           height = (int)(vector.y >> 6);
        }
     }
     else
     {
-       descent = -(face->size->metrics.descender >> 6);
-       ascent = face->size->metrics.ascender >> 6;
+       descent = -(int)(face->size->metrics.descender >> 6);
+       ascent = (int)(face->size->metrics.ascender >> 6);
        if (fi->minspace)
            height = ascent + descent;
        else
-           height = face->size->metrics.height >> 6;
+           height = (int)(face->size->metrics.height >> 6);
     }
     font->public.ascent = ascent;
     font->public.descent = descent;
@@ -930,10 +939,10 @@
            vector.x = face->size->metrics.max_advance;
            vector.y = 0;
            FT_Vector_Transform (&vector, &fi->matrix);
-           font->public.max_advance_width = vector.x >> 6;
+           font->public.max_advance_width = (int)(vector.x >> 6);
        }
        else
-           font->public.max_advance_width = face->size->metrics.max_advance >> 
6;
+           font->public.max_advance_width = 
(int)(face->size->metrics.max_advance >> 6);
     }
     font->public.charset = charset;
     font->public.pattern = pattern;
@@ -968,7 +977,7 @@
      * Per glyph information
      */
     font->glyphs = (XftGlyph **) (font + 1);
-    memset (font->glyphs, '\0', num_glyphs * sizeof (XftGlyph *));
+    memset (font->glyphs, '\0', (size_t)num_glyphs * sizeof (XftGlyph *));
     font->num_glyphs = num_glyphs;
     /*
      * Unicode hash table information
@@ -979,8 +988,8 @@
        font->hash_table[i].ucs4 = ((FcChar32) ~0);
        font->hash_table[i].glyph = 0;
     }
-    font->hash_value = hash_value;
-    font->rehash_value = rehash_value;
+    font->hash_value = (int)hash_value;
+    font->rehash_value = (int)rehash_value;
     /*
      * X specific fields
      */
@@ -991,7 +1000,7 @@
      * Glyph memory management fields
      */
     font->glyph_memory = 0;
-    font->max_glyph_memory = max_glyph_memory;
+    font->max_glyph_memory = (unsigned long)max_glyph_memory;
     font->use_free_glyphs = info->use_free_glyphs;
 
     _XftUnlockFile (fi->file);
@@ -1061,9 +1070,9 @@
     FcCharSetDestroy (font->public.charset);
 
     /* Finally, free the font structure */
-    XftMemFree (XFT_MEM_FONT, sizeof (XftFontInt) +
-               font->num_glyphs * sizeof (XftGlyph *) +
-               font->hash_value * sizeof (XftUcsHash));
+    XftMemFree (XFT_MEM_FONT, (sizeof (XftFontInt) +
+               (size_t)font->num_glyphs * sizeof (XftGlyph *) +
+               (size_t)font->hash_value * sizeof (XftUcsHash)));
     free (font);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/src/xftglyphs.c new/libXft-2.3.4/src/xftglyphs.c
--- old/libXft-2.3.3/src/xftglyphs.c    2019-03-16 19:12:27.000000000 +0100
+++ new/libXft-2.3.4/src/xftglyphs.c    2021-08-02 02:50:43.000000000 +0200
@@ -86,11 +86,11 @@
     if ( slot->format != FT_GLYPH_FORMAT_BITMAP )
        return -1;
 
-    // compute the size of the final bitmap
+    /* compute the size of the final bitmap */
     ftbit = &slot->bitmap;
 
-    width = ftbit->width;
-    height = ftbit->rows;
+    width = (int)ftbit->width;
+    height = (int)ftbit->rows;
     pitch = (width+3) & ~3;
 
     switch ( ftbit->pixel_mode )
@@ -134,8 +134,8 @@
        return -1;
     }
 
-    target->width = width;
-    target->rows = height;
+    target->width = (unsigned)width;
+    target->rows = (unsigned)height;
     target->pitch = pitch;
     target->buffer = NULL;
 
@@ -168,8 +168,8 @@
        unsigned char*  srcLine = ftbit->buffer;
         unsigned char* dstLine = target->buffer;
         int            src_pitch = ftbit->pitch;
-        int            width = target->width;
-        int            height = target->rows;
+        int            width = (int)target->width;
+        int            height = (int)target->rows;
         int            pitch = target->pitch;
         int            subpixel;
         int            h;
@@ -178,7 +178,7 @@
                     mode == FT_RENDER_MODE_LCD_V );
 
        if ( src_pitch < 0 )
-           srcLine -= src_pitch*(ftbit->rows-1);
+           srcLine -= ((unsigned)src_pitch * (ftbit->rows-1));
 
        switch ( ftbit->pixel_mode )
        {
@@ -214,7 +214,7 @@
                int bytes = (width+7) >> 3;
 
                for ( h = height; h > 0; h--, srcLine += src_pitch, dstLine += 
pitch )
-                   memcpy( dstLine, srcLine, bytes );
+                   memcpy( dstLine, srcLine, (size_t)bytes );
            }
            break;
 
@@ -240,7 +240,7 @@
            else  /* copy gray into gray */
            {
                for ( h = height; h > 0; h--, srcLine += src_pitch, dstLine += 
pitch )
-                   memcpy( dstLine, srcLine, width );
+                   memcpy( dstLine, srcLine, (size_t)width );
            }
            break;
 
@@ -456,28 +456,28 @@
                        printf("Trans %d %d: %d %d\n", (int) xc, (int) yc,
                               (int) vector.x, (int) vector.y);
                    if(xc == 0 && yc == 0) {
-                       left = right = vector.x;
-                       top = bottom = vector.y;
+                       left = right = (int)vector.x;
+                       top = bottom = (int)vector.y;
                    } else {
-                       if(left > vector.x) left = vector.x;
-                       if(right < vector.x) right = vector.x;
-                       if(bottom > vector.y) bottom = vector.y;
-                       if(top < vector.y) top = vector.y;
+                       if(left   > vector.x) left   = (int)vector.x;
+                       if(right  < vector.x) right  = (int)vector.x;
+                       if(bottom > vector.y) bottom = (int)vector.y;
+                       if(top    < vector.y) top    = (int)vector.y;
                    }
 
                }
            }
-           left = FLOOR(left);
-           right = CEIL(right);
-           bottom = FLOOR(bottom);
-           top = CEIL(top);
+           left   = (int)FLOOR(left);
+           right  = (int)CEIL(right);
+           bottom = (int)FLOOR(bottom);
+           top    = CEIL(top);
 
        } else {
-           left  = FLOOR( glyphslot->metrics.horiBearingX );
-           right = CEIL( glyphslot->metrics.horiBearingX + 
glyphslot->metrics.width );
+           left   = (int)FLOOR( glyphslot->metrics.horiBearingX );
+           right  = (int)CEIL( glyphslot->metrics.horiBearingX + 
glyphslot->metrics.width );
 
-           top    = CEIL( glyphslot->metrics.horiBearingY );
-           bottom = FLOOR( glyphslot->metrics.horiBearingY - 
glyphslot->metrics.height );
+           top    = (int)CEIL( glyphslot->metrics.horiBearingY );
+           bottom = (int)FLOOR( glyphslot->metrics.horiBearingY - 
glyphslot->metrics.height );
        }
 
        width = TRUNC(right - left);
@@ -543,34 +543,34 @@
                    vector.y = 0;
                }
                FT_Vector_Transform (&vector, &font->info.matrix);
-               xftg->metrics.xOff = vector.x >> 6;
-               xftg->metrics.yOff = -(vector.y >> 6);
+               xftg->metrics.xOff = (short)(vector.x >> 6);
+               xftg->metrics.yOff = (short)(-(vector.y >> 6));
            }
            else
            {
                if (font->info.load_flags & FT_LOAD_VERTICAL_LAYOUT)
                {
                    xftg->metrics.xOff = 0;
-                   xftg->metrics.yOff = -font->public.max_advance_width;
+                   xftg->metrics.yOff = 
(short)(-font->public.max_advance_width);
                }
                else
                {
-                   xftg->metrics.xOff = font->public.max_advance_width;
+                   xftg->metrics.xOff = 
(short)(font->public.max_advance_width);
                    xftg->metrics.yOff = 0;
                }
            }
        }
        else
        {
-           xftg->metrics.xOff = TRUNC(ROUND(glyphslot->advance.x));
-           xftg->metrics.yOff = -TRUNC(ROUND(glyphslot->advance.y));
+           xftg->metrics.xOff = (short)(TRUNC(ROUND(glyphslot->advance.x)));
+           xftg->metrics.yOff = (short)(-TRUNC(ROUND(glyphslot->advance.y)));
        }
 
-       // compute the size of the final bitmap
+       /* compute the size of the final bitmap */
        ftbit = &glyphslot->bitmap;
 
-       width = ftbit->width;
-       height = ftbit->rows;
+       width = (int)ftbit->width;
+       height = (int)ftbit->rows;
 
        if (XftDebug() & XFT_DBG_GLYPH)
        {
@@ -617,10 +617,10 @@
        if ( size < 0 )
            continue;
 
-       xftg->metrics.width  = local.width;
-       xftg->metrics.height = local.rows;
-       xftg->metrics.x      = - glyphslot->bitmap_left;
-       xftg->metrics.y      =   glyphslot->bitmap_top;
+       xftg->metrics.width  = (unsigned short)local.width;
+       xftg->metrics.height = (unsigned short)local.rows;
+       xftg->metrics.x      = (short)(- glyphslot->bitmap_left);
+       xftg->metrics.y      = (short)(  glyphslot->bitmap_top);
 
        /*
         * If the glyph is relatively large (> 1% of server memory),
@@ -636,12 +636,12 @@
        {
            if (bufBitmap != bufLocal)
                free (bufBitmap);
-           bufBitmap = (unsigned char *) malloc (size);
+           bufBitmap = (unsigned char *) malloc ((size_t)size);
            if (!bufBitmap)
                continue;
            bufSize = size;
        }
-       memset (bufBitmap, 0, size);
+       memset (bufBitmap, 0, (size_t)size);
 
        local.buffer = bufBitmap;
 
@@ -662,7 +662,7 @@
         */
        glyph = (Glyph) glyphindex;
 
-       xftg->glyph_memory = size + sizeof (XftGlyph);
+       xftg->glyph_memory = (size_t)size + sizeof (XftGlyph);
        if (font->format)
        {
            if (!font->glyphset)
@@ -681,7 +681,7 @@
                        c = ((c << 1) & 0xaa) | ((c >> 1) & 0x55);
                        c = ((c << 2) & 0xcc) | ((c >> 2) & 0x33);
                        c = ((c << 4) & 0xf0) | ((c >> 4) & 0x0f);
-                       *line++ = c;
+                       *line++ = (unsigned char)c;
                    }
                }
            }
@@ -699,9 +699,9 @@
        {
            if (size)
            {
-               xftg->bitmap = malloc (size);
+               xftg->bitmap = malloc ((size_t)size);
                if (xftg->bitmap)
-                   memcpy (xftg->bitmap, bufBitmap, size);
+                   memcpy (xftg->bitmap, bufBitmap, (size_t)size);
            }
            else
                xftg->bitmap = NULL;
@@ -836,7 +836,7 @@
     if (!font->hash_value)
        return 0;
 
-    ent = ucs4 % font->hash_value;
+    ent = ucs4 % (FcChar32)font->hash_value;
     offset = 0;
     while (font->hash_table[ent].ucs4 != ucs4)
     {
@@ -854,13 +854,13 @@
        }
        if (!offset)
        {
-           offset = ucs4 % font->rehash_value;
+           offset = ucs4 % (FcChar32)font->rehash_value;
            if (!offset)
                offset = 1;
        }
        ent = ent + offset;
        if (ent >= font->hash_value)
-           ent -= font->hash_value;
+           ent -= (FcChar32)font->hash_value;
     }
     return font->hash_table[ent].glyph;
 }
@@ -880,7 +880,7 @@
        return;
     if (font->use_free_glyphs)
     {
-       glyph_memory = rand() % font->glyph_memory;
+       glyph_memory = ((unsigned long)rand() % font->glyph_memory);
     }
     else
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/src/xftinit.c new/libXft-2.3.4/src/xftinit.c
--- old/libXft-2.3.3/src/xftinit.c      2019-03-16 19:12:27.000000000 +0100
+++ new/libXft-2.3.4/src/xftinit.c      2021-08-02 02:50:43.000000000 +0200
@@ -32,7 +32,6 @@
     _XftConfigInitialized = True;
     if (!FcInit ())
        return False;
-    _XftNameInit ();
     return True;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/src/xftint.h new/libXft-2.3.4/src/xftint.h
--- old/libXft-2.3.3/src/xftint.h       2019-03-16 19:12:27.000000000 +0100
+++ new/libXft-2.3.4/src/xftint.h       2021-08-02 02:50:43.000000000 +0200
@@ -428,8 +428,6 @@
                            FcObjectSet    *os);
 
 /* xftname.c */
-void
-_XftNameInit (void);
 
 /* xftrender.c */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/src/xftname.c new/libXft-2.3.4/src/xftname.c
--- old/libXft-2.3.3/src/xftname.c      2019-03-16 19:12:27.000000000 +0100
+++ new/libXft-2.3.4/src/xftname.c      2021-08-02 02:50:43.000000000 +0200
@@ -22,30 +22,9 @@
 
 #include "xftint.h"
 
-static const FcObjectType      _XftObjectTypes[] = {
-    { XFT_CORE,                FcTypeBool, },
-    { XFT_XLFD,                FcTypeString, },
-    { XFT_RENDER,      FcTypeBool, },
-    { XFT_MAX_GLYPH_MEMORY, FcTypeInteger, },
-};
-
-#define NUM_OBJECT_TYPES    (sizeof _XftObjectTypes / sizeof 
_XftObjectTypes[0])
-
-static FcBool _XftNameInitialized;
-
-_X_HIDDEN void
-_XftNameInit (void)
-{
-    if (_XftNameInitialized)
-       return;
-    _XftNameInitialized = FcTrue;
-    FcNameRegisterObjectTypes (_XftObjectTypes, NUM_OBJECT_TYPES);
-}
-
 _X_EXPORT FcPattern
 *XftNameParse (const char *name)
 {
-    _XftNameInit ();
     return FcNameParse ((FcChar8 *) name);
 }
 
@@ -54,7 +33,6 @@
 {
     FcChar8 *name;
 
-    _XftNameInit ();
     name = FcNameUnparse (pat);
     if (!name)
        return FcFalse;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libXft-2.3.3/src/xftrender.c new/libXft-2.3.4/src/xftrender.c
--- old/libXft-2.3.3/src/xftrender.c    2019-03-16 19:12:27.000000000 +0100
+++ new/libXft-2.3.4/src/xftrender.c    2021-08-02 02:50:43.000000000 +0200
@@ -96,7 +96,7 @@
     chars = char_local;
     if (nglyphs * size > sizeof (char_local))
     {
-       chars = malloc (nglyphs * size);
+       chars = malloc ((size_t)(nglyphs * size));
        if (!chars)
            goto bail1;
     }
@@ -111,7 +111,7 @@
        switch (width) {
        case 1: char8[i] = (char) wire; break;
        case 2: char16[i] = (unsigned short) wire; break;
-       case 4: char32[i] = (unsigned long) wire; break;
+       case 4: char32[i] = (unsigned int) wire; break;
        }
     }
     switch (width) {
@@ -217,7 +217,7 @@
     chars = char_local;
     if (nglyphs * size > NUM_LOCAL)
     {
-       chars = malloc (nglyphs * size);
+       chars = malloc ((size_t)(nglyphs * size));
        if (!chars)
            goto bail1;
     }
@@ -269,7 +269,7 @@
     elts = elts_local;
     if (nelt > NUM_ELT_LOCAL)
     {
-       elts = malloc (nelt * sizeof (XGlyphElt8));
+       elts = malloc ((size_t)nelt * sizeof (XGlyphElt8));
        if (!elts)
            goto bail2;
     }
@@ -366,7 +366,7 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (XftGlyphSpec));
+       glyphs = malloc ((size_t)len * sizeof (XftGlyphSpec));
        if (!glyphs)
            return;
     }
@@ -489,7 +489,7 @@
     chars = char_local;
     if (nglyphs * size > NUM_LOCAL)
     {
-       chars = malloc (nglyphs * size);
+       chars = malloc ((size_t)(nglyphs * size));
        if (!chars)
            goto bail1;
     }
@@ -554,7 +554,7 @@
     elts = elts_local;
     if (nelt > NUM_ELT_LOCAL)
     {
-       elts = malloc (nelt * sizeof (XGlyphElt8));
+       elts = malloc ((size_t)nelt * sizeof (XGlyphElt8));
        if (!elts)
            goto bail2;
     }
@@ -656,7 +656,7 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (XftGlyphFontSpec));
+       glyphs = malloc ((size_t)len * sizeof (XftGlyphFontSpec));
        if (!glyphs)
            return;
     }
@@ -693,7 +693,7 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (FT_UInt));
+       glyphs = malloc ((size_t)len * sizeof (FT_UInt));
        if (!glyphs)
            return;
     }
@@ -725,7 +725,7 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (FT_UInt));
+       glyphs = malloc ((size_t)len * sizeof (FT_UInt));
        if (!glyphs)
            return;
     }
@@ -757,13 +757,13 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (FT_UInt));
+       glyphs = malloc ((size_t)len * sizeof (FT_UInt));
        if (!glyphs)
            return;
     }
     for (i = 0; i < len; i++)
        glyphs[i] = XftCharIndex (dpy, pub,
-                                 (string[i*2]<<8) | string[i*2+1]);
+                                 (FcChar32)((string[i*2]<<8) | string[i*2+1]));
     XftGlyphRender (dpy, op, src, pub, dst,
                     srcx, srcy, x, y, glyphs, len);
     if (glyphs != glyphs_local)
@@ -790,13 +790,13 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (FT_UInt));
+       glyphs = malloc ((size_t)len * sizeof (FT_UInt));
        if (!glyphs)
            return;
     }
     for (i = 0; i < len; i++)
        glyphs[i] = XftCharIndex (dpy, pub,
-                                 string[i*2] | (string[i*2+1]<<8));
+                                 (FcChar32)(string[i*2] | (string[i*2+1]<<8)));
     XftGlyphRender (dpy, op, src, pub, dst,
                     srcx, srcy, x, y, glyphs, len);
     if (glyphs != glyphs_local)
@@ -823,7 +823,7 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (FT_UInt));
+       glyphs = malloc ((size_t)len * sizeof (FT_UInt));
        if (!glyphs)
            return;
     }
@@ -855,16 +855,16 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (FT_UInt));
+       glyphs = malloc ((size_t)len * sizeof (FT_UInt));
        if (!glyphs)
            return;
     }
     for (i = 0; i < len; i++)
        glyphs[i] = XftCharIndex (dpy, pub,
-                                 (string[i*4] << 24) |
-                                 (string[i*4+1] << 16) |
-                                 (string[i*4+2] << 8) |
-                                 (string[i*4+3]));
+                                 (FcChar32)((string[i*4] << 24) |
+                                            (string[i*4+1] << 16) |
+                                            (string[i*4+2] << 8) |
+                                            (string[i*4+3])));
     XftGlyphRender (dpy, op, src, pub, dst,
                     srcx, srcy, x, y, glyphs, len);
     if (glyphs != glyphs_local)
@@ -891,16 +891,16 @@
        glyphs = glyphs_local;
     else
     {
-       glyphs = malloc (len * sizeof (FT_UInt));
+       glyphs = malloc ((size_t)len * sizeof (FT_UInt));
        if (!glyphs)
            return;
     }
     for (i = 0; i < len; i++)
        glyphs[i] = XftCharIndex (dpy, pub,
-                                 (string[i*4]) |
-                                 (string[i*4+1] << 8) |
-                                 (string[i*4+2] << 16) |
-                                 (string[i*4+3] << 24));
+                                 (FcChar32)((string[i*4]) |
+                                            (string[i*4+1] << 8) |
+                                            (string[i*4+2] << 16) |
+                                            (string[i*4+3] << 24)));
     XftGlyphRender (dpy, op, src, pub, dst,
                     srcx, srcy, x, y, glyphs, len);
     if (glyphs != glyphs_local)
@@ -933,14 +933,14 @@
     {
        if (i == size)
        {
-           glyphs_new = malloc (size * 2 * sizeof (FT_UInt));
+           glyphs_new = malloc ((size_t)size * 2 * sizeof (FT_UInt));
            if (!glyphs_new)
            {
                if (glyphs != glyphs_local)
                    free (glyphs);
                return;
            }
-           memcpy (glyphs_new, glyphs, size * sizeof (FT_UInt));
+           memcpy (glyphs_new, glyphs, (size_t)size * sizeof (FT_UInt));
            size *= 2;
            if (glyphs != glyphs_local)
                free (glyphs);
@@ -983,14 +983,14 @@
     {
        if (i == size)
        {
-           glyphs_new = malloc (size * 2 * sizeof (FT_UInt));
+           glyphs_new = malloc ((size_t)size * 2 * sizeof (FT_UInt));
            if (!glyphs_new)
            {
                if (glyphs != glyphs_local)
                    free (glyphs);
                return;
            }
-           memcpy (glyphs_new, glyphs, size * sizeof (FT_UInt));
+           memcpy (glyphs_new, glyphs, (size_t)size * sizeof (FT_UInt));
            size *= 2;
            if (glyphs != glyphs_local)
                free (glyphs);

Reply via email to