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);