Update to libXfont2 2.0.4
This commit is contained in:
parent
4cc195529e
commit
6fa14ff265
@ -1,3 +1,194 @@
|
||||
commit ed8b8e9fe544ec51ab1b1dfaea6fced35470ad6c
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Sep 14 11:34:03 2019 -0700
|
||||
|
||||
libXfont2 2.0.4
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit b46cd2fef2bfe192579930f29a830051670d4d00
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Sep 14 11:32:02 2019 -0700
|
||||
|
||||
Add src/util/replace.h to noinst_HEADERS so it gets included in tarballs
|
||||
|
||||
Found when "make distcheck" failed.
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit 5561a9dc835a249e58cfdb3c384547f6f401a15d
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Aug 17 14:31:24 2019 -0700
|
||||
|
||||
fs_read_glyphs: check if rep is null before dereferencing
|
||||
|
||||
Resolves coverity warning def16 from the list in
|
||||
https://gitlab.freedesktop.org/xorg/lib/libxfont/issues/6
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit c84ce6be6a7e2e70c9ab20b60bc7198699690d50
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Aug 17 14:19:04 2019 -0700
|
||||
|
||||
CatalogueRescan: if opendir() fails, unref fpes, but don't free the cat
|
||||
|
||||
None of the callers of CatalogueRescan check for failure before accessing
|
||||
the cat pointer so don't free it (especially without clearing the pointer
|
||||
to it in fpe->private), just unref the contents.
|
||||
|
||||
Can only be triggered if somehow stat() succeeds on the directory, but
|
||||
opendir fails anyway (removed between the calls? permission problem?).
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit c1c5c9aa4cacb9138d6a2e5d37619f7960b54536
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Aug 17 13:56:03 2019 -0700
|
||||
|
||||
ComputeScaledProperties: check for valid pointers before making atoms
|
||||
|
||||
Resolves coverity warning def23 from the list in
|
||||
https://gitlab.freedesktop.org/xorg/lib/libxfont/issues/6
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit 78085e6b683b4e5a13b38508597a0c93ac2ed9ea
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Aug 17 13:41:02 2019 -0700
|
||||
|
||||
stubs/atom.c: check for ResizeHashTable failure
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit 3e0e36e4a9fee32105aa7c5cb6e089c495b92b10
|
||||
Author: Maya Rashish <maya@NetBSD.org>
|
||||
Date: Fri Aug 9 12:53:48 2019 +0300
|
||||
|
||||
Fix whitespace
|
||||
|
||||
commit 194cb45ceb510c3e580460919cd7e5dd31a285c8
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sun Aug 4 11:14:39 2019 -0700
|
||||
|
||||
fontxlfd.c: tell gcc that switch fallthrough is intentional
|
||||
|
||||
Quiets:
|
||||
src/util/fontxlfd.c: In function ‘FontParseXLFDName’:
|
||||
src/util/fontxlfd.c:450:14: warning: this statement may fall through [-Wimplicit-fallthrough=]
|
||||
replaceChar = '*';
|
||||
~~~~~~~~~~~~^~~~~
|
||||
src/util/fontxlfd.c:451:5: note: here
|
||||
case FONT_XLFD_REPLACE_ZERO:
|
||||
^~~~
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit ddbee30d3525cdd66b84056affc407601680cc29
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Aug 3 19:29:05 2019 -0700
|
||||
|
||||
Convert multiplying malloc calls to use mallocarray instead
|
||||
|
||||
Introduces mallocarray as a macro calling reallocarray with a NULL
|
||||
pointer for the old allocation.
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit f54470dab5b392380df61a22b4b4bef685b6cee2
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Aug 3 19:09:19 2019 -0700
|
||||
|
||||
Convert multiplying realloc calls to use reallocarray instead
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit 27207d35d4b4bbd5d2b2c5f7e13a61ea43d04a4a
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Aug 3 16:13:21 2019 -0700
|
||||
|
||||
Add reallocarray fallback if not provided by libc nor libbsd
|
||||
|
||||
Implementation copied from the Xserver
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit 2178c7445a3464bd69637ad91a2dd0320a60e0df
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Aug 3 18:19:11 2019 -0700
|
||||
|
||||
Use bounds checking string functions everywhere
|
||||
|
||||
Replace strcpy, strcat, sprintf with strlcpy, strlcat, snprintf
|
||||
everywhere, even where there were already bounds checks in place,
|
||||
to reduce time spent checking static analysis results.
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit d4c941ea8b1dc07a14efce656bff58d31a14c985
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Aug 3 16:05:21 2019 -0700
|
||||
|
||||
Add strlcat & strlcpy fallbacks if not provided by libc nor libbsd
|
||||
|
||||
Implementations copied from the Xserver
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit c4ed2e069dc8aa5b8b7ef2fc926ae8584ff2a67b
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Aug 3 13:45:54 2019 -0700
|
||||
|
||||
Add some unit testing utilities
|
||||
|
||||
The test/utils directory contains some standalone test programs for testing
|
||||
libXfont funtionality without needing a full X server session. They could
|
||||
be used to generate automated unit testing in the future, but that work has
|
||||
not yet been done.
|
||||
|
||||
[v2: updated original work from libXfont 1.5 to 2.0 API & makefiles]
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit 77ae4048564eff2e96b80cedfac013877e46d506
|
||||
Author: Adam Jackson <ajax@redhat.com>
|
||||
Date: Wed Jan 4 12:13:04 2017 -0500
|
||||
|
||||
fontfile: Remove unused 'bc' slot from _FontEntry
|
||||
|
||||
Whatever this is, we're not using it. On my machine we allocate about
|
||||
1100 of these structs, and this change reduces the struct from 152 to 48
|
||||
bytes, so this saves about 100k of memory.
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
|
||||
commit 6624b5e705da8333a3bc63d1ddeea6b11e831e24
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Mar 16 12:40:03 2019 -0700
|
||||
|
||||
Update configure.ac bug URL for gitlab migration
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit 66a26687b2b86b53c315544483b740deb6f01c1e
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Mon Nov 19 22:05:10 2018 -0800
|
||||
|
||||
Update README for gitlab migration
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit 099ed6fa9f293d283163b138830d43bbd47c5df1
|
||||
Author: Rin Okuyama <rin@NetBSD.org>
|
||||
Date: Tue Feb 21 06:18:37 2017 +0000
|
||||
|
||||
avoid -Wformat errors from clang when building with -DDEBUG
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=99882
|
||||
|
||||
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
|
||||
commit cdb2f990348c3bd1407022f7e0e5fcba552d539f
|
||||
Author: Matthieu Herrb <matthieu@herrb.eu>
|
||||
Date: Sat Nov 25 12:01:16 2017 +0100
|
||||
@ -118,9 +309,9 @@ Date: Wed May 18 11:52:27 2016 -0400
|
||||
|
||||
configure: Use -fvisibility=hidden if available
|
||||
|
||||
text data bss dec hex filename
|
||||
233732 8168 1616 243516 3b73c .libs/libXfont2.so.2.before
|
||||
217113 6816 1616 225545 37109 .libs/libXfont2.so.2.after
|
||||
text data bss dec hex filename
|
||||
233732 8168 1616 243516 3b73c .libs/libXfont2.so.2.before
|
||||
217113 6816 1616 225545 37109 .libs/libXfont2.so.2.after
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
@ -135,21 +326,21 @@ Date: Mon May 30 00:46:21 2016 -0700
|
||||
|
||||
Found by clang's Address Sanitizer
|
||||
|
||||
crac.num_auths = set_font_authorizations(&authorizations, &authlen,
|
||||
client);
|
||||
/* Work around bug in xfs versions up through modular release 1.0.8
|
||||
which rejects CreateAC packets with num_auths = 0 & authlen < 4 */
|
||||
if (crac.num_auths == 0) {
|
||||
authorizations = padding;
|
||||
authlen = 4;
|
||||
} else {
|
||||
authlen = (authlen + 3) & ~0x3;
|
||||
}
|
||||
crac.length = (sizeof (fsCreateACReq) + authlen) >> 2;
|
||||
crac.acid = cur->acid;
|
||||
_fs_add_req_log(conn, FS_CreateAC);
|
||||
_fs_write(conn, (char *) &crac, sizeof (fsCreateACReq));
|
||||
_fs_write(conn, authorizations, authlen);
|
||||
crac.num_auths = set_font_authorizations(&authorizations, &authlen,
|
||||
client);
|
||||
/* Work around bug in xfs versions up through modular release 1.0.8
|
||||
which rejects CreateAC packets with num_auths = 0 & authlen < 4 */
|
||||
if (crac.num_auths == 0) {
|
||||
authorizations = padding;
|
||||
authlen = 4;
|
||||
} else {
|
||||
authlen = (authlen + 3) & ~0x3;
|
||||
}
|
||||
crac.length = (sizeof (fsCreateACReq) + authlen) >> 2;
|
||||
crac.acid = cur->acid;
|
||||
_fs_add_req_log(conn, FS_CreateAC);
|
||||
_fs_write(conn, (char *) &crac, sizeof (fsCreateACReq));
|
||||
_fs_write(conn, authorizations, authlen);
|
||||
|
||||
In the case in the report, set_font_authorizations setup authorizations as a
|
||||
34 byte buffer (and authlen set to 34 as one would expect). The following
|
||||
@ -1584,7 +1775,7 @@ Date: Wed Apr 14 05:58:28 2010 -0500
|
||||
|
||||
Conflicts:
|
||||
|
||||
ChangeLog
|
||||
ChangeLog
|
||||
|
||||
Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
|
||||
|
||||
@ -2397,7 +2588,7 @@ Date: Tue Jun 19 10:38:02 2007 -0400
|
||||
This patch adds a new FPE type, which will match font path elements of the
|
||||
form
|
||||
|
||||
catalogue:<dir>
|
||||
catalogue:<dir>
|
||||
|
||||
The dir specified after the catalogue: prefix will be scanned for symlinks
|
||||
and each symlink destination will be added as a local fontfile FPE.
|
||||
@ -2407,22 +2598,22 @@ Date: Tue Jun 19 10:38:02 2007 -0400
|
||||
|
||||
An example configuration:
|
||||
|
||||
75dpi:unscaled:pri=20 -> /usr/share/X11/fonts/75dpi
|
||||
ghostscript:pri=60 -> /usr/share/fonts/default/ghostscript
|
||||
misc:unscaled:pri=10 -> /usr/share/X11/fonts/misc
|
||||
type1:pri=40 -> /usr/share/X11/fonts/Type1
|
||||
type1:pri=50 -> /usr/share/fonts/default/Type1
|
||||
75dpi:unscaled:pri=20 -> /usr/share/X11/fonts/75dpi
|
||||
ghostscript:pri=60 -> /usr/share/fonts/default/ghostscript
|
||||
misc:unscaled:pri=10 -> /usr/share/X11/fonts/misc
|
||||
type1:pri=40 -> /usr/share/X11/fonts/Type1
|
||||
type1:pri=50 -> /usr/share/fonts/default/Type1
|
||||
|
||||
will add /usr/share/X11/fonts/misc as the first FPE with the attribute
|
||||
'unscaled', second FPE will be /usr/share/X11/fonts/75dpi, also with
|
||||
the attribute unscaled etc. This is functionally equivalent to setting
|
||||
the following font path:
|
||||
|
||||
/usr/share/X11/fonts/misc:unscaled,
|
||||
/usr/share/X11/fonts/75dpi:unscaled,
|
||||
/usr/share/X11/fonts/Type1,
|
||||
/usr/share/fonts/default/Type1,
|
||||
/usr/share/fonts/default/ghostscript
|
||||
/usr/share/X11/fonts/misc:unscaled,
|
||||
/usr/share/X11/fonts/75dpi:unscaled,
|
||||
/usr/share/X11/fonts/Type1,
|
||||
/usr/share/fonts/default/Type1,
|
||||
/usr/share/fonts/default/ghostscript
|
||||
|
||||
The motivation is to let font packages add a symlink to the new font
|
||||
directory they provide instead of rewriting either the Xorg config file
|
||||
|
@ -40,7 +40,8 @@ noinst_HEADERS = \
|
||||
include/X11/fonts/pcf.h \
|
||||
include/libxfontint.h \
|
||||
src/FreeType/ft.h \
|
||||
src/FreeType/ftfuncs.h
|
||||
src/FreeType/ftfuncs.h \
|
||||
src/util/replace.h
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = xfont2.pc
|
||||
@ -65,7 +66,7 @@ libXfont2_la_SOURCES = \
|
||||
|
||||
libXfont2_la_LDFLAGS = -version-number 2:0:0 -no-undefined
|
||||
|
||||
libXfont2_la_LIBADD = $(Z_LIBS) $(MATH_LIBS) $(XFONT_LIBS)
|
||||
libXfont2_la_LIBADD = $(Z_LIBS) $(MATH_LIBS) $(XFONT_LIBS) $(LTLIBOBJS)
|
||||
|
||||
if XFONT_FONTFILE
|
||||
libXfont2_la_SOURCES += \
|
||||
@ -155,7 +156,18 @@ libXfont2_la_SOURCES += \
|
||||
src/fc/fstrans.c
|
||||
endif
|
||||
|
||||
EXTRA_DIST = src/builtins/buildfont
|
||||
EXTRA_DIST = src/builtins/buildfont README.md
|
||||
|
||||
# Test utilities
|
||||
EXTRA_DIST += test/utils/README
|
||||
|
||||
TEST_UTIL_SRCS = test/utils/font-test-utils.c test/utils/font-test-utils.h
|
||||
|
||||
noinst_PROGRAMS = lsfontdir
|
||||
|
||||
lsfontdir_SOURCES = test/utils/lsfontdir.c $(TEST_UTIL_SRCS)
|
||||
lsfontdir_LDADD = libXfont2.la $(LTLIBOBJS)
|
||||
|
||||
|
||||
MAINTAINERCLEANFILES = ChangeLog INSTALL
|
||||
|
||||
|
@ -37,6 +37,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
VPATH = @srcdir@
|
||||
am__make_dryrun = \
|
||||
{ \
|
||||
@ -137,13 +138,16 @@ host_triplet = @host@
|
||||
@XFONT_FC_TRUE@ src/fc/fslibos.h \
|
||||
@XFONT_FC_TRUE@ src/fc/fstrans.c
|
||||
|
||||
noinst_PROGRAMS = lsfontdir$(EXEEXT)
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(libXfontinclude_HEADERS) \
|
||||
DIST_COMMON = $(am__configure_deps) $(libXfontinclude_HEADERS) \
|
||||
$(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
$(srcdir)/config.h.in $(srcdir)/xfont2.pc.in \
|
||||
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL \
|
||||
compile config.guess config.sub depcomp install-sh ltmain.sh \
|
||||
missing
|
||||
$(top_srcdir)/configure $(top_srcdir)/src/util/reallocarray.c \
|
||||
$(top_srcdir)/src/util/strlcat.c \
|
||||
$(top_srcdir)/src/util/strlcpy.c AUTHORS COPYING ChangeLog \
|
||||
INSTALL compile config.guess config.sub depcomp install-sh \
|
||||
ltmain.sh missing
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
@ -185,9 +189,10 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \
|
||||
"$(DESTDIR)$(libXfontincludedir)"
|
||||
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||
am__DEPENDENCIES_1 =
|
||||
LIBOBJDIR = src/util/
|
||||
@XFONT_FREETYPE_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
|
||||
libXfont2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
|
||||
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
|
||||
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(LTLIBOBJS) \
|
||||
$(am__DEPENDENCIES_2)
|
||||
am__libXfont2_la_SOURCES_DIST = src/stubs/atom.c \
|
||||
src/stubs/libxfontstubs.c src/util/fontaccel.c \
|
||||
@ -268,6 +273,12 @@ am__v_lt_1 =
|
||||
libXfont2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(libXfont2_la_LDFLAGS) $(LDFLAGS) -o $@
|
||||
PROGRAMS = $(noinst_PROGRAMS)
|
||||
am__objects_11 = test/utils/font-test-utils.$(OBJEXT)
|
||||
am_lsfontdir_OBJECTS = test/utils/lsfontdir.$(OBJEXT) \
|
||||
$(am__objects_11)
|
||||
lsfontdir_OBJECTS = $(am_lsfontdir_OBJECTS)
|
||||
lsfontdir_DEPENDENCIES = libXfont2.la $(LTLIBOBJS)
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
@ -302,8 +313,8 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@)
|
||||
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
|
||||
am__v_CCLD_0 = @echo " CCLD " $@;
|
||||
am__v_CCLD_1 =
|
||||
SOURCES = $(libXfont2_la_SOURCES)
|
||||
DIST_SOURCES = $(am__libXfont2_la_SOURCES_DIST)
|
||||
SOURCES = $(libXfont2_la_SOURCES) $(lsfontdir_SOURCES)
|
||||
DIST_SOURCES = $(am__libXfont2_la_SOURCES_DIST) $(lsfontdir_SOURCES)
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-dvi-recursive install-exec-recursive \
|
||||
@ -541,7 +552,8 @@ noinst_HEADERS = \
|
||||
include/X11/fonts/pcf.h \
|
||||
include/libxfontint.h \
|
||||
src/FreeType/ft.h \
|
||||
src/FreeType/ftfuncs.h
|
||||
src/FreeType/ftfuncs.h \
|
||||
src/util/replace.h
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = xfont2.pc
|
||||
@ -558,8 +570,13 @@ libXfont2_la_SOURCES = src/stubs/atom.c src/stubs/libxfontstubs.c \
|
||||
$(am__append_12)
|
||||
libXfont2_la_LDFLAGS = -version-number 2:0:0 -no-undefined
|
||||
libXfont2_la_LIBADD = $(Z_LIBS) $(MATH_LIBS) $(XFONT_LIBS) \
|
||||
$(am__append_4)
|
||||
EXTRA_DIST = src/builtins/buildfont
|
||||
$(LTLIBOBJS) $(am__append_4)
|
||||
|
||||
# Test utilities
|
||||
EXTRA_DIST = src/builtins/buildfont README.md test/utils/README
|
||||
TEST_UTIL_SRCS = test/utils/font-test-utils.c test/utils/font-test-utils.h
|
||||
lsfontdir_SOURCES = test/utils/lsfontdir.c $(TEST_UTIL_SRCS)
|
||||
lsfontdir_LDADD = libXfont2.la $(LTLIBOBJS)
|
||||
MAINTAINERCLEANFILES = ChangeLog INSTALL
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
@ -796,6 +813,28 @@ src/fc/fstrans.lo: src/fc/$(am__dirstamp) \
|
||||
libXfont2.la: $(libXfont2_la_OBJECTS) $(libXfont2_la_DEPENDENCIES) $(EXTRA_libXfont2_la_DEPENDENCIES)
|
||||
$(AM_V_CCLD)$(libXfont2_la_LINK) -rpath $(libdir) $(libXfont2_la_OBJECTS) $(libXfont2_la_LIBADD) $(LIBS)
|
||||
|
||||
clean-noinstPROGRAMS:
|
||||
@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list || exit $$?; \
|
||||
test -n "$(EXEEXT)" || exit 0; \
|
||||
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list
|
||||
test/utils/$(am__dirstamp):
|
||||
@$(MKDIR_P) test/utils
|
||||
@: > test/utils/$(am__dirstamp)
|
||||
test/utils/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) test/utils/$(DEPDIR)
|
||||
@: > test/utils/$(DEPDIR)/$(am__dirstamp)
|
||||
test/utils/lsfontdir.$(OBJEXT): test/utils/$(am__dirstamp) \
|
||||
test/utils/$(DEPDIR)/$(am__dirstamp)
|
||||
test/utils/font-test-utils.$(OBJEXT): test/utils/$(am__dirstamp) \
|
||||
test/utils/$(DEPDIR)/$(am__dirstamp)
|
||||
lsfontdir$(EXEEXT): $(lsfontdir_OBJECTS) $(lsfontdir_DEPENDENCIES) $(EXTRA_lsfontdir_DEPENDENCIES)
|
||||
@rm -f lsfontdir$(EXEEXT)
|
||||
$(AM_V_CCLD)$(LINK) $(lsfontdir_OBJECTS) $(lsfontdir_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
-rm -f src/FreeType/*.$(OBJEXT)
|
||||
@ -812,6 +851,7 @@ mostlyclean-compile:
|
||||
-rm -f src/stubs/*.lo
|
||||
-rm -f src/util/*.$(OBJEXT)
|
||||
-rm -f src/util/*.lo
|
||||
-rm -f test/utils/*.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
@ -865,7 +905,12 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/util/$(DEPDIR)/miscutil.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/util/$(DEPDIR)/patcache.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/util/$(DEPDIR)/private.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/util/$(DEPDIR)/reallocarray.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/util/$(DEPDIR)/strlcat.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/util/$(DEPDIR)/strlcpy.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@src/util/$(DEPDIR)/utilbitmap.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@test/utils/$(DEPDIR)/font-test-utils.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@test/utils/$(DEPDIR)/lsfontdir.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
|
||||
@ -1270,7 +1315,8 @@ distcleancheck: distclean
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) config.h
|
||||
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS) \
|
||||
config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libXfontincludedir)"; do \
|
||||
@ -1296,6 +1342,8 @@ install-strip:
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
-test -z "$(LIBOBJS)" || rm -f $(LIBOBJS)
|
||||
-test -z "$(LTLIBOBJS)" || rm -f $(LTLIBOBJS)
|
||||
|
||||
clean-generic:
|
||||
|
||||
@ -1316,6 +1364,8 @@ distclean-generic:
|
||||
-rm -f src/stubs/$(am__dirstamp)
|
||||
-rm -f src/util/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f src/util/$(am__dirstamp)
|
||||
-rm -f test/utils/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f test/utils/$(am__dirstamp)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -1324,11 +1374,11 @@ maintainer-clean-generic:
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
|
||||
mostlyclean-am
|
||||
clean-noinstPROGRAMS mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf src/FreeType/$(DEPDIR) src/bitmap/$(DEPDIR) src/builtins/$(DEPDIR) src/fc/$(DEPDIR) src/fontfile/$(DEPDIR) src/stubs/$(DEPDIR) src/util/$(DEPDIR)
|
||||
-rm -rf src/FreeType/$(DEPDIR) src/bitmap/$(DEPDIR) src/builtins/$(DEPDIR) src/fc/$(DEPDIR) src/fontfile/$(DEPDIR) src/stubs/$(DEPDIR) src/util/$(DEPDIR) test/utils/$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-hdr distclean-libtool distclean-tags
|
||||
@ -1376,7 +1426,7 @@ installcheck-am:
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
-rm -rf src/FreeType/$(DEPDIR) src/bitmap/$(DEPDIR) src/builtins/$(DEPDIR) src/fc/$(DEPDIR) src/fontfile/$(DEPDIR) src/stubs/$(DEPDIR) src/util/$(DEPDIR)
|
||||
-rm -rf src/FreeType/$(DEPDIR) src/bitmap/$(DEPDIR) src/builtins/$(DEPDIR) src/fc/$(DEPDIR) src/fontfile/$(DEPDIR) src/stubs/$(DEPDIR) src/util/$(DEPDIR) test/utils/$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
@ -1402,16 +1452,16 @@ uninstall-am: uninstall-libLTLIBRARIES \
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am am--refresh check check-am clean clean-cscope \
|
||||
clean-generic clean-libLTLIBRARIES clean-libtool cscope \
|
||||
cscopelist cscopelist-recursive ctags ctags-recursive dist \
|
||||
dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
|
||||
dist-tarZ dist-xz dist-zip distcheck distclean \
|
||||
distclean-compile distclean-generic distclean-hdr \
|
||||
distclean-libtool distclean-tags distcleancheck distdir \
|
||||
distuninstallcheck dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am \
|
||||
clean-generic clean-libLTLIBRARIES clean-libtool \
|
||||
clean-noinstPROGRAMS cscope cscopelist cscopelist-recursive \
|
||||
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
|
||||
dist-hook dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
|
||||
distcheck distclean distclean-compile distclean-generic \
|
||||
distclean-hdr distclean-libtool distclean-tags distcleancheck \
|
||||
distdir distuninstallcheck dvi dvi-am html html-am info \
|
||||
info-am install install-am install-data install-data-am \
|
||||
install-dvi install-dvi-am install-exec install-exec-am \
|
||||
install-html install-html-am install-info install-info-am \
|
||||
install-libLTLIBRARIES install-libXfontincludeHEADERS \
|
||||
install-man install-pdf install-pdf-am install-pkgconfigDATA \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
|
@ -1,89 +0,0 @@
|
||||
libXfont provides the core of the legacy X11 font system, handling the index
|
||||
files (fonts.dir, fonts.alias, fonts.scale), the various font file formats,
|
||||
and rasterizing them. It is used by the X servers, and will eventually be
|
||||
used by the X Font Server (xfs), but should not be used by normal X11 clients.
|
||||
X11 clients access fonts via either the new APIs in libXft, or the legacy
|
||||
APIs in libX11.
|
||||
|
||||
This version of libXfont is not compatible with xfs, or with the legacy
|
||||
bdftopcf utility; these packages require libXfont 1.5, not libXfont 2.0
|
||||
or later. The two versions can be installed in parallel, and eventually
|
||||
the need for 1.5 will go away. We apologize for the inconvenience.
|
||||
|
||||
libXfont supports a number of compression and font formats, and the
|
||||
configure script takes various options to enable or disable them:
|
||||
|
||||
-- Compression types:
|
||||
|
||||
gzip - always enabled, no option to disable, requires libz
|
||||
|
||||
bzip2 - disabled by default, enable via --with-bzip2, requires libbz2
|
||||
|
||||
-- Font formats:
|
||||
|
||||
builtins - copies of the "fixed" & "cursor" fonts required by the
|
||||
X protocol are built into the library so the X server always
|
||||
has the fonts it requires to start up. Accessed via the
|
||||
special 'built-ins' entry in the X server font path.
|
||||
Enabled by default, disable via --disable-builtins.
|
||||
|
||||
freetype - handles scalable font formats including OpenType, FreeType,
|
||||
and PostScript formats. Requires FreeType2 library.
|
||||
Can also be used to handle bdf & bitmap pcf font formats.
|
||||
Enabled by default, disable via --disable-freetype.
|
||||
|
||||
bdf bitmap fonts - text file format for distributing fonts, described
|
||||
in http://www.x.org/docs/BDF/bdf.pdf specification. Normally
|
||||
not used by the X server at runtime, as the fonts distributed
|
||||
by X.Org in bdf format are compiled with bdftopcf when
|
||||
installing/packaging them.
|
||||
Enabled by default, disable via --disable-bdfformat.
|
||||
|
||||
pcf bitmap fonts - standard bitmap font format since X11R5 in 1991,
|
||||
used for all bitmap fonts installed from X.Org packages.
|
||||
Compiled format is architecture independent.
|
||||
As noted above, usually produced by bdftopcf.
|
||||
Enabled by default, disable via --disable-pcfformat.
|
||||
|
||||
snf bitmap fonts - standard bitmap font format prior to X11R5 in 1991,
|
||||
remains only for backwards compatibility. Unlike pcf, snf files
|
||||
are architecture specific, and contain less font information
|
||||
than pcf files. snf fonts are deprecated and support for them
|
||||
may be removed in future libXfont releases.
|
||||
Disabled by default, enable via --disable-snfformat.
|
||||
|
||||
-- Font services:
|
||||
|
||||
xfs font servers - allows retreiving fonts as a client of an xfs server.
|
||||
Enabled by default, disable via --disable-fc (font client).
|
||||
|
||||
If enabled, you can also use the standard libxtrans flags to
|
||||
configure which transports can be used to connect to xfs:
|
||||
--enable-unix-transport Enable UNIX domain socket transport
|
||||
--enable-tcp-transport Enable TCP socket transport (IPv4)
|
||||
--enable-ipv6 Enable IPv6 support for tcp-transport
|
||||
--enable-local-transport Enable os-specific local transport
|
||||
(Change --enable to --disable to force disabling support.)
|
||||
The default setting is to enable all of the transports the
|
||||
configure script can find OS support for.
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
Please submit bugs & patches to the Xorg bugzilla:
|
||||
|
||||
https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
|
||||
|
||||
All questions regarding this software should be directed at the
|
||||
Xorg mailing list:
|
||||
|
||||
http://lists.freedesktop.org/mailman/listinfo/xorg
|
||||
|
||||
The master development code repository can be found at:
|
||||
|
||||
git://anongit.freedesktop.org/git/xorg/lib/libXfont
|
||||
|
||||
http://cgit.freedesktop.org/xorg/lib/libXfont
|
||||
|
||||
For more information on the git code manager, see:
|
||||
|
||||
http://wiki.x.org/wiki/GitPage
|
90
lib/libXfont2/README.md
Normal file
90
lib/libXfont2/README.md
Normal file
@ -0,0 +1,90 @@
|
||||
libXfont - X font handling library for server & utilities
|
||||
---------------------------------------------------------
|
||||
|
||||
libXfont provides the core of the legacy X11 font system, handling the index
|
||||
files (fonts.dir, fonts.alias, fonts.scale), the various font file formats,
|
||||
and rasterizing them. It is used by the X servers, and will eventually be
|
||||
used by the X Font Server (xfs), but should not be used by normal X11 clients.
|
||||
X11 clients access fonts via either the new APIs in libXft, or the legacy
|
||||
APIs in libX11.
|
||||
|
||||
This version of libXfont is not compatible with xfs, or with the legacy
|
||||
bdftopcf utility; these packages require libXfont 1.5, not libXfont 2.0
|
||||
or later. The two versions can be installed in parallel, and eventually
|
||||
the need for 1.5 will go away. We apologize for the inconvenience.
|
||||
|
||||
libXfont supports a number of compression and font formats, and the
|
||||
configure script takes various options to enable or disable them:
|
||||
|
||||
- Compression types:
|
||||
|
||||
* gzip - always enabled, no option to disable, requires libz
|
||||
|
||||
* bzip2 - disabled by default, enable via --with-bzip2, requires libbz2
|
||||
|
||||
- Font formats:
|
||||
|
||||
* builtins - copies of the "fixed" & "cursor" fonts required by the
|
||||
X protocol are built into the library so the X server always
|
||||
has the fonts it requires to start up. Accessed via the
|
||||
special 'built-ins' entry in the X server font path.
|
||||
Enabled by default, disable via --disable-builtins.
|
||||
|
||||
* freetype - handles scalable font formats including OpenType, FreeType,
|
||||
and PostScript formats. Requires FreeType2 library.
|
||||
Can also be used to handle bdf & bitmap pcf font formats.
|
||||
Enabled by default, disable via --disable-freetype.
|
||||
|
||||
* bdf bitmap fonts - text file format for distributing fonts, described
|
||||
in https://www.x.org/docs/BDF/bdf.pdf specification. Normally
|
||||
not used by the X server at runtime, as the fonts distributed
|
||||
by X.Org in bdf format are compiled with bdftopcf when
|
||||
installing/packaging them.
|
||||
Enabled by default, disable via --disable-bdfformat.
|
||||
|
||||
* pcf bitmap fonts - standard bitmap font format since X11R5 in 1991,
|
||||
used for all bitmap fonts installed from X.Org packages.
|
||||
Compiled format is architecture independent.
|
||||
As noted above, usually produced by bdftopcf.
|
||||
Enabled by default, disable via --disable-pcfformat.
|
||||
|
||||
* snf bitmap fonts - standard bitmap font format prior to X11R5 in 1991,
|
||||
remains only for backwards compatibility. Unlike pcf, snf files
|
||||
are architecture specific, and contain less font information
|
||||
than pcf files. snf fonts are deprecated and support for them
|
||||
may be removed in future libXfont releases.
|
||||
Disabled by default, enable via --disable-snfformat.
|
||||
|
||||
- Font services:
|
||||
|
||||
* xfs font servers - allows retreiving fonts as a client of an xfs server.
|
||||
Enabled by default, disable via --disable-fc (font client).
|
||||
|
||||
If enabled, you can also use the standard libxtrans flags to
|
||||
configure which transports can be used to connect to xfs:
|
||||
|
||||
--enable-unix-transport Enable UNIX domain socket transport
|
||||
--enable-tcp-transport Enable TCP socket transport (IPv4)
|
||||
--enable-ipv6 Enable IPv6 support for tcp-transport
|
||||
--enable-local-transport Enable os-specific local transport
|
||||
|
||||
(Change --enable to --disable to force disabling support.)
|
||||
The default setting is to enable all of the transports the
|
||||
configure script can find OS support for.
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
All questions regarding this software should be directed at the
|
||||
Xorg mailing list:
|
||||
|
||||
https://lists.x.org/mailman/listinfo/xorg
|
||||
|
||||
The master development code repository can be found at:
|
||||
|
||||
https://gitlab.freedesktop.org/xorg/lib/libXfont
|
||||
|
||||
Please submit bug reports and requests to merge patches there.
|
||||
|
||||
For patch submission instructions, see:
|
||||
|
||||
https://www.x.org/wiki/Development/Documentation/SubmittingPatches
|
281
lib/libXfont2/aclocal.m4
vendored
281
lib/libXfont2/aclocal.m4
vendored
@ -8606,32 +8606,63 @@ m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
|
||||
m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
|
||||
m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
|
||||
|
||||
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
||||
# serial 1 (pkg-config-0.24)
|
||||
#
|
||||
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
||||
dnl serial 11 (pkg-config-0.29.1)
|
||||
dnl
|
||||
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
||||
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
|
||||
dnl
|
||||
dnl This program is free software; you can redistribute it and/or modify
|
||||
dnl it under the terms of the GNU General Public License as published by
|
||||
dnl the Free Software Foundation; either version 2 of the License, or
|
||||
dnl (at your option) any later version.
|
||||
dnl
|
||||
dnl This program is distributed in the hope that it will be useful, but
|
||||
dnl WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
dnl General Public License for more details.
|
||||
dnl
|
||||
dnl You should have received a copy of the GNU General Public License
|
||||
dnl along with this program; if not, write to the Free Software
|
||||
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
dnl 02111-1307, USA.
|
||||
dnl
|
||||
dnl As a special exception to the GNU General Public License, if you
|
||||
dnl distribute this file as part of a program that contains a
|
||||
dnl configuration script generated by Autoconf, you may include it under
|
||||
dnl the same distribution terms that you use for the rest of that
|
||||
dnl program.
|
||||
|
||||
# PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
||||
# ----------------------------------
|
||||
dnl PKG_PREREQ(MIN-VERSION)
|
||||
dnl -----------------------
|
||||
dnl Since: 0.29
|
||||
dnl
|
||||
dnl Verify that the version of the pkg-config macros are at least
|
||||
dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
|
||||
dnl installed version of pkg-config, this checks the developer's version
|
||||
dnl of pkg.m4 when generating configure.
|
||||
dnl
|
||||
dnl To ensure that this macro is defined, also add:
|
||||
dnl m4_ifndef([PKG_PREREQ],
|
||||
dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
|
||||
dnl
|
||||
dnl See the "Since" comment for each macro you use to see what version
|
||||
dnl of the macros you require.
|
||||
m4_defun([PKG_PREREQ],
|
||||
[m4_define([PKG_MACROS_VERSION], [0.29.1])
|
||||
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
|
||||
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
|
||||
])dnl PKG_PREREQ
|
||||
|
||||
dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
||||
dnl ----------------------------------
|
||||
dnl Since: 0.16
|
||||
dnl
|
||||
dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
|
||||
dnl first found in the path. Checks that the version of pkg-config found
|
||||
dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
|
||||
dnl used since that's the first version where most current features of
|
||||
dnl pkg-config existed.
|
||||
AC_DEFUN([PKG_PROG_PKG_CONFIG],
|
||||
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
||||
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
|
||||
@ -8653,18 +8684,19 @@ if test -n "$PKG_CONFIG"; then
|
||||
PKG_CONFIG=""
|
||||
fi
|
||||
fi[]dnl
|
||||
])# PKG_PROG_PKG_CONFIG
|
||||
])dnl PKG_PROG_PKG_CONFIG
|
||||
|
||||
# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||
#
|
||||
# Check to see whether a particular set of modules exists. Similar
|
||||
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
|
||||
#
|
||||
# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
# only at the first occurence in configure.ac, so if the first place
|
||||
# it's called might be skipped (such as if it is within an "if", you
|
||||
# have to call PKG_CHECK_EXISTS manually
|
||||
# --------------------------------------------------------------
|
||||
dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||
dnl -------------------------------------------------------------------
|
||||
dnl Since: 0.18
|
||||
dnl
|
||||
dnl Check to see whether a particular set of modules exists. Similar to
|
||||
dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
|
||||
dnl
|
||||
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
dnl only at the first occurence in configure.ac, so if the first place
|
||||
dnl it's called might be skipped (such as if it is within an "if", you
|
||||
dnl have to call PKG_CHECK_EXISTS manually
|
||||
AC_DEFUN([PKG_CHECK_EXISTS],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||
if test -n "$PKG_CONFIG" && \
|
||||
@ -8674,8 +8706,10 @@ m4_ifvaln([$3], [else
|
||||
$3])dnl
|
||||
fi])
|
||||
|
||||
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
||||
# ---------------------------------------------
|
||||
dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
||||
dnl ---------------------------------------------
|
||||
dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
|
||||
dnl pkg_failed based on the result.
|
||||
m4_define([_PKG_CONFIG],
|
||||
[if test -n "$$1"; then
|
||||
pkg_cv_[]$1="$$1"
|
||||
@ -8687,10 +8721,11 @@ m4_define([_PKG_CONFIG],
|
||||
else
|
||||
pkg_failed=untried
|
||||
fi[]dnl
|
||||
])# _PKG_CONFIG
|
||||
])dnl _PKG_CONFIG
|
||||
|
||||
# _PKG_SHORT_ERRORS_SUPPORTED
|
||||
# -----------------------------
|
||||
dnl _PKG_SHORT_ERRORS_SUPPORTED
|
||||
dnl ---------------------------
|
||||
dnl Internal check to see if pkg-config supports short errors.
|
||||
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||
@ -8698,19 +8733,17 @@ if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||
else
|
||||
_pkg_short_errors_supported=no
|
||||
fi[]dnl
|
||||
])# _PKG_SHORT_ERRORS_SUPPORTED
|
||||
])dnl _PKG_SHORT_ERRORS_SUPPORTED
|
||||
|
||||
|
||||
# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
||||
# [ACTION-IF-NOT-FOUND])
|
||||
#
|
||||
#
|
||||
# Note that if there is a possibility the first call to
|
||||
# PKG_CHECK_MODULES might not happen, you should be sure to include an
|
||||
# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
|
||||
#
|
||||
#
|
||||
# --------------------------------------------------------------
|
||||
dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
||||
dnl [ACTION-IF-NOT-FOUND])
|
||||
dnl --------------------------------------------------------------
|
||||
dnl Since: 0.4.0
|
||||
dnl
|
||||
dnl Note that if there is a possibility the first call to
|
||||
dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
|
||||
dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
|
||||
AC_DEFUN([PKG_CHECK_MODULES],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
|
||||
@ -8764,16 +8797,40 @@ else
|
||||
AC_MSG_RESULT([yes])
|
||||
$3
|
||||
fi[]dnl
|
||||
])# PKG_CHECK_MODULES
|
||||
])dnl PKG_CHECK_MODULES
|
||||
|
||||
|
||||
# PKG_INSTALLDIR(DIRECTORY)
|
||||
# -------------------------
|
||||
# Substitutes the variable pkgconfigdir as the location where a module
|
||||
# should install pkg-config .pc files. By default the directory is
|
||||
# $libdir/pkgconfig, but the default can be changed by passing
|
||||
# DIRECTORY. The user can override through the --with-pkgconfigdir
|
||||
# parameter.
|
||||
dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
||||
dnl [ACTION-IF-NOT-FOUND])
|
||||
dnl ---------------------------------------------------------------------
|
||||
dnl Since: 0.29
|
||||
dnl
|
||||
dnl Checks for existence of MODULES and gathers its build flags with
|
||||
dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
|
||||
dnl and VARIABLE-PREFIX_LIBS from --libs.
|
||||
dnl
|
||||
dnl Note that if there is a possibility the first call to
|
||||
dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
|
||||
dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
|
||||
dnl configure.ac.
|
||||
AC_DEFUN([PKG_CHECK_MODULES_STATIC],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||
_save_PKG_CONFIG=$PKG_CONFIG
|
||||
PKG_CONFIG="$PKG_CONFIG --static"
|
||||
PKG_CHECK_MODULES($@)
|
||||
PKG_CONFIG=$_save_PKG_CONFIG[]dnl
|
||||
])dnl PKG_CHECK_MODULES_STATIC
|
||||
|
||||
|
||||
dnl PKG_INSTALLDIR([DIRECTORY])
|
||||
dnl -------------------------
|
||||
dnl Since: 0.27
|
||||
dnl
|
||||
dnl Substitutes the variable pkgconfigdir as the location where a module
|
||||
dnl should install pkg-config .pc files. By default the directory is
|
||||
dnl $libdir/pkgconfig, but the default can be changed by passing
|
||||
dnl DIRECTORY. The user can override through the --with-pkgconfigdir
|
||||
dnl parameter.
|
||||
AC_DEFUN([PKG_INSTALLDIR],
|
||||
[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
|
||||
m4_pushdef([pkg_description],
|
||||
@ -8784,16 +8841,18 @@ AC_ARG_WITH([pkgconfigdir],
|
||||
AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
|
||||
m4_popdef([pkg_default])
|
||||
m4_popdef([pkg_description])
|
||||
]) dnl PKG_INSTALLDIR
|
||||
])dnl PKG_INSTALLDIR
|
||||
|
||||
|
||||
# PKG_NOARCH_INSTALLDIR(DIRECTORY)
|
||||
# -------------------------
|
||||
# Substitutes the variable noarch_pkgconfigdir as the location where a
|
||||
# module should install arch-independent pkg-config .pc files. By
|
||||
# default the directory is $datadir/pkgconfig, but the default can be
|
||||
# changed by passing DIRECTORY. The user can override through the
|
||||
# --with-noarch-pkgconfigdir parameter.
|
||||
dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
|
||||
dnl --------------------------------
|
||||
dnl Since: 0.27
|
||||
dnl
|
||||
dnl Substitutes the variable noarch_pkgconfigdir as the location where a
|
||||
dnl module should install arch-independent pkg-config .pc files. By
|
||||
dnl default the directory is $datadir/pkgconfig, but the default can be
|
||||
dnl changed by passing DIRECTORY. The user can override through the
|
||||
dnl --with-noarch-pkgconfigdir parameter.
|
||||
AC_DEFUN([PKG_NOARCH_INSTALLDIR],
|
||||
[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
|
||||
m4_pushdef([pkg_description],
|
||||
@ -8804,7 +8863,24 @@ AC_ARG_WITH([noarch-pkgconfigdir],
|
||||
AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
|
||||
m4_popdef([pkg_default])
|
||||
m4_popdef([pkg_description])
|
||||
]) dnl PKG_NOARCH_INSTALLDIR
|
||||
])dnl PKG_NOARCH_INSTALLDIR
|
||||
|
||||
|
||||
dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
|
||||
dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||
dnl -------------------------------------------
|
||||
dnl Since: 0.28
|
||||
dnl
|
||||
dnl Retrieves the value of the pkg-config variable for the given module.
|
||||
AC_DEFUN([PKG_CHECK_VAR],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
|
||||
|
||||
_PKG_CONFIG([$1], [variable="][$3]["], [$2])
|
||||
AS_VAR_COPY([$1], [pkg_cv_][$1])
|
||||
|
||||
AS_VAR_IF([$1], [""], [$5], [$4])dnl
|
||||
])dnl PKG_CHECK_VAR
|
||||
|
||||
# Copyright (C) 2002-2012 Free Software Foundation, Inc.
|
||||
#
|
||||
@ -9829,7 +9905,7 @@ AC_SUBST([am__untar])
|
||||
|
||||
dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure.
|
||||
dnl
|
||||
dnl Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
|
||||
dnl Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
dnl
|
||||
dnl Permission is hereby granted, free of charge, to any person obtaining a
|
||||
dnl copy of this software and associated documentation files (the "Software"),
|
||||
@ -9866,7 +9942,7 @@ dnl DEALINGS IN THE SOFTWARE.
|
||||
# See the "minimum version" comment for each macro you use to see what
|
||||
# version you require.
|
||||
m4_defun([XORG_MACROS_VERSION],[
|
||||
m4_define([vers_have], [1.19.0])
|
||||
m4_define([vers_have], [1.19.2])
|
||||
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
|
||||
m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
|
||||
m4_if(m4_cmp(maj_have, maj_needed), 0,,
|
||||
@ -9944,6 +10020,17 @@ AC_DEFUN([XORG_MANPAGE_SECTIONS],[
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([AC_PROG_SED])
|
||||
|
||||
case $host_os in
|
||||
solaris*)
|
||||
# Solaris 2.0 - 11.3 use SysV man page section numbers, so we
|
||||
# check for a man page file found in later versions that use
|
||||
# traditional section numbers instead
|
||||
AC_CHECK_FILE([/usr/share/man/man7/attributes.7],
|
||||
[SYSV_MAN_SECTIONS=false], [SYSV_MAN_SECTIONS=true])
|
||||
;;
|
||||
*) SYSV_MAN_SECTIONS=false ;;
|
||||
esac
|
||||
|
||||
if test x$APP_MAN_SUFFIX = x ; then
|
||||
APP_MAN_SUFFIX=1
|
||||
fi
|
||||
@ -9959,9 +10046,9 @@ if test x$LIB_MAN_DIR = x ; then
|
||||
fi
|
||||
|
||||
if test x$FILE_MAN_SUFFIX = x ; then
|
||||
case $host_os in
|
||||
solaris*) FILE_MAN_SUFFIX=4 ;;
|
||||
*) FILE_MAN_SUFFIX=5 ;;
|
||||
case $SYSV_MAN_SECTIONS in
|
||||
true) FILE_MAN_SUFFIX=4 ;;
|
||||
*) FILE_MAN_SUFFIX=5 ;;
|
||||
esac
|
||||
fi
|
||||
if test x$FILE_MAN_DIR = x ; then
|
||||
@ -9969,9 +10056,9 @@ if test x$FILE_MAN_DIR = x ; then
|
||||
fi
|
||||
|
||||
if test x$MISC_MAN_SUFFIX = x ; then
|
||||
case $host_os in
|
||||
solaris*) MISC_MAN_SUFFIX=5 ;;
|
||||
*) MISC_MAN_SUFFIX=7 ;;
|
||||
case $SYSV_MAN_SECTIONS in
|
||||
true) MISC_MAN_SUFFIX=5 ;;
|
||||
*) MISC_MAN_SUFFIX=7 ;;
|
||||
esac
|
||||
fi
|
||||
if test x$MISC_MAN_DIR = x ; then
|
||||
@ -9979,9 +10066,9 @@ if test x$MISC_MAN_DIR = x ; then
|
||||
fi
|
||||
|
||||
if test x$DRIVER_MAN_SUFFIX = x ; then
|
||||
case $host_os in
|
||||
solaris*) DRIVER_MAN_SUFFIX=7 ;;
|
||||
*) DRIVER_MAN_SUFFIX=4 ;;
|
||||
case $SYSV_MAN_SECTIONS in
|
||||
true) DRIVER_MAN_SUFFIX=7 ;;
|
||||
*) DRIVER_MAN_SUFFIX=4 ;;
|
||||
esac
|
||||
fi
|
||||
if test x$DRIVER_MAN_DIR = x ; then
|
||||
@ -9989,9 +10076,9 @@ if test x$DRIVER_MAN_DIR = x ; then
|
||||
fi
|
||||
|
||||
if test x$ADMIN_MAN_SUFFIX = x ; then
|
||||
case $host_os in
|
||||
solaris*) ADMIN_MAN_SUFFIX=1m ;;
|
||||
*) ADMIN_MAN_SUFFIX=8 ;;
|
||||
case $SYSV_MAN_SECTIONS in
|
||||
true) ADMIN_MAN_SUFFIX=1m ;;
|
||||
*) ADMIN_MAN_SUFFIX=8 ;;
|
||||
esac
|
||||
fi
|
||||
if test x$ADMIN_MAN_DIR = x ; then
|
||||
@ -10252,13 +10339,24 @@ m4_ifval([$1],
|
||||
fi])
|
||||
|
||||
# Test for the ability of xmlto to generate a text target
|
||||
#
|
||||
# NOTE: xmlto 0.0.27 or higher return a non-zero return code in the
|
||||
# following test for empty XML docbook files.
|
||||
# For compatibility reasons use the following empty XML docbook file and if
|
||||
# it fails try it again with a non-empty XML file.
|
||||
have_xmlto_text=no
|
||||
cat > conftest.xml << "EOF"
|
||||
EOF
|
||||
AS_IF([test "$have_xmlto" = yes],
|
||||
[AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1],
|
||||
[have_xmlto_text=yes],
|
||||
[AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])])
|
||||
[# Try it again with a non-empty XML file.
|
||||
cat > conftest.xml << "EOF"
|
||||
<x></x>
|
||||
EOF
|
||||
AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1],
|
||||
[have_xmlto_text=yes],
|
||||
[AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])])])
|
||||
rm -f conftest.xml
|
||||
AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes])
|
||||
AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes])
|
||||
@ -11654,8 +11752,9 @@ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
|
||||
INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
|
||||
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|
||||
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \
|
||||
echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)"
|
||||
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \
|
||||
touch \$(top_srcdir)/INSTALL; \
|
||||
echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))"
|
||||
AC_SUBST([INSTALL_CMD])
|
||||
]) # XORG_INSTALL
|
||||
dnl Copyright 2005 Red Hat, Inc
|
||||
@ -11716,10 +11815,11 @@ AC_DEFUN([XORG_RELEASE_VERSION],[
|
||||
#
|
||||
#
|
||||
AC_DEFUN([XORG_CHANGELOG], [
|
||||
CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \
|
||||
CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \
|
||||
mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
|
||||
|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \
|
||||
echo 'git directory not found: installing possibly empty changelog.' >&2)"
|
||||
|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \
|
||||
touch \$(top_srcdir)/ChangeLog; \
|
||||
echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))"
|
||||
AC_SUBST([CHANGELOG_CMD])
|
||||
]) # XORG_CHANGELOG
|
||||
|
||||
@ -11859,6 +11959,9 @@ AC_DEFUN([XTRANS_CONNECTION_FLAGS],[
|
||||
AC_DEFINE(LOCALCONN,1,[Support os-specific local connections])
|
||||
fi
|
||||
|
||||
# Other functions Xtrans may need
|
||||
AC_CHECK_FUNCS([strcasecmp strlcpy])
|
||||
|
||||
]) # XTRANS_CONNECTION_FLAGS
|
||||
|
||||
|
||||
|
@ -27,6 +27,9 @@
|
||||
/* Define to 1 if you have the `readlink' function. */
|
||||
#undef HAVE_READLINK
|
||||
|
||||
/* Define to 1 if you have the `reallocarray' function. */
|
||||
#undef HAVE_REALLOCARRAY
|
||||
|
||||
/* Define to 1 if the system has the type `socklen_t'. */
|
||||
#undef HAVE_SOCKLEN_T
|
||||
|
||||
@ -36,12 +39,21 @@
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the `strcasecmp' function. */
|
||||
#undef HAVE_STRCASECMP
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the `strlcat' function. */
|
||||
#undef HAVE_STRLCAT
|
||||
|
||||
/* Define to 1 if you have the `strlcpy' function. */
|
||||
#undef HAVE_STRLCPY
|
||||
|
||||
/* Define to 1 if you have the <sys/poll.h> header file. */
|
||||
#undef HAVE_SYS_POLL_H
|
||||
|
||||
|
225
lib/libXfont2/configure
vendored
225
lib/libXfont2/configure
vendored
@ -1,8 +1,8 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for libXfont2 2.0.3.
|
||||
# Generated by GNU Autoconf 2.69 for libXfont2 2.0.4.
|
||||
#
|
||||
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
|
||||
# Report bugs to <https://gitlab.freedesktop.org/xorg/lib/libXfont/issues>.
|
||||
#
|
||||
#
|
||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||
@ -275,7 +275,7 @@ fi
|
||||
$as_echo "$0: be upgraded to zsh 4.3.4 or later."
|
||||
else
|
||||
$as_echo "$0: Please tell bug-autoconf@gnu.org and
|
||||
$0: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
|
||||
$0: https://gitlab.freedesktop.org/xorg/lib/libXfont/issues
|
||||
$0: about your system, including any error possibly output
|
||||
$0: before this message. Then install a modern shell, or
|
||||
$0: manually run the script under such a shell if you do
|
||||
@ -651,9 +651,9 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='libXfont2'
|
||||
PACKAGE_TARNAME='libXfont2'
|
||||
PACKAGE_VERSION='2.0.3'
|
||||
PACKAGE_STRING='libXfont2 2.0.3'
|
||||
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
|
||||
PACKAGE_VERSION='2.0.4'
|
||||
PACKAGE_STRING='libXfont2 2.0.4'
|
||||
PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/lib/libXfont/issues'
|
||||
PACKAGE_URL=''
|
||||
|
||||
ac_unique_file="Makefile.am"
|
||||
@ -693,10 +693,10 @@ ac_includes_default="\
|
||||
# include <unistd.h>
|
||||
#endif"
|
||||
|
||||
ac_config_libobj_dir=src/util
|
||||
ac_subst_vars='am__EXEEXT_FALSE
|
||||
am__EXEEXT_TRUE
|
||||
LTLIBOBJS
|
||||
LIBOBJS
|
||||
OS_CFLAGS
|
||||
XFONT_LIBS
|
||||
XFONT_CFLAGS
|
||||
@ -727,6 +727,7 @@ FREETYPE_LIBS
|
||||
FREETYPE_CFLAGS
|
||||
XFONT_FREETYPE_FALSE
|
||||
XFONT_FREETYPE_TRUE
|
||||
LIBOBJS
|
||||
HAVE_STYLESHEETS_FALSE
|
||||
HAVE_STYLESHEETS_TRUE
|
||||
XSL_STYLESHEET
|
||||
@ -1468,7 +1469,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures libXfont2 2.0.3 to adapt to many kinds of systems.
|
||||
\`configure' configures libXfont2 2.0.4 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -1538,7 +1539,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of libXfont2 2.0.3:";;
|
||||
short | recursive ) echo "Configuration of libXfont2 2.0.4:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -1624,7 +1625,7 @@ Some influential environment variables:
|
||||
Use these variables to override the choices made by `configure' or to help
|
||||
it to find libraries and programs with nonstandard names/locations.
|
||||
|
||||
Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
|
||||
Report bugs to <https://gitlab.freedesktop.org/xorg/lib/libXfont/issues>.
|
||||
_ACEOF
|
||||
ac_status=$?
|
||||
fi
|
||||
@ -1687,7 +1688,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
libXfont2 configure 2.0.3
|
||||
libXfont2 configure 2.0.4
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
@ -1847,7 +1848,7 @@ $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
|
||||
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
|
||||
( $as_echo "## ---------------------------------------------------------------------- ##
|
||||
## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=xorg ##
|
||||
## Report this to https://gitlab.freedesktop.org/xorg/lib/libXfont/issues ##
|
||||
## ---------------------------------------------------------------------- ##"
|
||||
) | sed "s/^/$as_me: WARNING: /" >&2
|
||||
;;
|
||||
@ -2213,7 +2214,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by libXfont2 $as_me 2.0.3, which was
|
||||
It was created by libXfont2 $as_me 2.0.4, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@ -3042,7 +3043,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='libXfont2'
|
||||
VERSION='2.0.3'
|
||||
VERSION='2.0.4'
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@ -17793,10 +17794,11 @@ _ACEOF
|
||||
|
||||
|
||||
|
||||
CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \
|
||||
CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \
|
||||
mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
|
||||
|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \
|
||||
echo 'git directory not found: installing possibly empty changelog.' >&2)"
|
||||
|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \
|
||||
touch \$(top_srcdir)/ChangeLog; \
|
||||
echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))"
|
||||
|
||||
|
||||
|
||||
@ -17804,14 +17806,45 @@ echo 'git directory not found: installing possibly empty changelog.' >&2)"
|
||||
macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
|
||||
INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
|
||||
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|
||||
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \
|
||||
echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)"
|
||||
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \
|
||||
touch \$(top_srcdir)/INSTALL; \
|
||||
echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
case $host_os in
|
||||
solaris*)
|
||||
# Solaris 2.0 - 11.3 use SysV man page section numbers, so we
|
||||
# check for a man page file found in later versions that use
|
||||
# traditional section numbers instead
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/share/man/man7/attributes.7" >&5
|
||||
$as_echo_n "checking for /usr/share/man/man7/attributes.7... " >&6; }
|
||||
if ${ac_cv_file__usr_share_man_man7_attributes_7+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
test "$cross_compiling" = yes &&
|
||||
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
|
||||
if test -r "/usr/share/man/man7/attributes.7"; then
|
||||
ac_cv_file__usr_share_man_man7_attributes_7=yes
|
||||
else
|
||||
ac_cv_file__usr_share_man_man7_attributes_7=no
|
||||
fi
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__usr_share_man_man7_attributes_7" >&5
|
||||
$as_echo "$ac_cv_file__usr_share_man_man7_attributes_7" >&6; }
|
||||
if test "x$ac_cv_file__usr_share_man_man7_attributes_7" = xyes; then :
|
||||
SYSV_MAN_SECTIONS=false
|
||||
else
|
||||
SYSV_MAN_SECTIONS=true
|
||||
fi
|
||||
|
||||
;;
|
||||
*) SYSV_MAN_SECTIONS=false ;;
|
||||
esac
|
||||
|
||||
if test x$APP_MAN_SUFFIX = x ; then
|
||||
APP_MAN_SUFFIX=1
|
||||
fi
|
||||
@ -17827,9 +17860,9 @@ if test x$LIB_MAN_DIR = x ; then
|
||||
fi
|
||||
|
||||
if test x$FILE_MAN_SUFFIX = x ; then
|
||||
case $host_os in
|
||||
solaris*) FILE_MAN_SUFFIX=4 ;;
|
||||
*) FILE_MAN_SUFFIX=5 ;;
|
||||
case $SYSV_MAN_SECTIONS in
|
||||
true) FILE_MAN_SUFFIX=4 ;;
|
||||
*) FILE_MAN_SUFFIX=5 ;;
|
||||
esac
|
||||
fi
|
||||
if test x$FILE_MAN_DIR = x ; then
|
||||
@ -17837,9 +17870,9 @@ if test x$FILE_MAN_DIR = x ; then
|
||||
fi
|
||||
|
||||
if test x$MISC_MAN_SUFFIX = x ; then
|
||||
case $host_os in
|
||||
solaris*) MISC_MAN_SUFFIX=5 ;;
|
||||
*) MISC_MAN_SUFFIX=7 ;;
|
||||
case $SYSV_MAN_SECTIONS in
|
||||
true) MISC_MAN_SUFFIX=5 ;;
|
||||
*) MISC_MAN_SUFFIX=7 ;;
|
||||
esac
|
||||
fi
|
||||
if test x$MISC_MAN_DIR = x ; then
|
||||
@ -17847,9 +17880,9 @@ if test x$MISC_MAN_DIR = x ; then
|
||||
fi
|
||||
|
||||
if test x$DRIVER_MAN_SUFFIX = x ; then
|
||||
case $host_os in
|
||||
solaris*) DRIVER_MAN_SUFFIX=7 ;;
|
||||
*) DRIVER_MAN_SUFFIX=4 ;;
|
||||
case $SYSV_MAN_SECTIONS in
|
||||
true) DRIVER_MAN_SUFFIX=7 ;;
|
||||
*) DRIVER_MAN_SUFFIX=4 ;;
|
||||
esac
|
||||
fi
|
||||
if test x$DRIVER_MAN_DIR = x ; then
|
||||
@ -17857,9 +17890,9 @@ if test x$DRIVER_MAN_DIR = x ; then
|
||||
fi
|
||||
|
||||
if test x$ADMIN_MAN_SUFFIX = x ; then
|
||||
case $host_os in
|
||||
solaris*) ADMIN_MAN_SUFFIX=1m ;;
|
||||
*) ADMIN_MAN_SUFFIX=8 ;;
|
||||
case $SYSV_MAN_SECTIONS in
|
||||
true) ADMIN_MAN_SUFFIX=1m ;;
|
||||
*) ADMIN_MAN_SUFFIX=8 ;;
|
||||
esac
|
||||
fi
|
||||
if test x$ADMIN_MAN_DIR = x ; then
|
||||
@ -18107,17 +18140,30 @@ esac
|
||||
fi
|
||||
|
||||
# Test for the ability of xmlto to generate a text target
|
||||
#
|
||||
# NOTE: xmlto 0.0.27 or higher return a non-zero return code in the
|
||||
# following test for empty XML docbook files.
|
||||
# For compatibility reasons use the following empty XML docbook file and if
|
||||
# it fails try it again with a non-empty XML file.
|
||||
have_xmlto_text=no
|
||||
cat > conftest.xml << "EOF"
|
||||
EOF
|
||||
if test "$have_xmlto" = yes; then :
|
||||
if $XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1; then :
|
||||
have_xmlto_text=yes
|
||||
else
|
||||
# Try it again with a non-empty XML file.
|
||||
cat > conftest.xml << "EOF"
|
||||
<x></x>
|
||||
EOF
|
||||
if $XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1; then :
|
||||
have_xmlto_text=yes
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: xmlto cannot generate text format, this format skipped" >&5
|
||||
$as_echo "$as_me: WARNING: xmlto cannot generate text format, this format skipped" >&2;}
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
rm -f conftest.xml
|
||||
if test $have_xmlto_text = yes; then
|
||||
HAVE_XMLTO_TEXT_TRUE=
|
||||
@ -18332,6 +18378,103 @@ _ACEOF
|
||||
fi
|
||||
done
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strlcat" >&5
|
||||
$as_echo_n "checking for library containing strlcat... " >&6; }
|
||||
if ${ac_cv_search_strlcat+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_func_search_save_LIBS=$LIBS
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char strlcat ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return strlcat ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
for ac_lib in '' bsd; do
|
||||
if test -z "$ac_lib"; then
|
||||
ac_res="none required"
|
||||
else
|
||||
ac_res=-l$ac_lib
|
||||
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
|
||||
fi
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_search_strlcat=$ac_res
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext
|
||||
if ${ac_cv_search_strlcat+:} false; then :
|
||||
break
|
||||
fi
|
||||
done
|
||||
if ${ac_cv_search_strlcat+:} false; then :
|
||||
|
||||
else
|
||||
ac_cv_search_strlcat=no
|
||||
fi
|
||||
rm conftest.$ac_ext
|
||||
LIBS=$ac_func_search_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strlcat" >&5
|
||||
$as_echo "$ac_cv_search_strlcat" >&6; }
|
||||
ac_res=$ac_cv_search_strlcat
|
||||
if test "$ac_res" != no; then :
|
||||
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
|
||||
|
||||
fi
|
||||
|
||||
|
||||
ac_fn_c_check_func "$LINENO" "reallocarray" "ac_cv_func_reallocarray"
|
||||
if test "x$ac_cv_func_reallocarray" = xyes; then :
|
||||
$as_echo "#define HAVE_REALLOCARRAY 1" >>confdefs.h
|
||||
|
||||
else
|
||||
case " $LIBOBJS " in
|
||||
*" reallocarray.$ac_objext "* ) ;;
|
||||
*) LIBOBJS="$LIBOBJS reallocarray.$ac_objext"
|
||||
;;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
ac_fn_c_check_func "$LINENO" "strlcat" "ac_cv_func_strlcat"
|
||||
if test "x$ac_cv_func_strlcat" = xyes; then :
|
||||
$as_echo "#define HAVE_STRLCAT 1" >>confdefs.h
|
||||
|
||||
else
|
||||
case " $LIBOBJS " in
|
||||
*" strlcat.$ac_objext "* ) ;;
|
||||
*) LIBOBJS="$LIBOBJS strlcat.$ac_objext"
|
||||
;;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy"
|
||||
if test "x$ac_cv_func_strlcpy" = xyes; then :
|
||||
$as_echo "#define HAVE_STRLCPY 1" >>confdefs.h
|
||||
|
||||
else
|
||||
case " $LIBOBJS " in
|
||||
*" strlcpy.$ac_objext "* ) ;;
|
||||
*) LIBOBJS="$LIBOBJS strlcpy.$ac_objext"
|
||||
;;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# If the first PKG_CHECK_MODULES appears inside a conditional, pkg-config
|
||||
# must first be located explicitly.
|
||||
@ -19362,6 +19505,20 @@ $as_echo "#define LOCALCONN 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
# Other functions Xtrans may need
|
||||
for ac_func in strcasecmp strlcpy
|
||||
do :
|
||||
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
|
||||
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
|
||||
|
||||
case $host_os in
|
||||
@ -19990,7 +20147,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by libXfont2 $as_me 2.0.3, which was
|
||||
This file was extended by libXfont2 $as_me 2.0.4, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -20050,13 +20207,13 @@ $config_headers
|
||||
Configuration commands:
|
||||
$config_commands
|
||||
|
||||
Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>."
|
||||
Report bugs to <https://gitlab.freedesktop.org/xorg/lib/libXfont/issues>."
|
||||
|
||||
_ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
libXfont2 config.status 2.0.3
|
||||
libXfont2 config.status 2.0.4
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
@ -21,8 +21,8 @@
|
||||
|
||||
# Initialize Autoconf
|
||||
AC_PREREQ([2.60])
|
||||
AC_INIT([libXfont2], [2.0.3],
|
||||
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXfont2])
|
||||
AC_INIT([libXfont2], [2.0.4],
|
||||
[https://gitlab.freedesktop.org/xorg/lib/libXfont/issues], [libXfont2])
|
||||
AC_CONFIG_SRCDIR([Makefile.am])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
|
||||
@ -52,6 +52,9 @@ AC_CHECK_HEADERS([endian.h poll.h sys/poll.h])
|
||||
|
||||
# Checks for library functions.
|
||||
AC_CHECK_FUNCS([poll readlink])
|
||||
AC_SEARCH_LIBS([strlcat], [bsd])
|
||||
AC_CONFIG_LIBOBJ_DIR([src/util])
|
||||
AC_REPLACE_FUNCS([reallocarray strlcat strlcpy])
|
||||
|
||||
# If the first PKG_CHECK_MODULES appears inside a conditional, pkg-config
|
||||
# must first be located explicitly.
|
||||
|
@ -42,7 +42,6 @@ typedef struct _FontScalableEntry *FontScalableEntryPtr;
|
||||
typedef struct _FontScaleAliasEntry *FontScaleAliasEntryPtr;
|
||||
typedef struct _FontBitmapEntry *FontBitmapEntryPtr;
|
||||
typedef struct _FontAliasEntry *FontAliasEntryPtr;
|
||||
typedef struct _FontBCEntry *FontBCEntryPtr;
|
||||
typedef struct _FontDirectory *FontDirectoryPtr;
|
||||
typedef struct _FontRenderer *FontRendererPtr;
|
||||
|
||||
@ -55,7 +54,6 @@ typedef struct _FontRenderer *FontRendererPtr;
|
||||
#define NullFontScaleAliasEntry ((FontScaleAliasEntry) 0)
|
||||
#define NullFontBitmapEntry ((FontBitmapEntry) 0)
|
||||
#define NullFontAliasEntry ((FontAliasEntry) 0)
|
||||
#define NullFontBCEntry ((FontBCEntry) 0)
|
||||
#define NullFontDirectory ((FontDirectoryPtr) 0)
|
||||
#define NullFontRenderer ((FontRendererPtr) 0)
|
||||
|
||||
@ -63,7 +61,6 @@ typedef struct _FontRenderer *FontRendererPtr;
|
||||
#define FONT_ENTRY_SCALE_ALIAS 1
|
||||
#define FONT_ENTRY_BITMAP 2
|
||||
#define FONT_ENTRY_ALIAS 3
|
||||
#define FONT_ENTRY_BC 4
|
||||
|
||||
#define MAXFONTNAMELEN 1024
|
||||
#define MAXFONTFILENAMELEN 1024
|
||||
|
@ -85,11 +85,6 @@ typedef struct _FontAliasEntry {
|
||||
char *resolved;
|
||||
} FontAliasEntryRec;
|
||||
|
||||
typedef struct _FontBCEntry {
|
||||
FontScalableRec vals;
|
||||
FontEntryPtr entry;
|
||||
} FontBCEntryRec;
|
||||
|
||||
typedef struct _FontEntry {
|
||||
FontNameRec name;
|
||||
int type;
|
||||
@ -97,7 +92,6 @@ typedef struct _FontEntry {
|
||||
FontScalableEntryRec scalable;
|
||||
FontBitmapEntryRec bitmap;
|
||||
FontAliasEntryRec alias;
|
||||
FontBCEntryRec bc;
|
||||
} u;
|
||||
} FontEntryRec;
|
||||
|
||||
|
@ -90,9 +90,7 @@ FTPickMapping(char *xlfd, int length, char *filename, FT_Face face,
|
||||
currently only work for BDFs. */
|
||||
if(strlen(enc) + strlen(reg) > 18)
|
||||
goto native;
|
||||
strcpy(buf, enc);
|
||||
strcat(buf, "-");
|
||||
strcat(buf, reg);
|
||||
snprintf(buf, sizeof(buf), "%s-%s", enc, reg);
|
||||
ErrorF("%s %s\n", buf, encoding_name);
|
||||
if(strcasecmp(buf, "iso10646-1") != 0) {
|
||||
if(strcasecmp(buf, encoding_name) == 0)
|
||||
|
@ -31,6 +31,7 @@ THE SOFTWARE.
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include <X11/fonts/fontmisc.h>
|
||||
#include "src/util/replace.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
@ -636,7 +637,7 @@ FreeTypeInstanceFindGlyph(unsigned idx_in, int flags, FTInstancePtr instance,
|
||||
}
|
||||
|
||||
if((*glyphs)[segment] == NULL) {
|
||||
(*glyphs)[segment] = malloc(sizeof(CharInfoRec) * FONTSEGMENTSIZE);
|
||||
(*glyphs)[segment] = mallocarray(sizeof(CharInfoRec), FONTSEGMENTSIZE);
|
||||
if((*glyphs)[segment] == NULL)
|
||||
return AllocError;
|
||||
}
|
||||
@ -1604,7 +1605,7 @@ FreeTypeAddProperties(FTFontPtr font, FontScalablePtr vals, FontInfoPtr info,
|
||||
|
||||
info->nprops = 0; /* in case we abort */
|
||||
|
||||
strcpy(val, fontname);
|
||||
strlcpy(val, fontname, sizeof(val));
|
||||
if(FontParseXLFDName(val, vals, FONT_XLFD_REPLACE_VALUE)) {
|
||||
xlfdProps = 1;
|
||||
} else {
|
||||
@ -1622,7 +1623,7 @@ FreeTypeAddProperties(FTFontPtr font, FontScalablePtr vals, FontInfoPtr info,
|
||||
( (font_properties && (post || t1info)) ? 3 : 0 ) +
|
||||
2; /* type */
|
||||
|
||||
info->props = malloc(maxprops * sizeof(FontPropRec));
|
||||
info->props = mallocarray(maxprops, sizeof(FontPropRec));
|
||||
if(info->props == NULL)
|
||||
return AllocError;
|
||||
|
||||
@ -2123,7 +2124,7 @@ restrict_code_range_by_str(int count,unsigned short *refFirstCol,
|
||||
#endif
|
||||
nRanges++;
|
||||
oldRanges = ranges;
|
||||
ranges = realloc(ranges, nRanges*sizeof(*ranges));
|
||||
ranges = reallocarray(ranges, nRanges, sizeof(*ranges));
|
||||
if (NULL == ranges) {
|
||||
free(oldRanges);
|
||||
break;
|
||||
@ -2199,15 +2200,16 @@ FreeTypeSetUpTTCap( char *fileName, FontScalablePtr vals,
|
||||
/* colon exist in the right side of slash. */
|
||||
int dirLen = p1-fileName;
|
||||
int baseLen = fileName+len - p2 -1;
|
||||
int fullLen = dirLen+baseLen+1;
|
||||
|
||||
*dynStrRealFileName = malloc(dirLen+baseLen+1);
|
||||
*dynStrRealFileName = malloc(fullLen);
|
||||
if( *dynStrRealFileName == NULL ) {
|
||||
result = AllocError;
|
||||
goto quit;
|
||||
}
|
||||
if ( 0 < dirLen )
|
||||
memcpy(*dynStrRealFileName, fileName, dirLen);
|
||||
strcpy(*dynStrRealFileName+dirLen, p2+1);
|
||||
strlcpy(*dynStrRealFileName+dirLen, p2+1, fullLen - dirLen);
|
||||
capHead = p1;
|
||||
} else {
|
||||
*dynStrRealFileName = strdup(fileName);
|
||||
@ -2269,8 +2271,9 @@ FreeTypeSetUpTTCap( char *fileName, FontScalablePtr vals,
|
||||
}
|
||||
if( beginptr && 0 < *face_number ) {
|
||||
char *slash;
|
||||
*dynStrFTFileName = /* add -> ':'+strlen0+':'+strlen1+'\0' */
|
||||
malloc(1+strlen(beginptr)+1+strlen(*dynStrRealFileName)+1);
|
||||
size_t dsftlen = /* add -> ':'+strlen0+':'+strlen1+'\0' */
|
||||
1 + strlen(beginptr) + 1 + strlen(*dynStrRealFileName) + 1;
|
||||
*dynStrFTFileName = malloc(dsftlen);
|
||||
if( *dynStrFTFileName == NULL ){
|
||||
result = AllocError;
|
||||
goto quit;
|
||||
@ -2279,19 +2282,19 @@ FreeTypeSetUpTTCap( char *fileName, FontScalablePtr vals,
|
||||
slash = strrchr(*dynStrRealFileName,'/');
|
||||
if( slash ) {
|
||||
char *p;
|
||||
strcat(*dynStrFTFileName,*dynStrRealFileName);
|
||||
strlcat(*dynStrFTFileName, *dynStrRealFileName, dsftlen);
|
||||
p = strrchr(*dynStrFTFileName,'/');
|
||||
p[1] = '\0';
|
||||
strcat(*dynStrFTFileName,":");
|
||||
strcat(*dynStrFTFileName,beginptr);
|
||||
strcat(*dynStrFTFileName,":");
|
||||
strcat(*dynStrFTFileName,slash+1);
|
||||
strlcat(*dynStrFTFileName, ":", dsftlen);
|
||||
strlcat(*dynStrFTFileName, beginptr, dsftlen);
|
||||
strlcat(*dynStrFTFileName, ":", dsftlen);
|
||||
strlcat(*dynStrFTFileName, slash+1, dsftlen);
|
||||
}
|
||||
else{
|
||||
strcat(*dynStrFTFileName,":");
|
||||
strcat(*dynStrFTFileName,beginptr);
|
||||
strcat(*dynStrFTFileName,":");
|
||||
strcat(*dynStrFTFileName,*dynStrRealFileName);
|
||||
strlcat(*dynStrFTFileName, ":", dsftlen);
|
||||
strlcat(*dynStrFTFileName, beginptr, dsftlen);
|
||||
strlcat(*dynStrFTFileName, ":", dsftlen);
|
||||
strlcat(*dynStrFTFileName, *dynStrRealFileName, dsftlen);
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -2813,7 +2816,7 @@ FreeTypeLoadFont(FTFontPtr font, FontInfoPtr info, FTFacePtr face,
|
||||
font->nranges = vals->nranges;
|
||||
font->ranges = 0;
|
||||
if(font->nranges) {
|
||||
font->ranges = malloc(vals->nranges*sizeof(fsRange));
|
||||
font->ranges = mallocarray(vals->nranges, sizeof(fsRange));
|
||||
if(font->ranges == NULL)
|
||||
return AllocError;
|
||||
memcpy((char*)font->ranges, (char*)vals->ranges,
|
||||
|
@ -53,6 +53,7 @@ from The Open Group.
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include "src/util/replace.h"
|
||||
|
||||
#include <ctype.h>
|
||||
#include <X11/fonts/fntfilst.h>
|
||||
@ -107,7 +108,7 @@ bdfReadBitmap(CharInfoPtr pCI, FontFilePtr file, int bit, int byte,
|
||||
|
||||
widthBytes = BYTES_PER_ROW(widthBits, glyph);
|
||||
if (widthBytes * height > 0) {
|
||||
picture = malloc(widthBytes * height);
|
||||
picture = mallocarray(widthBytes, height);
|
||||
if (!picture) {
|
||||
bdfError("Couldn't allocate picture (%d*%d)\n", widthBytes, height);
|
||||
goto BAILOUT;
|
||||
@ -313,7 +314,7 @@ bdfReadCharacters(FontFilePtr file, FontPtr pFont, bdfFileState *pState,
|
||||
bitmapFont->metrics = ci;
|
||||
|
||||
if (bitmapExtra) {
|
||||
bitmapExtra->glyphNames = malloc(nchars * sizeof(Atom));
|
||||
bitmapExtra->glyphNames = mallocarray(nchars, sizeof(Atom));
|
||||
if (!bitmapExtra->glyphNames) {
|
||||
bdfError("Couldn't allocate glyphNames (%d*%d)\n",
|
||||
nchars, (int) sizeof(Atom));
|
||||
@ -321,7 +322,7 @@ bdfReadCharacters(FontFilePtr file, FontPtr pFont, bdfFileState *pState,
|
||||
}
|
||||
}
|
||||
if (bitmapExtra) {
|
||||
bitmapExtra->sWidths = malloc(nchars * sizeof(int));
|
||||
bitmapExtra->sWidths = mallocarray(nchars, sizeof(int));
|
||||
if (!bitmapExtra->sWidths) {
|
||||
bdfError("Couldn't allocate sWidth (%d *%d)\n",
|
||||
nchars, (int) sizeof(int));
|
||||
@ -640,7 +641,7 @@ bdfReadProperties(FontFilePtr file, FontPtr pFont, bdfFileState *pState)
|
||||
pFont->info.props = NULL;
|
||||
pFont->info.nprops = 0;
|
||||
|
||||
stringProps = malloc((nProps + BDF_GENPROPS) * sizeof(char));
|
||||
stringProps = mallocarray((nProps + BDF_GENPROPS), sizeof(char));
|
||||
pFont->info.isStringProp = stringProps;
|
||||
if (stringProps == NULL) {
|
||||
bdfError("Couldn't allocate stringProps (%d*%d)\n",
|
||||
|
@ -30,6 +30,7 @@ from The Open Group.
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include "src/util/replace.h"
|
||||
|
||||
#include <X11/fonts/fntfilst.h>
|
||||
#include <X11/fonts/bitmap.h>
|
||||
@ -210,7 +211,7 @@ bitmapAddInkMetrics(FontPtr pFont)
|
||||
int i;
|
||||
|
||||
bitmapFont = (BitmapFontPtr) pFont->fontPrivate;
|
||||
bitmapFont->ink_metrics = malloc(bitmapFont->num_chars * sizeof(xCharInfo));
|
||||
bitmapFont->ink_metrics = mallocarray(bitmapFont->num_chars, sizeof(xCharInfo));
|
||||
if (!bitmapFont->ink_metrics) {
|
||||
fprintf(stderr, "Error: Couldn't allocate ink_metrics (%d*%ld)\n",
|
||||
bitmapFont->num_chars, (unsigned long)sizeof(xCharInfo));
|
||||
|
@ -34,6 +34,7 @@ from The Open Group.
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include "src/util/replace.h"
|
||||
|
||||
#include <X11/fonts/fntfilst.h>
|
||||
#include <X11/fonts/bitmap.h>
|
||||
@ -585,7 +586,7 @@ ComputeScaledProperties(FontInfoPtr sourceFontInfo, /* the font to be scaled */
|
||||
}
|
||||
nProps = NPROPS + 1 + sizeof(fontPropTable) / sizeof(fontProp) +
|
||||
sizeof(rawFontPropTable) / sizeof(fontProp);
|
||||
fp = malloc(sizeof(FontPropRec) * nProps);
|
||||
fp = mallocarray(sizeof(FontPropRec), nProps);
|
||||
*pProps = fp;
|
||||
if (!fp) {
|
||||
fprintf(stderr, "Error: Couldn't allocate font properties (%ld*%d)\n",
|
||||
@ -596,7 +597,7 @@ ComputeScaledProperties(FontInfoPtr sourceFontInfo, /* the font to be scaled */
|
||||
*pIsStringProp = isStringProp;
|
||||
if (!isStringProp)
|
||||
{
|
||||
fprintf(stderr, "Error: Couldn't allocate isStringProp (%d)\n", nProps);
|
||||
fprintf(stderr, "Error: Couldn't allocate isStringProp (%d)\n", nProps);
|
||||
free (fp);
|
||||
return 1;
|
||||
}
|
||||
@ -615,8 +616,10 @@ ComputeScaledProperties(FontInfoPtr sourceFontInfo, /* the font to be scaled */
|
||||
*isStringProp = 0;
|
||||
switch (fpt->type) {
|
||||
case atom:
|
||||
fp->value = MakeAtom(ptr1, ptr2 - ptr1, TRUE);
|
||||
*isStringProp = 1;
|
||||
if ((ptr1 != NULL) && (ptr2 != NULL)) {
|
||||
fp->value = MakeAtom(ptr1, ptr2 - ptr1, TRUE);
|
||||
*isStringProp = 1;
|
||||
}
|
||||
break;
|
||||
case truncate_atom:
|
||||
for (ptr3 = ptr1; *ptr3; ptr3++)
|
||||
@ -859,7 +862,7 @@ ScaleFont(FontPtr opf, /* originating font */
|
||||
bitmapFont->encoding = 0;
|
||||
bitmapFont->bitmapExtra = 0;
|
||||
bitmapFont->pDefault = 0;
|
||||
bitmapFont->metrics = malloc(nchars * sizeof(CharInfoRec));
|
||||
bitmapFont->metrics = mallocarray(nchars, sizeof(CharInfoRec));
|
||||
if (!bitmapFont->metrics) {
|
||||
fprintf(stderr, "Error: Couldn't allocate metrics (%d*%ld)\n",
|
||||
nchars, (unsigned long)sizeof(CharInfoRec));
|
||||
@ -1174,7 +1177,7 @@ ScaleBitmap(FontPtr pFont, CharInfoPtr opci, CharInfoPtr pci,
|
||||
/* Looks like we need to anti-alias. Create a workspace to
|
||||
contain the grayscale character plus an additional row and
|
||||
column for scratch */
|
||||
char_grayscale = malloc((width + 1) * (height + 1));
|
||||
char_grayscale = mallocarray((width + 1), (height + 1));
|
||||
if (char_grayscale)
|
||||
{
|
||||
diffusion_workspace = calloc((newWidth + 2) * 2, sizeof(int));
|
||||
@ -1596,7 +1599,7 @@ BitmapOpenScalable (FontPathElementPtr fpe,
|
||||
|
||||
/* Prepare font properties for the new font */
|
||||
|
||||
strcpy (fontName, scaleFrom->name.name);
|
||||
strlcpy (fontName, scaleFrom->name.name, sizeof(fontName));
|
||||
FontParseXLFDName (fontName, vals, FONT_XLFD_REPLACE_VALUE);
|
||||
|
||||
propCount = ComputeScaledProperties(&sourceFont->info, fontName, vals,
|
||||
|
@ -34,6 +34,7 @@ from The Open Group.
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include "src/util/replace.h"
|
||||
|
||||
#include <X11/fonts/fntfilst.h>
|
||||
#include <X11/fonts/bitmap.h>
|
||||
@ -138,7 +139,7 @@ pcfReadTOC(FontFilePtr file, int *countp)
|
||||
pcfError("pcfReadTOC(): invalid file format\n");
|
||||
return NULL;
|
||||
}
|
||||
tables = malloc(count * sizeof(PCFTableRec));
|
||||
tables = mallocarray(count, sizeof(PCFTableRec));
|
||||
if (!tables) {
|
||||
pcfError("pcfReadTOC(): Couldn't allocate tables (%d*%d)\n",
|
||||
count, (int) sizeof(PCFTableRec));
|
||||
@ -263,13 +264,13 @@ pcfGetProperties(FontInfoPtr pFontInfo, FontFilePtr file,
|
||||
goto Bail;
|
||||
}
|
||||
if (IS_EOF(file)) goto Bail;
|
||||
props = malloc(nprops * sizeof(FontPropRec));
|
||||
props = mallocarray(nprops, sizeof(FontPropRec));
|
||||
if (!props) {
|
||||
pcfError("pcfGetProperties(): Couldn't allocate props (%d*%d)\n",
|
||||
nprops, (int) sizeof(FontPropRec));
|
||||
goto Bail;
|
||||
}
|
||||
isStringProp = malloc(nprops * sizeof(char));
|
||||
isStringProp = mallocarray(nprops, sizeof(char));
|
||||
if (!isStringProp) {
|
||||
pcfError("pcfGetProperties(): Couldn't allocate isStringProp (%d*%d)\n",
|
||||
nprops, (int) sizeof(char));
|
||||
@ -456,7 +457,7 @@ pcfReadFont(FontPtr pFont, FontFilePtr file,
|
||||
pcfError("pcfReadFont(): invalid file format\n");
|
||||
goto Bail;
|
||||
}
|
||||
metrics = malloc(nmetrics * sizeof(CharInfoRec));
|
||||
metrics = mallocarray(nmetrics, sizeof(CharInfoRec));
|
||||
if (!metrics) {
|
||||
pcfError("pcfReadFont(): Couldn't allocate metrics (%d*%d)\n",
|
||||
nmetrics, (int) sizeof(CharInfoRec));
|
||||
@ -483,7 +484,7 @@ pcfReadFont(FontPtr pFont, FontFilePtr file,
|
||||
if (nbitmaps != nmetrics || IS_EOF(file))
|
||||
goto Bail;
|
||||
/* nmetrics is already ok, so nbitmap also is */
|
||||
offsets = malloc(nbitmaps * sizeof(CARD32));
|
||||
offsets = mallocarray(nbitmaps, sizeof(CARD32));
|
||||
if (!offsets) {
|
||||
pcfError("pcfReadFont(): Couldn't allocate offsets (%d*%d)\n",
|
||||
nbitmaps, (int) sizeof(CARD32));
|
||||
@ -573,7 +574,7 @@ pcfReadFont(FontPtr pFont, FontFilePtr file,
|
||||
if (nink_metrics != nmetrics)
|
||||
goto Bail;
|
||||
/* nmetrics already checked */
|
||||
ink_metrics = malloc(nink_metrics * sizeof(xCharInfo));
|
||||
ink_metrics = mallocarray(nink_metrics, sizeof(xCharInfo));
|
||||
if (!ink_metrics) {
|
||||
pcfError("pcfReadFont(): Couldn't allocate ink_metrics (%d*%d)\n",
|
||||
nink_metrics, (int) sizeof(xCharInfo));
|
||||
|
@ -34,6 +34,7 @@ from The Open Group.
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include "src/util/replace.h"
|
||||
|
||||
#include <X11/fonts/fntfilst.h>
|
||||
#include <X11/fonts/bitmap.h>
|
||||
@ -235,7 +236,7 @@ pcfWriteFont(FontPtr pFont, FontFilePtr file)
|
||||
ink_minbounds = &pFont->info.ink_minbounds;
|
||||
ink_maxbounds = &pFont->info.ink_maxbounds;
|
||||
}
|
||||
offsetProps = malloc(pFont->info.nprops * sizeof(FontPropRec));
|
||||
offsetProps = mallocarray(pFont->info.nprops, sizeof(FontPropRec));
|
||||
if (!offsetProps) {
|
||||
pcfError("pcfWriteFont(): Couldn't allocate offsetProps (%d*%d)",
|
||||
pFont->info.nprops, (int) sizeof(FontPropRec));
|
||||
|
@ -53,6 +53,7 @@ from The Open Group.
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include "src/util/replace.h"
|
||||
|
||||
#include <ctype.h>
|
||||
#include <X11/fonts/fntfilst.h>
|
||||
@ -453,13 +454,13 @@ snfReadFontInfo(FontInfoPtr pFontInfo, FontFilePtr file)
|
||||
return ret;
|
||||
snfCopyInfo(&fi, pFontInfo);
|
||||
|
||||
pFontInfo->props = malloc(fi.nProps * sizeof(FontPropRec));
|
||||
pFontInfo->props = mallocarray(fi.nProps, sizeof(FontPropRec));
|
||||
if (!pFontInfo->props) {
|
||||
snfError("snfReadFontInfo(): Couldn't allocate props (%d*%d)\n",
|
||||
fi.nProps, (int) sizeof(FontPropRec));
|
||||
return AllocError;
|
||||
}
|
||||
pFontInfo->isStringProp = malloc(fi.nProps * sizeof(char));
|
||||
pFontInfo->isStringProp = mallocarray(fi.nProps, sizeof(char));
|
||||
if (!pFontInfo->isStringProp) {
|
||||
snfError("snfReadFontInfo(): Couldn't allocate isStringProp (%d*%d)\n",
|
||||
fi.nProps, (int) sizeof(char));
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include "src/util/replace.h"
|
||||
#include <X11/X.h>
|
||||
#include <X11/Xtrans/Xtrans.h>
|
||||
#include <X11/Xpoll.h>
|
||||
@ -107,7 +108,7 @@ _fs_convert_props(fsPropInfo *pi, fsPropOffset *po, pointer pd,
|
||||
|| nprops > SIZE_MAX/(sizeof(FontPropRec) + sizeof(char)))
|
||||
return -1;
|
||||
|
||||
dprop = malloc(sizeof(FontPropRec) * nprops + sizeof (char) * nprops);
|
||||
dprop = mallocarray(nprops, sizeof(FontPropRec) + sizeof (char));
|
||||
if (!dprop)
|
||||
return -1;
|
||||
|
||||
|
@ -54,6 +54,7 @@ in this Software without prior written authorization from The Open Group.
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include "src/util/replace.h"
|
||||
|
||||
#ifdef WIN32
|
||||
#define _WILLWINSOCK_
|
||||
@ -223,8 +224,8 @@ _fs_add_rep_log (FSFpePtr conn, fsGenericReply *rep)
|
||||
fprintf (stderr, "Error: %d Request: %s\n", \
|
||||
((fsError *)rep)->request, #name); \
|
||||
else \
|
||||
fprintf (stderr, "Bad Length for %s Reply: %d %s %d\n", \
|
||||
#name, rep->length, op, LENGTHOF(name)); \
|
||||
fprintf (stderr, "Bad Length for %s Reply: %u %s %d\n", \
|
||||
#name, (unsigned) rep->length, op, LENGTHOF(name));\
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
@ -933,8 +934,8 @@ fs_read_query_info(FontPathElementPtr fpe, FSBlockDataPtr blockrec)
|
||||
ret = -1;
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr,
|
||||
"fsQueryXInfo: bufleft (%ld) / SIZEOF(fsPropOffset) < %d\n",
|
||||
bufleft, pi->num_offsets);
|
||||
"fsQueryXInfo: bufleft (%ld) / SIZEOF(fsPropOffset) < %u\n",
|
||||
bufleft, (unsigned) pi->num_offsets);
|
||||
#endif
|
||||
goto bail;
|
||||
}
|
||||
@ -947,8 +948,8 @@ fs_read_query_info(FontPathElementPtr fpe, FSBlockDataPtr blockrec)
|
||||
ret = -1;
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr,
|
||||
"fsQueryXInfo: bufleft (%ld) < data_len (%d)\n",
|
||||
bufleft, pi->data_len);
|
||||
"fsQueryXInfo: bufleft (%ld) < data_len (%u)\n",
|
||||
bufleft, (unsigned) pi->data_len);
|
||||
#endif
|
||||
goto bail;
|
||||
}
|
||||
@ -1081,14 +1082,14 @@ fs_read_extent_info(FontPathElementPtr fpe, FSBlockDataPtr blockrec)
|
||||
/ LENGTHOF(fsXCharInfo))) {
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr,
|
||||
"fsQueryXExtents16: numExtents (%d) > (%d - %d) / %d\n",
|
||||
numExtents, rep->length,
|
||||
"fsQueryXExtents16: numExtents (%d) > (%u - %d) / %d\n",
|
||||
numExtents, (unsigned) rep->length,
|
||||
LENGTHOF(fsQueryXExtents16Reply), LENGTHOF(fsXCharInfo));
|
||||
#endif
|
||||
pCI = NULL;
|
||||
}
|
||||
else
|
||||
pCI = malloc(sizeof(CharInfoRec) * numInfos);
|
||||
pCI = mallocarray(numInfos, sizeof(CharInfoRec));
|
||||
|
||||
if (!pCI)
|
||||
{
|
||||
@ -1957,8 +1958,8 @@ fs_read_glyphs(FontPathElementPtr fpe, FSBlockDataPtr blockrec)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr,
|
||||
"fsQueryXBitmaps16: num_chars (%d) > bufleft (%ld) / %d\n",
|
||||
rep->num_chars, bufleft, SIZEOF (fsOffset32));
|
||||
"fsQueryXBitmaps16: num_chars (%u) > bufleft (%ld) / %d\n",
|
||||
(unsigned) rep->num_chars, bufleft, SIZEOF (fsOffset32));
|
||||
#endif
|
||||
err = AllocError;
|
||||
goto bail;
|
||||
@ -1971,8 +1972,8 @@ fs_read_glyphs(FontPathElementPtr fpe, FSBlockDataPtr blockrec)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr,
|
||||
"fsQueryXBitmaps16: nbytes (%d) > bufleft (%ld)\n",
|
||||
rep->nbytes, bufleft);
|
||||
"fsQueryXBitmaps16: nbytes (%u) > bufleft (%ld)\n",
|
||||
(unsigned) rep->nbytes, bufleft);
|
||||
#endif
|
||||
err = AllocError;
|
||||
goto bail;
|
||||
@ -2078,7 +2079,8 @@ fs_read_glyphs(FontPathElementPtr fpe, FSBlockDataPtr blockrec)
|
||||
err = Successful;
|
||||
|
||||
bail:
|
||||
_fs_done_read (conn, rep->length << 2);
|
||||
if (rep)
|
||||
_fs_done_read (conn, rep->length << 2);
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -2573,8 +2575,8 @@ fs_read_list_info(FontPathElementPtr fpe, FSBlockDataPtr blockrec)
|
||||
if (pi->num_offsets > (bufleft / SIZEOF (fsPropOffset))) {
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr,
|
||||
"fsListFontsWithXInfo: offset length (%d * %d) > bufleft (%ld)\n",
|
||||
pi->num_offsets, (int) SIZEOF (fsPropOffset), bufleft);
|
||||
"fsListFontsWithXInfo: offset length (%u * %d) > bufleft (%ld)\n",
|
||||
(unsigned) pi->num_offsets, (int) SIZEOF (fsPropOffset), bufleft);
|
||||
#endif
|
||||
err = AllocError;
|
||||
goto done;
|
||||
@ -2585,8 +2587,8 @@ fs_read_list_info(FontPathElementPtr fpe, FSBlockDataPtr blockrec)
|
||||
if (pi->data_len > bufleft) {
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr,
|
||||
"fsListFontsWithXInfo: data length (%d) > bufleft (%ld)\n",
|
||||
pi->data_len, bufleft);
|
||||
"fsListFontsWithXInfo: data length (%u) > bufleft (%ld)\n",
|
||||
(unsigned) pi->data_len, bufleft);
|
||||
#endif
|
||||
err = AllocError;
|
||||
goto done;
|
||||
@ -3369,8 +3371,9 @@ static FSFpePtr
|
||||
_fs_init_conn (const char *servername, FontPathElementPtr fpe)
|
||||
{
|
||||
FSFpePtr conn;
|
||||
size_t snlen = strlen (servername) + 1;
|
||||
|
||||
conn = calloc (1, sizeof (FSFpeRec) + strlen (servername) + 1);
|
||||
conn = calloc (1, sizeof (FSFpeRec) + snlen);
|
||||
if (!conn)
|
||||
return 0;
|
||||
if (!_fs_io_init (conn))
|
||||
@ -3382,7 +3385,7 @@ _fs_init_conn (const char *servername, FontPathElementPtr fpe)
|
||||
conn->fs_conn_state = FS_CONN_UNCONNECTED;
|
||||
conn->fs_fd = -1;
|
||||
conn->fpe = fpe;
|
||||
strcpy (conn->servername, servername);
|
||||
strlcpy (conn->servername, servername, snlen);
|
||||
return conn;
|
||||
}
|
||||
|
||||
|
@ -32,6 +32,7 @@ in this Software without prior written authorization from The Open Group.
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include "src/util/replace.h"
|
||||
#include <X11/fonts/fntfilst.h>
|
||||
|
||||
BitmapSourcesRec FontFileBitmapSources;
|
||||
@ -49,7 +50,7 @@ FontFileRegisterBitmapSource (FontPathElementPtr fpe)
|
||||
if (FontFileBitmapSources.count == FontFileBitmapSources.size)
|
||||
{
|
||||
newsize = FontFileBitmapSources.size + 4;
|
||||
new = realloc (FontFileBitmapSources.fpe, newsize * sizeof *new);
|
||||
new = reallocarray (FontFileBitmapSources.fpe, newsize, sizeof *new);
|
||||
if (!new)
|
||||
return FALSE;
|
||||
FontFileBitmapSources.size = newsize;
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include <sys/stat.h>
|
||||
#include <dirent.h>
|
||||
#include <unistd.h>
|
||||
#include "src/util/replace.h"
|
||||
|
||||
static const char CataloguePrefix[] = "catalogue:";
|
||||
|
||||
@ -64,7 +65,8 @@ CatalogueAddFPE (CataloguePtr cat, FontPathElementPtr fpe)
|
||||
else
|
||||
cat->fpeAlloc *= 2;
|
||||
|
||||
new = realloc(cat->fpeList, cat->fpeAlloc * sizeof(FontPathElementPtr));
|
||||
new = reallocarray(cat->fpeList, cat->fpeAlloc,
|
||||
sizeof(FontPathElementPtr));
|
||||
if (new == NULL)
|
||||
return AllocError;
|
||||
|
||||
@ -149,14 +151,12 @@ CatalogueRescan (FontPathElementPtr fpe, Bool forceScan)
|
||||
if ((forceScan == FALSE) && (statbuf.st_mtime <= cat->mtime))
|
||||
return Successful;
|
||||
|
||||
CatalogueUnrefFPEs (fpe);
|
||||
|
||||
dir = opendir(path);
|
||||
if (dir == NULL)
|
||||
{
|
||||
free(cat);
|
||||
return BadFontPath;
|
||||
}
|
||||
|
||||
CatalogueUnrefFPEs (fpe);
|
||||
while (entry = readdir(dir), entry != NULL)
|
||||
{
|
||||
char *name;
|
||||
|
@ -45,6 +45,7 @@ in this Software without prior written authorization from The Open Group.
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include "src/util/replace.h"
|
||||
|
||||
static Bool AddFileNameAliases ( FontDirectoryPtr dir );
|
||||
static int ReadFontAlias ( char *directory, Bool isFile,
|
||||
@ -88,12 +89,12 @@ FontFileReadDirectory (const char *directory, FontDirectoryPtr *pdir)
|
||||
strncpy(dir_path, directory, ptr - directory);
|
||||
dir_path[ptr - directory] = '\0';
|
||||
} else {
|
||||
strcpy(dir_path, directory);
|
||||
strlcpy(dir_path, directory, sizeof(dir_path));
|
||||
}
|
||||
strcpy(dir_file, dir_path);
|
||||
strlcpy(dir_file, dir_path, sizeof(dir_file));
|
||||
if (dir_file[strlen(dir_file) - 1] != '/')
|
||||
strcat(dir_file, "/");
|
||||
strcat(dir_file, FontDirFile);
|
||||
strlcat(dir_file, "/", sizeof(dir_file));
|
||||
strlcat(dir_file, FontDirFile, sizeof(dir_file));
|
||||
#ifndef WIN32
|
||||
file_fd = open(dir_file, O_RDONLY | O_NOFOLLOW);
|
||||
if (file_fd >= 0) {
|
||||
@ -124,8 +125,8 @@ FontFileReadDirectory (const char *directory, FontDirectoryPtr *pdir)
|
||||
}
|
||||
dir->dir_mtime = statb.st_mtime;
|
||||
if (format[0] == '\0')
|
||||
sprintf(format, "%%%ds %%%d[^\n]\n",
|
||||
MAXFONTFILENAMELEN-1, MAXFONTNAMELEN-1);
|
||||
snprintf(format, sizeof(format), "%%%ds %%%d[^\n]\n",
|
||||
MAXFONTFILENAMELEN-1, MAXFONTNAMELEN-1);
|
||||
|
||||
while ((count = fscanf(file, format, file_name, font_name)) != EOF) {
|
||||
#if defined(WIN32)
|
||||
@ -176,8 +177,8 @@ FontFileDirectoryChanged(FontDirectoryPtr dir)
|
||||
if (strlen(dir->directory) + sizeof(FontDirFile) > sizeof(dir_file))
|
||||
return FALSE;
|
||||
|
||||
strcpy (dir_file, dir->directory);
|
||||
strcat (dir_file, FontDirFile);
|
||||
strlcpy (dir_file, dir->directory, sizeof(dir_file));
|
||||
strlcat (dir_file, FontDirFile, sizeof(dir_file));
|
||||
if (stat (dir_file, &statb) == -1)
|
||||
{
|
||||
if (errno != ENOENT || dir->dir_mtime != 0)
|
||||
@ -189,8 +190,8 @@ FontFileDirectoryChanged(FontDirectoryPtr dir)
|
||||
|
||||
if ((strlen(dir->directory) + sizeof(FontAliasFile)) > sizeof(dir_file))
|
||||
return FALSE;
|
||||
strcpy (dir_file, dir->directory);
|
||||
strcat (dir_file, FontAliasFile);
|
||||
strlcpy (dir_file, dir->directory, sizeof(dir_file));
|
||||
strlcat (dir_file, FontAliasFile, sizeof(dir_file));
|
||||
if (stat (dir_file, &statb) == -1)
|
||||
{
|
||||
if (errno != ENOENT || dir->alias_mtime != 0)
|
||||
@ -282,13 +283,13 @@ ReadFontAlias(char *directory, Bool isFile, FontDirectoryPtr *pdir)
|
||||
if (strlen(directory) >= sizeof(alias_file))
|
||||
return BadFontPath;
|
||||
dir = *pdir;
|
||||
strcpy(alias_file, directory);
|
||||
strlcpy(alias_file, directory, sizeof(alias_file));
|
||||
if (!isFile) {
|
||||
if (strlen(directory) + 1 + sizeof(FontAliasFile) > sizeof(alias_file))
|
||||
return BadFontPath;
|
||||
if (directory[strlen(directory) - 1] != '/')
|
||||
strcat(alias_file, "/");
|
||||
strcat(alias_file, FontAliasFile);
|
||||
strlcat(alias_file, "/", sizeof(alias_file));
|
||||
strlcat(alias_file, FontAliasFile, sizeof(alias_file));
|
||||
}
|
||||
|
||||
#ifndef WIN32
|
||||
@ -335,7 +336,7 @@ ReadFontAlias(char *directory, Bool isFile, FontDirectoryPtr *pdir)
|
||||
status = BadFontPath;
|
||||
break;
|
||||
}
|
||||
strcpy(alias, lexToken);
|
||||
strlcpy(alias, lexToken, sizeof(alias));
|
||||
token = lexAlias(file, &lexToken);
|
||||
switch (token) {
|
||||
case NEWLINE:
|
||||
|
@ -34,6 +34,7 @@ in this Software without prior written authorization from The Open Group.
|
||||
#include "libxfontint.h"
|
||||
#include <X11/fonts/fntfilst.h>
|
||||
#include <X11/keysym.h>
|
||||
#include "src/util/replace.h"
|
||||
|
||||
#if HAVE_STDINT_H
|
||||
#include <stdint.h>
|
||||
@ -48,7 +49,7 @@ FontFileInitTable (FontTablePtr table, int size)
|
||||
return FALSE;
|
||||
if (size)
|
||||
{
|
||||
table->entries = malloc(sizeof(FontEntryRec) * size);
|
||||
table->entries = mallocarray(size, sizeof(FontEntryRec));
|
||||
if (!table->entries)
|
||||
return FALSE;
|
||||
}
|
||||
@ -152,11 +153,11 @@ FontFileMakeDir(const char *dirName, int size)
|
||||
else
|
||||
dir->attributes = NULL;
|
||||
strncpy(dir->directory, dirName, dirlen);
|
||||
dir->directory[dirlen] = '\0';
|
||||
if (dir->attributes)
|
||||
strcpy(dir->attributes, attrib);
|
||||
if (needslash)
|
||||
strcat(dir->directory, "/");
|
||||
dir->directory[dirlen] = '/';
|
||||
dir->directory[dirlen + needslash] = '\0';
|
||||
if (dir->attributes)
|
||||
strlcpy(dir->attributes, attrib, attriblen + 1);
|
||||
return dir;
|
||||
}
|
||||
|
||||
@ -184,7 +185,7 @@ FontFileAddEntry(FontTablePtr table, FontEntryPtr prototype)
|
||||
directory that we should just give up before we overflow. */
|
||||
return NULL;
|
||||
newsize = table->size + 100;
|
||||
entry = realloc(table->entries, newsize * sizeof(FontEntryRec));
|
||||
entry = reallocarray(table->entries, newsize, sizeof(FontEntryRec));
|
||||
if (!entry)
|
||||
return (FontEntryPtr)0;
|
||||
table->size = newsize;
|
||||
|
@ -37,6 +37,7 @@ in this Software without prior written authorization from The Open Group.
|
||||
#ifdef WIN32
|
||||
#include <ctype.h>
|
||||
#endif
|
||||
#include "src/util/replace.h"
|
||||
|
||||
static unsigned char
|
||||
ISOLatin1ToLower(unsigned char source)
|
||||
@ -354,7 +355,7 @@ FontFileOpenFont (pointer client, FontPathElementPtr fpe, Mask flags,
|
||||
entry = FontFileFindNameInScalableDir (&dir->scalable, &tmpName, &vals);
|
||||
if (entry)
|
||||
{
|
||||
strcpy(lowerName, entry->name.name);
|
||||
strlcpy(lowerName, entry->name.name, sizeof(lowerName));
|
||||
tmpName.name = lowerName;
|
||||
tmpName.length = entry->name.length;
|
||||
tmpName.ndashes = entry->name.ndashes;
|
||||
@ -442,8 +443,8 @@ FontFileOpenFont (pointer client, FontPathElementPtr fpe, Mask flags,
|
||||
sizeof(fileName)) {
|
||||
ret = BadFontName;
|
||||
} else {
|
||||
strcpy (fileName, dir->directory);
|
||||
strcat (fileName, scalable->fileName);
|
||||
strlcpy (fileName, dir->directory, sizeof(fileName));
|
||||
strlcat (fileName, scalable->fileName, sizeof(fileName));
|
||||
if (scalable->renderer->OpenScalable) {
|
||||
ret = (*scalable->renderer->OpenScalable) (fpe, pFont,
|
||||
flags, entry, fileName, &vals, format, fmask,
|
||||
@ -527,8 +528,8 @@ FontFileOpenBitmapNCF (FontPathElementPtr fpe, FontPtr *pFont,
|
||||
return BadFontName;
|
||||
if (strlen(dir->directory) + strlen(bitmap->fileName) >= sizeof(fileName))
|
||||
return BadFontName;
|
||||
strcpy (fileName, dir->directory);
|
||||
strcat (fileName, bitmap->fileName);
|
||||
strlcpy (fileName, dir->directory, sizeof(fileName));
|
||||
strlcat (fileName, bitmap->fileName, sizeof(fileName));
|
||||
ret = (*bitmap->renderer->OpenBitmap)
|
||||
(fpe, pFont, flags, entry, fileName, format, fmask,
|
||||
non_cachable_font);
|
||||
@ -564,8 +565,8 @@ FontFileGetInfoBitmap (FontPathElementPtr fpe, FontInfoPtr pFontInfo,
|
||||
return BadFontName;
|
||||
if (strlen(dir->directory) + strlen(bitmap->fileName) >= sizeof(fileName))
|
||||
return BadFontName;
|
||||
strcpy (fileName, dir->directory);
|
||||
strcat (fileName, bitmap->fileName);
|
||||
strlcpy (fileName, dir->directory, sizeof(fileName));
|
||||
strlcat (fileName, bitmap->fileName, sizeof(fileName));
|
||||
ret = (*bitmap->renderer->GetInfoBitmap) (fpe, pFontInfo, entry, fileName);
|
||||
return ret;
|
||||
}
|
||||
@ -590,7 +591,7 @@ _FontFileAddScalableNames(FontNamesPtr names, FontNamesPtr scaleNames,
|
||||
{
|
||||
--*max;
|
||||
|
||||
strcpy (nameChars, scaleNames->names[i]);
|
||||
strlcpy (nameChars, scaleNames->names[i], sizeof(nameChars));
|
||||
if ((vals->values_supplied & PIXELSIZE_MASK) ||
|
||||
!(vals->values_supplied & PIXELSIZE_WILDCARD) ||
|
||||
vals->y == 0)
|
||||
@ -713,7 +714,7 @@ _FontFileListFonts (pointer client, FontPathElementPtr fpe,
|
||||
|
||||
/* Match XLFD patterns */
|
||||
|
||||
strcpy (zeroChars, lowerChars);
|
||||
strlcpy (zeroChars, lowerChars, sizeof(zeroChars));
|
||||
if (lowerName.ndashes == 14 &&
|
||||
FontParseXLFDName (zeroChars, &vals, FONT_XLFD_REPLACE_ZERO))
|
||||
{
|
||||
@ -940,7 +941,7 @@ FontFileListOneFontWithInfo (pointer client, FontPathElementPtr fpe,
|
||||
entry = FontFileFindNameInScalableDir (&dir->scalable, &tmpName, &vals);
|
||||
if (entry)
|
||||
{
|
||||
strcpy(lowerName, entry->name.name);
|
||||
strlcpy(lowerName, entry->name.name, sizeof(lowerName));
|
||||
tmpName.name = lowerName;
|
||||
tmpName.length = entry->name.length;
|
||||
tmpName.ndashes = entry->name.ndashes;
|
||||
@ -1008,8 +1009,8 @@ FontFileListOneFontWithInfo (pointer client, FontPathElementPtr fpe,
|
||||
sizeof(fileName)) {
|
||||
ret = BadFontName;
|
||||
} else {
|
||||
strcpy (fileName, dir->directory);
|
||||
strcat (fileName, scalable->fileName);
|
||||
strlcpy (fileName, dir->directory, sizeof(fileName));
|
||||
strlcat (fileName, scalable->fileName, sizeof(fileName));
|
||||
if (scalable->renderer->GetInfoScalable)
|
||||
ret = (*scalable->renderer->GetInfoScalable)
|
||||
(fpe, *pFontInfo, entry, &tmpName, fileName,
|
||||
|
@ -32,6 +32,7 @@ in this Software without prior written authorization from The Open Group.
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include "src/util/replace.h"
|
||||
#include <X11/fonts/fntfilst.h>
|
||||
#include <math.h>
|
||||
|
||||
@ -49,7 +50,7 @@ FontFileAddScaledInstance (FontEntryPtr entry, FontScalablePtr vals,
|
||||
if (extra->numScaled == extra->sizeScaled)
|
||||
{
|
||||
newsize = extra->sizeScaled + 4;
|
||||
new = realloc (extra->scaled, newsize * sizeof (FontScaledRec));
|
||||
new = reallocarray (extra->scaled, newsize, sizeof (FontScaledRec));
|
||||
if (!new)
|
||||
return FALSE;
|
||||
extra->sizeScaled = newsize;
|
||||
|
@ -32,6 +32,7 @@ in this Software without prior written authorization from The Open Group.
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include "src/util/replace.h"
|
||||
#include <X11/fonts/fntfilst.h>
|
||||
|
||||
static FontRenderersRec renderers;
|
||||
@ -80,7 +81,7 @@ FontFilePriorityRegisterRenderer (FontRendererPtr renderer, int priority)
|
||||
}
|
||||
|
||||
if(i >= renderers.number) {
|
||||
new = realloc (renderers.renderers, sizeof(*new) * (i + 1));
|
||||
new = reallocarray (renderers.renderers, i + 1, sizeof(*new));
|
||||
if (!new)
|
||||
return FALSE;
|
||||
renderers.renderers = new;
|
||||
|
@ -34,6 +34,7 @@
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include "src/util/replace.h"
|
||||
#include <X11/fonts/fontmisc.h>
|
||||
|
||||
typedef struct _AtomList {
|
||||
@ -122,7 +123,7 @@ ResizeReverseMap(void)
|
||||
newMapSize = 1000;
|
||||
else
|
||||
newMapSize = reverseMapSize * 2;
|
||||
newMap = realloc(reverseMap, newMapSize * sizeof(AtomListPtr));
|
||||
newMap = reallocarray(reverseMap, newMapSize, sizeof(AtomListPtr));
|
||||
if (newMap == NULL) {
|
||||
fprintf(stderr, "ResizeReverseMap(): Error: Couldn't reallocate"
|
||||
" reverseMap (%ld)\n",
|
||||
@ -188,7 +189,9 @@ __libxfont_internal__MakeAtom(const char *string, unsigned len, int makeit)
|
||||
a->atom = ++lastAtom;
|
||||
a->hash = hash;
|
||||
if (hashUsed >= hashSize / 2) {
|
||||
ResizeHashTable();
|
||||
if ((ResizeHashTable() == FALSE) &&
|
||||
((hashTable == NULL) || (hashUsed == hashSize)))
|
||||
return None;
|
||||
h = hash & hashMask;
|
||||
if (hashTable[h]) {
|
||||
r = (hash % rehash) | 1;
|
||||
|
@ -35,6 +35,7 @@ from The Open Group.
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include "src/util/replace.h"
|
||||
#include <X11/fonts/fontmisc.h>
|
||||
#include <X11/fonts/fontstruct.h>
|
||||
|
||||
@ -64,8 +65,8 @@ xfont2_make_font_names_record(unsigned size)
|
||||
pFN->size = size;
|
||||
if (size)
|
||||
{
|
||||
pFN->length = malloc(size * sizeof(int));
|
||||
pFN->names = malloc(size * sizeof(char *));
|
||||
pFN->length = mallocarray(size, sizeof(int));
|
||||
pFN->names = mallocarray(size, sizeof(char *));
|
||||
if (!pFN->length || !pFN->names) {
|
||||
free(pFN->length);
|
||||
free(pFN->names);
|
||||
@ -100,8 +101,8 @@ xfont2_add_font_names_name(FontNamesPtr names,
|
||||
|
||||
if (size == 0)
|
||||
size = 8;
|
||||
nlength = realloc(names->length, size * sizeof(int));
|
||||
nnames = realloc(names->names, size * sizeof(char *));
|
||||
nlength = reallocarray(names->length, size, sizeof(int));
|
||||
nnames = reallocarray(names->names, size, sizeof(char *));
|
||||
if (nlength && nnames) {
|
||||
names->size = size;
|
||||
names->length = nlength;
|
||||
|
@ -34,6 +34,7 @@ from The Open Group.
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include "src/util/replace.h"
|
||||
#include <X11/fonts/fontmisc.h>
|
||||
#include <X11/fonts/fontstruct.h>
|
||||
#include <X11/fonts/FSproto.h>
|
||||
@ -136,7 +137,7 @@ xfont2_query_text_extents(FontPtr pFont,
|
||||
unsigned char defc[2];
|
||||
int firstReal;
|
||||
|
||||
charinfo = malloc(count * sizeof(xCharInfo *));
|
||||
charinfo = mallocarray(count, sizeof(xCharInfo *));
|
||||
if (!charinfo)
|
||||
return FALSE;
|
||||
encoding = TwoD16Bit;
|
||||
@ -302,13 +303,13 @@ add_range(fsRange *newrange,
|
||||
/* Grow the list if necessary */
|
||||
if (*nranges == 0 || *range == (fsRange *)0)
|
||||
{
|
||||
*range = malloc(range_alloc_granularity * SIZEOF(fsRange));
|
||||
*range = mallocarray(range_alloc_granularity, SIZEOF(fsRange));
|
||||
*nranges = 0;
|
||||
}
|
||||
else if (!(*nranges % range_alloc_granularity))
|
||||
{
|
||||
*range = realloc(*range, (*nranges + range_alloc_granularity) *
|
||||
SIZEOF(fsRange));
|
||||
*range = reallocarray(*range, (*nranges + range_alloc_granularity),
|
||||
SIZEOF(fsRange));
|
||||
}
|
||||
|
||||
/* If alloc failed, just return a null list */
|
||||
|
@ -38,6 +38,7 @@ from The Open Group.
|
||||
#include <X11/fonts/fontstruct.h>
|
||||
#include <X11/fonts/fontxlfd.h>
|
||||
#include <X11/fonts/fontutil.h>
|
||||
#include <X11/fonts/fntfilst.h> /* for MAXFONTNAMELEN */
|
||||
#include <X11/Xos.h>
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
@ -49,6 +50,7 @@ from The Open Group.
|
||||
#endif
|
||||
#include <ctype.h>
|
||||
#include <stdio.h> /* for sprintf() */
|
||||
#include "src/util/replace.h"
|
||||
|
||||
static char *
|
||||
GetInt(char *ptr, int *val)
|
||||
@ -114,11 +116,14 @@ readreal(char *ptr, double *result)
|
||||
return (p1 == buffer) ? (char *)0 : (ptr + (p1 - buffer));
|
||||
}
|
||||
|
||||
#define XLFD_DOUBLE_TO_TEXT_BUF_SIZE 80
|
||||
|
||||
static char *
|
||||
xlfd_double_to_text(double value, char *buffer, int space_required)
|
||||
{
|
||||
register char *p1;
|
||||
int ndigits, exponent;
|
||||
const size_t buflen = XLFD_DOUBLE_TO_TEXT_BUF_SIZE;
|
||||
|
||||
#ifndef NO_LOCALE
|
||||
if (!locale)
|
||||
@ -137,7 +142,7 @@ xlfd_double_to_text(double value, char *buffer, int space_required)
|
||||
*buffer++ = ' ';
|
||||
|
||||
/* Render the number using printf's idea of formatting */
|
||||
sprintf(buffer, "%.*le", XLFD_NDIGITS, value);
|
||||
snprintf(buffer, buflen, "%.*le", XLFD_NDIGITS, value);
|
||||
|
||||
/* Find and read the exponent value */
|
||||
for (p1 = buffer + strlen(buffer);
|
||||
@ -154,14 +159,14 @@ xlfd_double_to_text(double value, char *buffer, int space_required)
|
||||
if (exponent >= XLFD_NDIGITS || ndigits - exponent > XLFD_NDIGITS + 1)
|
||||
{
|
||||
/* Scientific */
|
||||
sprintf(buffer, "%.*le", ndigits - 1, value);
|
||||
snprintf(buffer, buflen, "%.*le", ndigits - 1, value);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Fixed */
|
||||
ndigits -= exponent + 1;
|
||||
if (ndigits < 0) ndigits = 0;
|
||||
sprintf(buffer, "%.*lf", ndigits, value);
|
||||
snprintf(buffer, buflen, "%.*lf", ndigits, value);
|
||||
if (exponent < 0)
|
||||
{
|
||||
p1 = buffer;
|
||||
@ -263,7 +268,7 @@ xlfd_round_double(double x)
|
||||
|
||||
char buffer[40];
|
||||
|
||||
sprintf(buffer, "%.*lg", XLFD_NDIGITS, x);
|
||||
snprintf(buffer, sizeof(buffer), "%.*lg", XLFD_NDIGITS, x);
|
||||
return atof(buffer);
|
||||
}
|
||||
}
|
||||
@ -347,26 +352,28 @@ GetMatrix(char *ptr, FontScalablePtr vals, int which)
|
||||
|
||||
|
||||
static void
|
||||
append_ranges(char *fname, int nranges, fsRange *ranges)
|
||||
append_ranges(char *fname, size_t fnamelen, int nranges, fsRange *ranges)
|
||||
{
|
||||
if (nranges)
|
||||
{
|
||||
int i;
|
||||
|
||||
strcat(fname, "[");
|
||||
strlcat(fname, "[", fnamelen);
|
||||
for (i = 0; i < nranges && strlen(fname) < 1010; i++)
|
||||
{
|
||||
if (i) strcat(fname, " ");
|
||||
sprintf(fname + strlen(fname), "%d",
|
||||
minchar(ranges[i]));
|
||||
size_t curlen;
|
||||
if (i) strlcat(fname, " ", fnamelen);
|
||||
curlen = strlen(fname);
|
||||
snprintf(fname + curlen, fnamelen - curlen, "%d",
|
||||
minchar(ranges[i]));
|
||||
if (ranges[i].min_char_low ==
|
||||
ranges[i].max_char_low &&
|
||||
ranges[i].min_char_high ==
|
||||
ranges[i].max_char_high) continue;
|
||||
sprintf(fname + strlen(fname), "_%d",
|
||||
maxchar(ranges[i]));
|
||||
snprintf(fname + curlen, fnamelen - curlen, "_%d",
|
||||
maxchar(ranges[i]));
|
||||
}
|
||||
strcat(fname, "]");
|
||||
strlcat(fname, "]", fnamelen);
|
||||
}
|
||||
}
|
||||
|
||||
@ -382,6 +389,8 @@ FontParseXLFDName(char *fname, FontScalablePtr vals, int subst)
|
||||
FontScalableRec tmpvals;
|
||||
char replaceChar = '0';
|
||||
char tmpBuf[1024];
|
||||
size_t tlen;
|
||||
size_t fnamelen = MAXFONTNAMELEN; /* assumed for now */
|
||||
int spacingLen;
|
||||
int l;
|
||||
char *p;
|
||||
@ -439,8 +448,9 @@ FontParseXLFDName(char *fname, FontScalablePtr vals, int subst)
|
||||
break;
|
||||
case FONT_XLFD_REPLACE_STAR:
|
||||
replaceChar = '*';
|
||||
/* FALLTHROUGH */
|
||||
case FONT_XLFD_REPLACE_ZERO:
|
||||
strcpy(tmpBuf, ptr2);
|
||||
strlcpy(tmpBuf, ptr2, sizeof(tmpBuf));
|
||||
ptr5 = tmpBuf + (ptr5 - ptr2);
|
||||
ptr3 = tmpBuf + (ptr3 - ptr2);
|
||||
ptr2 = tmpBuf;
|
||||
@ -472,7 +482,7 @@ FontParseXLFDName(char *fname, FontScalablePtr vals, int subst)
|
||||
*ptr++ = '-';
|
||||
}
|
||||
*ptr++ = replaceChar;
|
||||
strcpy(ptr, ptr5);
|
||||
strlcpy(ptr, ptr5, fnamelen - (ptr - fname));
|
||||
*vals = tmpvals;
|
||||
break;
|
||||
case FONT_XLFD_REPLACE_VALUE:
|
||||
@ -508,68 +518,82 @@ FontParseXLFDName(char *fname, FontScalablePtr vals, int subst)
|
||||
|
||||
p = ptr1 + 1; /* weight field */
|
||||
l = strchr(p, '-') - p;
|
||||
sprintf(tmpBuf, "%*.*s", l, l, p);
|
||||
snprintf(tmpBuf, sizeof(tmpBuf), "%*.*s", l, l, p);
|
||||
|
||||
p += l + 1; /* slant field */
|
||||
l = strchr(p, '-') - p;
|
||||
sprintf(tmpBuf + strlen(tmpBuf), "-%*.*s", l, l, p);
|
||||
tlen = strlen(tmpBuf);
|
||||
snprintf(tmpBuf + tlen, sizeof(tmpBuf) - tlen, "-%*.*s", l, l, p);
|
||||
|
||||
p += l + 1; /* setwidth_name */
|
||||
l = strchr(p, '-') - p;
|
||||
sprintf(tmpBuf + strlen(tmpBuf), "-%*.*s", l, l, p);
|
||||
tlen = strlen(tmpBuf);
|
||||
snprintf(tmpBuf + tlen, sizeof(tmpBuf) - tlen, "-%*.*s", l, l, p);
|
||||
|
||||
p += l + 1; /* add_style_name field */
|
||||
l = strchr(p, '-') - p;
|
||||
sprintf(tmpBuf + strlen(tmpBuf), "-%*.*s", l, l, p);
|
||||
tlen = strlen(tmpBuf);
|
||||
snprintf(tmpBuf + tlen, sizeof(tmpBuf) - tlen, "-%*.*s", l, l, p);
|
||||
|
||||
strcat(tmpBuf, "-");
|
||||
strlcat(tmpBuf, "-", sizeof(tmpBuf));
|
||||
if ((tmpvals.values_supplied & PIXELSIZE_MASK) == PIXELSIZE_ARRAY)
|
||||
{
|
||||
char buffer[80];
|
||||
strcat(tmpBuf, "[");
|
||||
strcat(tmpBuf, xlfd_double_to_text(tmpvals.pixel_matrix[0],
|
||||
buffer, 0));
|
||||
strcat(tmpBuf, xlfd_double_to_text(tmpvals.pixel_matrix[1],
|
||||
buffer, 1));
|
||||
strcat(tmpBuf, xlfd_double_to_text(tmpvals.pixel_matrix[2],
|
||||
buffer, 1));
|
||||
strcat(tmpBuf, xlfd_double_to_text(tmpvals.pixel_matrix[3],
|
||||
buffer, 1));
|
||||
strcat(tmpBuf, "]");
|
||||
char buffer[XLFD_DOUBLE_TO_TEXT_BUF_SIZE];
|
||||
strlcat(tmpBuf, "[", sizeof(tmpBuf));
|
||||
strlcat(tmpBuf,
|
||||
xlfd_double_to_text(tmpvals.pixel_matrix[0], buffer, 0),
|
||||
sizeof(tmpBuf));
|
||||
strlcat(tmpBuf,
|
||||
xlfd_double_to_text(tmpvals.pixel_matrix[1], buffer, 1),
|
||||
sizeof(tmpBuf));
|
||||
strlcat(tmpBuf,
|
||||
xlfd_double_to_text(tmpvals.pixel_matrix[2], buffer, 1),
|
||||
sizeof(tmpBuf));
|
||||
strlcat(tmpBuf,
|
||||
xlfd_double_to_text(tmpvals.pixel_matrix[3], buffer, 1),
|
||||
sizeof(tmpBuf));
|
||||
strlcat(tmpBuf, "]", sizeof(tmpBuf));
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(tmpBuf + strlen(tmpBuf), "%d",
|
||||
(int)(tmpvals.pixel_matrix[3] + .5));
|
||||
tlen = strlen(tmpBuf);
|
||||
snprintf(tmpBuf + tlen, sizeof(tmpBuf) - tlen, "%d",
|
||||
(int)(tmpvals.pixel_matrix[3] + .5));
|
||||
}
|
||||
strcat(tmpBuf, "-");
|
||||
strlcat(tmpBuf, "-", sizeof(tmpBuf));
|
||||
if ((tmpvals.values_supplied & POINTSIZE_MASK) == POINTSIZE_ARRAY)
|
||||
{
|
||||
char buffer[80];
|
||||
strcat(tmpBuf, "[");
|
||||
strcat(tmpBuf, xlfd_double_to_text(tmpvals.point_matrix[0],
|
||||
buffer, 0));
|
||||
strcat(tmpBuf, xlfd_double_to_text(tmpvals.point_matrix[1],
|
||||
buffer, 1));
|
||||
strcat(tmpBuf, xlfd_double_to_text(tmpvals.point_matrix[2],
|
||||
buffer, 1));
|
||||
strcat(tmpBuf, xlfd_double_to_text(tmpvals.point_matrix[3],
|
||||
buffer, 1));
|
||||
strcat(tmpBuf, "]");
|
||||
char buffer[XLFD_DOUBLE_TO_TEXT_BUF_SIZE];
|
||||
strlcat(tmpBuf, "[", sizeof(tmpBuf));
|
||||
strlcat(tmpBuf,
|
||||
xlfd_double_to_text(tmpvals.point_matrix[0], buffer, 0),
|
||||
sizeof(tmpBuf));
|
||||
strlcat(tmpBuf,
|
||||
xlfd_double_to_text(tmpvals.point_matrix[1], buffer, 1),
|
||||
sizeof(tmpBuf));
|
||||
strlcat(tmpBuf,
|
||||
xlfd_double_to_text(tmpvals.point_matrix[2], buffer, 1),
|
||||
sizeof(tmpBuf));
|
||||
strlcat(tmpBuf,
|
||||
xlfd_double_to_text(tmpvals.point_matrix[3], buffer, 1),
|
||||
sizeof(tmpBuf));
|
||||
strlcat(tmpBuf, "]", sizeof(tmpBuf));
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(tmpBuf + strlen(tmpBuf), "%d",
|
||||
(int)(tmpvals.point_matrix[3] * 10.0 + .5));
|
||||
tlen = strlen(tmpBuf);
|
||||
snprintf(tmpBuf + tlen, sizeof(tmpBuf) - tlen, "%d",
|
||||
(int)(tmpvals.point_matrix[3] * 10.0 + .5));
|
||||
}
|
||||
sprintf(tmpBuf + strlen(tmpBuf), "-%d-%d%*.*s%d%s",
|
||||
tmpvals.x, tmpvals.y,
|
||||
spacingLen, spacingLen, ptr3, tmpvals.width, ptr5);
|
||||
strcpy(ptr1 + 1, tmpBuf);
|
||||
tlen = strlen(tmpBuf);
|
||||
snprintf(tmpBuf + tlen, sizeof(tmpBuf) - tlen, "-%d-%d%*.*s%d%s",
|
||||
tmpvals.x, tmpvals.y,
|
||||
spacingLen, spacingLen, ptr3, tmpvals.width, ptr5);
|
||||
strlcpy(ptr1 + 1, tmpBuf, fnamelen - (ptr1 - fname));
|
||||
if ((vals->values_supplied & CHARSUBSET_SPECIFIED) && !vals->nranges)
|
||||
strcat(fname, "[]");
|
||||
strlcat(fname, "[]", fnamelen);
|
||||
else
|
||||
append_ranges(fname, vals->nranges, vals->ranges);
|
||||
append_ranges(fname, fnamelen, vals->nranges, vals->ranges);
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
|
@ -32,6 +32,7 @@ in this Software without prior written authorization from The Open Group.
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "libxfontint.h"
|
||||
#include "src/util/replace.h"
|
||||
#include <X11/fonts/fontmisc.h>
|
||||
#include <X11/fonts/fontstruct.h>
|
||||
|
||||
@ -84,12 +85,12 @@ xfont2_font_set_private(FontPtr pFont, int n, pointer ptr)
|
||||
|
||||
if (n > pFont->maxPrivate) {
|
||||
if (pFont->devPrivates && pFont->devPrivates != (pointer)(&pFont[1])) {
|
||||
new = realloc (pFont->devPrivates, (n + 1) * sizeof (pointer));
|
||||
new = reallocarray (pFont->devPrivates, (n + 1), sizeof (pointer));
|
||||
if (!new)
|
||||
return FALSE;
|
||||
} else {
|
||||
/* omg realloc */
|
||||
new = malloc ((n + 1) * sizeof (pointer));
|
||||
new = reallocarray (NULL, (n + 1), sizeof (pointer));
|
||||
if (!new)
|
||||
return FALSE;
|
||||
if (pFont->devPrivates)
|
||||
|
43
lib/libXfont2/src/util/reallocarray.c
Normal file
43
lib/libXfont2/src/util/reallocarray.c
Normal file
@ -0,0 +1,43 @@
|
||||
/* $OpenBSD: reallocarray.c,v 1.1 2019/12/14 14:57:44 matthieu Exp $ */
|
||||
/*
|
||||
* Copyright (c) 2008 Otto Moerbeek <otto@drijf.net>
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <errno.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include "src/util/replace.h"
|
||||
|
||||
/*
|
||||
* This is sqrt(SIZE_MAX+1), as s1*s2 <= SIZE_MAX
|
||||
* if both s1 < MUL_NO_OVERFLOW and s2 < MUL_NO_OVERFLOW
|
||||
*/
|
||||
#define MUL_NO_OVERFLOW ((size_t)1 << (sizeof(size_t) * 4))
|
||||
|
||||
void *
|
||||
reallocarray(void *optr, size_t nmemb, size_t size)
|
||||
{
|
||||
if ((nmemb >= MUL_NO_OVERFLOW || size >= MUL_NO_OVERFLOW) &&
|
||||
nmemb > 0 && SIZE_MAX / nmemb < size) {
|
||||
errno = ENOMEM;
|
||||
return NULL;
|
||||
}
|
||||
return realloc(optr, size * nmemb);
|
||||
}
|
61
lib/libXfont2/src/util/replace.h
Normal file
61
lib/libXfont2/src/util/replace.h
Normal file
@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/* Local replacements for functions found in some, but not all, libc's */
|
||||
#ifndef XFONT_REPLACE_H
|
||||
#define XFONT_REPLACE_H
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <X11/Xfuncproto.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
#if defined(HAVE_LIBBSD) && defined(HAVE_REALLOCARRAY)
|
||||
#include <bsd/stdlib.h> /* for reallocarray */
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_REALLOCARRAY
|
||||
extern _X_HIDDEN void *
|
||||
reallocarray(void *optr, size_t nmemb, size_t size);
|
||||
#endif
|
||||
|
||||
#ifndef mallocarray
|
||||
#define mallocarray(n, s) reallocarray(NULL, n, s)
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#if defined(HAVE_LIBBSD) && defined(HAVE_STRLCPY)
|
||||
#include <bsd/string.h> /* for strlcpy, strlcat */
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_STRLCPY
|
||||
extern _X_HIDDEN size_t
|
||||
strlcpy(char *dst, const char *src, size_t siz);
|
||||
extern _X_HIDDEN size_t
|
||||
strlcat(char *dst, const char *src, size_t siz);
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* XFONT_REPLACE_H */
|
58
lib/libXfont2/src/util/strlcat.c
Normal file
58
lib/libXfont2/src/util/strlcat.c
Normal file
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL
|
||||
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE
|
||||
* FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <string.h>
|
||||
#include "src/util/replace.h"
|
||||
|
||||
/*
|
||||
* Appends src to string dst of size siz (unlike strncat, siz is the
|
||||
* full size of dst, not space left). At most siz-1 characters
|
||||
* will be copied. Always NUL terminates (unless siz <= strlen(dst)).
|
||||
* Returns strlen(src) + MIN(siz, strlen(initial dst)).
|
||||
* If retval >= siz, truncation occurred.
|
||||
*/
|
||||
size_t
|
||||
strlcat(char *dst, const char *src, size_t siz)
|
||||
{
|
||||
register char *d = dst;
|
||||
register const char *s = src;
|
||||
register size_t n = siz;
|
||||
size_t dlen;
|
||||
|
||||
/* Find the end of dst and adjust bytes left but don't go past end */
|
||||
while (n-- != 0 && *d != '\0')
|
||||
d++;
|
||||
dlen = d - dst;
|
||||
n = siz - dlen;
|
||||
|
||||
if (n == 0)
|
||||
return (dlen + strlen(s));
|
||||
while (*s != '\0') {
|
||||
if (n != 1) {
|
||||
*d++ = *s;
|
||||
n--;
|
||||
}
|
||||
s++;
|
||||
}
|
||||
*d = '\0';
|
||||
|
||||
return (dlen + (s - src)); /* count does not include NUL */
|
||||
}
|
53
lib/libXfont2/src/util/strlcpy.c
Normal file
53
lib/libXfont2/src/util/strlcpy.c
Normal file
@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL
|
||||
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE
|
||||
* FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <string.h>
|
||||
#include "src/util/replace.h"
|
||||
|
||||
/*
|
||||
* Copy src to string dst of size siz. At most siz-1 characters
|
||||
* will be copied. Always NUL terminates (unless siz == 0).
|
||||
* Returns strlen(src); if retval >= siz, truncation occurred.
|
||||
*/
|
||||
size_t
|
||||
strlcpy(char *dst, const char *src, size_t siz)
|
||||
{
|
||||
register char *d = dst;
|
||||
register const char *s = src;
|
||||
register size_t n = siz;
|
||||
|
||||
/* Copy as many bytes as will fit */
|
||||
if (n != 0 && --n != 0) {
|
||||
do {
|
||||
if ((*d++ = *s++) == 0)
|
||||
break;
|
||||
} while (--n != 0);
|
||||
}
|
||||
|
||||
/* Not enough room in dst, add NUL and traverse rest of src */
|
||||
if (n == 0) {
|
||||
if (siz != 0)
|
||||
*d = '\0'; /* NUL-terminate dst */
|
||||
while (*s++);
|
||||
}
|
||||
|
||||
return s - src - 1; /* count does not include NUL */
|
||||
}
|
18
lib/libXfont2/test/utils/README
Normal file
18
lib/libXfont2/test/utils/README
Normal file
@ -0,0 +1,18 @@
|
||||
This directory contains utilities which can be used for adhoc testing of
|
||||
libXfont by developers, and which are hoped to be useful for building up
|
||||
automated testing in the future.
|
||||
|
||||
They are not intended for distros to package and ship to end users - they
|
||||
are not documented, and are full of assert() and fatal err() calls where
|
||||
end user software would have error handling.
|
||||
|
||||
No promises of interface stability are made for these - they may change at
|
||||
any time to allow better testing.
|
||||
|
||||
Utilities include:
|
||||
|
||||
lsfontdir:
|
||||
Reads & prints the contents of fonts.dir files.
|
||||
Takes a list of font path entries on the command line, uses defaults
|
||||
if none specified.
|
||||
For use with afl fuzzer, you must use afl -f fonts.dir lsfontdir @@
|
337
lib/libXfont2/test/utils/font-test-utils.c
Normal file
337
lib/libXfont2/test/utils/font-test-utils.c
Normal file
@ -0,0 +1,337 @@
|
||||
/* Common utility code for interacting with libXfont from test utilities
|
||||
*
|
||||
* Note that this code is designed for test programs, and thus uses assert()
|
||||
* and fatal err() calls in places that real code would do error handling,
|
||||
* since the goal is to catch bugs faster, not help users get past problems.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/* Based on code from xorg-server/dix/dixfont.c covered by this notice:
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
*/
|
||||
|
||||
#include "font-test-utils.h"
|
||||
#include "src/util/replace.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
#include <assert.h>
|
||||
#include <err.h>
|
||||
#include <X11/X.h>
|
||||
|
||||
static unsigned long server_generation;
|
||||
static xfont2_fpe_funcs_rec const **fpe_functions;
|
||||
static int num_fpe_types;
|
||||
|
||||
static int
|
||||
test_client_auth_generation(ClientPtr client)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static Bool
|
||||
test_client_signal(ClientPtr client)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static void
|
||||
test_delete_font_client_id(Font id)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static void _X_ATTRIBUTE_PRINTF(1,0)
|
||||
test_verrorf(const char *f, va_list ap)
|
||||
{
|
||||
vwarn(f, ap);
|
||||
}
|
||||
|
||||
static FontPtr
|
||||
test_find_old_font(FSID id)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static FontResolutionPtr
|
||||
test_get_client_resolutions(int *num)
|
||||
{
|
||||
*num = 0;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int
|
||||
test_get_default_point_size(void)
|
||||
{
|
||||
return 120;
|
||||
}
|
||||
|
||||
static Font
|
||||
test_get_new_font_client_id(void)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
test_get_time_in_millis(void)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static int
|
||||
test_init_fs_handlers(FontPathElementPtr fpe,
|
||||
FontBlockHandlerProcPtr block_handler)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
/* Callback from libXfont when each fpe handler is registered */
|
||||
static int
|
||||
test_register_fpe_funcs(const xfont2_fpe_funcs_rec *funcs)
|
||||
{
|
||||
xfont2_fpe_funcs_rec const **new;
|
||||
|
||||
/* grow the list */
|
||||
new = reallocarray(fpe_functions, (num_fpe_types + 1),
|
||||
sizeof(xfont2_fpe_funcs_ptr));
|
||||
assert (new != NULL);
|
||||
fpe_functions = new;
|
||||
|
||||
fpe_functions[num_fpe_types] = funcs;
|
||||
|
||||
return num_fpe_types++;
|
||||
}
|
||||
|
||||
static void
|
||||
test_remove_fs_handlers(FontPathElementPtr fpe,
|
||||
FontBlockHandlerProcPtr block_handler, Bool all)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static void *
|
||||
test_get_server_client(void)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static int
|
||||
test_set_font_authorizations(char **authorizations, int *authlen, void *client)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static int
|
||||
test_store_font_client_font(FontPtr pfont, Font id)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static Atom
|
||||
test_make_atom(const char *string, unsigned len, int makeit)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static int
|
||||
test_valid_atom(Atom atom)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static const char *
|
||||
test_name_for_atom(Atom atom)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static unsigned long
|
||||
test_get_server_generation(void)
|
||||
{
|
||||
return server_generation;
|
||||
}
|
||||
|
||||
static int
|
||||
test_add_fs_fd(int fd, FontFdHandlerProcPtr handler, void *data)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static void
|
||||
test_remove_fs_fd(int fd)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static void
|
||||
test_adjust_fs_wait_for_delay(void *wt, unsigned long newdelay)
|
||||
{
|
||||
err(BadImplementation, "%s called but not yet implemented", __func__);
|
||||
}
|
||||
|
||||
static const xfont2_client_funcs_rec xfont2_client_funcs = {
|
||||
.version = XFONT2_CLIENT_FUNCS_VERSION,
|
||||
.client_auth_generation = test_client_auth_generation,
|
||||
.client_signal = test_client_signal,
|
||||
.delete_font_client_id = test_delete_font_client_id,
|
||||
.verrorf = test_verrorf,
|
||||
.find_old_font = test_find_old_font,
|
||||
.get_client_resolutions = test_get_client_resolutions,
|
||||
.get_default_point_size = test_get_default_point_size,
|
||||
.get_new_font_client_id = test_get_new_font_client_id,
|
||||
.get_time_in_millis = test_get_time_in_millis,
|
||||
.init_fs_handlers = test_init_fs_handlers,
|
||||
.register_fpe_funcs = test_register_fpe_funcs,
|
||||
.remove_fs_handlers = test_remove_fs_handlers,
|
||||
.get_server_client = test_get_server_client,
|
||||
.set_font_authorizations = test_set_font_authorizations,
|
||||
.store_font_client_font = test_store_font_client_font,
|
||||
.make_atom = test_make_atom,
|
||||
.valid_atom = test_valid_atom,
|
||||
.name_for_atom = test_name_for_atom,
|
||||
.get_server_generation = test_get_server_generation,
|
||||
.add_fs_fd = test_add_fs_fd,
|
||||
.remove_fs_fd = test_remove_fs_fd,
|
||||
.adjust_fs_wait_for_delay = test_adjust_fs_wait_for_delay,
|
||||
};
|
||||
|
||||
|
||||
xfont2_fpe_funcs_rec const **
|
||||
init_font_handlers(int *fpe_function_count)
|
||||
{
|
||||
server_generation++;
|
||||
xfont2_init(&xfont2_client_funcs);
|
||||
/* make sure our callbacks were called & worked */
|
||||
assert (fpe_functions != NULL);
|
||||
assert (num_fpe_types > 0);
|
||||
*fpe_function_count = num_fpe_types;
|
||||
return fpe_functions;
|
||||
}
|
||||
|
||||
|
||||
/* does the necessary magic to figure out the fpe type */
|
||||
static int
|
||||
DetermineFPEType(const char *pathname)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* make sure init_font_handlers was called first */
|
||||
assert (num_fpe_types > 0);
|
||||
|
||||
for (i = 0; i < num_fpe_types; i++) {
|
||||
if ((*fpe_functions[i]->name_check) (pathname))
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
static const char * const default_fpes[] = {
|
||||
"catalogue:/etc/X11/fontpath.d",
|
||||
"built-ins"
|
||||
};
|
||||
#define num_default_fpes (sizeof(default_fpes) / sizeof(*default_fpes))
|
||||
|
||||
FontPathElementPtr *
|
||||
init_font_paths(const char * const *font_paths, int *num_fpes)
|
||||
{
|
||||
FontPathElementPtr *fpe_list;
|
||||
int i;
|
||||
|
||||
/* make sure init_font_handlers was called first */
|
||||
assert (num_fpe_types > 0);
|
||||
|
||||
/* Use default if caller didn't supply any */
|
||||
if (*num_fpes == 0) {
|
||||
font_paths = default_fpes;
|
||||
*num_fpes = num_default_fpes;
|
||||
}
|
||||
|
||||
fpe_list = calloc(*num_fpes, sizeof(FontPathElementPtr));
|
||||
assert(fpe_list != NULL);
|
||||
|
||||
for (i = 0; i < *num_fpes; i++) {
|
||||
int result;
|
||||
FontPathElementPtr fpe = calloc(1, sizeof(FontPathElementRec));
|
||||
assert(fpe != NULL);
|
||||
|
||||
fpe->name = strdup(font_paths[i]);
|
||||
assert(fpe->name != NULL);
|
||||
fpe->name_length = strlen(fpe->name);
|
||||
assert(fpe->name_length > 0);
|
||||
/* If path is to fonts.dir file, trim it off and use the full
|
||||
directory path instead. Simplifies testing with afl. */
|
||||
if (fpe->name_length > (int) sizeof("/fonts.dir")) {
|
||||
char *tail = fpe->name + fpe->name_length -
|
||||
(sizeof("/fonts.dir") - 1);
|
||||
|
||||
if (strcmp(tail, "/fonts.dir") == 0) {
|
||||
char *fullpath;
|
||||
|
||||
*tail = '\0';
|
||||
fullpath = realpath(fpe->name, NULL);
|
||||
assert(fullpath != NULL);
|
||||
free(fpe->name);
|
||||
fpe->name = fullpath;
|
||||
fpe->name_length = strlen(fpe->name);
|
||||
assert(fpe->name_length > 0);
|
||||
}
|
||||
}
|
||||
fpe->type = DetermineFPEType(fpe->name);
|
||||
if (fpe->type == -1)
|
||||
err(BadFontPath, "Unable to find handler for font path %s",
|
||||
fpe->name);
|
||||
result = (*fpe_functions[fpe->type]->init_fpe) (fpe);
|
||||
if (result != Successful)
|
||||
err(result, "init_fpe failed for font path %s: error %d",
|
||||
fpe->name, result);
|
||||
|
||||
printf("Initialized font path element #%d: %s\n", i, fpe->name);
|
||||
fpe_list[i] = fpe;
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
return fpe_list;
|
||||
}
|
49
lib/libXfont2/test/utils/font-test-utils.h
Normal file
49
lib/libXfont2/test/utils/font-test-utils.h
Normal file
@ -0,0 +1,49 @@
|
||||
/* Common utility code for interacting with libXfont from test utilities */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include <X11/Xfuncproto.h>
|
||||
#include <X11/fonts/font.h>
|
||||
#include <X11/fonts/fontstruct.h>
|
||||
#include <X11/fonts/fontmisc.h>
|
||||
#include <X11/fonts/libxfont2.h>
|
||||
|
||||
/* Returns pointer to array of functions for each type of font_path_entry
|
||||
* handler, and puts count of entries in that array into fpe_function_count.
|
||||
* Must be called before init_font_paths().
|
||||
*/
|
||||
extern xfont2_fpe_funcs_rec const **init_font_handlers(int *fpe_function_count);
|
||||
|
||||
/* Returns pointer to array of FontPathElement structs for each font path
|
||||
* entry passed in. num_fpes must be set to the number of entries in the
|
||||
* font_paths array when called - will be set to the number of entries in
|
||||
* the returned array. May be called with (NULL, 0) to use default font
|
||||
* path of "catalogue:/etc/X11/fontpath.d" & "built-ins".
|
||||
*/
|
||||
extern FontPathElementPtr *init_font_paths(const char * const *font_paths,
|
||||
int *num_fpes);
|
74
lib/libXfont2/test/utils/lsfontdir.c
Normal file
74
lib/libXfont2/test/utils/lsfontdir.c
Normal file
@ -0,0 +1,74 @@
|
||||
/* lsfontdir [<font path entry> ...]
|
||||
*
|
||||
* Lists entries from fonts.dir file in given directory paths.
|
||||
* Defaults to "catalogue:/etc/X11/fontpath.d" & "built-ins" if no paths given.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "font-test-utils.h"
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include <err.h>
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
FontPathElementPtr *fpe_list;
|
||||
xfont2_fpe_funcs_rec const **fpe_functions;
|
||||
int fpe_function_count, fpe_list_count;
|
||||
int i, n;
|
||||
|
||||
fpe_functions = init_font_handlers(&fpe_function_count);
|
||||
|
||||
fpe_list_count = argc - 1;
|
||||
fpe_list = init_font_paths((const char **) argv + 1, &fpe_list_count);
|
||||
|
||||
for (i = 0; i < fpe_list_count; i++) {
|
||||
FontPathElementPtr fpe = fpe_list[i];
|
||||
FontNamesPtr names;
|
||||
const int max_names_count = 8192;
|
||||
const char *pattern = "*";
|
||||
int result;
|
||||
|
||||
/* Don't allocate max size up front to allow testing expansion code */
|
||||
names = xfont2_make_font_names_record(max_names_count / 16);
|
||||
assert(names != NULL);
|
||||
|
||||
result = (*fpe_functions[fpe->type]->list_fonts)
|
||||
(NULL, fpe, pattern, strlen(pattern), max_names_count, names);
|
||||
if (result != Successful)
|
||||
err(result, "list_font failed for font path %s: error %d",
|
||||
fpe->name, result);
|
||||
|
||||
printf("--- %s:\n", fpe->name);
|
||||
for (n = 0 ; n < names->nnames; n++) {
|
||||
printf("%s\n", names->names[n]);
|
||||
}
|
||||
|
||||
xfont2_free_font_names(names);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user