sync with OpenBSD -current

This commit is contained in:
purplerain 2024-01-28 20:25:20 +00:00
parent 40c5de4fdf
commit 28b8e7f357
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
47 changed files with 12974 additions and 10842 deletions

13
MODULES
View file

@ -1,4 +1,4 @@
# $OpenBSD: MODULES,v 1.514 2024/01/16 13:14:26 matthieu Exp $ # $OpenBSD: MODULES,v 1.515 2024/01/28 14:24:54 matthieu Exp $
# #
# X.Org maintained modules # X.Org maintained modules
# #
@ -8,7 +8,7 @@ app/bdftopcf 1.1.1
app/beforelight 1.0.6 app/beforelight 1.0.6
app/bitmap 1.1.0 app/bitmap 1.1.0
app/editres 1.0.8 app/editres 1.0.8
app/fonttosfnt 1.2.3 needs-update app/fonttosfnt 1.2.3
app/iceauth 1.0.9 app/iceauth 1.0.9
app/ico 1.0.6 app/ico 1.0.6
app/listres 1.0.5 app/listres 1.0.5
@ -25,7 +25,7 @@ app/viewres 1.0.7
app/x11perf 1.6.2 app/x11perf 1.6.2
app/xauth 1.1.2 app/xauth 1.1.2
app/xbacklight 1.2.3 app/xbacklight 1.2.3
app/xbiff 1.0.4 app/xbiff 1.0.5
app/xcalc 1.1.2 app/xcalc 1.1.2
app/xclipboard 1.1.4 app/xclipboard 1.1.4
app/xclock 1.1.1 app/xclock 1.1.1
@ -36,7 +36,7 @@ app/xdpyinfo 1.3.4
app/xdriinfo 1.0.7 app/xdriinfo 1.0.7
app/xedit 1.2.3 app/xedit 1.2.3
app/xev 1.2.5 app/xev 1.2.5
app/xeyes 1.3.0 needs-update app/xeyes 1.3.0
app/xf86dga 1.0.3 app/xf86dga 1.0.3
app/xfd 1.1.4 app/xfd 1.1.4
app/xfontsel 1.1.0 app/xfontsel 1.1.0
@ -182,7 +182,7 @@ lib/libxcvt 0.1.2
lib/libxkbfile 1.1.2 lib/libxkbfile 1.1.2
lib/libxshmfence 1.3.2 lib/libxshmfence 1.3.2
lib/libxtrans 1.5.0 lib/libxtrans 1.5.0
lib/pixman 0.43.0 needs-update lib/pixman 0.43.2 needs-update
lib/xcb-util 0.4.1 lib/xcb-util 0.4.1
lib/xcb-util-cursor 0.1.5 needs-update lib/xcb-util-cursor 0.1.5 needs-update
lib/xcb-util-image 0.4.1 lib/xcb-util-image 0.4.1
@ -198,5 +198,4 @@ util/gccmakedep 1.0.3
util/macros 1.20.0 util/macros 1.20.0
util/makedepend 1.0.8 util/makedepend 1.0.8
xserver 21.1.11 needs-update xserver 21.1.11

View file

@ -1,3 +1,95 @@
commit 3b0f4a799bb7820dd27257be16f1a9d61a4969f9
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Wed Sep 27 18:37:58 2023 -0700
fonttosfnt 1.2.3
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 54fc73eeb8a2da16a49ab751d54d53dc2d693228
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Apr 1 14:12:16 2023 -0700
Use C99 compound literals to initialize newly allocated structs
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit ac44dd4a6e8324ae9f79f61ef093cb087268d72d
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Apr 1 13:43:53 2023 -0700
Allow inlining makeName
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 15f75aa8e6578cd2a27cadfc11e31b58e2fc6683
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Apr 1 13:02:50 2023 -0700
Remove unused function findIndex
Found by cppcheck
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 11fa7c2d7c5c668ea921f1dbc6b70e97e3535afe
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Apr 1 12:59:33 2023 -0700
makeBitmap: declare raster parameter const as recommended by cppcheck
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 92b565d9f9829cc0b47d019d336ef664d3f013e2
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Apr 1 12:54:16 2023 -0700
args_copy variable is unused if HAVE_DECL_VA_COPY is not defined
Found by cppcheck
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 103579f030bfead4a1f821734dd6dbaf823c5527
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Apr 1 12:52:05 2023 -0700
Variable scope reductions as recommended by cppcheck
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 4208f2d0dd928a2e627a2284337302be62b3967a
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Jul 23 15:43:35 2022 -0700
gitlab CI: enable gitlab's builtin static analysis
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit b2a8c9da0a61dc376151fb1992c79aa1cec7e9b6
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Jul 23 15:42:59 2022 -0700
gitlab CI: enable commit & merge request checks
Uses ci-fairy from freedesktop/ci-templates
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit c736c95af996b93967a3bb271f469f8a7f35f150
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Fri Dec 3 14:51:41 2021 -0800
Build xz tarballs instead of bzip2
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 5fd5d9bdc04c3d4d318a1e017e0f5d08434fdae6
Author: Peng Wu <pwu@redhat.com>
Date: Fri Aug 20 14:39:31 2021 +0800
Add CI tests
commit 2726947ea34653a90f89163849887c11179b2d6d commit 2726947ea34653a90f89163849887c11179b2d6d
Author: Peter Hutterer <peter.hutterer@who-t.net> Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Jun 15 10:33:54 2021 +1000 Date: Tue Jun 15 10:33:54 2021 +1000

View file

@ -186,9 +186,9 @@ am__relativize = \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \ done; \
reldir="$$dir2" reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.xz
GZIP_ENV = --best GZIP_ENV = --best
DIST_TARGETS = dist-bzip2 dist-gzip DIST_TARGETS = dist-xz dist-gzip
distuninstallcheck_listfiles = find . -type f -print distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@ -209,7 +209,6 @@ CC = @CC@
CCDEPMODE = @CCDEPMODE@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@ CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@ CWARNFLAGS = @CWARNFLAGS@
CYGPATH_W = @CYGPATH_W@ CYGPATH_W = @CYGPATH_W@
@ -220,13 +219,11 @@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
ECHO_C = @ECHO_C@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
FILE_MAN_DIR = @FILE_MAN_DIR@ FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
FONTTOSFNT_CFLAGS = @FONTTOSFNT_CFLAGS@ FONTTOSFNT_CFLAGS = @FONTTOSFNT_CFLAGS@
FONTTOSFNT_LIBS = @FONTTOSFNT_LIBS@ FONTTOSFNT_LIBS = @FONTTOSFNT_LIBS@
GREP = @GREP@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_CMD = @INSTALL_CMD@ INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
@ -655,6 +652,7 @@ distdir: $(DISTFILES)
dist-gzip: distdir dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__post_remove_distdir) $(am__post_remove_distdir)
dist-bzip2: distdir dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__post_remove_distdir) $(am__post_remove_distdir)
@ -662,7 +660,6 @@ dist-bzip2: distdir
dist-lzip: distdir dist-lzip: distdir
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
$(am__post_remove_distdir) $(am__post_remove_distdir)
dist-xz: distdir dist-xz: distdir
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__post_remove_distdir) $(am__post_remove_distdir)

View file

@ -13,8 +13,8 @@
m4_ifndef([AC_AUTOCONF_VERSION], m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
[m4_warning([this file was generated for autoconf 2.69. [m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to. You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely. If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])]) To do so, use the procedure documented by the package, typically 'autoreconf'.])])
@ -1318,7 +1318,7 @@ AC_SUBST([am__untar])
dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure. dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure.
dnl dnl
dnl Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. dnl Copyright (c) 2005, 2023, Oracle and/or its affiliates.
dnl dnl
dnl Permission is hereby granted, free of charge, to any person obtaining a dnl Permission is hereby granted, free of charge, to any person obtaining a
dnl copy of this software and associated documentation files (the "Software"), dnl copy of this software and associated documentation files (the "Software"),
@ -1355,7 +1355,7 @@ dnl DEALINGS IN THE SOFTWARE.
# See the "minimum version" comment for each macro you use to see what # See the "minimum version" comment for each macro you use to see what
# version you require. # version you require.
m4_defun([XORG_MACROS_VERSION],[ m4_defun([XORG_MACROS_VERSION],[
m4_define([vers_have], [1.19.2]) m4_define([vers_have], [1.20.0])
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.]))) 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_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
m4_if(m4_cmp(maj_have, maj_needed), 0,, m4_if(m4_cmp(maj_have, maj_needed), 0,,
@ -1376,7 +1376,7 @@ AM_MAINTAINER_MODE
# such as man pages and config files # such as man pages and config files
AC_DEFUN([XORG_PROG_RAWCPP],[ AC_DEFUN([XORG_PROG_RAWCPP],[
AC_REQUIRE([AC_PROG_CPP]) AC_REQUIRE([AC_PROG_CPP])
AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}], AC_PATH_TOOL(RAWCPP, [cpp], [${CPP}],
[$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib]) [$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib])
# Check for flag to avoid builtin definitions - assumes unix is predefined, # Check for flag to avoid builtin definitions - assumes unix is predefined,
@ -1686,7 +1686,7 @@ AC_SUBST(MAKE_HTML)
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-xmlto option, it allows maximum flexibilty in making decisions # the --with-xmlto option, it allows maximum flexibility in making decisions
# as whether or not to use the xmlto package. When DEFAULT is not specified, # as whether or not to use the xmlto package. When DEFAULT is not specified,
# --with-xmlto assumes 'auto'. # --with-xmlto assumes 'auto'.
# #
@ -1900,7 +1900,7 @@ AM_CONDITIONAL([HAVE_PERL], [test "$have_perl" = yes])
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-asciidoc option, it allows maximum flexibilty in making decisions # the --with-asciidoc option, it allows maximum flexibility in making decisions
# as whether or not to use the asciidoc package. When DEFAULT is not specified, # as whether or not to use the asciidoc package. When DEFAULT is not specified,
# --with-asciidoc assumes 'auto'. # --with-asciidoc assumes 'auto'.
# #
@ -1970,7 +1970,7 @@ AM_CONDITIONAL([HAVE_ASCIIDOC], [test "$have_asciidoc" = yes])
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-doxygen option, it allows maximum flexibilty in making decisions # the --with-doxygen option, it allows maximum flexibility in making decisions
# as whether or not to use the doxygen package. When DEFAULT is not specified, # as whether or not to use the doxygen package. When DEFAULT is not specified,
# --with-doxygen assumes 'auto'. # --with-doxygen assumes 'auto'.
# #
@ -2054,7 +2054,7 @@ AM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes])
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-groff option, it allows maximum flexibilty in making decisions # the --with-groff option, it allows maximum flexibility in making decisions
# as whether or not to use the groff package. When DEFAULT is not specified, # as whether or not to use the groff package. When DEFAULT is not specified,
# --with-groff assumes 'auto'. # --with-groff assumes 'auto'.
# #
@ -2162,7 +2162,7 @@ AM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes])
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-fop option, it allows maximum flexibilty in making decisions # the --with-fop option, it allows maximum flexibility in making decisions
# as whether or not to use the fop package. When DEFAULT is not specified, # as whether or not to use the fop package. When DEFAULT is not specified,
# --with-fop assumes 'auto'. # --with-fop assumes 'auto'.
# #
@ -2256,7 +2256,7 @@ AC_SUBST([M4], [$ac_cv_path_M4])
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-ps2pdf option, it allows maximum flexibilty in making decisions # the --with-ps2pdf option, it allows maximum flexibility in making decisions
# as whether or not to use the ps2pdf package. When DEFAULT is not specified, # as whether or not to use the ps2pdf package. When DEFAULT is not specified,
# --with-ps2pdf assumes 'auto'. # --with-ps2pdf assumes 'auto'.
# #
@ -2311,7 +2311,7 @@ AM_CONDITIONAL([HAVE_PS2PDF], [test "$have_ps2pdf" = yes])
# not at the appropriate level. This macro enables a builder to skip all # not at the appropriate level. This macro enables a builder to skip all
# documentation targets except traditional man pages. # documentation targets except traditional man pages.
# Combined with the specific tool checking macros XORG_WITH_*, it provides # Combined with the specific tool checking macros XORG_WITH_*, it provides
# maximum flexibilty in controlling documentation building. # maximum flexibility in controlling documentation building.
# Refer to: # Refer to:
# XORG_WITH_XMLTO --with-xmlto # XORG_WITH_XMLTO --with-xmlto
# XORG_WITH_ASCIIDOC --with-asciidoc # XORG_WITH_ASCIIDOC --with-asciidoc
@ -2344,7 +2344,7 @@ AC_MSG_RESULT([$build_docs])
# #
# This macro enables a builder to skip all developer documentation. # This macro enables a builder to skip all developer documentation.
# Combined with the specific tool checking macros XORG_WITH_*, it provides # Combined with the specific tool checking macros XORG_WITH_*, it provides
# maximum flexibilty in controlling documentation building. # maximum flexibility in controlling documentation building.
# Refer to: # Refer to:
# XORG_WITH_XMLTO --with-xmlto # XORG_WITH_XMLTO --with-xmlto
# XORG_WITH_ASCIIDOC --with-asciidoc # XORG_WITH_ASCIIDOC --with-asciidoc
@ -2377,7 +2377,7 @@ AC_MSG_RESULT([$build_devel_docs])
# #
# This macro enables a builder to skip all functional specification targets. # This macro enables a builder to skip all functional specification targets.
# Combined with the specific tool checking macros XORG_WITH_*, it provides # Combined with the specific tool checking macros XORG_WITH_*, it provides
# maximum flexibilty in controlling documentation building. # maximum flexibility in controlling documentation building.
# Refer to: # Refer to:
# XORG_WITH_XMLTO --with-xmlto # XORG_WITH_XMLTO --with-xmlto
# XORG_WITH_ASCIIDOC --with-asciidoc # XORG_WITH_ASCIIDOC --with-asciidoc
@ -2766,7 +2766,7 @@ AC_ARG_WITH(lint, [AS_HELP_STRING([--with-lint],
# Obtain platform specific info like program name and options # Obtain platform specific info like program name and options
# The lint program on FreeBSD and NetBSD is different from the one on Solaris # The lint program on FreeBSD and NetBSD is different from the one on Solaris
case $host_os in case $host_os in
*linux* | *openbsd* | *secbsd* | kfreebsd*-gnu | darwin* | cygwin*) *linux* | *openbsd* | kfreebsd*-gnu | darwin* | cygwin*)
lint_name=splint lint_name=splint
lint_options="-badflag" lint_options="-badflag"
;; ;;
@ -2852,7 +2852,11 @@ AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno])
AC_DEFUN([XORG_COMPILER_BRAND], [ AC_DEFUN([XORG_COMPILER_BRAND], [
AC_LANG_CASE( AC_LANG_CASE(
[C], [ [C], [
AC_REQUIRE([AC_PROG_CC_C99]) dnl autoconf-2.70 folded AC_PROG_CC_C99 into AC_PROG_CC
dnl and complains that AC_PROG_CC_C99 is obsolete
m4_version_prereq([2.70],
[AC_REQUIRE([AC_PROG_CC])],
[AC_REQUIRE([AC_PROG_CC_C99])])
], ],
[C++], [ [C++], [
AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([AC_PROG_CXX])
@ -2868,7 +2872,7 @@ AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
# Minimum version: 1.16.0 # Minimum version: 1.16.0
# #
# Test if the compiler works when passed the given flag as a command line argument. # Test if the compiler works when passed the given flag as a command line argument.
# If it succeeds, the flag is appeneded to the given variable. If not, it tries the # If it succeeds, the flag is appended to the given variable. If not, it tries the
# next flag in the list until there are no more options. # next flag in the list until there are no more options.
# #
# Note that this does not guarantee that the compiler supports the flag as some # Note that this does not guarantee that the compiler supports the flag as some
@ -2884,7 +2888,11 @@ AC_LANG_COMPILER_REQUIRE
AC_LANG_CASE( AC_LANG_CASE(
[C], [ [C], [
AC_REQUIRE([AC_PROG_CC_C99]) dnl autoconf-2.70 folded AC_PROG_CC_C99 into AC_PROG_CC
dnl and complains that AC_PROG_CC_C99 is obsolete
m4_version_prereq([2.70],
[AC_REQUIRE([AC_PROG_CC])],
[AC_REQUIRE([AC_PROG_CC_C99])])
define([PREFIX], [C]) define([PREFIX], [C])
define([CACHE_PREFIX], [cc]) define([CACHE_PREFIX], [cc])
define([COMPILER], [$CC]) define([COMPILER], [$CC])
@ -3025,7 +3033,7 @@ XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op])
# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align]) # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align])
# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual]) # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual])
# Turn some warnings into errors, so we don't accidently get successful builds # Turn some warnings into errors, so we don't accidentally get successful builds
# when there are problems that should be fixed. # when there are problems that should be fixed.
if test "x$SELECTIVE_WERROR" = "xyes" ; then if test "x$SELECTIVE_WERROR" = "xyes" ; then
@ -3134,23 +3142,35 @@ AC_SUBST([BASE_]PREFIX[FLAGS])
AC_LANG_CASE([C], AC_SUBST([CWARNFLAGS])) AC_LANG_CASE([C], AC_SUBST([CWARNFLAGS]))
]) # XORG_STRICT_OPTION ]) # XORG_STRICT_OPTION
# XORG_DEFAULT_OPTIONS # XORG_DEFAULT_NOCODE_OPTIONS
# -------------------- # ---------------------------
# Minimum version: 1.3.0 # Minimum version: 1.20.0
# #
# Defines default options for X.Org modules. # Defines default options for X.Org modules which don't compile code,
# such as fonts, bitmaps, cursors, and docs.
# #
AC_DEFUN([XORG_DEFAULT_OPTIONS], [ AC_DEFUN([XORG_DEFAULT_NOCODE_OPTIONS], [
AC_REQUIRE([AC_PROG_INSTALL]) AC_REQUIRE([AC_PROG_INSTALL])
XORG_COMPILER_FLAGS
XORG_CWARNFLAGS
XORG_STRICT_OPTION
XORG_RELEASE_VERSION XORG_RELEASE_VERSION
XORG_CHANGELOG XORG_CHANGELOG
XORG_INSTALL XORG_INSTALL
XORG_MANPAGE_SECTIONS XORG_MANPAGE_SECTIONS
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
[AC_SUBST([AM_DEFAULT_VERBOSITY], [1])]) [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
]) # XORG_DEFAULT_NOCODE_OPTIONS
# XORG_DEFAULT_OPTIONS
# --------------------
# Minimum version: 1.3.0
#
# Defines default options for X.Org modules which compile code.
#
AC_DEFUN([XORG_DEFAULT_OPTIONS], [
AC_REQUIRE([AC_PROG_INSTALL])
XORG_COMPILER_FLAGS
XORG_CWARNFLAGS
XORG_STRICT_OPTION
XORG_DEFAULT_NOCODE_OPTIONS
]) # XORG_DEFAULT_OPTIONS ]) # XORG_DEFAULT_OPTIONS
# XORG_INSTALL() # XORG_INSTALL()

View file

@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1999-2020 Free Software Foundation, Inc. # Copyright (C) 1999-2021 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>. # Written by Tom Tromey <tromey@cygnus.com>.
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify

View file

@ -7,12 +7,12 @@
/* Define to 1 if you have the <inttypes.h> header file. */ /* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H #undef HAVE_INTTYPES_H
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the <stdint.h> header file. */ /* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H #undef HAVE_STDINT_H
/* Define to 1 if you have the <stdio.h> header file. */
#undef HAVE_STDIO_H
/* Define to 1 if you have the <stdlib.h> header file. */ /* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H #undef HAVE_STDLIB_H
@ -64,7 +64,9 @@
/* Patch version of this package */ /* Patch version of this package */
#undef PACKAGE_VERSION_PATCHLEVEL #undef PACKAGE_VERSION_PATCHLEVEL
/* Define to 1 if you have the ANSI C header files. */ /* Define to 1 if all of the C90 standard headers exist (not just the ones
required in a freestanding environment). This macro is provided for
backward compatibility; new code need not use it. */
#undef STDC_HEADERS #undef STDC_HEADERS
/* Version number of package */ /* Version number of package */

6478
app/fonttosfnt/configure vendored

File diff suppressed because it is too large Load diff

View file

@ -23,12 +23,13 @@ dnl Process this file with autoconf to create configure.
# Initialize Autoconf # Initialize Autoconf
AC_PREREQ([2.60]) AC_PREREQ([2.60])
AC_INIT(fonttosfnt,[1.2.2], [https://gitlab.freedesktop.org/xorg/app/fonttosfnt/issues],fonttosfnt) AC_INIT(fonttosfnt, [1.2.3],
[https://gitlab.freedesktop.org/xorg/app/fonttosfnt/issues], fonttosfnt)
AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
# Initialize Automake # Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_INIT_AUTOMAKE([foreign dist-xz])
# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS # Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
m4_ifndef([XORG_MACROS_VERSION], m4_ifndef([XORG_MACROS_VERSION],

View file

@ -47,7 +47,6 @@ int
main(int argc, char **argv) main(int argc, char **argv)
{ {
int i; int i;
int rc;
char *output = NULL; char *output = NULL;
FontPtr font; FontPtr font;
@ -113,11 +112,11 @@ main(int argc, char **argv)
"The creation of an OpenType font collection is recommended.\n"); "The creation of an OpenType font collection is recommended.\n");
if(i == argc) { if(i == argc) {
rc = readFile(NULL, font); int rc = readFile(NULL, font);
if(rc != 0) if(rc != 0)
exit(1); exit(1);
} else while(i < argc) { } else while(i < argc) {
rc = readFile(argv[i], font); int rc = readFile(argv[i], font);
if(rc != 0) if(rc != 0)
exit(1); exit(1);
i++; i++;

View file

@ -161,11 +161,10 @@ FontPtr makeFont(void);
StrikePtr makeStrike(FontPtr, int, int); StrikePtr makeStrike(FontPtr, int, int);
BitmapPtr makeBitmap(StrikePtr, int, BitmapPtr makeBitmap(StrikePtr, int,
int, int, int, int, int, int, int, int, int, int, int, int,
unsigned char*, int); const unsigned char*, int);
IndexSubTablePtr makeIndexSubTables(StrikePtr, CmapPtr); IndexSubTablePtr makeIndexSubTables(StrikePtr, CmapPtr);
int fontIndex(FontPtr, int); int fontIndex(FontPtr, int);
CmapPtr makeCmap(FontPtr); CmapPtr makeCmap(FontPtr);
int findIndex(CmapPtr, int);
int findCode(CmapPtr, int); int findCode(CmapPtr, int);
BitmapPtr strikeBitmapIndex(StrikePtr, CmapPtr, int); BitmapPtr strikeBitmapIndex(StrikePtr, CmapPtr, int);
int strikeMaxWidth(StrikePtr); int strikeMaxWidth(StrikePtr);
@ -185,7 +184,6 @@ int writeFile(char *filename, FontPtr);
char *sprintf_alloc(const char *f, ...); char *sprintf_alloc(const char *f, ...);
char *vsprintf_alloc(const char *f, va_list args); char *vsprintf_alloc(const char *f, va_list args);
char *makeUTF16(const char *); char *makeUTF16(const char *);
unsigned makeName(const char*);
int macTime(int *, unsigned *); int macTime(int *, unsigned *);
unsigned faceFoundry(FT_Face); unsigned faceFoundry(FT_Face);
char *faceEncoding(FT_Face); char *faceEncoding(FT_Face);
@ -197,4 +195,10 @@ int faceWidth(FT_Face);
int faceItalicAngle(FT_Face); int faceItalicAngle(FT_Face);
int degreesToFraction(int, int*, int*); int degreesToFraction(int, int*, int*);
static inline unsigned int
makeName(const char *s)
{
return s[0] << 24 | s[1] << 16 | s[2] << 8 | s[3];
}
#endif /* _FONTTOSFNT_H_ */ #endif /* _FONTTOSFNT_H_ */

View file

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# install - install a program, script, or datafile # install - install a program, script, or datafile
scriptversion=2011-11-20.07; # UTC scriptversion=2020-11-14.01; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was # This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the # later released in X11R6 (xc/config/util/install.sh) with the
@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC
# This script is compatible with the BSD install script, but was written # This script is compatible with the BSD install script, but was written
# from scratch. # from scratch.
tab=' '
nl=' nl='
' '
IFS=" "" $nl" IFS=" $tab$nl"
# set DOITPROG to echo to test this script # Set DOITPROG to "echo" to test this script.
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-} doit=${DOITPROG-}
if test -z "$doit"; then doit_exec=${doit:-exec}
doit_exec=exec
else
doit_exec=$doit
fi
# Put in absolute file names if you don't have them in your path; # Put in absolute file names if you don't have them in your path;
# or use environment vars. # or use environment vars.
@ -68,22 +64,16 @@ mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm} rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip} stripprog=${STRIPPROG-strip}
posix_glob='?'
initialize_posix_glob='
test "$posix_glob" != "?" || {
if (set -f) 2>/dev/null; then
posix_glob=
else
posix_glob=:
fi
}
'
posix_mkdir= posix_mkdir=
# Desired mode of installed file. # Desired mode of installed file.
mode=0755 mode=0755
# Create dirs (including intermediate dirs) using mode 755.
# This is like GNU 'install' as of coreutils 8.32 (2020).
mkdir_umask=22
backupsuffix=
chgrpcmd= chgrpcmd=
chmodcmd=$chmodprog chmodcmd=$chmodprog
chowncmd= chowncmd=
@ -97,7 +87,7 @@ dir_arg=
dst_arg= dst_arg=
copy_on_change=false copy_on_change=false
no_target_directory= is_target_a_directory=possibly
usage="\ usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@ -114,18 +104,28 @@ Options:
--version display version info and exit. --version display version info and exit.
-c (ignored) -c (ignored)
-C install only if different (preserve the last data modification time) -C install only if different (preserve data modification time)
-d create directories instead of installing files. -d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP. -g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE. -m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER. -o USER $chownprog installed files to USER.
-p pass -p to $cpprog.
-s $stripprog installed files. -s $stripprog installed files.
-S SUFFIX attempt to back up existing files, with suffix SUFFIX.
-t DIRECTORY install into DIRECTORY. -t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory. -T report an error if DSTFILE is a directory.
Environment variables override the default commands: Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG RMPROG STRIPPROG
By default, rm is invoked with -f; when overridden with RMPROG,
it's up to you to specify -f if you want it.
If -S is not specified, no backups are attempted.
Email bug reports to bug-automake@gnu.org.
Automake home page: https://www.gnu.org/software/automake/
" "
while test $# -ne 0; do while test $# -ne 0; do
@ -143,8 +143,7 @@ while test $# -ne 0; do
-m) mode=$2 -m) mode=$2
case $mode in case $mode in
*' '* | *' '* | *' *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
'* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2 echo "$0: invalid mode: $mode" >&2
exit 1;; exit 1;;
esac esac
@ -153,16 +152,23 @@ while test $# -ne 0; do
-o) chowncmd="$chownprog $2" -o) chowncmd="$chownprog $2"
shift;; shift;;
-p) cpprog="$cpprog -p";;
-s) stripcmd=$stripprog;; -s) stripcmd=$stripprog;;
-t) dst_arg=$2 -S) backupsuffix="$2"
shift;;
-t)
is_target_a_directory=always
dst_arg=$2
# Protect names problematic for 'test' and other utilities. # Protect names problematic for 'test' and other utilities.
case $dst_arg in case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;; -* | [=\(\)!]) dst_arg=./$dst_arg;;
esac esac
shift;; shift;;
-T) no_target_directory=true;; -T) is_target_a_directory=never;;
--version) echo "$0 $scriptversion"; exit $?;; --version) echo "$0 $scriptversion"; exit $?;;
@ -177,6 +183,16 @@ while test $# -ne 0; do
shift shift
done done
# We allow the use of options -d and -T together, by making -d
# take the precedence; this is for compatibility with GNU install.
if test -n "$dir_arg"; then
if test -n "$dst_arg"; then
echo "$0: target directory not allowed when installing a directory." >&2
exit 1
fi
fi
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create. # When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified. # When -t is used, the destination is already specified.
@ -207,6 +223,15 @@ if test $# -eq 0; then
exit 0 exit 0
fi fi
if test -z "$dir_arg"; then
if test $# -gt 1 || test "$is_target_a_directory" = always; then
if test ! -d "$dst_arg"; then
echo "$0: $dst_arg: Is not a directory." >&2
exit 1
fi
fi
fi
if test -z "$dir_arg"; then if test -z "$dir_arg"; then
do_exit='(exit $ret); exit $ret' do_exit='(exit $ret); exit $ret'
trap "ret=129; $do_exit" 1 trap "ret=129; $do_exit" 1
@ -250,6 +275,10 @@ do
dstdir=$dst dstdir=$dst
test -d "$dstdir" test -d "$dstdir"
dstdir_status=$? dstdir_status=$?
# Don't chown directories that already exist.
if test $dstdir_status = 0; then
chowncmd=""
fi
else else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
@ -266,70 +295,36 @@ do
fi fi
dst=$dst_arg dst=$dst_arg
# If destination is a directory, append the input filename; won't work # If destination is a directory, append the input filename.
# if double slashes aren't ignored.
if test -d "$dst"; then if test -d "$dst"; then
if test -n "$no_target_directory"; then if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2 echo "$0: $dst_arg: Is a directory" >&2
exit 1 exit 1
fi fi
dstdir=$dst dstdir=$dst
dst=$dstdir/`basename "$src"` dstbase=`basename "$src"`
case $dst in
*/) dst=$dst$dstbase;;
*) dst=$dst/$dstbase;;
esac
dstdir_status=0 dstdir_status=0
else else
# Prefer dirname, but fall back on a substitute if dirname fails. dstdir=`dirname "$dst"`
dstdir=`
(dirname "$dst") 2>/dev/null ||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$dst" : 'X\(//\)[^/]' \| \
X"$dst" : 'X\(//\)$' \| \
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
echo X"$dst" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'
`
test -d "$dstdir" test -d "$dstdir"
dstdir_status=$? dstdir_status=$?
fi fi
fi fi
case $dstdir in
*/) dstdirslash=$dstdir;;
*) dstdirslash=$dstdir/;;
esac
obsolete_mkdir_used=false obsolete_mkdir_used=false
if test $dstdir_status != 0; then if test $dstdir_status != 0; then
case $posix_mkdir in case $posix_mkdir in
'') '')
# Create intermediate dirs using mode 755 as modified by the umask.
# This is like FreeBSD 'install' as of 1997-10-28.
umask=`umask`
case $stripcmd.$umask in
# Optimize common cases.
*[2367][2367]) mkdir_umask=$umask;;
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
*[0-7])
mkdir_umask=`expr $umask + 22 \
- $umask % 100 % 40 + $umask % 20 \
- $umask % 10 % 4 + $umask % 2
`;;
*) mkdir_umask=$umask,go-w;;
esac
# With -d, create the new directory with the user-specified mode. # With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask. # Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then if test -n "$dir_arg"; then
@ -339,43 +334,49 @@ do
fi fi
posix_mkdir=false posix_mkdir=false
case $umask in # The $RANDOM variable is not portable (e.g., dash). Use it
*[123567][0-7][0-7]) # here however when possible just to lower collision chance.
# POSIX mkdir -p sets u+wx bits regardless of umask, which
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
trap '
ret=$?
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
exit $ret
' 0
# Because "mkdir -p" follows existing symlinks and we likely work
# directly in world-writeable /tmp, make sure that the '$tmpdir'
# directory is successfully created first before we actually test
# 'mkdir -p'.
if (umask $mkdir_umask && if (umask $mkdir_umask &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 $mkdirprog $mkdir_mode "$tmpdir" &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
then then
if test -z "$dir_arg" || { if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m. # Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't. # other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
ls_ld_tmpdir=`ls -ld "$tmpdir"` test_tmpdir="$tmpdir/a"
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
case $ls_ld_tmpdir in case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;; d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;; d????-?--*) different_mode=755;;
*) false;; *) false;;
esac && esac &&
$mkdirprog -m$different_mode -p -- "$tmpdir" && { $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$tmpdir"` ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
} }
} }
then posix_mkdir=: then posix_mkdir=:
fi fi
rmdir "$tmpdir/d" "$tmpdir" rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
else else
# Remove any dirs left behind by ancient mkdir implementations. # Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
fi fi
trap '' 0;; trap '' 0;;
esac;;
esac esac
if if
@ -386,7 +387,7 @@ do
then : then :
else else
# The umask is ridiculous, or mkdir does not conform to POSIX, # mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the # or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go. # directory the slow way, step by step, checking for races as we go.
@ -396,14 +397,12 @@ do
*) prefix='';; *) prefix='';;
esac esac
eval "$initialize_posix_glob"
oIFS=$IFS oIFS=$IFS
IFS=/ IFS=/
$posix_glob set -f set -f
set fnord $dstdir set fnord $dstdir
shift shift
$posix_glob set +f set +f
IFS=$oIFS IFS=$oIFS
prefixes= prefixes=
@ -417,7 +416,7 @@ do
prefixes= prefixes=
else else
if $posix_mkdir; then if $posix_mkdir; then
(umask=$mkdir_umask && (umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently. # Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1 test -d "$prefix" || exit 1
@ -450,14 +449,25 @@ do
else else
# Make a couple of temp file names in the proper directory. # Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_ dsttmp=${dstdirslash}_inst.$$_
rmtmp=$dstdir/_rm.$$_ rmtmp=${dstdirslash}_rm.$$_
# Trap to clean up those temp files at exit. # Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name. # Copy the file name to the temp name.
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && (umask $cp_umask &&
{ test -z "$stripcmd" || {
# Create $dsttmp read-write so that cp doesn't create it read-only,
# which would cause strip to fail.
if test -z "$doit"; then
: >"$dsttmp" # No need to fork-exec 'touch'.
else
$doit touch "$dsttmp"
fi
}
} &&
$doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits. # and set any options; do chmod last to preserve setuid bits.
# #
@ -474,18 +484,22 @@ do
if $copy_on_change && if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
set -f &&
eval "$initialize_posix_glob" &&
$posix_glob set -f &&
set X $old && old=:$2:$4:$5:$6 && set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 &&
$posix_glob set +f && set +f &&
test "$old" = "$new" && test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then then
rm -f "$dsttmp" rm -f "$dsttmp"
else else
# If $backupsuffix is set, and the file being installed
# already exists, attempt a backup. Don't worry if it fails,
# e.g., if mv doesn't support -f.
if test -n "$backupsuffix" && test -f "$dst"; then
$doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
fi
# Rename the file to the real destination. # Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
@ -500,9 +514,9 @@ do
# file should still install successfully. # file should still install successfully.
{ {
test ! -f "$dst" || test ! -f "$dst" ||
$doit $rmcmd -f "$dst" 2>/dev/null || $doit $rmcmd "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
} || } ||
{ echo "$0: cannot unlink or rename $dst" >&2 { echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1 (exit 1); exit 1
@ -519,9 +533,9 @@ do
done done
# Local variables: # Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp) # eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion=" # time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC" # time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC" # time-stamp-end: "; # UTC"
# End: # End:

View file

@ -125,7 +125,6 @@ CC = @CC@
CCDEPMODE = @CCDEPMODE@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@ CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@ CWARNFLAGS = @CWARNFLAGS@
CYGPATH_W = @CYGPATH_W@ CYGPATH_W = @CYGPATH_W@
@ -136,13 +135,11 @@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
ECHO_C = @ECHO_C@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
FILE_MAN_DIR = @FILE_MAN_DIR@ FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
FONTTOSFNT_CFLAGS = @FONTTOSFNT_CFLAGS@ FONTTOSFNT_CFLAGS = @FONTTOSFNT_CFLAGS@
FONTTOSFNT_LIBS = @FONTTOSFNT_LIBS@ FONTTOSFNT_LIBS = @FONTTOSFNT_LIBS@
GREP = @GREP@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_CMD = @INSTALL_CMD@ INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@

View file

@ -36,40 +36,42 @@ makeFont(void)
if(font == NULL) if(font == NULL)
return NULL; return NULL;
font->numNames = 0; *font = (FontRec) {
font->names = NULL; .numNames = 0,
font->flags = 0; .names = NULL,
font->weight = 500; .flags = 0,
font->width = 5; .weight = 500,
font->italicAngle = 0; .width = 5,
font->pxMetrics.height = UNDEF; .italicAngle = 0,
font->pxMetrics.maxX = UNDEF; .pxMetrics.height = UNDEF,
font->pxMetrics.minX = UNDEF; .pxMetrics.maxX = UNDEF,
font->pxMetrics.maxY = UNDEF; .pxMetrics.minX = UNDEF,
font->pxMetrics.minY = UNDEF; .pxMetrics.maxY = UNDEF,
font->pxMetrics.xHeight = UNDEF; .pxMetrics.minY = UNDEF,
font->pxMetrics.capHeight = UNDEF; .pxMetrics.xHeight = UNDEF,
font->pxMetrics.maxAwidth = UNDEF; .pxMetrics.capHeight = UNDEF,
font->pxMetrics.awidth = UNDEF; .pxMetrics.maxAwidth = UNDEF,
font->pxMetrics.ascent = UNDEF; .pxMetrics.awidth = UNDEF,
font->pxMetrics.descent = UNDEF; .pxMetrics.ascent = UNDEF,
font->pxMetrics.underlinePosition = UNDEF; .pxMetrics.descent = UNDEF,
font->pxMetrics.underlineThickness = UNDEF; .pxMetrics.underlinePosition = UNDEF,
font->metrics.height = UNDEF; .pxMetrics.underlineThickness = UNDEF,
font->metrics.maxX = UNDEF; .metrics.height = UNDEF,
font->metrics.minX = UNDEF; .metrics.maxX = UNDEF,
font->metrics.maxY = UNDEF; .metrics.minX = UNDEF,
font->metrics.minY = UNDEF; .metrics.maxY = UNDEF,
font->metrics.xHeight = UNDEF; .metrics.minY = UNDEF,
font->metrics.capHeight = UNDEF; .metrics.xHeight = UNDEF,
font->metrics.maxAwidth = UNDEF; .metrics.capHeight = UNDEF,
font->metrics.awidth = UNDEF; .metrics.maxAwidth = UNDEF,
font->metrics.ascent = UNDEF; .metrics.awidth = UNDEF,
font->metrics.descent = UNDEF; .metrics.ascent = UNDEF,
font->metrics.underlinePosition = UNDEF; .metrics.descent = UNDEF,
font->metrics.underlineThickness = UNDEF; .metrics.underlinePosition = UNDEF,
font->foundry = makeName("UNKN"); .metrics.underlineThickness = UNDEF,
font->strikes = NULL; .foundry = makeName("UNKN"),
.strikes = NULL,
};
return font; return font;
} }
@ -90,29 +92,35 @@ makeStrike(FontPtr font, int sizeX, int sizeY)
strike = malloc(sizeof(StrikeRec)); strike = malloc(sizeof(StrikeRec));
if(strike == NULL) if(strike == NULL)
return NULL; return NULL;
strike->sizeX = sizeX; else {
strike->sizeY = sizeY; BitmapPtr **bitmaps =
strike->bitmaps =
calloc(FONT_CODES / FONT_SEGMENT_SIZE, sizeof(BitmapPtr*)); calloc(FONT_CODES / FONT_SEGMENT_SIZE, sizeof(BitmapPtr*));
if(strike->bitmaps == NULL) { if (bitmaps == NULL) {
free(strike); free(strike);
return NULL; return NULL;
} }
strike->numSbits = 0; *strike = (StrikeRec) {
strike->next = NULL; .sizeX = sizeX,
strike->bitmapSizeTableLocation = 0xDEADFACE; .sizeY = sizeY,
strike->indexSubTables = NULL; .bitmaps = bitmaps,
.numSbits = 0,
.next = NULL,
.bitmapSizeTableLocation = 0xDEADFACE,
.indexSubTables = NULL,
};
if (last_strike) if (last_strike)
last_strike->next = strike; last_strike->next = strike;
else else
font->strikes = strike; font->strikes = strike;
}
return strike; return strike;
} }
BitmapPtr BitmapPtr
makeBitmap(StrikePtr strike, int code, makeBitmap(StrikePtr strike, int code,
int advanceWidth, int horiBearingX, int horiBearingY, int advanceWidth, int horiBearingX, int horiBearingY,
int width, int height, int stride, unsigned char *raster, int crop) int width, int height, int stride,
const unsigned char *raster, int crop)
{ {
BitmapPtr bitmap; BitmapPtr bitmap;
int i, j, x, y; int i, j, x, y;
@ -122,12 +130,14 @@ makeBitmap(StrikePtr strike, int code,
if(bitmap == NULL) if(bitmap == NULL)
return NULL; return NULL;
bitmap->index = -1; *bitmap = (BitmapRec) {
bitmap->width = 0; .index = -1,
bitmap->height = 0; .width = 0,
bitmap->stride = 0; .height = 0,
bitmap->raster = NULL; .stride = 0,
bitmap->location = 0xDEADFACE; .raster = NULL,
.location = 0xDEADFACE,
};
i = code / FONT_SEGMENT_SIZE; i = code / FONT_SEGMENT_SIZE;
j = code % FONT_SEGMENT_SIZE; j = code % FONT_SEGMENT_SIZE;
@ -243,9 +253,8 @@ makeBitmap(StrikePtr strike, int code,
IndexSubTablePtr IndexSubTablePtr
makeIndexSubTables(StrikePtr strike, CmapPtr cmap) makeIndexSubTables(StrikePtr strike, CmapPtr cmap)
{ {
IndexSubTablePtr table, first, last; IndexSubTablePtr first, last;
BitmapPtr bitmap0, bitmap; int index;
int index, n;
first = NULL; first = NULL;
last = NULL; last = NULL;
@ -262,6 +271,10 @@ makeIndexSubTables(StrikePtr strike, CmapPtr cmap)
index = 0; index = 0;
while(index < 0xFFFF) { while(index < 0xFFFF) {
int constantMetrics = 1; int constantMetrics = 1;
int n;
IndexSubTablePtr table;
BitmapPtr bitmap0, bitmap;
bitmap0 = strikeBitmapIndex(strike, cmap, index); bitmap0 = strikeBitmapIndex(strike, cmap, index);
if(bitmap0 == NULL) { if(bitmap0 == NULL) {
index++; index++;
@ -295,12 +308,14 @@ makeIndexSubTables(StrikePtr strike, CmapPtr cmap)
constantMetrics = 0; constantMetrics = 0;
table = malloc(sizeof(IndexSubTableRec)); table = malloc(sizeof(IndexSubTableRec));
table->firstGlyphIndex = index; *table = (IndexSubTableRec) {
table->lastGlyphIndex = index + n - 1; .firstGlyphIndex = index,
table->constantMetrics = constantMetrics; .lastGlyphIndex = index + n - 1,
table->location = 0xDEADFACE; .constantMetrics = constantMetrics,
table->lastLocation = 0xDEADFACE; .location = 0xDEADFACE,
table->next = NULL; .lastLocation = 0xDEADFACE,
.next = NULL,
};
if(first == NULL) { if(first == NULL) {
first = table; first = table;
@ -318,13 +333,12 @@ int
fontIndex(FontPtr font, int code) fontIndex(FontPtr font, int code)
{ {
StrikePtr strike; StrikePtr strike;
BitmapPtr bitmap;
if(code == 0) if(code == 0)
return 0; return 0;
strike = font->strikes; strike = font->strikes;
while(strike) { while(strike) {
bitmap = STRIKE_BITMAP(strike, code); BitmapPtr bitmap = STRIKE_BITMAP(strike, code);
if(bitmap) if(bitmap)
return bitmap->index; return bitmap->index;
strike = strike->next; strike = strike->next;
@ -338,11 +352,12 @@ makeCmap(FontPtr font)
CmapPtr cmap_head = NULL; CmapPtr cmap_head = NULL;
CmapPtr cmap_last = NULL; CmapPtr cmap_last = NULL;
CmapPtr cmap; CmapPtr cmap;
int code, i, index, maxindex = 0; int code, maxindex = 0;
code = 0; code = 0;
while(code < FONT_CODES) { while(code < FONT_CODES) {
index = fontIndex(font, code); int i;
int index = fontIndex(font, code);
if(index < 0) { if(index < 0) {
code++; code++;
continue; continue;
@ -355,11 +370,13 @@ makeCmap(FontPtr font)
cmap = malloc(sizeof(CmapRec)); cmap = malloc(sizeof(CmapRec));
if(cmap == NULL) if(cmap == NULL)
return NULL; return NULL;
cmap->startCode = code; *cmap = (CmapRec) {
cmap->endCode = code + i - 1; .startCode = code,
cmap->index = index; .endCode = code + i - 1,
cmap->next = NULL; .index = index,
cmap->maxindex = 0; .next = NULL,
.maxindex = 0,
};
if(maxindex < index + i - 1) if(maxindex < index + i - 1)
maxindex = index + i - 1; maxindex = index + i - 1;
if(cmap_head == NULL) if(cmap_head == NULL)
@ -374,7 +391,7 @@ makeCmap(FontPtr font)
cmap_head->inverse = calloc(maxindex + 1, sizeof(int)); cmap_head->inverse = calloc(maxindex + 1, sizeof(int));
cmap = cmap_head; cmap = cmap_head;
while(cmap) { while(cmap) {
for(i = cmap->index; for(int i = cmap->index;
i <= cmap->endCode - cmap->startCode + cmap->index; i++) { i <= cmap->endCode - cmap->startCode + cmap->index; i++) {
cmap_head->inverse[i] = cmap_head->inverse[i] =
i - cmap->index + cmap->startCode; i - cmap->index + cmap->startCode;
@ -385,21 +402,6 @@ makeCmap(FontPtr font)
return cmap_head; return cmap_head;
} }
int
findIndex(CmapPtr cmap_head, int code)
{
CmapPtr cmap;
cmap = cmap_head;
while(cmap) {
if(cmap->endCode > code)
return -1;
if(cmap->startCode <= code)
return cmap->index + code - cmap->startCode;
cmap = cmap->next;
}
return -1;
}
int int
findCode(CmapPtr cmap_head, int index) findCode(CmapPtr cmap_head, int index)
{ {
@ -428,12 +430,10 @@ strikeBitmapIndex(StrikePtr strike, CmapPtr cmap, int index)
int int
strikeMaxWidth(StrikePtr strike) strikeMaxWidth(StrikePtr strike)
{ {
BitmapPtr bitmap;
int i;
int width_max = 0; int width_max = 0;
for(i = 0; i < FONT_CODES; i++) { for(int i = 0; i < FONT_CODES; i++) {
bitmap = STRIKE_BITMAP(strike, i); BitmapPtr bitmap = STRIKE_BITMAP(strike, i);
if(!bitmap) if(!bitmap)
continue; continue;
if(bitmap->advanceWidth > width_max) if(bitmap->advanceWidth > width_max)
@ -450,11 +450,10 @@ glyphMetrics(FontPtr font, int code,
int *x_max_return, int *y_max_return) int *x_max_return, int *y_max_return)
{ {
StrikePtr strike; StrikePtr strike;
BitmapPtr bitmap;
strike = font->strikes; strike = font->strikes;
while(strike) { while(strike) {
bitmap = STRIKE_BITMAP(strike, code); BitmapPtr bitmap = STRIKE_BITMAP(strike, code);
if(bitmap) { if(bitmap) {
if(width_return) if(width_return)
*width_return = *width_return =

View file

@ -100,7 +100,9 @@ vsprintf_alloc(const char *f, va_list args)
{ {
int n, size = 12; int n, size = 12;
char *string; char *string;
#if HAVE_DECL_VA_COPY
va_list args_copy; va_list args_copy;
#endif
while(1) { while(1) {
if(size > 4096) if(size > 4096)
@ -132,24 +134,17 @@ vsprintf_alloc(const char *f, va_list args)
char * char *
makeUTF16(const char *string) makeUTF16(const char *string)
{ {
int i;
int n = strlen(string); int n = strlen(string);
char *value = malloc(2 * n); char *value = malloc(2 * n);
if(!value) if(!value)
return NULL; return NULL;
for(i = 0; i < n; i++) { for(int i = 0; i < n; i++) {
value[2 * i] = '\0'; value[2 * i] = '\0';
value[2 * i + 1] = string[i]; value[2 * i + 1] = string[i];
} }
return value; return value;
} }
unsigned
makeName(const char *s)
{
return s[0] << 24 | s[1] << 16 | s[2] << 8 | s[3];
}
/* Like mktime(3), but UTC rather than local time */ /* Like mktime(3), but UTC rather than local time */
#if defined(HAVE_TIMEGM) #if defined(HAVE_TIMEGM)
static time_t static time_t
@ -445,7 +440,6 @@ degreesToFraction(int deg, int *num, int *den)
{ {
double n, d; double n, d;
double rad, val; double rad, val;
int i;
if(deg <= -(60 * TWO_SIXTEENTH) || deg >= (60 * TWO_SIXTEENTH)) if(deg <= -(60 * TWO_SIXTEENTH) || deg >= (60 * TWO_SIXTEENTH))
goto fail; goto fail;
@ -460,7 +454,7 @@ degreesToFraction(int deg, int *num, int *den)
val = atan2(n, d); val = atan2(n, d);
/* There must be a cleaner way */ /* There must be a cleaner way */
for(i = 1; i < 10000; i++) { for(int i = 1; i < 10000; i++) {
if((int)(d * i) != 0.0 && if((int)(d * i) != 0.0 &&
fabs(atan2(ROUND(n * i), ROUND(d * i)) - val) < 0.05) { fabs(atan2(ROUND(n * i), ROUND(d * i)) - val) < 0.05) {
*num = (int)ROUND(n * i); *num = (int)ROUND(n * i);

View file

@ -208,7 +208,6 @@ readULONG(FILE *out)
void void
fontMetrics(FontPtr font) fontMetrics(FontPtr font)
{ {
int i, rc;
double sumAwidth = 0; double sumAwidth = 0;
unsigned count = 0; unsigned count = 0;
@ -218,9 +217,9 @@ fontMetrics(FontPtr font)
font->metrics.minX = 10000 * TWO_SIXTEENTH; font->metrics.minX = 10000 * TWO_SIXTEENTH;
font->metrics.minY = 10000 * TWO_SIXTEENTH; font->metrics.minY = 10000 * TWO_SIXTEENTH;
for(i = 0; i < FONT_CODES; i++) { for(int i = 0; i < FONT_CODES; i++) {
int awidth, x0, y0, x1, y1; int awidth, x0, y0, x1, y1;
rc = glyphMetrics(font, i, &awidth, &x0, &y0, &x1, &y1); int rc = glyphMetrics(font, i, &awidth, &x0, &y0, &x1, &y1);
if(rc < 0) if(rc < 0)
continue; continue;
@ -483,7 +482,6 @@ static unsigned
computeChecksum(FILE *out, int offset, int length) computeChecksum(FILE *out, int offset, int length)
{ {
int rc; int rc;
int i;
unsigned sum = 0; unsigned sum = 0;
if(offset % 4 != 0) { if(offset % 4 != 0) {
@ -498,7 +496,7 @@ computeChecksum(FILE *out, int offset, int length)
} }
/* This relies on the fact that we always pad tables with zeroes. */ /* This relies on the fact that we always pad tables with zeroes. */
for(i = 0; i < length; i += 4) { for(int i = 0; i < length; i += 4) {
sum += readULONG(out); sum += readULONG(out);
} }
return sum; return sum;
@ -507,12 +505,9 @@ computeChecksum(FILE *out, int offset, int length)
static int static int
fixupDir(FILE *out, FontPtr font, int numTables, int *offset, int *length) fixupDir(FILE *out, FontPtr font, int numTables, int *offset, int *length)
{ {
int rc, i; for(int i = 0; i < numTables; i++) {
unsigned sum; unsigned sum = computeChecksum(out, offset[i], length[i]);
int rc = fseek(out, 12 + 16 * i + 4, SEEK_SET);
for(i = 0; i < numTables; i++) {
sum = computeChecksum(out, offset[i], length[i]);
rc = fseek(out, 12 + 16 * i + 4, SEEK_SET);
if(rc != 0) { if(rc != 0) {
perror("Couldn't seek"); perror("Couldn't seek");
return -1; return -1;
@ -577,19 +572,18 @@ static int
outputRaster(FILE *out, char *raster, int width, int height, int stride, outputRaster(FILE *out, char *raster, int width, int height, int stride,
int bit_aligned) int bit_aligned)
{ {
int i, j;
int len = 0; int len = 0;
if(!bit_aligned || width % 8 == 0) { if(!bit_aligned || width % 8 == 0) {
for(i = 0; i < height; i++) { for(int i = 0; i < height; i++) {
writeCHARs(out, raster + i * stride, (width + 7) / 8); writeCHARs(out, raster + i * stride, (width + 7) / 8);
len += (width + 7) / 8; len += (width + 7) / 8;
} }
} else { } else {
int bit = 0; int bit = 0;
unsigned char v = 0; unsigned char v = 0;
for(i = 0; i < height; i++) { for(int i = 0; i < height; i++) {
for(j = 0; j < width; j++) { for(int j = 0; j < width; j++) {
if(BITREF(raster, stride, j, i)) if(BITREF(raster, stride, j, i))
v |= 1 << (7 - bit); v |= 1 << (7 - bit);
bit++; bit++;
@ -613,9 +607,6 @@ static int
writeEBDT(FILE* out, FontPtr font) writeEBDT(FILE* out, FontPtr font)
{ {
StrikePtr strike; StrikePtr strike;
BitmapPtr bitmap;
IndexSubTablePtr table;
int i;
int offset; int offset;
int ebdt_start; int ebdt_start;
@ -626,10 +617,10 @@ writeEBDT(FILE* out, FontPtr font)
strike = font->strikes; strike = font->strikes;
while(strike) { while(strike) {
table = strike->indexSubTables; IndexSubTablePtr table = strike->indexSubTables;
while(table) { while(table) {
for(i = table->firstGlyphIndex; i <= table->lastGlyphIndex; i++) { for(int i = table->firstGlyphIndex; i <= table->lastGlyphIndex; i++) {
bitmap = strikeBitmapIndex(strike, current_cmap, i); BitmapPtr bitmap = strikeBitmapIndex(strike, current_cmap, i);
bitmap->location = offset; bitmap->location = offset;
if(bit_aligned_flag && table->constantMetrics) { if(bit_aligned_flag && table->constantMetrics) {
/* image format 5 */ /* image format 5 */
@ -662,9 +653,8 @@ writeEBDT(FILE* out, FontPtr font)
static int static int
writeEBLC(FILE* out, FontPtr font) writeEBLC(FILE* out, FontPtr font)
{ {
int i, rc, numstrikes, eblc_start, num, den; int numstrikes, eblc_start, num, den;
StrikePtr strike; StrikePtr strike;
IndexSubTablePtr table;
degreesToFraction(font->italicAngle, &num, &den); degreesToFraction(font->italicAngle, &num, &den);
@ -688,7 +678,7 @@ writeEBLC(FILE* out, FontPtr font)
writeULONG(out, 0xDEADFACE); /* indexTablesSize */ writeULONG(out, 0xDEADFACE); /* indexTablesSize */
writeULONG(out, 0xDEADFACE); /* numberOfIndexSubTables */ writeULONG(out, 0xDEADFACE); /* numberOfIndexSubTables */
writeULONG(out, 0); /* colorRef */ writeULONG(out, 0); /* colorRef */
for (i = 0; i <= 1; i++) { for (int i = 0; i <= 1; i++) {
writeCHAR(out, font->pxMetrics.ascent); /* ascender */ writeCHAR(out, font->pxMetrics.ascent); /* ascender */
writeCHAR(out, -font->pxMetrics.descent); /* descender */ writeCHAR(out, -font->pxMetrics.descent); /* descender */
writeBYTE(out, strikeMaxWidth(strike)); /* widthMax */ writeBYTE(out, strikeMaxWidth(strike)); /* widthMax */
@ -714,8 +704,9 @@ writeEBLC(FILE* out, FontPtr font)
/* indexSubTableArray, one per strike */ /* indexSubTableArray, one per strike */
strike = font->strikes; strike = font->strikes;
while(strike) { while(strike) {
int endoffset; int endoffset, rc;
int numtables = 0; int numtables = 0;
IndexSubTablePtr table;
strike->indexSubTableLocation = ftell(out); strike->indexSubTableLocation = ftell(out);
table = strike->indexSubTables; table = strike->indexSubTables;
@ -749,12 +740,11 @@ writeEBLC(FILE* out, FontPtr font)
/* actual indexSubTables */ /* actual indexSubTables */
strike = font->strikes; strike = font->strikes;
while(strike) { while(strike) {
table = strike->indexSubTables; IndexSubTablePtr table = strike->indexSubTables;
while(table) { while(table) {
int location; int location, rc;
int data_location; int data_location;
int short_offsets; int short_offsets;
int offset;
location = ftell(out); location = ftell(out);
if (location == -1) { if (location == -1) {
@ -777,7 +767,7 @@ writeEBLC(FILE* out, FontPtr font)
strikeBitmapIndex(strike, current_cmap, strikeBitmapIndex(strike, current_cmap,
table->firstGlyphIndex)->location; table->firstGlyphIndex)->location;
short_offsets = 1; short_offsets = 1;
for(i = table->firstGlyphIndex; i <= table->lastGlyphIndex; i++) { for(int i = table->firstGlyphIndex; i <= table->lastGlyphIndex; i++) {
if(strikeBitmapIndex(strike, current_cmap, i)->location - if(strikeBitmapIndex(strike, current_cmap, i)->location -
data_location > 0xFFFF) { data_location > 0xFFFF) {
short_offsets = 0; short_offsets = 0;
@ -822,9 +812,9 @@ writeEBLC(FILE* out, FontPtr font)
writeCHAR(out, bitmap->horiBearingY); /* vertBearingY */ writeCHAR(out, bitmap->horiBearingY); /* vertBearingY */
writeBYTE(out, font->metrics.maxAwidth); /* vertAdvance */ writeBYTE(out, font->metrics.maxAwidth); /* vertAdvance */
} else { } else {
for(i = table->firstGlyphIndex; for(int i = table->firstGlyphIndex;
i <= table->lastGlyphIndex; i++) { i <= table->lastGlyphIndex; i++) {
offset = int offset =
strikeBitmapIndex(strike, current_cmap, i)->location - strikeBitmapIndex(strike, current_cmap, i)->location -
data_location; data_location;
if(short_offsets) if(short_offsets)
@ -975,10 +965,8 @@ writehhea(FILE* out, FontPtr font)
static int static int
writehmtx(FILE* out, FontPtr font) writehmtx(FILE* out, FontPtr font)
{ {
int rc, i; for(int i = 0; i <= numglyphs; i++) {
int code, width, lsb, rc;
for(i = 0; i <= numglyphs; i++) {
int code, width, lsb;
code = findCode(current_cmap, i); code = findCode(current_cmap, i);
if(code < 0) if(code < 0)
rc = -1; rc = -1;
@ -1001,10 +989,8 @@ writehmtx(FILE* out, FontPtr font)
static int static int
writeloca(FILE* out, FontPtr font) writeloca(FILE* out, FontPtr font)
{ {
int i;
/* All glyphs undefined -- loca table is empty, so offset 0 */ /* All glyphs undefined -- loca table is empty, so offset 0 */
for(i = 0; i < numglyphs; i++) { for(int i = 0; i < numglyphs; i++) {
writeSHORT(out, 0); writeSHORT(out, 0);
} }
writeSHORT(out, 0); writeSHORT(out, 0);
@ -1035,14 +1021,13 @@ writemaxp(FILE* out, FontPtr font)
static int static int
writename(FILE* out, FontPtr font) writename(FILE* out, FontPtr font)
{ {
int i;
int offset; int offset;
writeUSHORT(out, 0); /* format selector */ writeUSHORT(out, 0); /* format selector */
writeUSHORT(out, font->numNames); writeUSHORT(out, font->numNames);
writeUSHORT(out, 6 + font->numNames * 12); /* offset to string storage */ writeUSHORT(out, 6 + font->numNames * 12); /* offset to string storage */
offset = 0; offset = 0;
for(i = 0; i < font->numNames; i++) { for(int i = 0; i < font->numNames; i++) {
writeUSHORT(out, 3); /* platform id -- Microsoft */ writeUSHORT(out, 3); /* platform id -- Microsoft */
writeUSHORT(out, 1); /* encoding -- Unicode */ writeUSHORT(out, 1); /* encoding -- Unicode */
writeUSHORT(out, 0x409); /* language id -- American English */ writeUSHORT(out, 0x409); /* language id -- American English */
@ -1051,7 +1036,7 @@ writename(FILE* out, FontPtr font)
writeUSHORT(out, offset); /* string offset */ writeUSHORT(out, offset); /* string offset */
offset += font->names[i].size; offset += font->names[i].size;
} }
for(i = 0; i < font->numNames; i++) for(int i = 0; i < font->numNames; i++)
writeCHARs(out, font->names[i].value, font->names[i].size); writeCHARs(out, font->names[i].value, font->names[i].size);
return 0; return 0;
} }
@ -1059,12 +1044,13 @@ writename(FILE* out, FontPtr font)
static int static int
writepost(FILE* out, FontPtr font) writepost(FILE* out, FontPtr font)
{ {
int i, rc, previous_width, width, fixed_pitch; int previous_width, fixed_pitch;
fixed_pitch = 1; fixed_pitch = 1;
previous_width = -1; previous_width = -1;
for(i = 0; i < FONT_CODES; i++) { for(int i = 0; i < FONT_CODES; i++) {
rc = glyphMetrics(font, i, &width, NULL, NULL, NULL, NULL); int width = previous_width;
int rc = glyphMetrics(font, i, &width, NULL, NULL, NULL, NULL);
if(rc < 0) if(rc < 0)
continue; continue;
if(previous_width >= 0) { if(previous_width >= 0) {

View file

@ -1,3 +1,105 @@
commit 4ce1a96d300a9d63a2306331000878d6f8c34a3e
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Jan 20 12:25:47 2024 -0800
xbiff 1.0.5
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit f7b3bb94462ea5d51514cc32d2808b5b02cea24b
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Sep 23 10:56:27 2023 -0700
Use C99 struct initializers
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 2c513f4ab38187dc7268f898e5db87eab3983715
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Feb 5 11:34:44 2023 -0800
List which options were unrecognized before printing usage message
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 0f9f41f177b4713a6792a2bc87dfbb186b8926bd
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Feb 5 11:34:18 2023 -0800
Add -help option
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 44cc442a633a3ce39603fc879793a4f51b6ae132
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Feb 5 11:19:32 2023 -0800
Fix -version handling to not require opening a display first
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit ed933c78bf1208140baf6103dc5ab81080f6c6fb
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Jan 28 10:34:11 2023 -0800
Add -version option
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit fe643332c824fdd0e4f8243e5c1e67c6370d0e5a
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Jan 28 10:26:33 2023 -0800
Combine usage message into a single string
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit ffbfe65382c8f267139b87630976700c0e80b435
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Jan 28 10:12:58 2023 -0800
Use XtAsprintf instead of manual mallocing and copying of strings
Raises minimum libXt requirement to 1.1.0
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 7862d8d80e8612b3e7285ce2fe3ec901fda05fe6
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Tue Dec 20 12:21:37 2022 -0800
configure: Use AC_SYS_LARGEFILE to enable large file support
Also adds include of "config.h" before any other header files
are included, to avoid mismatch of _FILE_OFFSET_BITS when
processing other header files.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit c3d0f59af3626b73c32e8e03a41d6a712909c7af
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Thu Jul 28 17:30:21 2022 -0700
gitlab CI: stop requiring Signed-off-by in commits
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 30528211ad661e9a3d53f6f155a6a6deac334e00
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Dec 4 10:37:17 2021 -0800
Build xz tarballs instead of bzip2
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit a5c655d67994c905629a5caae2f3e2d88b155f8c
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Dec 4 10:37:14 2021 -0800
gitlab CI: add a basic build test
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit a757ec8b8f867f09deb1e95a61f07a6a6227e77c commit a757ec8b8f867f09deb1e95a61f07a6a6227e77c
Author: Alan Coopersmith <alan.coopersmith@oracle.com> Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Jul 14 11:29:14 2019 -0700 Date: Sun Jul 14 11:29:14 2019 -0700

View file

@ -40,6 +40,10 @@ from the X Consortium.
* XBiff*emptyPixmap: mailempty * XBiff*emptyPixmap: mailempty
*/ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <X11/IntrinsicP.h> /* for toolkit stuff */ #include <X11/IntrinsicP.h> /* for toolkit stuff */
#include <X11/StringDefs.h> /* for useful atom names */ #include <X11/StringDefs.h> /* for useful atom names */
#include <X11/cursorfont.h> /* for cursor constants */ #include <X11/cursorfont.h> /* for cursor constants */
@ -226,14 +230,14 @@ WidgetClass mailboxWidgetClass = (WidgetClass) &mailboxClassRec;
static GC get_mailbox_gc (MailboxWidget w) static GC get_mailbox_gc (MailboxWidget w)
{ {
XtGCMask valuemask; XtGCMask valuemask
XGCValues xgcv; = GCForeground | GCBackground | GCFunction | GCGraphicsExposures;
XGCValues xgcv = {
valuemask = GCForeground | GCBackground | GCFunction | GCGraphicsExposures; .foreground = w->mailbox.foreground_pixel,
xgcv.foreground = w->mailbox.foreground_pixel; .background = w->core.background_pixel,
xgcv.background = w->core.background_pixel; .function = GXcopy,
xgcv.function = GXcopy; .graphics_exposures = False /* this is Bool, not Boolean */
xgcv.graphics_exposures = False; /* this is Bool, not Boolean */ };
return (XtGetGC ((Widget) w, valuemask, &xgcv)); return (XtGetGC ((Widget) w, valuemask, &xgcv));
} }
@ -541,14 +545,10 @@ static void GetMailFile (MailboxWidget w)
} }
#endif #endif
if ((mailpath = getenv("MAIL"))) { if ((mailpath = getenv("MAIL"))) {
w->mailbox.filename = XtMalloc (strlen (mailpath) + 1); XtAsprintf(&w->mailbox.filename, "%s", mailpath);
strcpy (w->mailbox.filename, mailpath);
} else { } else {
w->mailbox.filename = XtMalloc (strlen (MAILBOX_DIRECTORY) + 1 XtAsprintf(&w->mailbox.filename, "%s/%s",
+ strlen (username) + 1); MAILBOX_DIRECTORY, username);
strcpy (w->mailbox.filename, MAILBOX_DIRECTORY);
strcat (w->mailbox.filename, "/");
strcat (w->mailbox.filename, username);
} }
return; return;
} }

View file

@ -180,9 +180,9 @@ am__relativize = \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \ done; \
reldir="$$dir2" reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.xz
GZIP_ENV = --best GZIP_ENV = --best
DIST_TARGETS = dist-bzip2 dist-gzip DIST_TARGETS = dist-xz dist-gzip
distuninstallcheck_listfiles = find . -type f -print distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@ -203,7 +203,6 @@ CC = @CC@
CCDEPMODE = @CCDEPMODE@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@ CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@ CWARNFLAGS = @CWARNFLAGS@
CYGPATH_W = @CYGPATH_W@ CYGPATH_W = @CYGPATH_W@
@ -214,11 +213,9 @@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
ECHO_C = @ECHO_C@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
FILE_MAN_DIR = @FILE_MAN_DIR@ FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_CMD = @INSTALL_CMD@ INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
@ -300,6 +297,7 @@ pdfdir = @pdfdir@
prefix = @prefix@ prefix = @prefix@
program_transform_name = @program_transform_name@ program_transform_name = @program_transform_name@
psdir = @psdir@ psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@ srcdir = @srcdir@
@ -646,6 +644,7 @@ distdir: $(DISTFILES)
dist-gzip: distdir dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__post_remove_distdir) $(am__post_remove_distdir)
dist-bzip2: distdir dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__post_remove_distdir) $(am__post_remove_distdir)
@ -653,7 +652,6 @@ dist-bzip2: distdir
dist-lzip: distdir dist-lzip: distdir
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
$(am__post_remove_distdir) $(am__post_remove_distdir)
dist-xz: distdir dist-xz: distdir
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__post_remove_distdir) $(am__post_remove_distdir)

84
app/xbiff/aclocal.m4 vendored
View file

@ -13,15 +13,15 @@
m4_ifndef([AC_AUTOCONF_VERSION], m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
[m4_warning([this file was generated for autoconf 2.69. [m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to. You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely. If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])]) To do so, use the procedure documented by the package, typically 'autoreconf'.])])
dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
dnl serial 11 (pkg-config-0.29.1) # serial 12 (pkg-config-0.29.2)
dnl
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>. dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com> dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
dnl dnl
@ -62,7 +62,7 @@ dnl
dnl See the "Since" comment for each macro you use to see what version dnl See the "Since" comment for each macro you use to see what version
dnl of the macros you require. dnl of the macros you require.
m4_defun([PKG_PREREQ], m4_defun([PKG_PREREQ],
[m4_define([PKG_MACROS_VERSION], [0.29.1]) [m4_define([PKG_MACROS_VERSION], [0.29.2])
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -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])]) [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
])dnl PKG_PREREQ ])dnl PKG_PREREQ
@ -163,7 +163,7 @@ AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
pkg_failed=no pkg_failed=no
AC_MSG_CHECKING([for $1]) AC_MSG_CHECKING([for $2])
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
_PKG_CONFIG([$1][_LIBS], [libs], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2])
@ -1318,7 +1318,7 @@ AC_SUBST([am__untar])
dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure. dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure.
dnl dnl
dnl Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. dnl Copyright (c) 2005, 2023, Oracle and/or its affiliates.
dnl dnl
dnl Permission is hereby granted, free of charge, to any person obtaining a dnl Permission is hereby granted, free of charge, to any person obtaining a
dnl copy of this software and associated documentation files (the "Software"), dnl copy of this software and associated documentation files (the "Software"),
@ -1355,7 +1355,7 @@ dnl DEALINGS IN THE SOFTWARE.
# See the "minimum version" comment for each macro you use to see what # See the "minimum version" comment for each macro you use to see what
# version you require. # version you require.
m4_defun([XORG_MACROS_VERSION],[ m4_defun([XORG_MACROS_VERSION],[
m4_define([vers_have], [1.19.2]) m4_define([vers_have], [1.20.0])
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.]))) 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_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
m4_if(m4_cmp(maj_have, maj_needed), 0,, m4_if(m4_cmp(maj_have, maj_needed), 0,,
@ -1376,7 +1376,7 @@ AM_MAINTAINER_MODE
# such as man pages and config files # such as man pages and config files
AC_DEFUN([XORG_PROG_RAWCPP],[ AC_DEFUN([XORG_PROG_RAWCPP],[
AC_REQUIRE([AC_PROG_CPP]) AC_REQUIRE([AC_PROG_CPP])
AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}], AC_PATH_TOOL(RAWCPP, [cpp], [${CPP}],
[$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib]) [$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib])
# Check for flag to avoid builtin definitions - assumes unix is predefined, # Check for flag to avoid builtin definitions - assumes unix is predefined,
@ -1686,7 +1686,7 @@ AC_SUBST(MAKE_HTML)
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-xmlto option, it allows maximum flexibilty in making decisions # the --with-xmlto option, it allows maximum flexibility in making decisions
# as whether or not to use the xmlto package. When DEFAULT is not specified, # as whether or not to use the xmlto package. When DEFAULT is not specified,
# --with-xmlto assumes 'auto'. # --with-xmlto assumes 'auto'.
# #
@ -1900,7 +1900,7 @@ AM_CONDITIONAL([HAVE_PERL], [test "$have_perl" = yes])
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-asciidoc option, it allows maximum flexibilty in making decisions # the --with-asciidoc option, it allows maximum flexibility in making decisions
# as whether or not to use the asciidoc package. When DEFAULT is not specified, # as whether or not to use the asciidoc package. When DEFAULT is not specified,
# --with-asciidoc assumes 'auto'. # --with-asciidoc assumes 'auto'.
# #
@ -1970,7 +1970,7 @@ AM_CONDITIONAL([HAVE_ASCIIDOC], [test "$have_asciidoc" = yes])
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-doxygen option, it allows maximum flexibilty in making decisions # the --with-doxygen option, it allows maximum flexibility in making decisions
# as whether or not to use the doxygen package. When DEFAULT is not specified, # as whether or not to use the doxygen package. When DEFAULT is not specified,
# --with-doxygen assumes 'auto'. # --with-doxygen assumes 'auto'.
# #
@ -2054,7 +2054,7 @@ AM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes])
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-groff option, it allows maximum flexibilty in making decisions # the --with-groff option, it allows maximum flexibility in making decisions
# as whether or not to use the groff package. When DEFAULT is not specified, # as whether or not to use the groff package. When DEFAULT is not specified,
# --with-groff assumes 'auto'. # --with-groff assumes 'auto'.
# #
@ -2162,7 +2162,7 @@ AM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes])
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-fop option, it allows maximum flexibilty in making decisions # the --with-fop option, it allows maximum flexibility in making decisions
# as whether or not to use the fop package. When DEFAULT is not specified, # as whether or not to use the fop package. When DEFAULT is not specified,
# --with-fop assumes 'auto'. # --with-fop assumes 'auto'.
# #
@ -2256,7 +2256,7 @@ AC_SUBST([M4], [$ac_cv_path_M4])
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-ps2pdf option, it allows maximum flexibilty in making decisions # the --with-ps2pdf option, it allows maximum flexibility in making decisions
# as whether or not to use the ps2pdf package. When DEFAULT is not specified, # as whether or not to use the ps2pdf package. When DEFAULT is not specified,
# --with-ps2pdf assumes 'auto'. # --with-ps2pdf assumes 'auto'.
# #
@ -2311,7 +2311,7 @@ AM_CONDITIONAL([HAVE_PS2PDF], [test "$have_ps2pdf" = yes])
# not at the appropriate level. This macro enables a builder to skip all # not at the appropriate level. This macro enables a builder to skip all
# documentation targets except traditional man pages. # documentation targets except traditional man pages.
# Combined with the specific tool checking macros XORG_WITH_*, it provides # Combined with the specific tool checking macros XORG_WITH_*, it provides
# maximum flexibilty in controlling documentation building. # maximum flexibility in controlling documentation building.
# Refer to: # Refer to:
# XORG_WITH_XMLTO --with-xmlto # XORG_WITH_XMLTO --with-xmlto
# XORG_WITH_ASCIIDOC --with-asciidoc # XORG_WITH_ASCIIDOC --with-asciidoc
@ -2344,7 +2344,7 @@ AC_MSG_RESULT([$build_docs])
# #
# This macro enables a builder to skip all developer documentation. # This macro enables a builder to skip all developer documentation.
# Combined with the specific tool checking macros XORG_WITH_*, it provides # Combined with the specific tool checking macros XORG_WITH_*, it provides
# maximum flexibilty in controlling documentation building. # maximum flexibility in controlling documentation building.
# Refer to: # Refer to:
# XORG_WITH_XMLTO --with-xmlto # XORG_WITH_XMLTO --with-xmlto
# XORG_WITH_ASCIIDOC --with-asciidoc # XORG_WITH_ASCIIDOC --with-asciidoc
@ -2377,7 +2377,7 @@ AC_MSG_RESULT([$build_devel_docs])
# #
# This macro enables a builder to skip all functional specification targets. # This macro enables a builder to skip all functional specification targets.
# Combined with the specific tool checking macros XORG_WITH_*, it provides # Combined with the specific tool checking macros XORG_WITH_*, it provides
# maximum flexibilty in controlling documentation building. # maximum flexibility in controlling documentation building.
# Refer to: # Refer to:
# XORG_WITH_XMLTO --with-xmlto # XORG_WITH_XMLTO --with-xmlto
# XORG_WITH_ASCIIDOC --with-asciidoc # XORG_WITH_ASCIIDOC --with-asciidoc
@ -2766,7 +2766,7 @@ AC_ARG_WITH(lint, [AS_HELP_STRING([--with-lint],
# Obtain platform specific info like program name and options # Obtain platform specific info like program name and options
# The lint program on FreeBSD and NetBSD is different from the one on Solaris # The lint program on FreeBSD and NetBSD is different from the one on Solaris
case $host_os in case $host_os in
*linux* | *openbsd* | *secbsd* | kfreebsd*-gnu | darwin* | cygwin*) *linux* | *openbsd* | kfreebsd*-gnu | darwin* | cygwin*)
lint_name=splint lint_name=splint
lint_options="-badflag" lint_options="-badflag"
;; ;;
@ -2852,7 +2852,11 @@ AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno])
AC_DEFUN([XORG_COMPILER_BRAND], [ AC_DEFUN([XORG_COMPILER_BRAND], [
AC_LANG_CASE( AC_LANG_CASE(
[C], [ [C], [
AC_REQUIRE([AC_PROG_CC_C99]) dnl autoconf-2.70 folded AC_PROG_CC_C99 into AC_PROG_CC
dnl and complains that AC_PROG_CC_C99 is obsolete
m4_version_prereq([2.70],
[AC_REQUIRE([AC_PROG_CC])],
[AC_REQUIRE([AC_PROG_CC_C99])])
], ],
[C++], [ [C++], [
AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([AC_PROG_CXX])
@ -2868,7 +2872,7 @@ AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
# Minimum version: 1.16.0 # Minimum version: 1.16.0
# #
# Test if the compiler works when passed the given flag as a command line argument. # Test if the compiler works when passed the given flag as a command line argument.
# If it succeeds, the flag is appeneded to the given variable. If not, it tries the # If it succeeds, the flag is appended to the given variable. If not, it tries the
# next flag in the list until there are no more options. # next flag in the list until there are no more options.
# #
# Note that this does not guarantee that the compiler supports the flag as some # Note that this does not guarantee that the compiler supports the flag as some
@ -2884,7 +2888,11 @@ AC_LANG_COMPILER_REQUIRE
AC_LANG_CASE( AC_LANG_CASE(
[C], [ [C], [
AC_REQUIRE([AC_PROG_CC_C99]) dnl autoconf-2.70 folded AC_PROG_CC_C99 into AC_PROG_CC
dnl and complains that AC_PROG_CC_C99 is obsolete
m4_version_prereq([2.70],
[AC_REQUIRE([AC_PROG_CC])],
[AC_REQUIRE([AC_PROG_CC_C99])])
define([PREFIX], [C]) define([PREFIX], [C])
define([CACHE_PREFIX], [cc]) define([CACHE_PREFIX], [cc])
define([COMPILER], [$CC]) define([COMPILER], [$CC])
@ -3025,7 +3033,7 @@ XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op])
# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align]) # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align])
# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual]) # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual])
# Turn some warnings into errors, so we don't accidently get successful builds # Turn some warnings into errors, so we don't accidentally get successful builds
# when there are problems that should be fixed. # when there are problems that should be fixed.
if test "x$SELECTIVE_WERROR" = "xyes" ; then if test "x$SELECTIVE_WERROR" = "xyes" ; then
@ -3134,23 +3142,35 @@ AC_SUBST([BASE_]PREFIX[FLAGS])
AC_LANG_CASE([C], AC_SUBST([CWARNFLAGS])) AC_LANG_CASE([C], AC_SUBST([CWARNFLAGS]))
]) # XORG_STRICT_OPTION ]) # XORG_STRICT_OPTION
# XORG_DEFAULT_OPTIONS # XORG_DEFAULT_NOCODE_OPTIONS
# -------------------- # ---------------------------
# Minimum version: 1.3.0 # Minimum version: 1.20.0
# #
# Defines default options for X.Org modules. # Defines default options for X.Org modules which don't compile code,
# such as fonts, bitmaps, cursors, and docs.
# #
AC_DEFUN([XORG_DEFAULT_OPTIONS], [ AC_DEFUN([XORG_DEFAULT_NOCODE_OPTIONS], [
AC_REQUIRE([AC_PROG_INSTALL]) AC_REQUIRE([AC_PROG_INSTALL])
XORG_COMPILER_FLAGS
XORG_CWARNFLAGS
XORG_STRICT_OPTION
XORG_RELEASE_VERSION XORG_RELEASE_VERSION
XORG_CHANGELOG XORG_CHANGELOG
XORG_INSTALL XORG_INSTALL
XORG_MANPAGE_SECTIONS XORG_MANPAGE_SECTIONS
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
[AC_SUBST([AM_DEFAULT_VERBOSITY], [1])]) [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
]) # XORG_DEFAULT_NOCODE_OPTIONS
# XORG_DEFAULT_OPTIONS
# --------------------
# Minimum version: 1.3.0
#
# Defines default options for X.Org modules which compile code.
#
AC_DEFUN([XORG_DEFAULT_OPTIONS], [
AC_REQUIRE([AC_PROG_INSTALL])
XORG_COMPILER_FLAGS
XORG_CWARNFLAGS
XORG_STRICT_OPTION
XORG_DEFAULT_NOCODE_OPTIONS
]) # XORG_DEFAULT_OPTIONS ]) # XORG_DEFAULT_OPTIONS
# XORG_INSTALL() # XORG_INSTALL()

View file

@ -1,9 +1,9 @@
#! /bin/sh #! /bin/sh
# Wrapper for compilers which do not understand '-c -o'. # Wrapper for compilers which do not understand '-c -o'.
scriptversion=2012-10-14.11; # UTC scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1999-2014 Free Software Foundation, Inc. # Copyright (C) 1999-2021 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>. # Written by Tom Tromey <tromey@cygnus.com>.
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
@ -17,7 +17,7 @@ scriptversion=2012-10-14.11; # UTC
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you # As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a # distribute this file as part of a program that contains a
@ -53,7 +53,7 @@ func_file_conv ()
MINGW*) MINGW*)
file_conv=mingw file_conv=mingw
;; ;;
CYGWIN*) CYGWIN* | MSYS*)
file_conv=cygwin file_conv=cygwin
;; ;;
*) *)
@ -67,7 +67,7 @@ func_file_conv ()
mingw/*) mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;; ;;
cygwin/*) cygwin/* | msys/*)
file=`cygpath -m "$file" || echo "$file"` file=`cygpath -m "$file" || echo "$file"`
;; ;;
wine/*) wine/*)
@ -255,7 +255,8 @@ EOF
echo "compile $scriptversion" echo "compile $scriptversion"
exit $? exit $?
;; ;;
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
func_cl_wrapper "$@" # Doesn't return... func_cl_wrapper "$@" # Doesn't return...
;; ;;
esac esac
@ -339,10 +340,10 @@ exit $ret
# Local Variables: # Local Variables:
# mode: shell-script # mode: shell-script
# sh-indentation: 2 # sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp) # eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion=" # time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC" # time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC" # time-stamp-end: "; # UTC"
# End: # End:
#! /bin/sh #! /bin/sh

View file

@ -3,15 +3,15 @@
/* Define to 1 if you have the <inttypes.h> header file. */ /* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H #undef HAVE_INTTYPES_H
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the <paths.h> header file. */ /* Define to 1 if you have the <paths.h> header file. */
#undef HAVE_PATHS_H #undef HAVE_PATHS_H
/* Define to 1 if you have the <stdint.h> header file. */ /* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H #undef HAVE_STDINT_H
/* Define to 1 if you have the <stdio.h> header file. */
#undef HAVE_STDIO_H
/* Define to 1 if you have the <stdlib.h> header file. */ /* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H #undef HAVE_STDLIB_H
@ -63,8 +63,16 @@
/* Patch version of this package */ /* Patch version of this package */
#undef PACKAGE_VERSION_PATCHLEVEL #undef PACKAGE_VERSION_PATCHLEVEL
/* Define to 1 if you have the ANSI C header files. */ /* Define to 1 if all of the C90 standard headers exist (not just the ones
required in a freestanding environment). This macro is provided for
backward compatibility; new code need not use it. */
#undef STDC_HEADERS #undef STDC_HEADERS
/* Version number of package */ /* Version number of package */
#undef VERSION #undef VERSION
/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS
/* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES

6767
app/xbiff/configure vendored

File diff suppressed because it is too large Load diff

View file

@ -23,13 +23,13 @@ dnl Process this file with autoconf to create configure.
# Initialize Autoconf # Initialize Autoconf
AC_PREREQ([2.60]) AC_PREREQ([2.60])
AC_INIT([xbiff], [1.0.4], AC_INIT([xbiff], [1.0.5],
[https://gitlab.freedesktop.org/xorg/app/xbiff/issues], [xbiff]) [https://gitlab.freedesktop.org/xorg/app/xbiff/issues], [xbiff])
AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
# Initialize Automake # Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_INIT_AUTOMAKE([foreign dist-xz])
# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS # Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
m4_ifndef([XORG_MACROS_VERSION], m4_ifndef([XORG_MACROS_VERSION],
@ -38,11 +38,14 @@ XORG_MACROS_VERSION(1.8)
XORG_DEFAULT_OPTIONS XORG_DEFAULT_OPTIONS
# Checks for pkg-config packages # Checks for pkg-config packages
PKG_CHECK_MODULES(XBIFF, xaw7 xmu xbitmaps xext x11) PKG_CHECK_MODULES(XBIFF, [xaw7 xmu xt >= 1.1 xbitmaps xext x11 xproto >= 7.0.25])
# Checks for headers # Checks for headers
AC_CHECK_HEADERS([paths.h]) AC_CHECK_HEADERS([paths.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_SYS_LARGEFILE
# Allow builder to set path to look for mailboxes # Allow builder to set path to look for mailboxes
AC_MSG_CHECKING([for mailbox directory]) AC_MSG_CHECKING([for mailbox directory])
AC_ARG_WITH([mailbox-directory], AC_ARG_WITH([mailbox-directory],

View file

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# install - install a program, script, or datafile # install - install a program, script, or datafile
scriptversion=2011-11-20.07; # UTC scriptversion=2020-11-14.01; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was # This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the # later released in X11R6 (xc/config/util/install.sh) with the
@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC
# This script is compatible with the BSD install script, but was written # This script is compatible with the BSD install script, but was written
# from scratch. # from scratch.
tab=' '
nl=' nl='
' '
IFS=" "" $nl" IFS=" $tab$nl"
# set DOITPROG to echo to test this script # Set DOITPROG to "echo" to test this script.
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-} doit=${DOITPROG-}
if test -z "$doit"; then doit_exec=${doit:-exec}
doit_exec=exec
else
doit_exec=$doit
fi
# Put in absolute file names if you don't have them in your path; # Put in absolute file names if you don't have them in your path;
# or use environment vars. # or use environment vars.
@ -68,22 +64,16 @@ mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm} rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip} stripprog=${STRIPPROG-strip}
posix_glob='?'
initialize_posix_glob='
test "$posix_glob" != "?" || {
if (set -f) 2>/dev/null; then
posix_glob=
else
posix_glob=:
fi
}
'
posix_mkdir= posix_mkdir=
# Desired mode of installed file. # Desired mode of installed file.
mode=0755 mode=0755
# Create dirs (including intermediate dirs) using mode 755.
# This is like GNU 'install' as of coreutils 8.32 (2020).
mkdir_umask=22
backupsuffix=
chgrpcmd= chgrpcmd=
chmodcmd=$chmodprog chmodcmd=$chmodprog
chowncmd= chowncmd=
@ -97,7 +87,7 @@ dir_arg=
dst_arg= dst_arg=
copy_on_change=false copy_on_change=false
no_target_directory= is_target_a_directory=possibly
usage="\ usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@ -114,18 +104,28 @@ Options:
--version display version info and exit. --version display version info and exit.
-c (ignored) -c (ignored)
-C install only if different (preserve the last data modification time) -C install only if different (preserve data modification time)
-d create directories instead of installing files. -d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP. -g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE. -m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER. -o USER $chownprog installed files to USER.
-p pass -p to $cpprog.
-s $stripprog installed files. -s $stripprog installed files.
-S SUFFIX attempt to back up existing files, with suffix SUFFIX.
-t DIRECTORY install into DIRECTORY. -t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory. -T report an error if DSTFILE is a directory.
Environment variables override the default commands: Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG RMPROG STRIPPROG
By default, rm is invoked with -f; when overridden with RMPROG,
it's up to you to specify -f if you want it.
If -S is not specified, no backups are attempted.
Email bug reports to bug-automake@gnu.org.
Automake home page: https://www.gnu.org/software/automake/
" "
while test $# -ne 0; do while test $# -ne 0; do
@ -143,8 +143,7 @@ while test $# -ne 0; do
-m) mode=$2 -m) mode=$2
case $mode in case $mode in
*' '* | *' '* | *' *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
'* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2 echo "$0: invalid mode: $mode" >&2
exit 1;; exit 1;;
esac esac
@ -153,16 +152,23 @@ while test $# -ne 0; do
-o) chowncmd="$chownprog $2" -o) chowncmd="$chownprog $2"
shift;; shift;;
-p) cpprog="$cpprog -p";;
-s) stripcmd=$stripprog;; -s) stripcmd=$stripprog;;
-t) dst_arg=$2 -S) backupsuffix="$2"
shift;;
-t)
is_target_a_directory=always
dst_arg=$2
# Protect names problematic for 'test' and other utilities. # Protect names problematic for 'test' and other utilities.
case $dst_arg in case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;; -* | [=\(\)!]) dst_arg=./$dst_arg;;
esac esac
shift;; shift;;
-T) no_target_directory=true;; -T) is_target_a_directory=never;;
--version) echo "$0 $scriptversion"; exit $?;; --version) echo "$0 $scriptversion"; exit $?;;
@ -177,6 +183,16 @@ while test $# -ne 0; do
shift shift
done done
# We allow the use of options -d and -T together, by making -d
# take the precedence; this is for compatibility with GNU install.
if test -n "$dir_arg"; then
if test -n "$dst_arg"; then
echo "$0: target directory not allowed when installing a directory." >&2
exit 1
fi
fi
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create. # When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified. # When -t is used, the destination is already specified.
@ -207,6 +223,15 @@ if test $# -eq 0; then
exit 0 exit 0
fi fi
if test -z "$dir_arg"; then
if test $# -gt 1 || test "$is_target_a_directory" = always; then
if test ! -d "$dst_arg"; then
echo "$0: $dst_arg: Is not a directory." >&2
exit 1
fi
fi
fi
if test -z "$dir_arg"; then if test -z "$dir_arg"; then
do_exit='(exit $ret); exit $ret' do_exit='(exit $ret); exit $ret'
trap "ret=129; $do_exit" 1 trap "ret=129; $do_exit" 1
@ -250,6 +275,10 @@ do
dstdir=$dst dstdir=$dst
test -d "$dstdir" test -d "$dstdir"
dstdir_status=$? dstdir_status=$?
# Don't chown directories that already exist.
if test $dstdir_status = 0; then
chowncmd=""
fi
else else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
@ -266,70 +295,36 @@ do
fi fi
dst=$dst_arg dst=$dst_arg
# If destination is a directory, append the input filename; won't work # If destination is a directory, append the input filename.
# if double slashes aren't ignored.
if test -d "$dst"; then if test -d "$dst"; then
if test -n "$no_target_directory"; then if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2 echo "$0: $dst_arg: Is a directory" >&2
exit 1 exit 1
fi fi
dstdir=$dst dstdir=$dst
dst=$dstdir/`basename "$src"` dstbase=`basename "$src"`
case $dst in
*/) dst=$dst$dstbase;;
*) dst=$dst/$dstbase;;
esac
dstdir_status=0 dstdir_status=0
else else
# Prefer dirname, but fall back on a substitute if dirname fails. dstdir=`dirname "$dst"`
dstdir=`
(dirname "$dst") 2>/dev/null ||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$dst" : 'X\(//\)[^/]' \| \
X"$dst" : 'X\(//\)$' \| \
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
echo X"$dst" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'
`
test -d "$dstdir" test -d "$dstdir"
dstdir_status=$? dstdir_status=$?
fi fi
fi fi
case $dstdir in
*/) dstdirslash=$dstdir;;
*) dstdirslash=$dstdir/;;
esac
obsolete_mkdir_used=false obsolete_mkdir_used=false
if test $dstdir_status != 0; then if test $dstdir_status != 0; then
case $posix_mkdir in case $posix_mkdir in
'') '')
# Create intermediate dirs using mode 755 as modified by the umask.
# This is like FreeBSD 'install' as of 1997-10-28.
umask=`umask`
case $stripcmd.$umask in
# Optimize common cases.
*[2367][2367]) mkdir_umask=$umask;;
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
*[0-7])
mkdir_umask=`expr $umask + 22 \
- $umask % 100 % 40 + $umask % 20 \
- $umask % 10 % 4 + $umask % 2
`;;
*) mkdir_umask=$umask,go-w;;
esac
# With -d, create the new directory with the user-specified mode. # With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask. # Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then if test -n "$dir_arg"; then
@ -339,43 +334,49 @@ do
fi fi
posix_mkdir=false posix_mkdir=false
case $umask in # The $RANDOM variable is not portable (e.g., dash). Use it
*[123567][0-7][0-7]) # here however when possible just to lower collision chance.
# POSIX mkdir -p sets u+wx bits regardless of umask, which
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
trap '
ret=$?
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
exit $ret
' 0
# Because "mkdir -p" follows existing symlinks and we likely work
# directly in world-writeable /tmp, make sure that the '$tmpdir'
# directory is successfully created first before we actually test
# 'mkdir -p'.
if (umask $mkdir_umask && if (umask $mkdir_umask &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 $mkdirprog $mkdir_mode "$tmpdir" &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
then then
if test -z "$dir_arg" || { if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m. # Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't. # other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
ls_ld_tmpdir=`ls -ld "$tmpdir"` test_tmpdir="$tmpdir/a"
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
case $ls_ld_tmpdir in case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;; d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;; d????-?--*) different_mode=755;;
*) false;; *) false;;
esac && esac &&
$mkdirprog -m$different_mode -p -- "$tmpdir" && { $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$tmpdir"` ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
} }
} }
then posix_mkdir=: then posix_mkdir=:
fi fi
rmdir "$tmpdir/d" "$tmpdir" rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
else else
# Remove any dirs left behind by ancient mkdir implementations. # Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
fi fi
trap '' 0;; trap '' 0;;
esac;;
esac esac
if if
@ -386,7 +387,7 @@ do
then : then :
else else
# The umask is ridiculous, or mkdir does not conform to POSIX, # mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the # or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go. # directory the slow way, step by step, checking for races as we go.
@ -396,14 +397,12 @@ do
*) prefix='';; *) prefix='';;
esac esac
eval "$initialize_posix_glob"
oIFS=$IFS oIFS=$IFS
IFS=/ IFS=/
$posix_glob set -f set -f
set fnord $dstdir set fnord $dstdir
shift shift
$posix_glob set +f set +f
IFS=$oIFS IFS=$oIFS
prefixes= prefixes=
@ -417,7 +416,7 @@ do
prefixes= prefixes=
else else
if $posix_mkdir; then if $posix_mkdir; then
(umask=$mkdir_umask && (umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently. # Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1 test -d "$prefix" || exit 1
@ -450,14 +449,25 @@ do
else else
# Make a couple of temp file names in the proper directory. # Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_ dsttmp=${dstdirslash}_inst.$$_
rmtmp=$dstdir/_rm.$$_ rmtmp=${dstdirslash}_rm.$$_
# Trap to clean up those temp files at exit. # Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name. # Copy the file name to the temp name.
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && (umask $cp_umask &&
{ test -z "$stripcmd" || {
# Create $dsttmp read-write so that cp doesn't create it read-only,
# which would cause strip to fail.
if test -z "$doit"; then
: >"$dsttmp" # No need to fork-exec 'touch'.
else
$doit touch "$dsttmp"
fi
}
} &&
$doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits. # and set any options; do chmod last to preserve setuid bits.
# #
@ -474,18 +484,22 @@ do
if $copy_on_change && if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
set -f &&
eval "$initialize_posix_glob" &&
$posix_glob set -f &&
set X $old && old=:$2:$4:$5:$6 && set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 &&
$posix_glob set +f && set +f &&
test "$old" = "$new" && test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then then
rm -f "$dsttmp" rm -f "$dsttmp"
else else
# If $backupsuffix is set, and the file being installed
# already exists, attempt a backup. Don't worry if it fails,
# e.g., if mv doesn't support -f.
if test -n "$backupsuffix" && test -f "$dst"; then
$doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
fi
# Rename the file to the real destination. # Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
@ -500,9 +514,9 @@ do
# file should still install successfully. # file should still install successfully.
{ {
test ! -f "$dst" || test ! -f "$dst" ||
$doit $rmcmd -f "$dst" 2>/dev/null || $doit $rmcmd "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
} || } ||
{ echo "$0: cannot unlink or rename $dst" >&2 { echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1 (exit 1); exit 1
@ -519,9 +533,9 @@ do
done done
# Local variables: # Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp) # eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion=" # time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC" # time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC" # time-stamp-end: "; # UTC"
# End: # End:

View file

@ -126,7 +126,6 @@ CC = @CC@
CCDEPMODE = @CCDEPMODE@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@ CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@ CWARNFLAGS = @CWARNFLAGS@
CYGPATH_W = @CYGPATH_W@ CYGPATH_W = @CYGPATH_W@
@ -137,11 +136,9 @@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
ECHO_C = @ECHO_C@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
FILE_MAN_DIR = @FILE_MAN_DIR@ FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_CMD = @INSTALL_CMD@ INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
@ -223,6 +220,7 @@ pdfdir = @pdfdir@
prefix = @prefix@ prefix = @prefix@
program_transform_name = @program_transform_name@ program_transform_name = @program_transform_name@
psdir = @psdir@ psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@ srcdir = @srcdir@

View file

@ -77,6 +77,9 @@ is loudest).
.B \-shape .B \-shape
This option indicates that the mailbox window should be shaped if masks for This option indicates that the mailbox window should be shaped if masks for
the empty or full images are given. the empty or full images are given.
.TP 8
.B \-version
This option indicates that \fIxbiff\fP should print its version and exit.
.PP .PP
The following standard X Toolkit command line arguments are commonly used with The following standard X Toolkit command line arguments are commonly used with
.I xbiff: .I xbiff:

View file

@ -30,6 +30,10 @@ from the X Consortium.
*/ */
/* $XFree86: xc/programs/xbiff/xbiff.c,v 1.3tsi Exp $ */ /* $XFree86: xc/programs/xbiff/xbiff.c,v 1.3tsi Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <X11/Xatom.h> #include <X11/Xatom.h>
@ -64,27 +68,26 @@ static XtActionsRec xbiff_actions[] = {
{ "quit", quit }, { "quit", quit },
}; };
static void Usage (void) static void _X_NORETURN _X_COLD
Usage (int exitval)
{ {
static const char *help_message[] = { const char *help_message =
"where options include:", "where options include:\n"
" -display host:dpy X server to contact", " -display host:dpy X server to contact\n"
" -geometry geom size of mailbox", " -geometry geom size of mailbox\n"
" -file file file to watch", " -file file file to watch\n"
" -update seconds how often to check for mail", " -update seconds how often to check for mail\n"
" -volume percentage how loud to ring the bell", " -volume percentage how loud to ring the bell\n"
" -bg color background color", " -bg color background color\n"
" -fg color foreground color", " -fg color foreground color\n"
" -rv reverse video", " -rv reverse video\n"
" -shape shape the window", " -shape shape the window\n"
NULL}; " -help print usage info and exit\n"
const char **cpp; " -version print version info and exit\n";
fprintf (stderr, "usage: %s [-options ...]\n", ProgramName); fprintf (stderr, "usage: %s [-options ...]\n", ProgramName);
for (cpp = help_message; *cpp; cpp++) fprintf (stderr, "%s\n", help_message);
fprintf (stderr, "%s\n", *cpp); exit (exitval);
fprintf (stderr, "\n");
exit (1);
} }
@ -98,9 +101,32 @@ main (int argc, char **argv)
XtSetLanguageProc(NULL, (XtLanguageProc) NULL, NULL); XtSetLanguageProc(NULL, (XtLanguageProc) NULL, NULL);
/* Handle args that don't require opening a display */
for (int n = 1; n < argc; n++) {
const char *argn = argv[n];
/* accept single or double dash for -help & -version */
if (argn[0] == '-' && argn[1] == '-') {
argn++;
}
if (strcmp(argn, "-help") == 0) {
Usage(0);
}
if (strcmp(argn, "-version") == 0) {
puts(PACKAGE_STRING);
exit(0);
}
}
toplevel = XtAppInitialize(&xtcontext, "XBiff", options, XtNumber (options), toplevel = XtAppInitialize(&xtcontext, "XBiff", options, XtNumber (options),
&argc, argv, NULL, NULL, 0); &argc, argv, NULL, NULL, 0);
if (argc != 1) Usage (); if (argc != 1) {
fputs("Unknown argument(s):", stderr);
for (int n = 1; n < argc; n++) {
fprintf(stderr, " %s", argv[n]);
}
fputs("\n\n", stderr);
Usage(1);
}
/* /*
* This is a hack so that f.delete will do something useful in this * This is a hack so that f.delete will do something useful in this

View file

@ -1,3 +1,91 @@
commit 637b948ec83fd61a8ee59a9d8ea9f363f74af0df
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Thu Jul 13 15:54:29 2023 -0700
xeyes 1.3.0
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 6f6c975d2cdc1f615f83576c9d1f828e1cdabda3
Author: Serge Bazanski <q3k@q3k.org>
Date: Sun May 28 14:21:56 2023 +0200
Implement multi-ocular support, add biblical example
This removes the assumption that an xeyes instance displays just a pair
of eyes, and instead allows future developers to implement different
kinds of ocular layouts.
Currently, the ocular layout system only allows for specifying offsets,
but a future change might also make different parts of the eye geometry
configurable: size of different elements, padding, etc.
Signed-off-by: Serge Bazanski <q3k@q3k.org>
commit f30ef4e0f3e464f6304bdc85d28ebec0c2ba5e4f
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Fri Feb 10 11:51:01 2023 -0800
Print which argument was unknown before giving usage message
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit e7a54da926969631340942c5f850dd196a0df97b
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Feb 4 14:35:07 2023 -0800
Add -help & -version options
Processed before the display is opened so they work even if a
connection to the display can't be opened.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit e38962ed83081fe00b99c8b8c3d82ba053f88d94
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Thu Jul 28 17:30:21 2022 -0700
gitlab CI: stop requiring Signed-off-by in commits
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit c060e6d25349073b36c85f0d5f29ec197c80b6b9
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Apr 2 11:53:10 2022 -0700
man page: remove out-of-date reference to X(7)
The X(7) man page doesn't list any license information as this had claimed.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit ebbd57a53d3b3f50276fe5a0c3fcb101b686af25
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Jan 9 13:17:22 2022 -0800
Fix spelling/wording issues
Found by using:
codespell --builtin clear,rare,usage,informal,code,names
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit bdd57f33b50f8735da8ae5f7cf4ca28588eef0f4
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Mon Dec 6 11:51:36 2021 -0800
Build xz tarballs instead of bzip2
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 700a55129d4d653a6ebc09cd3ff372d52912d137
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Mon Dec 6 11:51:33 2021 -0800
gitlab CI: add a basic build test
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit adde23dc8724dc6f793b0c68143dc34818f7f6f4 commit adde23dc8724dc6f793b0c68143dc34818f7f6f4
Author: Alan Coopersmith <alan.coopersmith@oracle.com> Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Aug 1 16:41:00 2021 -0700 Date: Sun Aug 1 16:41:00 2021 -0700

View file

@ -1,6 +1,7 @@
/* /*
Copyright (c) 1991 X Consortium Copyright (c) 1991 X Consortium
Copyright (c) 2023 q3k
Permission is hereby granted, free of charge, to any person obtaining Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the a copy of this software and associated documentation files (the
@ -49,6 +50,7 @@ from the X Consortium.
# include <X11/Xlibint.h> # include <X11/Xlibint.h>
# include <stdlib.h> # include <stdlib.h>
# include <X11/extensions/XInput2.h> # include <X11/extensions/XInput2.h>
# include <assert.h>
#define offset(field) XtOffsetOf(EyesRec, eyes.field) #define offset(field) XtOffsetOf(EyesRec, eyes.field)
#define goffset(field) XtOffsetOf(WidgetRec, core.field) #define goffset(field) XtOffsetOf(WidgetRec, core.field)
@ -83,23 +85,19 @@ static XtResource resources[] = {
#endif #endif
{(char *) XtNdistance, (char *) XtCBoolean, XtRBoolean, sizeof(Boolean), {(char *) XtNdistance, (char *) XtCBoolean, XtRBoolean, sizeof(Boolean),
offset(distance), XtRImmediate, (XtPointer) FALSE }, offset(distance), XtRImmediate, (XtPointer) FALSE },
{(char *) XtNbiblicallyAccurate, (char *) XtCBoolean, XtRBoolean, sizeof(Boolean),
offset(biblically_accurate), XtRImmediate, (XtPointer) FALSE },
}; };
#undef offset #undef offset
#undef goffset #undef goffset
# define EYE_X(n) ((n) * 2.0)
# define EYE_Y(n) (0.0)
# define EYE_OFFSET (0.1) /* padding between eyes */ # define EYE_OFFSET (0.1) /* padding between eyes */
# define EYE_THICK (0.175) /* thickness of eye rim */ # define EYE_THICK (0.175) /* thickness of eye rim */
# define BALL_DIAM (0.3) # define BALL_DIAM (0.3)
# define BALL_PAD (0.175) # define BALL_PAD (0.175)
# define EYE_DIAM (2.0 - (EYE_THICK + EYE_OFFSET) * 2) # define EYE_DIAM (2.0 - (EYE_THICK + EYE_OFFSET) * 2)
# define BALL_DIST ((EYE_DIAM - BALL_DIAM) / 2.0 - BALL_PAD) # define BALL_DIST ((EYE_DIAM - BALL_DIAM) / 2.0 - BALL_PAD)
# define W_MIN_X (-1.0 + EYE_OFFSET)
# define W_MAX_X (3.0 - EYE_OFFSET)
# define W_MIN_Y (-1.0 + EYE_OFFSET)
# define W_MAX_Y (1.0 - EYE_OFFSET)
# define TPOINT_NONE (-1000) /* special value meaning "not yet set" */ # define TPOINT_NONE (-1000) /* special value meaning "not yet set" */
# define TPointEqual(a, b) ((a).x == (b).x && (a).y == (b).y) # define TPointEqual(a, b) ((a).x == (b).x && (a).y == (b).y)
@ -109,6 +107,69 @@ static XtResource resources[] = {
static int delays[] = { 50, 100, 200, 400, 0 }; static int delays[] = { 50, 100, 200, 400, 0 };
static EyeLayout layout_standard[] = {
{ .x = 0.0, .y = 0.0, },
{ .x = 2.0, .y = 0.0, },
};
static EyeLayout layout_biblical[] = {
{ .x = 0.0+0.75, .y = 0.0, },
{ .x = 1.5+0.75, .y = 0.0, },
{ .x = 3.0+0.75, .y = 0.0, },
{ .x = 0.0+0.00, .y = 1.4, },
{ .x = 1.5+0.00, .y = 1.4, },
{ .x = 3.0+0.00, .y = 1.4, },
{ .x = 4.5+0.00, .y = 1.4, },
{ .x = 0.0+0.75, .y = 2.8, },
{ .x = 1.5+0.75, .y = 2.8, },
{ .x = 3.0+0.75, .y = 2.8, },
};
static EyeConfiguration *EyesConfigure(Boolean biblically_accurate)
{
EyeConfiguration *c = calloc(sizeof(EyeConfiguration), 1);
assert(c != NULL);
if (biblically_accurate) {
c->eyes = layout_biblical;
c->count = sizeof(layout_biblical) / sizeof(EyeLayout);
} else {
c->eyes = layout_standard;
c->count = sizeof(layout_standard) / sizeof(EyeLayout);
}
// Calculate the bounding box of the eyes.
c->w_min_x = c->eyes[0].x;
c->w_max_x = c->eyes[0].x;
c->w_min_y = c->eyes[0].y;
c->w_max_y = c->eyes[0].y;
for (int i = 0; i < c->count; i++) {
EyeLayout *l = &c->eyes[i];
if (l->x > c->w_max_x) {
c->w_max_x = l->x;
}
if (l->x < c->w_min_x) {
c->w_min_x = l->x;
}
if (l->y > c->w_max_y) {
c->w_max_y = l->y;
}
if (l->y < c->w_min_y) {
c->w_min_y = l->y;
}
}
// Add half size of eye (2.0) minus padding to each edge.
c->w_min_x -= (1.0 - EYE_OFFSET);
c->w_max_x += (1.0 - EYE_OFFSET);
c->w_min_y -= (1.0 - EYE_OFFSET);
c->w_max_y += (1.0 - EYE_OFFSET);
return c;
}
static void ClassInitialize(void) static void ClassInitialize(void)
{ {
XtAddConverter( XtRString, XtRBackingStore, XmuCvtStringToBackingStore, XtAddConverter( XtRString, XtRBackingStore, XmuCvtStringToBackingStore,
@ -344,6 +405,17 @@ static void Initialize (
enum EyesPart i; enum EyesPart i;
#endif #endif
EyeConfiguration *config = EyesConfigure(w->eyes.biblically_accurate);
TPoint *pupils = calloc(sizeof(TPoint), config->count);
assert(pupils != NULL);
for (int j = 0; j < config->count; j++) {
pupils[j].x = TPOINT_NONE;
pupils[j].y = TPOINT_NONE;
}
w->eyes.configuration = config;
w->eyes.pupils = pupils;
/* /*
* set the colors if reverse video; these are the colors used: * set the colors if reverse video; these are the colors used:
* *
@ -386,9 +458,6 @@ static void Initialize (
/* wait for Realize to add the timeout */ /* wait for Realize to add the timeout */
w->eyes.interval_id = 0; w->eyes.interval_id = 0;
w->eyes.pupil[0].x = w->eyes.pupil[1].x = TPOINT_NONE;
w->eyes.pupil[0].y = w->eyes.pupil[1].y = TPOINT_NONE;
w->eyes.mouse.x = w->eyes.mouse.y = TPOINT_NONE; w->eyes.mouse.x = w->eyes.mouse.y = TPOINT_NONE;
if (w->eyes.shape_window && !XShapeQueryExtension (XtDisplay (w), if (w->eyes.shape_window && !XShapeQueryExtension (XtDisplay (w),
@ -511,19 +580,20 @@ eyeLiner(EyesWidget w,
Boolean draw, Boolean draw,
int num) int num)
{ {
EyeLayout *l = &w->eyes.configuration->eyes[num];
drawEllipse(w, draw ? PART_OUTLINE : PART_SHAPE, drawEllipse(w, draw ? PART_OUTLINE : PART_SHAPE,
EYE_X(num), EYE_Y(num), l->x, l->y,
TPOINT_NONE, TPOINT_NONE, TPOINT_NONE, TPOINT_NONE,
EYE_DIAM + 2.0*EYE_THICK); EYE_DIAM + 2.0*EYE_THICK);
if (draw) { if (draw) {
drawEllipse(w, PART_CENTER, EYE_X(num), EYE_Y(num), drawEllipse(w, PART_CENTER, l->x, l->y,
TPOINT_NONE, TPOINT_NONE, TPOINT_NONE, TPOINT_NONE,
EYE_DIAM); EYE_DIAM);
} }
} }
static TPoint computePupil ( static TPoint computePupil (
int num, EyeLayout *layout,
TPoint mouse, TPoint mouse,
const TRectangle *screen) const TRectangle *screen)
{ {
@ -534,8 +604,8 @@ static TPoint computePupil (
double cosa, sina; double cosa, sina;
TPoint ret; TPoint ret;
cx = EYE_X(num); dx = mouse.x - cx; cx = layout->x; dx = mouse.x - cx;
cy = EYE_Y(num); dy = mouse.y - cy; cy = layout->y; dy = mouse.y - cy;
if (dx == 0 && dy == 0); if (dx == 0 && dy == 0);
else { else {
angle = atan2 ((double) dy, (double) dx); angle = atan2 ((double) dy, (double) dx);
@ -594,7 +664,7 @@ static TPoint computePupil (
static void computePupils ( static void computePupils (
EyesWidget w, EyesWidget w,
TPoint mouse, TPoint mouse,
TPoint pupils[2]) TPoint *pupils)
{ {
TRectangle screen, *sp = NULL; TRectangle screen, *sp = NULL;
if (w->eyes.distance) { if (w->eyes.distance) {
@ -610,8 +680,9 @@ static void computePupils (
&w->eyes.t); &w->eyes.t);
sp = &screen; sp = &screen;
} }
pupils[0] = computePupil (0, mouse, sp); for (int i = 0; i < w->eyes.configuration->count; i++) {
pupils[1] = computePupil (1, mouse, sp); pupils[i] = computePupil(&w->eyes.configuration->eyes[i], mouse, sp);
}
} }
static void static void
@ -620,8 +691,9 @@ eyeBall(EyesWidget w,
TPoint *old, TPoint *old,
int num) int num)
{ {
//printf("eyeBall(_, %d, %p, %d)\n", draw, old, num);
drawEllipse(w, draw ? PART_PUPIL : PART_CLEAR, drawEllipse(w, draw ? PART_PUPIL : PART_CLEAR,
w->eyes.pupil[num].x, w->eyes.pupil[num].y, w->eyes.pupils[num].x, w->eyes.pupils[num].y,
old ? old->x : TPOINT_NONE, old ? old->y : TPOINT_NONE, old ? old->x : TPOINT_NONE, old ? old->y : TPOINT_NONE,
BALL_DIAM); BALL_DIAM);
} }
@ -632,11 +704,13 @@ static void repaint_window (EyesWidget w)
#ifdef PRESENT #ifdef PRESENT
MakePresentData(w); MakePresentData(w);
#endif #endif
eyeLiner (w, TRUE, 0); for (int i = 0; i < w->eyes.configuration->count; i++) {
eyeLiner (w, TRUE, 1); eyeLiner (w, TRUE, i);
computePupils (w, w->eyes.mouse, w->eyes.pupil); }
eyeBall (w, TRUE, NULL, 0); computePupils (w, w->eyes.mouse, w->eyes.pupils);
eyeBall (w, TRUE, NULL, 1); for (int i = 0; i < w->eyes.configuration->count; i++) {
eyeBall (w, TRUE, NULL, i);
}
#ifdef PRESENT #ifdef PRESENT
UpdatePresent(w); UpdatePresent(w);
#endif #endif
@ -648,17 +722,17 @@ drawEye(EyesWidget w, TPoint newpupil, int num)
{ {
XPoint xnewpupil, xpupil; XPoint xnewpupil, xpupil;
xpupil.x = Xx(w->eyes.pupil[num].x, w->eyes.pupil[num].y, &w->eyes.t); xpupil.x = Xx(w->eyes.pupils[num].x, w->eyes.pupils[num].y, &w->eyes.t);
xpupil.y = Xy(w->eyes.pupil[num].x, w->eyes.pupil[num].y, &w->eyes.t); xpupil.y = Xy(w->eyes.pupils[num].x, w->eyes.pupils[num].y, &w->eyes.t);
xnewpupil.x = Xx(newpupil.x, newpupil.y, &w->eyes.t); xnewpupil.x = Xx(newpupil.x, newpupil.y, &w->eyes.t);
xnewpupil.y = Xy(newpupil.x, newpupil.y, &w->eyes.t); xnewpupil.y = Xy(newpupil.x, newpupil.y, &w->eyes.t);
if ( if (
#ifdef XRENDER #ifdef XRENDER
w->eyes.picture ? !TPointEqual(w->eyes.pupil[num], newpupil) : w->eyes.picture ? !TPointEqual(w->eyes.pupils[num], newpupil) :
#endif #endif
!XPointEqual(xpupil, xnewpupil)) { !XPointEqual(xpupil, xnewpupil)) {
TPoint oldpupil = w->eyes.pupil[num]; TPoint oldpupil = w->eyes.pupils[num];
w->eyes.pupil[num] = newpupil; w->eyes.pupils[num] = newpupil;
eyeBall (w, TRUE, &oldpupil, num); eyeBall (w, TRUE, &oldpupil, num);
} }
} }
@ -666,8 +740,8 @@ drawEye(EyesWidget w, TPoint newpupil, int num)
static void static void
drawEyes(EyesWidget w, TPoint mouse) drawEyes(EyesWidget w, TPoint mouse)
{ {
TPoint newpupil[2];
int num; int num;
TPoint newpupils[w->eyes.configuration->count];
#ifdef PRESENT #ifdef PRESENT
MakePresentData(w); MakePresentData(w);
@ -677,9 +751,9 @@ drawEyes(EyesWidget w, TPoint mouse)
++w->eyes.update; ++w->eyes.update;
return; return;
} }
computePupils (w, mouse, newpupil); computePupils (w, mouse, newpupils);
for (num = 0; num < 2; num ++) { for (num = 0; num < w->eyes.configuration->count; num++) {
drawEye(w, newpupil[num], num); drawEye(w, newpupils[num], num);
} }
w->eyes.mouse = mouse; w->eyes.mouse = mouse;
@ -737,8 +811,10 @@ static void Resize (Widget gw)
SetTransform (&w->eyes.t, SetTransform (&w->eyes.t,
0, w->core.width, 0, w->core.width,
w->core.height, 0, w->core.height, 0,
W_MIN_X, W_MAX_X, w->eyes.configuration->w_min_x,
W_MIN_Y, W_MAX_Y); w->eyes.configuration->w_max_x,
w->eyes.configuration->w_min_y,
w->eyes.configuration->w_max_y);
#ifdef PRESENT #ifdef PRESENT
if (w->eyes.back_buffer) { if (w->eyes.back_buffer) {
xcb_free_pixmap(xt_xcb(w), xcb_free_pixmap(xt_xcb(w),
@ -769,8 +845,9 @@ static void Resize (Widget gw)
XFillRectangle (dpy, w->eyes.shape_mask, w->eyes.gc[PART_SHAPE], XFillRectangle (dpy, w->eyes.shape_mask, w->eyes.gc[PART_SHAPE],
0, 0, w->core.width, w->core.height); 0, 0, w->core.width, w->core.height);
XSetForeground (dpy, w->eyes.gc[PART_SHAPE], 1); XSetForeground (dpy, w->eyes.gc[PART_SHAPE], 1);
eyeLiner (w, FALSE, 0); for (int i = 0; i < w->eyes.configuration->count; i++) {
eyeLiner (w, FALSE, 1); eyeLiner (w, FALSE, i);
}
x = y = 0; x = y = 0;
for (parent = (Widget) w; XtParent (parent); parent = XtParent (parent)) { for (parent = (Widget) w; XtParent (parent); parent = XtParent (parent)) {
x += parent->core.x + parent->core.border_width; x += parent->core.x + parent->core.border_width;
@ -842,10 +919,10 @@ static void Redisplay(
EyesWidget w; EyesWidget w;
w = (EyesWidget) gw; w = (EyesWidget) gw;
w->eyes.pupil[0].x = TPOINT_NONE; for (int i = 0; i < w->eyes.configuration->count; i++) {
w->eyes.pupil[0].y = TPOINT_NONE; w->eyes.pupils[i].x = TPOINT_NONE;
w->eyes.pupil[1].x = TPOINT_NONE; w->eyes.pupils[i].y = TPOINT_NONE;
w->eyes.pupil[1].y = TPOINT_NONE; }
(void) repaint_window ((EyesWidget)gw); (void) repaint_window ((EyesWidget)gw);
} }

View file

@ -34,6 +34,7 @@
#define XtNrender "render" #define XtNrender "render"
#define XtNdistance "distance" #define XtNdistance "distance"
#define XtNbiblicallyAccurate "biblicallyAccurate"
#define XtNpresent "present" #define XtNpresent "present"

View file

@ -18,6 +18,23 @@
#define SEG_BUFF_SIZE 128 #define SEG_BUFF_SIZE 128
typedef struct {
// X offset
double x;
// Y offset
double y;
} EyeLayout;
typedef struct {
EyeLayout *eyes;
int count;
double w_min_x;
double w_max_x;
double w_min_y;
double w_max_y;
} EyeConfiguration;
/* New fields for the eyes widget instance record */ /* New fields for the eyes widget instance record */
typedef struct { typedef struct {
Pixel pixel[PART_SHAPE]; Pixel pixel[PART_SHAPE];
@ -28,7 +45,9 @@ typedef struct {
Boolean shape_window; /* use SetWindowShapeMask */ Boolean shape_window; /* use SetWindowShapeMask */
int update; /* current timeout index */ int update; /* current timeout index */
TPoint mouse; /* old mouse position */ TPoint mouse; /* old mouse position */
TPoint pupil[2]; /* pupil position */ Boolean biblically_accurate;
EyeConfiguration *configuration;
TPoint *pupils;
Transform t; Transform t;
Transform maskt; Transform maskt;
XtIntervalId interval_id; XtIntervalId interval_id;

View file

@ -181,9 +181,9 @@ am__relativize = \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \ done; \
reldir="$$dir2" reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.xz
GZIP_ENV = --best GZIP_ENV = --best
DIST_TARGETS = dist-bzip2 dist-gzip DIST_TARGETS = dist-xz dist-gzip
distuninstallcheck_listfiles = find . -type f -print distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@ -204,7 +204,6 @@ CC = @CC@
CCDEPMODE = @CCDEPMODE@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@ CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@ CWARNFLAGS = @CWARNFLAGS@
CYGPATH_W = @CYGPATH_W@ CYGPATH_W = @CYGPATH_W@
@ -215,11 +214,9 @@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
ECHO_C = @ECHO_C@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
FILE_MAN_DIR = @FILE_MAN_DIR@ FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_CMD = @INSTALL_CMD@ INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
@ -655,6 +652,7 @@ distdir: $(DISTFILES)
dist-gzip: distdir dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__post_remove_distdir) $(am__post_remove_distdir)
dist-bzip2: distdir dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__post_remove_distdir) $(am__post_remove_distdir)
@ -662,7 +660,6 @@ dist-bzip2: distdir
dist-lzip: distdir dist-lzip: distdir
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
$(am__post_remove_distdir) $(am__post_remove_distdir)
dist-xz: distdir dist-xz: distdir
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__post_remove_distdir) $(am__post_remove_distdir)

View file

@ -6,7 +6,7 @@ Xorg mailing list:
https://lists.x.org/mailman/listinfo/xorg https://lists.x.org/mailman/listinfo/xorg
The master development code repository can be found at: The primary development code repository can be found at:
https://gitlab.freedesktop.org/xorg/app/xeyes https://gitlab.freedesktop.org/xorg/app/xeyes

74
app/xeyes/aclocal.m4 vendored
View file

@ -13,8 +13,8 @@
m4_ifndef([AC_AUTOCONF_VERSION], m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
[m4_warning([this file was generated for autoconf 2.69. [m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to. You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely. If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])]) To do so, use the procedure documented by the package, typically 'autoreconf'.])])
@ -1318,7 +1318,7 @@ AC_SUBST([am__untar])
dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure. dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure.
dnl dnl
dnl Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. dnl Copyright (c) 2005, 2023, Oracle and/or its affiliates.
dnl dnl
dnl Permission is hereby granted, free of charge, to any person obtaining a dnl Permission is hereby granted, free of charge, to any person obtaining a
dnl copy of this software and associated documentation files (the "Software"), dnl copy of this software and associated documentation files (the "Software"),
@ -1355,7 +1355,7 @@ dnl DEALINGS IN THE SOFTWARE.
# See the "minimum version" comment for each macro you use to see what # See the "minimum version" comment for each macro you use to see what
# version you require. # version you require.
m4_defun([XORG_MACROS_VERSION],[ m4_defun([XORG_MACROS_VERSION],[
m4_define([vers_have], [1.19.2]) m4_define([vers_have], [1.20.0])
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.]))) 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_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
m4_if(m4_cmp(maj_have, maj_needed), 0,, m4_if(m4_cmp(maj_have, maj_needed), 0,,
@ -1376,7 +1376,7 @@ AM_MAINTAINER_MODE
# such as man pages and config files # such as man pages and config files
AC_DEFUN([XORG_PROG_RAWCPP],[ AC_DEFUN([XORG_PROG_RAWCPP],[
AC_REQUIRE([AC_PROG_CPP]) AC_REQUIRE([AC_PROG_CPP])
AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}], AC_PATH_TOOL(RAWCPP, [cpp], [${CPP}],
[$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib]) [$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib])
# Check for flag to avoid builtin definitions - assumes unix is predefined, # Check for flag to avoid builtin definitions - assumes unix is predefined,
@ -1686,7 +1686,7 @@ AC_SUBST(MAKE_HTML)
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-xmlto option, it allows maximum flexibilty in making decisions # the --with-xmlto option, it allows maximum flexibility in making decisions
# as whether or not to use the xmlto package. When DEFAULT is not specified, # as whether or not to use the xmlto package. When DEFAULT is not specified,
# --with-xmlto assumes 'auto'. # --with-xmlto assumes 'auto'.
# #
@ -1900,7 +1900,7 @@ AM_CONDITIONAL([HAVE_PERL], [test "$have_perl" = yes])
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-asciidoc option, it allows maximum flexibilty in making decisions # the --with-asciidoc option, it allows maximum flexibility in making decisions
# as whether or not to use the asciidoc package. When DEFAULT is not specified, # as whether or not to use the asciidoc package. When DEFAULT is not specified,
# --with-asciidoc assumes 'auto'. # --with-asciidoc assumes 'auto'.
# #
@ -1970,7 +1970,7 @@ AM_CONDITIONAL([HAVE_ASCIIDOC], [test "$have_asciidoc" = yes])
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-doxygen option, it allows maximum flexibilty in making decisions # the --with-doxygen option, it allows maximum flexibility in making decisions
# as whether or not to use the doxygen package. When DEFAULT is not specified, # as whether or not to use the doxygen package. When DEFAULT is not specified,
# --with-doxygen assumes 'auto'. # --with-doxygen assumes 'auto'.
# #
@ -2054,7 +2054,7 @@ AM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes])
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-groff option, it allows maximum flexibilty in making decisions # the --with-groff option, it allows maximum flexibility in making decisions
# as whether or not to use the groff package. When DEFAULT is not specified, # as whether or not to use the groff package. When DEFAULT is not specified,
# --with-groff assumes 'auto'. # --with-groff assumes 'auto'.
# #
@ -2162,7 +2162,7 @@ AM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes])
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-fop option, it allows maximum flexibilty in making decisions # the --with-fop option, it allows maximum flexibility in making decisions
# as whether or not to use the fop package. When DEFAULT is not specified, # as whether or not to use the fop package. When DEFAULT is not specified,
# --with-fop assumes 'auto'. # --with-fop assumes 'auto'.
# #
@ -2256,7 +2256,7 @@ AC_SUBST([M4], [$ac_cv_path_M4])
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-ps2pdf option, it allows maximum flexibilty in making decisions # the --with-ps2pdf option, it allows maximum flexibility in making decisions
# as whether or not to use the ps2pdf package. When DEFAULT is not specified, # as whether or not to use the ps2pdf package. When DEFAULT is not specified,
# --with-ps2pdf assumes 'auto'. # --with-ps2pdf assumes 'auto'.
# #
@ -2311,7 +2311,7 @@ AM_CONDITIONAL([HAVE_PS2PDF], [test "$have_ps2pdf" = yes])
# not at the appropriate level. This macro enables a builder to skip all # not at the appropriate level. This macro enables a builder to skip all
# documentation targets except traditional man pages. # documentation targets except traditional man pages.
# Combined with the specific tool checking macros XORG_WITH_*, it provides # Combined with the specific tool checking macros XORG_WITH_*, it provides
# maximum flexibilty in controlling documentation building. # maximum flexibility in controlling documentation building.
# Refer to: # Refer to:
# XORG_WITH_XMLTO --with-xmlto # XORG_WITH_XMLTO --with-xmlto
# XORG_WITH_ASCIIDOC --with-asciidoc # XORG_WITH_ASCIIDOC --with-asciidoc
@ -2344,7 +2344,7 @@ AC_MSG_RESULT([$build_docs])
# #
# This macro enables a builder to skip all developer documentation. # This macro enables a builder to skip all developer documentation.
# Combined with the specific tool checking macros XORG_WITH_*, it provides # Combined with the specific tool checking macros XORG_WITH_*, it provides
# maximum flexibilty in controlling documentation building. # maximum flexibility in controlling documentation building.
# Refer to: # Refer to:
# XORG_WITH_XMLTO --with-xmlto # XORG_WITH_XMLTO --with-xmlto
# XORG_WITH_ASCIIDOC --with-asciidoc # XORG_WITH_ASCIIDOC --with-asciidoc
@ -2377,7 +2377,7 @@ AC_MSG_RESULT([$build_devel_docs])
# #
# This macro enables a builder to skip all functional specification targets. # This macro enables a builder to skip all functional specification targets.
# Combined with the specific tool checking macros XORG_WITH_*, it provides # Combined with the specific tool checking macros XORG_WITH_*, it provides
# maximum flexibilty in controlling documentation building. # maximum flexibility in controlling documentation building.
# Refer to: # Refer to:
# XORG_WITH_XMLTO --with-xmlto # XORG_WITH_XMLTO --with-xmlto
# XORG_WITH_ASCIIDOC --with-asciidoc # XORG_WITH_ASCIIDOC --with-asciidoc
@ -2766,7 +2766,7 @@ AC_ARG_WITH(lint, [AS_HELP_STRING([--with-lint],
# Obtain platform specific info like program name and options # Obtain platform specific info like program name and options
# The lint program on FreeBSD and NetBSD is different from the one on Solaris # The lint program on FreeBSD and NetBSD is different from the one on Solaris
case $host_os in case $host_os in
*linux* | *openbsd* | *secbsd* | kfreebsd*-gnu | darwin* | cygwin*) *linux* | *openbsd* | kfreebsd*-gnu | darwin* | cygwin*)
lint_name=splint lint_name=splint
lint_options="-badflag" lint_options="-badflag"
;; ;;
@ -2852,7 +2852,11 @@ AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno])
AC_DEFUN([XORG_COMPILER_BRAND], [ AC_DEFUN([XORG_COMPILER_BRAND], [
AC_LANG_CASE( AC_LANG_CASE(
[C], [ [C], [
AC_REQUIRE([AC_PROG_CC_C99]) dnl autoconf-2.70 folded AC_PROG_CC_C99 into AC_PROG_CC
dnl and complains that AC_PROG_CC_C99 is obsolete
m4_version_prereq([2.70],
[AC_REQUIRE([AC_PROG_CC])],
[AC_REQUIRE([AC_PROG_CC_C99])])
], ],
[C++], [ [C++], [
AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([AC_PROG_CXX])
@ -2868,7 +2872,7 @@ AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
# Minimum version: 1.16.0 # Minimum version: 1.16.0
# #
# Test if the compiler works when passed the given flag as a command line argument. # Test if the compiler works when passed the given flag as a command line argument.
# If it succeeds, the flag is appeneded to the given variable. If not, it tries the # If it succeeds, the flag is appended to the given variable. If not, it tries the
# next flag in the list until there are no more options. # next flag in the list until there are no more options.
# #
# Note that this does not guarantee that the compiler supports the flag as some # Note that this does not guarantee that the compiler supports the flag as some
@ -2884,7 +2888,11 @@ AC_LANG_COMPILER_REQUIRE
AC_LANG_CASE( AC_LANG_CASE(
[C], [ [C], [
AC_REQUIRE([AC_PROG_CC_C99]) dnl autoconf-2.70 folded AC_PROG_CC_C99 into AC_PROG_CC
dnl and complains that AC_PROG_CC_C99 is obsolete
m4_version_prereq([2.70],
[AC_REQUIRE([AC_PROG_CC])],
[AC_REQUIRE([AC_PROG_CC_C99])])
define([PREFIX], [C]) define([PREFIX], [C])
define([CACHE_PREFIX], [cc]) define([CACHE_PREFIX], [cc])
define([COMPILER], [$CC]) define([COMPILER], [$CC])
@ -3025,7 +3033,7 @@ XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op])
# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align]) # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align])
# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual]) # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual])
# Turn some warnings into errors, so we don't accidently get successful builds # Turn some warnings into errors, so we don't accidentally get successful builds
# when there are problems that should be fixed. # when there are problems that should be fixed.
if test "x$SELECTIVE_WERROR" = "xyes" ; then if test "x$SELECTIVE_WERROR" = "xyes" ; then
@ -3134,23 +3142,35 @@ AC_SUBST([BASE_]PREFIX[FLAGS])
AC_LANG_CASE([C], AC_SUBST([CWARNFLAGS])) AC_LANG_CASE([C], AC_SUBST([CWARNFLAGS]))
]) # XORG_STRICT_OPTION ]) # XORG_STRICT_OPTION
# XORG_DEFAULT_OPTIONS # XORG_DEFAULT_NOCODE_OPTIONS
# -------------------- # ---------------------------
# Minimum version: 1.3.0 # Minimum version: 1.20.0
# #
# Defines default options for X.Org modules. # Defines default options for X.Org modules which don't compile code,
# such as fonts, bitmaps, cursors, and docs.
# #
AC_DEFUN([XORG_DEFAULT_OPTIONS], [ AC_DEFUN([XORG_DEFAULT_NOCODE_OPTIONS], [
AC_REQUIRE([AC_PROG_INSTALL]) AC_REQUIRE([AC_PROG_INSTALL])
XORG_COMPILER_FLAGS
XORG_CWARNFLAGS
XORG_STRICT_OPTION
XORG_RELEASE_VERSION XORG_RELEASE_VERSION
XORG_CHANGELOG XORG_CHANGELOG
XORG_INSTALL XORG_INSTALL
XORG_MANPAGE_SECTIONS XORG_MANPAGE_SECTIONS
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
[AC_SUBST([AM_DEFAULT_VERBOSITY], [1])]) [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
]) # XORG_DEFAULT_NOCODE_OPTIONS
# XORG_DEFAULT_OPTIONS
# --------------------
# Minimum version: 1.3.0
#
# Defines default options for X.Org modules which compile code.
#
AC_DEFUN([XORG_DEFAULT_OPTIONS], [
AC_REQUIRE([AC_PROG_INSTALL])
XORG_COMPILER_FLAGS
XORG_CWARNFLAGS
XORG_STRICT_OPTION
XORG_DEFAULT_NOCODE_OPTIONS
]) # XORG_DEFAULT_OPTIONS ]) # XORG_DEFAULT_OPTIONS
# XORG_INSTALL() # XORG_INSTALL()

View file

@ -3,12 +3,12 @@
/* Define to 1 if you have the <inttypes.h> header file. */ /* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H #undef HAVE_INTTYPES_H
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the <stdint.h> header file. */ /* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H #undef HAVE_STDINT_H
/* Define to 1 if you have the <stdio.h> header file. */
#undef HAVE_STDIO_H
/* Define to 1 if you have the <stdlib.h> header file. */ /* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H #undef HAVE_STDLIB_H
@ -60,7 +60,9 @@
/* Define to use X Present Extension */ /* Define to use X Present Extension */
#undef PRESENT #undef PRESENT
/* Define to 1 if you have the ANSI C header files. */ /* Define to 1 if all of the C90 standard headers exist (not just the ones
required in a freestanding environment). This macro is provided for
backward compatibility; new code need not use it. */
#undef STDC_HEADERS #undef STDC_HEADERS
/* Version number of package */ /* Version number of package */

6523
app/xeyes/configure vendored

File diff suppressed because it is too large Load diff

View file

@ -23,14 +23,13 @@ dnl Process this file with autoconf to create configure.
# Initialize Autoconf # Initialize Autoconf
AC_PREREQ([2.60]) AC_PREREQ([2.60])
AC_INIT([xeyes], [1.2.0], AC_INIT([xeyes], [1.3.0],
[https://gitlab.freedesktop.org/xorg/app/xeyes/issues], [xeyes]) [https://gitlab.freedesktop.org/xorg/app/xeyes/-/issues], [xeyes])
AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
# Initialize Automake # Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_INIT_AUTOMAKE([foreign dist-xz])
AM_MAINTAINER_MODE
# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS # Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
m4_ifndef([XORG_MACROS_VERSION], m4_ifndef([XORG_MACROS_VERSION],

View file

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# install - install a program, script, or datafile # install - install a program, script, or datafile
scriptversion=2011-11-20.07; # UTC scriptversion=2020-11-14.01; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was # This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the # later released in X11R6 (xc/config/util/install.sh) with the
@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC
# This script is compatible with the BSD install script, but was written # This script is compatible with the BSD install script, but was written
# from scratch. # from scratch.
tab=' '
nl=' nl='
' '
IFS=" "" $nl" IFS=" $tab$nl"
# set DOITPROG to echo to test this script # Set DOITPROG to "echo" to test this script.
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-} doit=${DOITPROG-}
if test -z "$doit"; then doit_exec=${doit:-exec}
doit_exec=exec
else
doit_exec=$doit
fi
# Put in absolute file names if you don't have them in your path; # Put in absolute file names if you don't have them in your path;
# or use environment vars. # or use environment vars.
@ -68,22 +64,16 @@ mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm} rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip} stripprog=${STRIPPROG-strip}
posix_glob='?'
initialize_posix_glob='
test "$posix_glob" != "?" || {
if (set -f) 2>/dev/null; then
posix_glob=
else
posix_glob=:
fi
}
'
posix_mkdir= posix_mkdir=
# Desired mode of installed file. # Desired mode of installed file.
mode=0755 mode=0755
# Create dirs (including intermediate dirs) using mode 755.
# This is like GNU 'install' as of coreutils 8.32 (2020).
mkdir_umask=22
backupsuffix=
chgrpcmd= chgrpcmd=
chmodcmd=$chmodprog chmodcmd=$chmodprog
chowncmd= chowncmd=
@ -97,7 +87,7 @@ dir_arg=
dst_arg= dst_arg=
copy_on_change=false copy_on_change=false
no_target_directory= is_target_a_directory=possibly
usage="\ usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@ -114,18 +104,28 @@ Options:
--version display version info and exit. --version display version info and exit.
-c (ignored) -c (ignored)
-C install only if different (preserve the last data modification time) -C install only if different (preserve data modification time)
-d create directories instead of installing files. -d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP. -g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE. -m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER. -o USER $chownprog installed files to USER.
-p pass -p to $cpprog.
-s $stripprog installed files. -s $stripprog installed files.
-S SUFFIX attempt to back up existing files, with suffix SUFFIX.
-t DIRECTORY install into DIRECTORY. -t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory. -T report an error if DSTFILE is a directory.
Environment variables override the default commands: Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG RMPROG STRIPPROG
By default, rm is invoked with -f; when overridden with RMPROG,
it's up to you to specify -f if you want it.
If -S is not specified, no backups are attempted.
Email bug reports to bug-automake@gnu.org.
Automake home page: https://www.gnu.org/software/automake/
" "
while test $# -ne 0; do while test $# -ne 0; do
@ -143,8 +143,7 @@ while test $# -ne 0; do
-m) mode=$2 -m) mode=$2
case $mode in case $mode in
*' '* | *' '* | *' *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
'* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2 echo "$0: invalid mode: $mode" >&2
exit 1;; exit 1;;
esac esac
@ -153,16 +152,23 @@ while test $# -ne 0; do
-o) chowncmd="$chownprog $2" -o) chowncmd="$chownprog $2"
shift;; shift;;
-p) cpprog="$cpprog -p";;
-s) stripcmd=$stripprog;; -s) stripcmd=$stripprog;;
-t) dst_arg=$2 -S) backupsuffix="$2"
shift;;
-t)
is_target_a_directory=always
dst_arg=$2
# Protect names problematic for 'test' and other utilities. # Protect names problematic for 'test' and other utilities.
case $dst_arg in case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;; -* | [=\(\)!]) dst_arg=./$dst_arg;;
esac esac
shift;; shift;;
-T) no_target_directory=true;; -T) is_target_a_directory=never;;
--version) echo "$0 $scriptversion"; exit $?;; --version) echo "$0 $scriptversion"; exit $?;;
@ -177,6 +183,16 @@ while test $# -ne 0; do
shift shift
done done
# We allow the use of options -d and -T together, by making -d
# take the precedence; this is for compatibility with GNU install.
if test -n "$dir_arg"; then
if test -n "$dst_arg"; then
echo "$0: target directory not allowed when installing a directory." >&2
exit 1
fi
fi
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create. # When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified. # When -t is used, the destination is already specified.
@ -207,6 +223,15 @@ if test $# -eq 0; then
exit 0 exit 0
fi fi
if test -z "$dir_arg"; then
if test $# -gt 1 || test "$is_target_a_directory" = always; then
if test ! -d "$dst_arg"; then
echo "$0: $dst_arg: Is not a directory." >&2
exit 1
fi
fi
fi
if test -z "$dir_arg"; then if test -z "$dir_arg"; then
do_exit='(exit $ret); exit $ret' do_exit='(exit $ret); exit $ret'
trap "ret=129; $do_exit" 1 trap "ret=129; $do_exit" 1
@ -250,6 +275,10 @@ do
dstdir=$dst dstdir=$dst
test -d "$dstdir" test -d "$dstdir"
dstdir_status=$? dstdir_status=$?
# Don't chown directories that already exist.
if test $dstdir_status = 0; then
chowncmd=""
fi
else else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
@ -266,70 +295,36 @@ do
fi fi
dst=$dst_arg dst=$dst_arg
# If destination is a directory, append the input filename; won't work # If destination is a directory, append the input filename.
# if double slashes aren't ignored.
if test -d "$dst"; then if test -d "$dst"; then
if test -n "$no_target_directory"; then if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2 echo "$0: $dst_arg: Is a directory" >&2
exit 1 exit 1
fi fi
dstdir=$dst dstdir=$dst
dst=$dstdir/`basename "$src"` dstbase=`basename "$src"`
case $dst in
*/) dst=$dst$dstbase;;
*) dst=$dst/$dstbase;;
esac
dstdir_status=0 dstdir_status=0
else else
# Prefer dirname, but fall back on a substitute if dirname fails. dstdir=`dirname "$dst"`
dstdir=`
(dirname "$dst") 2>/dev/null ||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$dst" : 'X\(//\)[^/]' \| \
X"$dst" : 'X\(//\)$' \| \
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
echo X"$dst" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'
`
test -d "$dstdir" test -d "$dstdir"
dstdir_status=$? dstdir_status=$?
fi fi
fi fi
case $dstdir in
*/) dstdirslash=$dstdir;;
*) dstdirslash=$dstdir/;;
esac
obsolete_mkdir_used=false obsolete_mkdir_used=false
if test $dstdir_status != 0; then if test $dstdir_status != 0; then
case $posix_mkdir in case $posix_mkdir in
'') '')
# Create intermediate dirs using mode 755 as modified by the umask.
# This is like FreeBSD 'install' as of 1997-10-28.
umask=`umask`
case $stripcmd.$umask in
# Optimize common cases.
*[2367][2367]) mkdir_umask=$umask;;
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
*[0-7])
mkdir_umask=`expr $umask + 22 \
- $umask % 100 % 40 + $umask % 20 \
- $umask % 10 % 4 + $umask % 2
`;;
*) mkdir_umask=$umask,go-w;;
esac
# With -d, create the new directory with the user-specified mode. # With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask. # Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then if test -n "$dir_arg"; then
@ -339,43 +334,49 @@ do
fi fi
posix_mkdir=false posix_mkdir=false
case $umask in # The $RANDOM variable is not portable (e.g., dash). Use it
*[123567][0-7][0-7]) # here however when possible just to lower collision chance.
# POSIX mkdir -p sets u+wx bits regardless of umask, which
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
trap '
ret=$?
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
exit $ret
' 0
# Because "mkdir -p" follows existing symlinks and we likely work
# directly in world-writeable /tmp, make sure that the '$tmpdir'
# directory is successfully created first before we actually test
# 'mkdir -p'.
if (umask $mkdir_umask && if (umask $mkdir_umask &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 $mkdirprog $mkdir_mode "$tmpdir" &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
then then
if test -z "$dir_arg" || { if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m. # Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't. # other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
ls_ld_tmpdir=`ls -ld "$tmpdir"` test_tmpdir="$tmpdir/a"
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
case $ls_ld_tmpdir in case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;; d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;; d????-?--*) different_mode=755;;
*) false;; *) false;;
esac && esac &&
$mkdirprog -m$different_mode -p -- "$tmpdir" && { $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$tmpdir"` ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
} }
} }
then posix_mkdir=: then posix_mkdir=:
fi fi
rmdir "$tmpdir/d" "$tmpdir" rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
else else
# Remove any dirs left behind by ancient mkdir implementations. # Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
fi fi
trap '' 0;; trap '' 0;;
esac;;
esac esac
if if
@ -386,7 +387,7 @@ do
then : then :
else else
# The umask is ridiculous, or mkdir does not conform to POSIX, # mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the # or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go. # directory the slow way, step by step, checking for races as we go.
@ -396,14 +397,12 @@ do
*) prefix='';; *) prefix='';;
esac esac
eval "$initialize_posix_glob"
oIFS=$IFS oIFS=$IFS
IFS=/ IFS=/
$posix_glob set -f set -f
set fnord $dstdir set fnord $dstdir
shift shift
$posix_glob set +f set +f
IFS=$oIFS IFS=$oIFS
prefixes= prefixes=
@ -417,7 +416,7 @@ do
prefixes= prefixes=
else else
if $posix_mkdir; then if $posix_mkdir; then
(umask=$mkdir_umask && (umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently. # Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1 test -d "$prefix" || exit 1
@ -450,14 +449,25 @@ do
else else
# Make a couple of temp file names in the proper directory. # Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_ dsttmp=${dstdirslash}_inst.$$_
rmtmp=$dstdir/_rm.$$_ rmtmp=${dstdirslash}_rm.$$_
# Trap to clean up those temp files at exit. # Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name. # Copy the file name to the temp name.
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && (umask $cp_umask &&
{ test -z "$stripcmd" || {
# Create $dsttmp read-write so that cp doesn't create it read-only,
# which would cause strip to fail.
if test -z "$doit"; then
: >"$dsttmp" # No need to fork-exec 'touch'.
else
$doit touch "$dsttmp"
fi
}
} &&
$doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits. # and set any options; do chmod last to preserve setuid bits.
# #
@ -474,18 +484,22 @@ do
if $copy_on_change && if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
set -f &&
eval "$initialize_posix_glob" &&
$posix_glob set -f &&
set X $old && old=:$2:$4:$5:$6 && set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 &&
$posix_glob set +f && set +f &&
test "$old" = "$new" && test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then then
rm -f "$dsttmp" rm -f "$dsttmp"
else else
# If $backupsuffix is set, and the file being installed
# already exists, attempt a backup. Don't worry if it fails,
# e.g., if mv doesn't support -f.
if test -n "$backupsuffix" && test -f "$dst"; then
$doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
fi
# Rename the file to the real destination. # Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
@ -500,9 +514,9 @@ do
# file should still install successfully. # file should still install successfully.
{ {
test ! -f "$dst" || test ! -f "$dst" ||
$doit $rmcmd -f "$dst" 2>/dev/null || $doit $rmcmd "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
} || } ||
{ echo "$0: cannot unlink or rename $dst" >&2 { echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1 (exit 1); exit 1
@ -519,9 +533,9 @@ do
done done
# Local variables: # Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp) # eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion=" # time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC" # time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC" # time-stamp-end: "; # UTC"
# End: # End:

View file

@ -126,7 +126,6 @@ CC = @CC@
CCDEPMODE = @CCDEPMODE@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@ CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@ CWARNFLAGS = @CWARNFLAGS@
CYGPATH_W = @CYGPATH_W@ CYGPATH_W = @CYGPATH_W@
@ -137,11 +136,9 @@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
ECHO_C = @ECHO_C@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
FILE_MAN_DIR = @FILE_MAN_DIR@ FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_CMD = @INSTALL_CMD@ INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@

View file

@ -51,10 +51,17 @@ disables Xrender and draws traditional eyes.
.TP 8 .TP 8
.B \-distance .B \-distance
uses an alternative mapping, as if the eyes were set back from the screen, thus following the mouse more precisely. uses an alternative mapping, as if the eyes were set back from the screen, thus following the mouse more precisely.
.TP 8
.B \-biblicallyAccurate
renders the eyes as if they belonged to a biblically accurate angel.
.TP 8
.B \-help
print a usage message and exit.
.TP 8
.B \-version
print the version number and exit.
.SH "SEE ALSO" .SH "SEE ALSO"
X(__miscmansuffix__), X Toolkit documentation X(__miscmansuffix__), X Toolkit documentation
.br
See \fIX(__miscmansuffix__)\fP for a full statement of rights and permissions.
.SH AUTHOR .SH AUTHOR
Keith Packard, MIT X Consortium Keith Packard, MIT X Consortium
.br .br

View file

@ -1,6 +1,6 @@
/* /*
* header file for transformed coordinate system. No rotations * header file for transformed coordinate system. No rotations
* supported, as elipses cannot be rotated in X. * supported, as ellipses cannot be rotated in X.
*/ */
typedef struct _transform { typedef struct _transform {

View file

@ -44,24 +44,24 @@ from the X Consortium.
/* Exit with message describing command line format */ /* Exit with message describing command line format */
static void _X_NORETURN static void _X_NORETURN
usage(void) usage(int exitval)
{ {
fprintf(stderr, fprintf(stderr,
"usage: xeyes\n" "usage: xeyes [-display [{host}]:{vs}]\n"
" [-display [{host}]:[{vs}]]\n"
" [-geometry [{width}][x{height}][{+-}{xoff}[{+-}{yoff}]]]\n" " [-geometry [{width}][x{height}][{+-}{xoff}[{+-}{yoff}]]]\n"
" [-fg {color}] [-bg {color}] [-bd {color}] [-bw {pixels}]\n" " [-fg {color}] [-bg {color}] [-bd {color}] [-bw {pixels}]\n"
" [-shape | +shape] [-outline {color}] [-center {color}]\n" " [-shape | +shape] [-outline {color}] [-center {color}]\n"
" [-backing {backing-store}] [-distance]\n"); " [-backing {backing-store}] [-distance]\n"
" [-biblicallyAccurate]\n"
#ifdef XRENDER #ifdef XRENDER
fprintf(stderr, " [-render | +render]\n"
" [-render | +render]\n");
#endif #endif
#ifdef PRESENT #ifdef PRESENT
fprintf(stderr, " [-present | +present]\n"
" [-present | +present]\n");
#endif #endif
exit(1); " xeyes -help\n"
" xeyes -version\n");
exit(exitval);
} }
/* Command line options table. Only resources are entered here...there is a /* Command line options table. Only resources are entered here...there is a
@ -82,6 +82,7 @@ static XrmOptionDescRec options[] = {
{(char *)"+present", (char *)"*eyes.present", XrmoptionNoArg, (char *)"FALSE"}, {(char *)"+present", (char *)"*eyes.present", XrmoptionNoArg, (char *)"FALSE"},
#endif #endif
{(char *)"-distance", (char *)"*eyes.distance", XrmoptionNoArg, (char *)"TRUE"}, {(char *)"-distance", (char *)"*eyes.distance", XrmoptionNoArg, (char *)"TRUE"},
{(char *)"-biblicallyAccurate", (char *)"*eyes.biblicallyAccurate", XrmoptionNoArg, (char *)"TRUE"},
}; };
static Atom wm_delete_window; static Atom wm_delete_window;
@ -113,10 +114,36 @@ main(int argc, char **argv)
XtSetLanguageProc(NULL, (XtLanguageProc) NULL, NULL); XtSetLanguageProc(NULL, (XtLanguageProc) NULL, NULL);
/* Handle args that don't require opening a display */
for (int n = 1; n < argc; n++) {
const char *argn = argv[n];
/* accept single or double dash for -help & -version */
if (argn[0] == '-' && argn[1] == '-') {
argn++;
}
if (strcmp(argn, "-help") == 0) {
usage(0);
}
if (strcmp(argn, "-version") == 0) {
puts(PACKAGE_STRING);
exit(0);
}
}
toplevel = XtAppInitialize(&app_context, "XEyes", toplevel = XtAppInitialize(&app_context, "XEyes",
options, XtNumber(options), &argc, argv, options, XtNumber(options), &argc, argv,
NULL, arg, (Cardinal) 0); NULL, arg, (Cardinal) 0);
if (argc != 1) usage();
if (argc != 1) {
fputs("Unknown argument(s):", stderr);
for (int n = 1; n < argc; n++) {
if ((n < (argc -1)) || (argv[n][0] == '-')) {
fprintf(stderr, " %s", argv[n]);
}
}
fputs("\n\n", stderr);
usage(1);
}
wm_delete_window = XInternAtom(XtDisplay(toplevel), "WM_DELETE_WINDOW", wm_delete_window = XInternAtom(XtDisplay(toplevel), "WM_DELETE_WINDOW",
False); False);

File diff suppressed because it is too large Load diff

36
xserver/configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for xorg-server 21.1.10. # Generated by GNU Autoconf 2.71 for xorg-server 21.1.11.
# #
# Report bugs to <https://gitlab.freedesktop.org/xorg/xserver/issues>. # Report bugs to <https://gitlab.freedesktop.org/xorg/xserver/issues>.
# #
@ -682,8 +682,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='xorg-server' PACKAGE_NAME='xorg-server'
PACKAGE_TARNAME='xorg-server' PACKAGE_TARNAME='xorg-server'
PACKAGE_VERSION='21.1.10' PACKAGE_VERSION='21.1.11'
PACKAGE_STRING='xorg-server 21.1.10' PACKAGE_STRING='xorg-server 21.1.11'
PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/xserver/issues' PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/xserver/issues'
PACKAGE_URL='' PACKAGE_URL=''
@ -2015,7 +2015,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # 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. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures xorg-server 21.1.10 to adapt to many kinds of systems. \`configure' configures xorg-server 21.1.11 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -2086,7 +2086,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of xorg-server 21.1.10:";; short | recursive ) echo "Configuration of xorg-server 21.1.11:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -2275,10 +2275,10 @@ Optional Packages:
org.x) org.x)
--with-bundle-version=VERSION --with-bundle-version=VERSION
Version to use for X11.app's CFBundleVersion Version to use for X11.app's CFBundleVersion
(default: 21.1.10) (default: 21.1.11)
--with-bundle-version-string=VERSION --with-bundle-version-string=VERSION
Version to use for X11.app's Version to use for X11.app's
CFBundleShortVersionString (default: 21.1.10) CFBundleShortVersionString (default: 21.1.11)
--with-sparkle-feed-url=URL --with-sparkle-feed-url=URL
URL for the Sparkle feed (default: URL for the Sparkle feed (default:
https://www.xquartz.org/releases/sparkle/release.xml) https://www.xquartz.org/releases/sparkle/release.xml)
@ -2493,7 +2493,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
xorg-server configure 21.1.10 xorg-server configure 21.1.11
generated by GNU Autoconf 2.71 generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc. Copyright (C) 2021 Free Software Foundation, Inc.
@ -3150,7 +3150,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by xorg-server $as_me 21.1.10, which was It was created by xorg-server $as_me 21.1.11, which was
generated by GNU Autoconf 2.71. Invocation command line was generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw $ $0$ac_configure_args_raw
@ -3907,7 +3907,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_compiler_gnu=$ac_cv_c_compiler_gnu
RELEASE_DATE="2023-12-13" RELEASE_DATE="2024-01-16"
RELEASE_NAME="Caramel Ice Cream" RELEASE_NAME="Caramel Ice Cream"
@ -4388,7 +4388,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='xorg-server' PACKAGE='xorg-server'
VERSION='21.1.10' VERSION='21.1.11'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@ -14763,7 +14763,7 @@ freebsd* | dragonfly*)
i*86 ) i*86 )
# Not sure whether the presence of OpenBSD here was a mistake. # Not sure whether the presence of OpenBSD here was a mistake.
# Let's accept both of them until this is cleared up. # Let's accept both of them until this is cleared up.
lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|SecBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly|SecBSD)/i[3-9]86 (compact )?demand paged shared library'
lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_cmd=/usr/bin/file
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
;; ;;
@ -14837,7 +14837,7 @@ newos6*)
lt_cv_deplibs_check_method=pass_all lt_cv_deplibs_check_method=pass_all
;; ;;
openbsd* | secbsd*) openbsd*)
if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
else else
@ -19275,7 +19275,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
*nto* | *qnx*) *nto* | *qnx*)
;; ;;
openbsd* | secbsd*) openbsd*)
if test -f /usr/libexec/ld.so; then if test -f /usr/libexec/ld.so; then
hardcode_direct=yes hardcode_direct=yes
hardcode_shlibpath_var=no hardcode_shlibpath_var=no
@ -20322,7 +20322,7 @@ newsos6)
dynamic_linker='ldqnx.so' dynamic_linker='ldqnx.so'
;; ;;
openbsd* | secbsd*) openbsd*)
version_type=sunos version_type=sunos
sys_lib_dlsearch_path_spec="/usr/lib" sys_lib_dlsearch_path_spec="/usr/lib"
need_lib_prefix=no need_lib_prefix=no
@ -24439,7 +24439,7 @@ if test ${with_bundle_version+y}
then : then :
withval=$with_bundle_version; BUNDLE_VERSION="${withval}" withval=$with_bundle_version; BUNDLE_VERSION="${withval}"
else $as_nop else $as_nop
BUNDLE_VERSION="21.1.10" BUNDLE_VERSION="21.1.11"
fi fi
@ -33105,7 +33105,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by xorg-server $as_me 21.1.10, which was This file was extended by xorg-server $as_me 21.1.11, which was
generated by GNU Autoconf 2.71. Invocation command line was generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -33173,7 +33173,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped' ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\ ac_cs_version="\\
xorg-server config.status 21.1.10 xorg-server config.status 21.1.11
configured by $0, generated by GNU Autoconf 2.71, configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View file

@ -26,8 +26,8 @@ dnl
dnl Process this file with autoconf to create configure. dnl Process this file with autoconf to create configure.
AC_PREREQ(2.60) AC_PREREQ(2.60)
AC_INIT([xorg-server], 21.1.10, [https://gitlab.freedesktop.org/xorg/xserver/issues], xorg-server) AC_INIT([xorg-server], 21.1.11, [https://gitlab.freedesktop.org/xorg/xserver/issues], xorg-server)
RELEASE_DATE="2023-12-13" RELEASE_DATE="2024-01-16"
RELEASE_NAME="Caramel Ice Cream" RELEASE_NAME="Caramel Ice Cream"
AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_MACRO_DIR([m4])

View file

@ -3,10 +3,10 @@ project('xserver', 'c',
'buildtype=debugoptimized', 'buildtype=debugoptimized',
'c_std=gnu99', 'c_std=gnu99',
], ],
version: '21.1.10', version: '21.1.11',
meson_version: '>= 0.47.0', meson_version: '>= 0.47.0',
) )
release_date = '2023-12-13' release_date = '2024-01-16'
add_project_arguments('-DHAVE_DIX_CONFIG_H', language: ['c', 'objc']) add_project_arguments('-DHAVE_DIX_CONFIG_H', language: ['c', 'objc'])
cc = meson.get_compiler('c') cc = meson.get_compiler('c')

View file

@ -518,7 +518,6 @@ RRMonitorAdd(ClientPtr client, ScreenPtr screen, RRMonitorPtr monitor)
for (m = 0; m < pScrPriv->numMonitors; m++) { for (m = 0; m < pScrPriv->numMonitors; m++) {
RRMonitorPtr existing = pScrPriv->monitors[m]; RRMonitorPtr existing = pScrPriv->monitors[m];
int o, eo;
/* If 'name' matches an existing Monitor on the screen, the /* If 'name' matches an existing Monitor on the screen, the
* existing one will be deleted as if RRDeleteMonitor were called. * existing one will be deleted as if RRDeleteMonitor were called.
@ -528,27 +527,6 @@ RRMonitorAdd(ClientPtr client, ScreenPtr screen, RRMonitorPtr monitor)
continue; continue;
} }
/* For each output in 'info.outputs', each one is removed from all
* pre-existing Monitors. If removing the output causes the list
* of outputs for that Monitor to become empty, then that
* Monitor will be deleted as if RRDeleteMonitor were called.
*/
for (eo = 0; eo < existing->numOutputs; eo++) {
for (o = 0; o < monitor->numOutputs; o++) {
if (monitor->outputs[o] == existing->outputs[eo]) {
memmove(existing->outputs + eo, existing->outputs + eo + 1,
(existing->numOutputs - (eo + 1)) * sizeof (RROutput));
--existing->numOutputs;
--eo;
break;
}
}
if (existing->numOutputs == 0) {
(void) RRMonitorDelete(client, screen, existing->name);
break;
}
}
if (monitor->primary) if (monitor->primary)
existing->primary = FALSE; existing->primary = FALSE;
} }