sync with OpenBSD -current
This commit is contained in:
parent
40c5de4fdf
commit
28b8e7f357
47 changed files with 12974 additions and 10842 deletions
13
MODULES
13
MODULES
|
@ -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
|
||||
#
|
||||
|
@ -8,7 +8,7 @@ app/bdftopcf 1.1.1
|
|||
app/beforelight 1.0.6
|
||||
app/bitmap 1.1.0
|
||||
app/editres 1.0.8
|
||||
app/fonttosfnt 1.2.3 needs-update
|
||||
app/fonttosfnt 1.2.3
|
||||
app/iceauth 1.0.9
|
||||
app/ico 1.0.6
|
||||
app/listres 1.0.5
|
||||
|
@ -25,7 +25,7 @@ app/viewres 1.0.7
|
|||
app/x11perf 1.6.2
|
||||
app/xauth 1.1.2
|
||||
app/xbacklight 1.2.3
|
||||
app/xbiff 1.0.4
|
||||
app/xbiff 1.0.5
|
||||
app/xcalc 1.1.2
|
||||
app/xclipboard 1.1.4
|
||||
app/xclock 1.1.1
|
||||
|
@ -36,7 +36,7 @@ app/xdpyinfo 1.3.4
|
|||
app/xdriinfo 1.0.7
|
||||
app/xedit 1.2.3
|
||||
app/xev 1.2.5
|
||||
app/xeyes 1.3.0 needs-update
|
||||
app/xeyes 1.3.0
|
||||
app/xf86dga 1.0.3
|
||||
app/xfd 1.1.4
|
||||
app/xfontsel 1.1.0
|
||||
|
@ -182,7 +182,7 @@ lib/libxcvt 0.1.2
|
|||
lib/libxkbfile 1.1.2
|
||||
lib/libxshmfence 1.3.2
|
||||
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-cursor 0.1.5 needs-update
|
||||
lib/xcb-util-image 0.4.1
|
||||
|
@ -198,5 +198,4 @@ util/gccmakedep 1.0.3
|
|||
util/macros 1.20.0
|
||||
util/makedepend 1.0.8
|
||||
|
||||
xserver 21.1.11 needs-update
|
||||
|
||||
xserver 21.1.11
|
||||
|
|
|
@ -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
|
||||
Author: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Tue Jun 15 10:33:54 2021 +1000
|
||||
|
|
|
@ -186,9 +186,9 @@ am__relativize = \
|
|||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||
done; \
|
||||
reldir="$$dir2"
|
||||
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
|
||||
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.xz
|
||||
GZIP_ENV = --best
|
||||
DIST_TARGETS = dist-bzip2 dist-gzip
|
||||
DIST_TARGETS = dist-xz dist-gzip
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
|
||||
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
|
||||
|
@ -209,7 +209,6 @@ CC = @CC@
|
|||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHANGELOG_CMD = @CHANGELOG_CMD@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CWARNFLAGS = @CWARNFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
|
@ -220,13 +219,11 @@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
|
|||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FILE_MAN_DIR = @FILE_MAN_DIR@
|
||||
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
|
||||
FONTTOSFNT_CFLAGS = @FONTTOSFNT_CFLAGS@
|
||||
FONTTOSFNT_LIBS = @FONTTOSFNT_LIBS@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_CMD = @INSTALL_CMD@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
@ -655,6 +652,7 @@ distdir: $(DISTFILES)
|
|||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
|
||||
$(am__post_remove_distdir)
|
||||
|
@ -662,7 +660,6 @@ dist-bzip2: distdir
|
|||
dist-lzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-xz: distdir
|
||||
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
|
||||
$(am__post_remove_distdir)
|
||||
|
|
74
app/fonttosfnt/aclocal.m4
vendored
74
app/fonttosfnt/aclocal.m4
vendored
|
@ -13,8 +13,8 @@
|
|||
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
|
||||
[m4_warning([this file was generated for autoconf 2.69.
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
|
||||
[m4_warning([this file was generated for autoconf 2.71.
|
||||
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.
|
||||
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
|
||||
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 Permission is hereby granted, free of charge, to any person obtaining a
|
||||
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
|
||||
# version you require.
|
||||
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_needed], m4_substr([$1], 0, m4_index([$1], [.])))
|
||||
m4_if(m4_cmp(maj_have, maj_needed), 0,,
|
||||
|
@ -1376,7 +1376,7 @@ AM_MAINTAINER_MODE
|
|||
# such as man pages and config files
|
||||
AC_DEFUN([XORG_PROG_RAWCPP],[
|
||||
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])
|
||||
|
||||
# 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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# documentation targets except traditional man pages.
|
||||
# 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:
|
||||
# XORG_WITH_XMLTO --with-xmlto
|
||||
# XORG_WITH_ASCIIDOC --with-asciidoc
|
||||
|
@ -2344,7 +2344,7 @@ AC_MSG_RESULT([$build_docs])
|
|||
#
|
||||
# This macro enables a builder to skip all developer documentation.
|
||||
# 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:
|
||||
# XORG_WITH_XMLTO --with-xmlto
|
||||
# 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.
|
||||
# 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:
|
||||
# XORG_WITH_XMLTO --with-xmlto
|
||||
# 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
|
||||
# The lint program on FreeBSD and NetBSD is different from the one on Solaris
|
||||
case $host_os in
|
||||
*linux* | *openbsd* | *secbsd* | kfreebsd*-gnu | darwin* | cygwin*)
|
||||
*linux* | *openbsd* | kfreebsd*-gnu | darwin* | cygwin*)
|
||||
lint_name=splint
|
||||
lint_options="-badflag"
|
||||
;;
|
||||
|
@ -2852,7 +2852,11 @@ AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno])
|
|||
AC_DEFUN([XORG_COMPILER_BRAND], [
|
||||
AC_LANG_CASE(
|
||||
[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++], [
|
||||
AC_REQUIRE([AC_PROG_CXX])
|
||||
|
@ -2868,7 +2872,7 @@ AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
|
|||
# Minimum version: 1.16.0
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# 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(
|
||||
[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([CACHE_PREFIX], [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-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.
|
||||
|
||||
if test "x$SELECTIVE_WERROR" = "xyes" ; then
|
||||
|
@ -3134,23 +3142,35 @@ AC_SUBST([BASE_]PREFIX[FLAGS])
|
|||
AC_LANG_CASE([C], AC_SUBST([CWARNFLAGS]))
|
||||
]) # XORG_STRICT_OPTION
|
||||
|
||||
# XORG_DEFAULT_OPTIONS
|
||||
# --------------------
|
||||
# Minimum version: 1.3.0
|
||||
# XORG_DEFAULT_NOCODE_OPTIONS
|
||||
# ---------------------------
|
||||
# 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])
|
||||
XORG_COMPILER_FLAGS
|
||||
XORG_CWARNFLAGS
|
||||
XORG_STRICT_OPTION
|
||||
XORG_RELEASE_VERSION
|
||||
XORG_CHANGELOG
|
||||
XORG_INSTALL
|
||||
XORG_MANPAGE_SECTIONS
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
|
||||
[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_INSTALL()
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
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>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdio.h> header file. */
|
||||
#undef HAVE_STDIO_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
|
@ -64,7 +64,9 @@
|
|||
/* Patch version of this package */
|
||||
#undef PACKAGE_VERSION_PATCHLEVEL
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
/* Define to 1 if all of the C90 standard headers exist (not just the ones
|
||||
required in a freestanding environment). This macro is provided for
|
||||
backward compatibility; new code need not use it. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Version number of package */
|
||||
|
|
6486
app/fonttosfnt/configure
vendored
6486
app/fonttosfnt/configure
vendored
File diff suppressed because it is too large
Load diff
|
@ -23,12 +23,13 @@ dnl Process this file with autoconf to create configure.
|
|||
|
||||
# Initialize Autoconf
|
||||
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_HEADERS([config.h])
|
||||
|
||||
# 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
|
||||
m4_ifndef([XORG_MACROS_VERSION],
|
||||
|
|
|
@ -47,7 +47,6 @@ int
|
|||
main(int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
int rc;
|
||||
char *output = NULL;
|
||||
FontPtr font;
|
||||
|
||||
|
@ -113,11 +112,11 @@ main(int argc, char **argv)
|
|||
"The creation of an OpenType font collection is recommended.\n");
|
||||
|
||||
if(i == argc) {
|
||||
rc = readFile(NULL, font);
|
||||
int rc = readFile(NULL, font);
|
||||
if(rc != 0)
|
||||
exit(1);
|
||||
} else while(i < argc) {
|
||||
rc = readFile(argv[i], font);
|
||||
int rc = readFile(argv[i], font);
|
||||
if(rc != 0)
|
||||
exit(1);
|
||||
i++;
|
||||
|
|
|
@ -161,11 +161,10 @@ FontPtr makeFont(void);
|
|||
StrikePtr makeStrike(FontPtr, int, int);
|
||||
BitmapPtr makeBitmap(StrikePtr, int,
|
||||
int, int, int, int, int, int,
|
||||
unsigned char*, int);
|
||||
const unsigned char*, int);
|
||||
IndexSubTablePtr makeIndexSubTables(StrikePtr, CmapPtr);
|
||||
int fontIndex(FontPtr, int);
|
||||
CmapPtr makeCmap(FontPtr);
|
||||
int findIndex(CmapPtr, int);
|
||||
int findCode(CmapPtr, int);
|
||||
BitmapPtr strikeBitmapIndex(StrikePtr, CmapPtr, int);
|
||||
int strikeMaxWidth(StrikePtr);
|
||||
|
@ -185,7 +184,6 @@ int writeFile(char *filename, FontPtr);
|
|||
char *sprintf_alloc(const char *f, ...);
|
||||
char *vsprintf_alloc(const char *f, va_list args);
|
||||
char *makeUTF16(const char *);
|
||||
unsigned makeName(const char*);
|
||||
int macTime(int *, unsigned *);
|
||||
unsigned faceFoundry(FT_Face);
|
||||
char *faceEncoding(FT_Face);
|
||||
|
@ -197,4 +195,10 @@ int faceWidth(FT_Face);
|
|||
int faceItalicAngle(FT_Face);
|
||||
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_ */
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
# 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
|
||||
# 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
|
||||
# from scratch.
|
||||
|
||||
tab=' '
|
||||
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-}
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
doit_exec=$doit
|
||||
fi
|
||||
doit_exec=${doit:-exec}
|
||||
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
|
@ -68,22 +64,16 @@ mvprog=${MVPROG-mv}
|
|||
rmprog=${RMPROG-rm}
|
||||
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=
|
||||
|
||||
# Desired mode of installed file.
|
||||
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=
|
||||
chmodcmd=$chmodprog
|
||||
chowncmd=
|
||||
|
@ -97,7 +87,7 @@ dir_arg=
|
|||
dst_arg=
|
||||
|
||||
copy_on_change=false
|
||||
no_target_directory=
|
||||
is_target_a_directory=possibly
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
|
@ -114,18 +104,28 @@ Options:
|
|||
--version display version info and exit.
|
||||
|
||||
-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.
|
||||
-g GROUP $chgrpprog installed files to GROUP.
|
||||
-m MODE $chmodprog installed files to MODE.
|
||||
-o USER $chownprog installed files to USER.
|
||||
-p pass -p to $cpprog.
|
||||
-s $stripprog installed files.
|
||||
-S SUFFIX attempt to back up existing files, with suffix SUFFIX.
|
||||
-t DIRECTORY install into DIRECTORY.
|
||||
-T report an error if DSTFILE is a directory.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||
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
|
||||
|
@ -137,46 +137,62 @@ while test $# -ne 0; do
|
|||
-d) dir_arg=true;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift;;
|
||||
shift;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) mode=$2
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
case $mode in
|
||||
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift;;
|
||||
shift;;
|
||||
|
||||
-p) cpprog="$cpprog -p";;
|
||||
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dst_arg=$2
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
-S) backupsuffix="$2"
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true;;
|
||||
-t)
|
||||
is_target_a_directory=always
|
||||
dst_arg=$2
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-T) is_target_a_directory=never;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
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
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
|
@ -207,6 +223,15 @@ if test $# -eq 0; then
|
|||
exit 0
|
||||
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
|
||||
do_exit='(exit $ret); exit $ret'
|
||||
trap "ret=129; $do_exit" 1
|
||||
|
@ -223,16 +248,16 @@ if test -z "$dir_arg"; then
|
|||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
|
@ -250,6 +275,10 @@ do
|
|||
dstdir=$dst
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
# Don't chown directories that already exist.
|
||||
if test $dstdir_status = 0; then
|
||||
chowncmd=""
|
||||
fi
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||
|
@ -266,178 +295,148 @@ do
|
|||
fi
|
||||
dst=$dst_arg
|
||||
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
# If destination is a directory, append the input filename.
|
||||
if test -d "$dst"; then
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
if test "$is_target_a_directory" = never; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstbase=`basename "$src"`
|
||||
case $dst in
|
||||
*/) dst=$dst$dstbase;;
|
||||
*) dst=$dst/$dstbase;;
|
||||
esac
|
||||
dstdir_status=0
|
||||
else
|
||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||
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'
|
||||
`
|
||||
|
||||
dstdir=`dirname "$dst"`
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
case $dstdir in
|
||||
*/) dstdirslash=$dstdir;;
|
||||
*) dstdirslash=$dstdir/;;
|
||||
esac
|
||||
|
||||
obsolete_mkdir_used=false
|
||||
|
||||
if test $dstdir_status != 0; then
|
||||
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;;
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
posix_mkdir=false
|
||||
# The $RANDOM variable is not portable (e.g., dash). Use it
|
||||
# here however when possible just to lower collision chance.
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
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 &&
|
||||
$mkdirprog $mkdir_mode "$tmpdir" &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
test_tmpdir="$tmpdir/a"
|
||||
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
|
||||
else
|
||||
mkdir_mode=
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
|
||||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# 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-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
trap '' 0;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
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
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
*) prefix='';;
|
||||
/*) prefix='/';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
eval "$initialize_posix_glob"
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
$posix_glob set -f
|
||||
set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
$posix_glob set +f
|
||||
set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test X"$d" = X && continue
|
||||
test X"$d" = X && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -450,14 +449,25 @@ do
|
|||
else
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
dsttmp=$dstdir/_inst.$$_
|
||||
rmtmp=$dstdir/_rm.$$_
|
||||
dsttmp=${dstdirslash}_inst.$$_
|
||||
rmtmp=${dstdirslash}_rm.$$_
|
||||
|
||||
# Trap to clean up those temp files at exit.
|
||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||
|
||||
# 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.
|
||||
#
|
||||
|
@ -472,20 +482,24 @@ do
|
|||
|
||||
# If -C, don't bother to copy if it wouldn't change the file.
|
||||
if $copy_on_change &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
|
||||
eval "$initialize_posix_glob" &&
|
||||
$posix_glob set -f &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
$posix_glob set +f &&
|
||||
|
||||
set +f &&
|
||||
test "$old" = "$new" &&
|
||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||
then
|
||||
rm -f "$dsttmp"
|
||||
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.
|
||||
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
||||
|
||||
|
@ -493,24 +507,24 @@ do
|
|||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
{
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
fi || exit 1
|
||||
|
||||
|
@ -519,9 +533,9 @@ do
|
|||
done
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
|
|
@ -125,7 +125,6 @@ CC = @CC@
|
|||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHANGELOG_CMD = @CHANGELOG_CMD@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CWARNFLAGS = @CWARNFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
|
@ -136,13 +135,11 @@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
|
|||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FILE_MAN_DIR = @FILE_MAN_DIR@
|
||||
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
|
||||
FONTTOSFNT_CFLAGS = @FONTTOSFNT_CFLAGS@
|
||||
FONTTOSFNT_LIBS = @FONTTOSFNT_LIBS@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_CMD = @INSTALL_CMD@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
|
|
@ -36,40 +36,42 @@ makeFont(void)
|
|||
if(font == NULL)
|
||||
return NULL;
|
||||
|
||||
font->numNames = 0;
|
||||
font->names = NULL;
|
||||
font->flags = 0;
|
||||
font->weight = 500;
|
||||
font->width = 5;
|
||||
font->italicAngle = 0;
|
||||
font->pxMetrics.height = UNDEF;
|
||||
font->pxMetrics.maxX = UNDEF;
|
||||
font->pxMetrics.minX = UNDEF;
|
||||
font->pxMetrics.maxY = UNDEF;
|
||||
font->pxMetrics.minY = UNDEF;
|
||||
font->pxMetrics.xHeight = UNDEF;
|
||||
font->pxMetrics.capHeight = UNDEF;
|
||||
font->pxMetrics.maxAwidth = UNDEF;
|
||||
font->pxMetrics.awidth = UNDEF;
|
||||
font->pxMetrics.ascent = UNDEF;
|
||||
font->pxMetrics.descent = UNDEF;
|
||||
font->pxMetrics.underlinePosition = UNDEF;
|
||||
font->pxMetrics.underlineThickness = UNDEF;
|
||||
font->metrics.height = UNDEF;
|
||||
font->metrics.maxX = UNDEF;
|
||||
font->metrics.minX = UNDEF;
|
||||
font->metrics.maxY = UNDEF;
|
||||
font->metrics.minY = UNDEF;
|
||||
font->metrics.xHeight = UNDEF;
|
||||
font->metrics.capHeight = UNDEF;
|
||||
font->metrics.maxAwidth = UNDEF;
|
||||
font->metrics.awidth = UNDEF;
|
||||
font->metrics.ascent = UNDEF;
|
||||
font->metrics.descent = UNDEF;
|
||||
font->metrics.underlinePosition = UNDEF;
|
||||
font->metrics.underlineThickness = UNDEF;
|
||||
font->foundry = makeName("UNKN");
|
||||
font->strikes = NULL;
|
||||
*font = (FontRec) {
|
||||
.numNames = 0,
|
||||
.names = NULL,
|
||||
.flags = 0,
|
||||
.weight = 500,
|
||||
.width = 5,
|
||||
.italicAngle = 0,
|
||||
.pxMetrics.height = UNDEF,
|
||||
.pxMetrics.maxX = UNDEF,
|
||||
.pxMetrics.minX = UNDEF,
|
||||
.pxMetrics.maxY = UNDEF,
|
||||
.pxMetrics.minY = UNDEF,
|
||||
.pxMetrics.xHeight = UNDEF,
|
||||
.pxMetrics.capHeight = UNDEF,
|
||||
.pxMetrics.maxAwidth = UNDEF,
|
||||
.pxMetrics.awidth = UNDEF,
|
||||
.pxMetrics.ascent = UNDEF,
|
||||
.pxMetrics.descent = UNDEF,
|
||||
.pxMetrics.underlinePosition = UNDEF,
|
||||
.pxMetrics.underlineThickness = UNDEF,
|
||||
.metrics.height = UNDEF,
|
||||
.metrics.maxX = UNDEF,
|
||||
.metrics.minX = UNDEF,
|
||||
.metrics.maxY = UNDEF,
|
||||
.metrics.minY = UNDEF,
|
||||
.metrics.xHeight = UNDEF,
|
||||
.metrics.capHeight = UNDEF,
|
||||
.metrics.maxAwidth = UNDEF,
|
||||
.metrics.awidth = UNDEF,
|
||||
.metrics.ascent = UNDEF,
|
||||
.metrics.descent = UNDEF,
|
||||
.metrics.underlinePosition = UNDEF,
|
||||
.metrics.underlineThickness = UNDEF,
|
||||
.foundry = makeName("UNKN"),
|
||||
.strikes = NULL,
|
||||
};
|
||||
return font;
|
||||
}
|
||||
|
||||
|
@ -90,29 +92,35 @@ makeStrike(FontPtr font, int sizeX, int sizeY)
|
|||
strike = malloc(sizeof(StrikeRec));
|
||||
if(strike == NULL)
|
||||
return NULL;
|
||||
strike->sizeX = sizeX;
|
||||
strike->sizeY = sizeY;
|
||||
strike->bitmaps =
|
||||
calloc(FONT_CODES / FONT_SEGMENT_SIZE, sizeof(BitmapPtr*));
|
||||
if(strike->bitmaps == NULL) {
|
||||
free(strike);
|
||||
return NULL;
|
||||
else {
|
||||
BitmapPtr **bitmaps =
|
||||
calloc(FONT_CODES / FONT_SEGMENT_SIZE, sizeof(BitmapPtr*));
|
||||
if (bitmaps == NULL) {
|
||||
free(strike);
|
||||
return NULL;
|
||||
}
|
||||
*strike = (StrikeRec) {
|
||||
.sizeX = sizeX,
|
||||
.sizeY = sizeY,
|
||||
.bitmaps = bitmaps,
|
||||
.numSbits = 0,
|
||||
.next = NULL,
|
||||
.bitmapSizeTableLocation = 0xDEADFACE,
|
||||
.indexSubTables = NULL,
|
||||
};
|
||||
if (last_strike)
|
||||
last_strike->next = strike;
|
||||
else
|
||||
font->strikes = strike;
|
||||
}
|
||||
strike->numSbits = 0;
|
||||
strike->next = NULL;
|
||||
strike->bitmapSizeTableLocation = 0xDEADFACE;
|
||||
strike->indexSubTables = NULL;
|
||||
if(last_strike)
|
||||
last_strike->next = strike;
|
||||
else
|
||||
font->strikes = strike;
|
||||
return strike;
|
||||
}
|
||||
|
||||
BitmapPtr
|
||||
makeBitmap(StrikePtr strike, int code,
|
||||
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;
|
||||
int i, j, x, y;
|
||||
|
@ -122,12 +130,14 @@ makeBitmap(StrikePtr strike, int code,
|
|||
if(bitmap == NULL)
|
||||
return NULL;
|
||||
|
||||
bitmap->index = -1;
|
||||
bitmap->width = 0;
|
||||
bitmap->height = 0;
|
||||
bitmap->stride = 0;
|
||||
bitmap->raster = NULL;
|
||||
bitmap->location = 0xDEADFACE;
|
||||
*bitmap = (BitmapRec) {
|
||||
.index = -1,
|
||||
.width = 0,
|
||||
.height = 0,
|
||||
.stride = 0,
|
||||
.raster = NULL,
|
||||
.location = 0xDEADFACE,
|
||||
};
|
||||
|
||||
i = code / FONT_SEGMENT_SIZE;
|
||||
j = code % FONT_SEGMENT_SIZE;
|
||||
|
@ -243,9 +253,8 @@ makeBitmap(StrikePtr strike, int code,
|
|||
IndexSubTablePtr
|
||||
makeIndexSubTables(StrikePtr strike, CmapPtr cmap)
|
||||
{
|
||||
IndexSubTablePtr table, first, last;
|
||||
BitmapPtr bitmap0, bitmap;
|
||||
int index, n;
|
||||
IndexSubTablePtr first, last;
|
||||
int index;
|
||||
|
||||
first = NULL;
|
||||
last = NULL;
|
||||
|
@ -262,6 +271,10 @@ makeIndexSubTables(StrikePtr strike, CmapPtr cmap)
|
|||
index = 0;
|
||||
while(index < 0xFFFF) {
|
||||
int constantMetrics = 1;
|
||||
int n;
|
||||
IndexSubTablePtr table;
|
||||
BitmapPtr bitmap0, bitmap;
|
||||
|
||||
bitmap0 = strikeBitmapIndex(strike, cmap, index);
|
||||
if(bitmap0 == NULL) {
|
||||
index++;
|
||||
|
@ -295,12 +308,14 @@ makeIndexSubTables(StrikePtr strike, CmapPtr cmap)
|
|||
constantMetrics = 0;
|
||||
|
||||
table = malloc(sizeof(IndexSubTableRec));
|
||||
table->firstGlyphIndex = index;
|
||||
table->lastGlyphIndex = index + n - 1;
|
||||
table->constantMetrics = constantMetrics;
|
||||
table->location = 0xDEADFACE;
|
||||
table->lastLocation = 0xDEADFACE;
|
||||
table->next = NULL;
|
||||
*table = (IndexSubTableRec) {
|
||||
.firstGlyphIndex = index,
|
||||
.lastGlyphIndex = index + n - 1,
|
||||
.constantMetrics = constantMetrics,
|
||||
.location = 0xDEADFACE,
|
||||
.lastLocation = 0xDEADFACE,
|
||||
.next = NULL,
|
||||
};
|
||||
|
||||
if(first == NULL) {
|
||||
first = table;
|
||||
|
@ -318,13 +333,12 @@ int
|
|||
fontIndex(FontPtr font, int code)
|
||||
{
|
||||
StrikePtr strike;
|
||||
BitmapPtr bitmap;
|
||||
|
||||
if(code == 0)
|
||||
return 0;
|
||||
strike = font->strikes;
|
||||
while(strike) {
|
||||
bitmap = STRIKE_BITMAP(strike, code);
|
||||
BitmapPtr bitmap = STRIKE_BITMAP(strike, code);
|
||||
if(bitmap)
|
||||
return bitmap->index;
|
||||
strike = strike->next;
|
||||
|
@ -338,11 +352,12 @@ makeCmap(FontPtr font)
|
|||
CmapPtr cmap_head = NULL;
|
||||
CmapPtr cmap_last = NULL;
|
||||
CmapPtr cmap;
|
||||
int code, i, index, maxindex = 0;
|
||||
int code, maxindex = 0;
|
||||
|
||||
code = 0;
|
||||
while(code < FONT_CODES) {
|
||||
index = fontIndex(font, code);
|
||||
int i;
|
||||
int index = fontIndex(font, code);
|
||||
if(index < 0) {
|
||||
code++;
|
||||
continue;
|
||||
|
@ -355,11 +370,13 @@ makeCmap(FontPtr font)
|
|||
cmap = malloc(sizeof(CmapRec));
|
||||
if(cmap == NULL)
|
||||
return NULL;
|
||||
cmap->startCode = code;
|
||||
cmap->endCode = code + i - 1;
|
||||
cmap->index = index;
|
||||
cmap->next = NULL;
|
||||
cmap->maxindex = 0;
|
||||
*cmap = (CmapRec) {
|
||||
.startCode = code,
|
||||
.endCode = code + i - 1,
|
||||
.index = index,
|
||||
.next = NULL,
|
||||
.maxindex = 0,
|
||||
};
|
||||
if(maxindex < index + i - 1)
|
||||
maxindex = index + i - 1;
|
||||
if(cmap_head == NULL)
|
||||
|
@ -374,7 +391,7 @@ makeCmap(FontPtr font)
|
|||
cmap_head->inverse = calloc(maxindex + 1, sizeof(int));
|
||||
cmap = cmap_head;
|
||||
while(cmap) {
|
||||
for(i = cmap->index;
|
||||
for(int i = cmap->index;
|
||||
i <= cmap->endCode - cmap->startCode + cmap->index; i++) {
|
||||
cmap_head->inverse[i] =
|
||||
i - cmap->index + cmap->startCode;
|
||||
|
@ -385,21 +402,6 @@ makeCmap(FontPtr font)
|
|||
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
|
||||
findCode(CmapPtr cmap_head, int index)
|
||||
{
|
||||
|
@ -428,12 +430,10 @@ strikeBitmapIndex(StrikePtr strike, CmapPtr cmap, int index)
|
|||
int
|
||||
strikeMaxWidth(StrikePtr strike)
|
||||
{
|
||||
BitmapPtr bitmap;
|
||||
int i;
|
||||
int width_max = 0;
|
||||
|
||||
for(i = 0; i < FONT_CODES; i++) {
|
||||
bitmap = STRIKE_BITMAP(strike, i);
|
||||
for(int i = 0; i < FONT_CODES; i++) {
|
||||
BitmapPtr bitmap = STRIKE_BITMAP(strike, i);
|
||||
if(!bitmap)
|
||||
continue;
|
||||
if(bitmap->advanceWidth > width_max)
|
||||
|
@ -450,11 +450,10 @@ glyphMetrics(FontPtr font, int code,
|
|||
int *x_max_return, int *y_max_return)
|
||||
{
|
||||
StrikePtr strike;
|
||||
BitmapPtr bitmap;
|
||||
|
||||
strike = font->strikes;
|
||||
while(strike) {
|
||||
bitmap = STRIKE_BITMAP(strike, code);
|
||||
BitmapPtr bitmap = STRIKE_BITMAP(strike, code);
|
||||
if(bitmap) {
|
||||
if(width_return)
|
||||
*width_return =
|
||||
|
|
|
@ -100,7 +100,9 @@ vsprintf_alloc(const char *f, va_list args)
|
|||
{
|
||||
int n, size = 12;
|
||||
char *string;
|
||||
#if HAVE_DECL_VA_COPY
|
||||
va_list args_copy;
|
||||
#endif
|
||||
|
||||
while(1) {
|
||||
if(size > 4096)
|
||||
|
@ -132,24 +134,17 @@ vsprintf_alloc(const char *f, va_list args)
|
|||
char *
|
||||
makeUTF16(const char *string)
|
||||
{
|
||||
int i;
|
||||
int n = strlen(string);
|
||||
char *value = malloc(2 * n);
|
||||
if(!value)
|
||||
return NULL;
|
||||
for(i = 0; i < n; i++) {
|
||||
for(int i = 0; i < n; i++) {
|
||||
value[2 * i] = '\0';
|
||||
value[2 * i + 1] = string[i];
|
||||
}
|
||||
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 */
|
||||
#if defined(HAVE_TIMEGM)
|
||||
static time_t
|
||||
|
@ -445,7 +440,6 @@ degreesToFraction(int deg, int *num, int *den)
|
|||
{
|
||||
double n, d;
|
||||
double rad, val;
|
||||
int i;
|
||||
|
||||
if(deg <= -(60 * TWO_SIXTEENTH) || deg >= (60 * TWO_SIXTEENTH))
|
||||
goto fail;
|
||||
|
@ -460,7 +454,7 @@ degreesToFraction(int deg, int *num, int *den)
|
|||
|
||||
val = atan2(n, d);
|
||||
/* 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 &&
|
||||
fabs(atan2(ROUND(n * i), ROUND(d * i)) - val) < 0.05) {
|
||||
*num = (int)ROUND(n * i);
|
||||
|
|
|
@ -208,7 +208,6 @@ readULONG(FILE *out)
|
|||
void
|
||||
fontMetrics(FontPtr font)
|
||||
{
|
||||
int i, rc;
|
||||
double sumAwidth = 0;
|
||||
unsigned count = 0;
|
||||
|
||||
|
@ -218,9 +217,9 @@ fontMetrics(FontPtr font)
|
|||
font->metrics.minX = 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;
|
||||
rc = glyphMetrics(font, i, &awidth, &x0, &y0, &x1, &y1);
|
||||
int rc = glyphMetrics(font, i, &awidth, &x0, &y0, &x1, &y1);
|
||||
if(rc < 0)
|
||||
continue;
|
||||
|
||||
|
@ -483,7 +482,6 @@ static unsigned
|
|||
computeChecksum(FILE *out, int offset, int length)
|
||||
{
|
||||
int rc;
|
||||
int i;
|
||||
unsigned sum = 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. */
|
||||
for(i = 0; i < length; i += 4) {
|
||||
for(int i = 0; i < length; i += 4) {
|
||||
sum += readULONG(out);
|
||||
}
|
||||
return sum;
|
||||
|
@ -507,12 +505,9 @@ computeChecksum(FILE *out, int offset, int length)
|
|||
static int
|
||||
fixupDir(FILE *out, FontPtr font, int numTables, int *offset, int *length)
|
||||
{
|
||||
int rc, i;
|
||||
unsigned sum;
|
||||
|
||||
for(i = 0; i < numTables; i++) {
|
||||
sum = computeChecksum(out, offset[i], length[i]);
|
||||
rc = fseek(out, 12 + 16 * i + 4, SEEK_SET);
|
||||
for(int i = 0; i < numTables; i++) {
|
||||
unsigned sum = computeChecksum(out, offset[i], length[i]);
|
||||
int rc = fseek(out, 12 + 16 * i + 4, SEEK_SET);
|
||||
if(rc != 0) {
|
||||
perror("Couldn't seek");
|
||||
return -1;
|
||||
|
@ -577,19 +572,18 @@ static int
|
|||
outputRaster(FILE *out, char *raster, int width, int height, int stride,
|
||||
int bit_aligned)
|
||||
{
|
||||
int i, j;
|
||||
int len = 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);
|
||||
len += (width + 7) / 8;
|
||||
}
|
||||
} else {
|
||||
int bit = 0;
|
||||
unsigned char v = 0;
|
||||
for(i = 0; i < height; i++) {
|
||||
for(j = 0; j < width; j++) {
|
||||
for(int i = 0; i < height; i++) {
|
||||
for(int j = 0; j < width; j++) {
|
||||
if(BITREF(raster, stride, j, i))
|
||||
v |= 1 << (7 - bit);
|
||||
bit++;
|
||||
|
@ -613,9 +607,6 @@ static int
|
|||
writeEBDT(FILE* out, FontPtr font)
|
||||
{
|
||||
StrikePtr strike;
|
||||
BitmapPtr bitmap;
|
||||
IndexSubTablePtr table;
|
||||
int i;
|
||||
int offset;
|
||||
int ebdt_start;
|
||||
|
||||
|
@ -626,10 +617,10 @@ writeEBDT(FILE* out, FontPtr font)
|
|||
|
||||
strike = font->strikes;
|
||||
while(strike) {
|
||||
table = strike->indexSubTables;
|
||||
IndexSubTablePtr table = strike->indexSubTables;
|
||||
while(table) {
|
||||
for(i = table->firstGlyphIndex; i <= table->lastGlyphIndex; i++) {
|
||||
bitmap = strikeBitmapIndex(strike, current_cmap, i);
|
||||
for(int i = table->firstGlyphIndex; i <= table->lastGlyphIndex; i++) {
|
||||
BitmapPtr bitmap = strikeBitmapIndex(strike, current_cmap, i);
|
||||
bitmap->location = offset;
|
||||
if(bit_aligned_flag && table->constantMetrics) {
|
||||
/* image format 5 */
|
||||
|
@ -662,9 +653,8 @@ writeEBDT(FILE* out, FontPtr font)
|
|||
static int
|
||||
writeEBLC(FILE* out, FontPtr font)
|
||||
{
|
||||
int i, rc, numstrikes, eblc_start, num, den;
|
||||
int numstrikes, eblc_start, num, den;
|
||||
StrikePtr strike;
|
||||
IndexSubTablePtr table;
|
||||
|
||||
degreesToFraction(font->italicAngle, &num, &den);
|
||||
|
||||
|
@ -688,7 +678,7 @@ writeEBLC(FILE* out, FontPtr font)
|
|||
writeULONG(out, 0xDEADFACE); /* indexTablesSize */
|
||||
writeULONG(out, 0xDEADFACE); /* numberOfIndexSubTables */
|
||||
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.descent); /* descender */
|
||||
writeBYTE(out, strikeMaxWidth(strike)); /* widthMax */
|
||||
|
@ -714,8 +704,9 @@ writeEBLC(FILE* out, FontPtr font)
|
|||
/* indexSubTableArray, one per strike */
|
||||
strike = font->strikes;
|
||||
while(strike) {
|
||||
int endoffset;
|
||||
int endoffset, rc;
|
||||
int numtables = 0;
|
||||
IndexSubTablePtr table;
|
||||
|
||||
strike->indexSubTableLocation = ftell(out);
|
||||
table = strike->indexSubTables;
|
||||
|
@ -749,12 +740,11 @@ writeEBLC(FILE* out, FontPtr font)
|
|||
/* actual indexSubTables */
|
||||
strike = font->strikes;
|
||||
while(strike) {
|
||||
table = strike->indexSubTables;
|
||||
IndexSubTablePtr table = strike->indexSubTables;
|
||||
while(table) {
|
||||
int location;
|
||||
int location, rc;
|
||||
int data_location;
|
||||
int short_offsets;
|
||||
int offset;
|
||||
|
||||
location = ftell(out);
|
||||
if (location == -1) {
|
||||
|
@ -777,7 +767,7 @@ writeEBLC(FILE* out, FontPtr font)
|
|||
strikeBitmapIndex(strike, current_cmap,
|
||||
table->firstGlyphIndex)->location;
|
||||
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 -
|
||||
data_location > 0xFFFF) {
|
||||
short_offsets = 0;
|
||||
|
@ -822,9 +812,9 @@ writeEBLC(FILE* out, FontPtr font)
|
|||
writeCHAR(out, bitmap->horiBearingY); /* vertBearingY */
|
||||
writeBYTE(out, font->metrics.maxAwidth); /* vertAdvance */
|
||||
} else {
|
||||
for(i = table->firstGlyphIndex;
|
||||
for(int i = table->firstGlyphIndex;
|
||||
i <= table->lastGlyphIndex; i++) {
|
||||
offset =
|
||||
int offset =
|
||||
strikeBitmapIndex(strike, current_cmap, i)->location -
|
||||
data_location;
|
||||
if(short_offsets)
|
||||
|
@ -975,10 +965,8 @@ writehhea(FILE* out, FontPtr font)
|
|||
static int
|
||||
writehmtx(FILE* out, FontPtr font)
|
||||
{
|
||||
int rc, i;
|
||||
|
||||
for(i = 0; i <= numglyphs; i++) {
|
||||
int code, width, lsb;
|
||||
for(int i = 0; i <= numglyphs; i++) {
|
||||
int code, width, lsb, rc;
|
||||
code = findCode(current_cmap, i);
|
||||
if(code < 0)
|
||||
rc = -1;
|
||||
|
@ -1001,10 +989,8 @@ writehmtx(FILE* out, FontPtr font)
|
|||
static int
|
||||
writeloca(FILE* out, FontPtr font)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* 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);
|
||||
|
@ -1035,14 +1021,13 @@ writemaxp(FILE* out, FontPtr font)
|
|||
static int
|
||||
writename(FILE* out, FontPtr font)
|
||||
{
|
||||
int i;
|
||||
int offset;
|
||||
|
||||
writeUSHORT(out, 0); /* format selector */
|
||||
writeUSHORT(out, font->numNames);
|
||||
writeUSHORT(out, 6 + font->numNames * 12); /* offset to string storage */
|
||||
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, 1); /* encoding -- Unicode */
|
||||
writeUSHORT(out, 0x409); /* language id -- American English */
|
||||
|
@ -1051,7 +1036,7 @@ writename(FILE* out, FontPtr font)
|
|||
writeUSHORT(out, offset); /* string offset */
|
||||
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);
|
||||
return 0;
|
||||
}
|
||||
|
@ -1059,12 +1044,13 @@ writename(FILE* out, FontPtr font)
|
|||
static int
|
||||
writepost(FILE* out, FontPtr font)
|
||||
{
|
||||
int i, rc, previous_width, width, fixed_pitch;
|
||||
int previous_width, fixed_pitch;
|
||||
|
||||
fixed_pitch = 1;
|
||||
previous_width = -1;
|
||||
for(i = 0; i < FONT_CODES; i++) {
|
||||
rc = glyphMetrics(font, i, &width, NULL, NULL, NULL, NULL);
|
||||
for(int i = 0; i < FONT_CODES; i++) {
|
||||
int width = previous_width;
|
||||
int rc = glyphMetrics(font, i, &width, NULL, NULL, NULL, NULL);
|
||||
if(rc < 0)
|
||||
continue;
|
||||
if(previous_width >= 0) {
|
||||
|
|
|
@ -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
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sun Jul 14 11:29:14 2019 -0700
|
||||
|
|
|
@ -40,6 +40,10 @@ from the X Consortium.
|
|||
* XBiff*emptyPixmap: mailempty
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <X11/IntrinsicP.h> /* for toolkit stuff */
|
||||
#include <X11/StringDefs.h> /* for useful atom names */
|
||||
#include <X11/cursorfont.h> /* for cursor constants */
|
||||
|
@ -226,14 +230,14 @@ WidgetClass mailboxWidgetClass = (WidgetClass) &mailboxClassRec;
|
|||
|
||||
static GC get_mailbox_gc (MailboxWidget w)
|
||||
{
|
||||
XtGCMask valuemask;
|
||||
XGCValues xgcv;
|
||||
|
||||
valuemask = GCForeground | GCBackground | GCFunction | GCGraphicsExposures;
|
||||
xgcv.foreground = w->mailbox.foreground_pixel;
|
||||
xgcv.background = w->core.background_pixel;
|
||||
xgcv.function = GXcopy;
|
||||
xgcv.graphics_exposures = False; /* this is Bool, not Boolean */
|
||||
XtGCMask valuemask
|
||||
= GCForeground | GCBackground | GCFunction | GCGraphicsExposures;
|
||||
XGCValues xgcv = {
|
||||
.foreground = w->mailbox.foreground_pixel,
|
||||
.background = w->core.background_pixel,
|
||||
.function = GXcopy,
|
||||
.graphics_exposures = False /* this is Bool, not Boolean */
|
||||
};
|
||||
return (XtGetGC ((Widget) w, valuemask, &xgcv));
|
||||
}
|
||||
|
||||
|
@ -541,14 +545,10 @@ static void GetMailFile (MailboxWidget w)
|
|||
}
|
||||
#endif
|
||||
if ((mailpath = getenv("MAIL"))) {
|
||||
w->mailbox.filename = XtMalloc (strlen (mailpath) + 1);
|
||||
strcpy (w->mailbox.filename, mailpath);
|
||||
XtAsprintf(&w->mailbox.filename, "%s", mailpath);
|
||||
} else {
|
||||
w->mailbox.filename = XtMalloc (strlen (MAILBOX_DIRECTORY) + 1
|
||||
+ strlen (username) + 1);
|
||||
strcpy (w->mailbox.filename, MAILBOX_DIRECTORY);
|
||||
strcat (w->mailbox.filename, "/");
|
||||
strcat (w->mailbox.filename, username);
|
||||
XtAsprintf(&w->mailbox.filename, "%s/%s",
|
||||
MAILBOX_DIRECTORY, username);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -180,9 +180,9 @@ am__relativize = \
|
|||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||
done; \
|
||||
reldir="$$dir2"
|
||||
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
|
||||
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.xz
|
||||
GZIP_ENV = --best
|
||||
DIST_TARGETS = dist-bzip2 dist-gzip
|
||||
DIST_TARGETS = dist-xz dist-gzip
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
|
||||
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
|
||||
|
@ -203,7 +203,6 @@ CC = @CC@
|
|||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHANGELOG_CMD = @CHANGELOG_CMD@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CWARNFLAGS = @CWARNFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
|
@ -214,11 +213,9 @@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
|
|||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FILE_MAN_DIR = @FILE_MAN_DIR@
|
||||
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_CMD = @INSTALL_CMD@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
@ -300,6 +297,7 @@ pdfdir = @pdfdir@
|
|||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
|
@ -646,6 +644,7 @@ distdir: $(DISTFILES)
|
|||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
|
||||
$(am__post_remove_distdir)
|
||||
|
@ -653,7 +652,6 @@ dist-bzip2: distdir
|
|||
dist-lzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-xz: distdir
|
||||
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
|
||||
$(am__post_remove_distdir)
|
||||
|
|
90
app/xbiff/aclocal.m4
vendored
90
app/xbiff/aclocal.m4
vendored
|
@ -13,15 +13,15 @@
|
|||
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
|
||||
[m4_warning([this file was generated for autoconf 2.69.
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
|
||||
[m4_warning([this file was generated for autoconf 2.71.
|
||||
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.
|
||||
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
|
||||
|
||||
dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
||||
dnl serial 11 (pkg-config-0.29.1)
|
||||
dnl
|
||||
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
||||
# serial 12 (pkg-config-0.29.2)
|
||||
|
||||
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
||||
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
|
||||
dnl
|
||||
|
@ -62,7 +62,7 @@ dnl
|
|||
dnl See the "Since" comment for each macro you use to see what version
|
||||
dnl of the macros you require.
|
||||
m4_defun([PKG_PREREQ],
|
||||
[m4_define([PKG_MACROS_VERSION], [0.29.1])
|
||||
[m4_define([PKG_MACROS_VERSION], [0.29.2])
|
||||
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
|
||||
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
|
||||
])dnl PKG_PREREQ
|
||||
|
@ -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
|
||||
|
||||
pkg_failed=no
|
||||
AC_MSG_CHECKING([for $1])
|
||||
AC_MSG_CHECKING([for $2])
|
||||
|
||||
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
|
||||
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
|
||||
|
@ -173,11 +173,11 @@ and $1[]_LIBS to avoid the need to call pkg-config.
|
|||
See the pkg-config man page for more details.])
|
||||
|
||||
if test $pkg_failed = yes; then
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_RESULT([no])
|
||||
_PKG_SHORT_ERRORS_SUPPORTED
|
||||
if test $_pkg_short_errors_supported = yes; then
|
||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
|
||||
else
|
||||
else
|
||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
|
||||
fi
|
||||
# Put the nasty error message in config.log where it belongs
|
||||
|
@ -194,7 +194,7 @@ installed software in a non-standard prefix.
|
|||
_PKG_TEXT])[]dnl
|
||||
])
|
||||
elif test $pkg_failed = untried; then
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_RESULT([no])
|
||||
m4_default([$4], [AC_MSG_FAILURE(
|
||||
[The pkg-config script could not be found or is too old. Make sure it
|
||||
is in your PATH or set the PKG_CONFIG environment variable to the full
|
||||
|
@ -1318,7 +1318,7 @@ AC_SUBST([am__untar])
|
|||
|
||||
dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure.
|
||||
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 Permission is hereby granted, free of charge, to any person obtaining a
|
||||
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
|
||||
# version you require.
|
||||
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_needed], m4_substr([$1], 0, m4_index([$1], [.])))
|
||||
m4_if(m4_cmp(maj_have, maj_needed), 0,,
|
||||
|
@ -1376,7 +1376,7 @@ AM_MAINTAINER_MODE
|
|||
# such as man pages and config files
|
||||
AC_DEFUN([XORG_PROG_RAWCPP],[
|
||||
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])
|
||||
|
||||
# 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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# documentation targets except traditional man pages.
|
||||
# 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:
|
||||
# XORG_WITH_XMLTO --with-xmlto
|
||||
# XORG_WITH_ASCIIDOC --with-asciidoc
|
||||
|
@ -2344,7 +2344,7 @@ AC_MSG_RESULT([$build_docs])
|
|||
#
|
||||
# This macro enables a builder to skip all developer documentation.
|
||||
# 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:
|
||||
# XORG_WITH_XMLTO --with-xmlto
|
||||
# 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.
|
||||
# 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:
|
||||
# XORG_WITH_XMLTO --with-xmlto
|
||||
# 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
|
||||
# The lint program on FreeBSD and NetBSD is different from the one on Solaris
|
||||
case $host_os in
|
||||
*linux* | *openbsd* | *secbsd* | kfreebsd*-gnu | darwin* | cygwin*)
|
||||
*linux* | *openbsd* | kfreebsd*-gnu | darwin* | cygwin*)
|
||||
lint_name=splint
|
||||
lint_options="-badflag"
|
||||
;;
|
||||
|
@ -2852,7 +2852,11 @@ AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno])
|
|||
AC_DEFUN([XORG_COMPILER_BRAND], [
|
||||
AC_LANG_CASE(
|
||||
[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++], [
|
||||
AC_REQUIRE([AC_PROG_CXX])
|
||||
|
@ -2868,7 +2872,7 @@ AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
|
|||
# Minimum version: 1.16.0
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# 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(
|
||||
[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([CACHE_PREFIX], [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-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.
|
||||
|
||||
if test "x$SELECTIVE_WERROR" = "xyes" ; then
|
||||
|
@ -3134,23 +3142,35 @@ AC_SUBST([BASE_]PREFIX[FLAGS])
|
|||
AC_LANG_CASE([C], AC_SUBST([CWARNFLAGS]))
|
||||
]) # XORG_STRICT_OPTION
|
||||
|
||||
# XORG_DEFAULT_OPTIONS
|
||||
# --------------------
|
||||
# Minimum version: 1.3.0
|
||||
# XORG_DEFAULT_NOCODE_OPTIONS
|
||||
# ---------------------------
|
||||
# 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])
|
||||
XORG_COMPILER_FLAGS
|
||||
XORG_CWARNFLAGS
|
||||
XORG_STRICT_OPTION
|
||||
XORG_RELEASE_VERSION
|
||||
XORG_CHANGELOG
|
||||
XORG_INSTALL
|
||||
XORG_MANPAGE_SECTIONS
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
|
||||
[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_INSTALL()
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand '-c -o'.
|
||||
|
||||
scriptversion=2012-10-14.11; # UTC
|
||||
scriptversion=2018-03-07.03; # UTC
|
||||
|
||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
|
@ -53,7 +53,7 @@ func_file_conv ()
|
|||
MINGW*)
|
||||
file_conv=mingw
|
||||
;;
|
||||
CYGWIN*)
|
||||
CYGWIN* | MSYS*)
|
||||
file_conv=cygwin
|
||||
;;
|
||||
*)
|
||||
|
@ -67,7 +67,7 @@ func_file_conv ()
|
|||
mingw/*)
|
||||
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||
;;
|
||||
cygwin/*)
|
||||
cygwin/* | msys/*)
|
||||
file=`cygpath -m "$file" || echo "$file"`
|
||||
;;
|
||||
wine/*)
|
||||
|
@ -255,7 +255,8 @@ EOF
|
|||
echo "compile $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
|
||||
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
|
||||
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
|
||||
func_cl_wrapper "$@" # Doesn't return...
|
||||
;;
|
||||
esac
|
||||
|
@ -339,10 +340,10 @@ exit $ret
|
|||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
#! /bin/sh
|
||||
|
|
|
@ -3,15 +3,15 @@
|
|||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the <paths.h> header file. */
|
||||
#undef HAVE_PATHS_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdio.h> header file. */
|
||||
#undef HAVE_STDIO_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
|
@ -63,8 +63,16 @@
|
|||
/* Patch version of this package */
|
||||
#undef PACKAGE_VERSION_PATCHLEVEL
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
/* Define to 1 if all of the C90 standard headers exist (not just the ones
|
||||
required in a freestanding environment). This macro is provided for
|
||||
backward compatibility; new code need not use it. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Version number of package */
|
||||
#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
|
||||
|
|
6769
app/xbiff/configure
vendored
6769
app/xbiff/configure
vendored
File diff suppressed because it is too large
Load diff
|
@ -23,13 +23,13 @@ dnl Process this file with autoconf to create configure.
|
|||
|
||||
# Initialize Autoconf
|
||||
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])
|
||||
AC_CONFIG_SRCDIR([Makefile.am])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
|
||||
# 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
|
||||
m4_ifndef([XORG_MACROS_VERSION],
|
||||
|
@ -38,11 +38,14 @@ XORG_MACROS_VERSION(1.8)
|
|||
XORG_DEFAULT_OPTIONS
|
||||
|
||||
# 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
|
||||
AC_CHECK_HEADERS([paths.h])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_SYS_LARGEFILE
|
||||
|
||||
# Allow builder to set path to look for mailboxes
|
||||
AC_MSG_CHECKING([for mailbox directory])
|
||||
AC_ARG_WITH([mailbox-directory],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
# 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
|
||||
# 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
|
||||
# from scratch.
|
||||
|
||||
tab=' '
|
||||
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-}
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
doit_exec=$doit
|
||||
fi
|
||||
doit_exec=${doit:-exec}
|
||||
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
|
@ -68,22 +64,16 @@ mvprog=${MVPROG-mv}
|
|||
rmprog=${RMPROG-rm}
|
||||
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=
|
||||
|
||||
# Desired mode of installed file.
|
||||
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=
|
||||
chmodcmd=$chmodprog
|
||||
chowncmd=
|
||||
|
@ -97,7 +87,7 @@ dir_arg=
|
|||
dst_arg=
|
||||
|
||||
copy_on_change=false
|
||||
no_target_directory=
|
||||
is_target_a_directory=possibly
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
|
@ -114,18 +104,28 @@ Options:
|
|||
--version display version info and exit.
|
||||
|
||||
-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.
|
||||
-g GROUP $chgrpprog installed files to GROUP.
|
||||
-m MODE $chmodprog installed files to MODE.
|
||||
-o USER $chownprog installed files to USER.
|
||||
-p pass -p to $cpprog.
|
||||
-s $stripprog installed files.
|
||||
-S SUFFIX attempt to back up existing files, with suffix SUFFIX.
|
||||
-t DIRECTORY install into DIRECTORY.
|
||||
-T report an error if DSTFILE is a directory.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||
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
|
||||
|
@ -137,46 +137,62 @@ while test $# -ne 0; do
|
|||
-d) dir_arg=true;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift;;
|
||||
shift;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) mode=$2
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
case $mode in
|
||||
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift;;
|
||||
shift;;
|
||||
|
||||
-p) cpprog="$cpprog -p";;
|
||||
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dst_arg=$2
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
-S) backupsuffix="$2"
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true;;
|
||||
-t)
|
||||
is_target_a_directory=always
|
||||
dst_arg=$2
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-T) is_target_a_directory=never;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
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
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
|
@ -207,6 +223,15 @@ if test $# -eq 0; then
|
|||
exit 0
|
||||
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
|
||||
do_exit='(exit $ret); exit $ret'
|
||||
trap "ret=129; $do_exit" 1
|
||||
|
@ -223,16 +248,16 @@ if test -z "$dir_arg"; then
|
|||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
|
@ -250,6 +275,10 @@ do
|
|||
dstdir=$dst
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
# Don't chown directories that already exist.
|
||||
if test $dstdir_status = 0; then
|
||||
chowncmd=""
|
||||
fi
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||
|
@ -266,178 +295,148 @@ do
|
|||
fi
|
||||
dst=$dst_arg
|
||||
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
# If destination is a directory, append the input filename.
|
||||
if test -d "$dst"; then
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
if test "$is_target_a_directory" = never; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstbase=`basename "$src"`
|
||||
case $dst in
|
||||
*/) dst=$dst$dstbase;;
|
||||
*) dst=$dst/$dstbase;;
|
||||
esac
|
||||
dstdir_status=0
|
||||
else
|
||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||
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'
|
||||
`
|
||||
|
||||
dstdir=`dirname "$dst"`
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
case $dstdir in
|
||||
*/) dstdirslash=$dstdir;;
|
||||
*) dstdirslash=$dstdir/;;
|
||||
esac
|
||||
|
||||
obsolete_mkdir_used=false
|
||||
|
||||
if test $dstdir_status != 0; then
|
||||
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;;
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
posix_mkdir=false
|
||||
# The $RANDOM variable is not portable (e.g., dash). Use it
|
||||
# here however when possible just to lower collision chance.
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
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 &&
|
||||
$mkdirprog $mkdir_mode "$tmpdir" &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
test_tmpdir="$tmpdir/a"
|
||||
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
|
||||
else
|
||||
mkdir_mode=
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
|
||||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# 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-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
trap '' 0;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
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
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
*) prefix='';;
|
||||
/*) prefix='/';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
eval "$initialize_posix_glob"
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
$posix_glob set -f
|
||||
set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
$posix_glob set +f
|
||||
set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test X"$d" = X && continue
|
||||
test X"$d" = X && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -450,14 +449,25 @@ do
|
|||
else
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
dsttmp=$dstdir/_inst.$$_
|
||||
rmtmp=$dstdir/_rm.$$_
|
||||
dsttmp=${dstdirslash}_inst.$$_
|
||||
rmtmp=${dstdirslash}_rm.$$_
|
||||
|
||||
# Trap to clean up those temp files at exit.
|
||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||
|
||||
# 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.
|
||||
#
|
||||
|
@ -472,20 +482,24 @@ do
|
|||
|
||||
# If -C, don't bother to copy if it wouldn't change the file.
|
||||
if $copy_on_change &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
|
||||
eval "$initialize_posix_glob" &&
|
||||
$posix_glob set -f &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
$posix_glob set +f &&
|
||||
|
||||
set +f &&
|
||||
test "$old" = "$new" &&
|
||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||
then
|
||||
rm -f "$dsttmp"
|
||||
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.
|
||||
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
||||
|
||||
|
@ -493,24 +507,24 @@ do
|
|||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
{
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
fi || exit 1
|
||||
|
||||
|
@ -519,9 +533,9 @@ do
|
|||
done
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
|
|
@ -126,7 +126,6 @@ CC = @CC@
|
|||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHANGELOG_CMD = @CHANGELOG_CMD@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CWARNFLAGS = @CWARNFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
|
@ -137,11 +136,9 @@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
|
|||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FILE_MAN_DIR = @FILE_MAN_DIR@
|
||||
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_CMD = @INSTALL_CMD@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
@ -223,6 +220,7 @@ pdfdir = @pdfdir@
|
|||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
|
|
|
@ -77,6 +77,9 @@ is loudest).
|
|||
.B \-shape
|
||||
This option indicates that the mailbox window should be shaped if masks for
|
||||
the empty or full images are given.
|
||||
.TP 8
|
||||
.B \-version
|
||||
This option indicates that \fIxbiff\fP should print its version and exit.
|
||||
.PP
|
||||
The following standard X Toolkit command line arguments are commonly used with
|
||||
.I xbiff:
|
||||
|
|
|
@ -30,6 +30,10 @@ from the X Consortium.
|
|||
*/
|
||||
/* $XFree86: xc/programs/xbiff/xbiff.c,v 1.3tsi Exp $ */
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <X11/Xatom.h>
|
||||
|
@ -64,27 +68,26 @@ static XtActionsRec xbiff_actions[] = {
|
|||
{ "quit", quit },
|
||||
};
|
||||
|
||||
static void Usage (void)
|
||||
static void _X_NORETURN _X_COLD
|
||||
Usage (int exitval)
|
||||
{
|
||||
static const char *help_message[] = {
|
||||
"where options include:",
|
||||
" -display host:dpy X server to contact",
|
||||
" -geometry geom size of mailbox",
|
||||
" -file file file to watch",
|
||||
" -update seconds how often to check for mail",
|
||||
" -volume percentage how loud to ring the bell",
|
||||
" -bg color background color",
|
||||
" -fg color foreground color",
|
||||
" -rv reverse video",
|
||||
" -shape shape the window",
|
||||
NULL};
|
||||
const char **cpp;
|
||||
const char *help_message =
|
||||
"where options include:\n"
|
||||
" -display host:dpy X server to contact\n"
|
||||
" -geometry geom size of mailbox\n"
|
||||
" -file file file to watch\n"
|
||||
" -update seconds how often to check for mail\n"
|
||||
" -volume percentage how loud to ring the bell\n"
|
||||
" -bg color background color\n"
|
||||
" -fg color foreground color\n"
|
||||
" -rv reverse video\n"
|
||||
" -shape shape the window\n"
|
||||
" -help print usage info and exit\n"
|
||||
" -version print version info and exit\n";
|
||||
|
||||
fprintf (stderr, "usage: %s [-options ...]\n", ProgramName);
|
||||
for (cpp = help_message; *cpp; cpp++)
|
||||
fprintf (stderr, "%s\n", *cpp);
|
||||
fprintf (stderr, "\n");
|
||||
exit (1);
|
||||
fprintf (stderr, "%s\n", help_message);
|
||||
exit (exitval);
|
||||
}
|
||||
|
||||
|
||||
|
@ -98,9 +101,32 @@ main (int argc, char **argv)
|
|||
|
||||
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),
|
||||
&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
|
||||
|
|
|
@ -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
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sun Aug 1 16:41:00 2021 -0700
|
||||
|
|
157
app/xeyes/Eyes.c
157
app/xeyes/Eyes.c
|
@ -1,6 +1,7 @@
|
|||
/*
|
||||
|
||||
Copyright (c) 1991 X Consortium
|
||||
Copyright (c) 2023 q3k
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
|
@ -49,6 +50,7 @@ from the X Consortium.
|
|||
# include <X11/Xlibint.h>
|
||||
# include <stdlib.h>
|
||||
# include <X11/extensions/XInput2.h>
|
||||
# include <assert.h>
|
||||
|
||||
#define offset(field) XtOffsetOf(EyesRec, eyes.field)
|
||||
#define goffset(field) XtOffsetOf(WidgetRec, core.field)
|
||||
|
@ -83,23 +85,19 @@ static XtResource resources[] = {
|
|||
#endif
|
||||
{(char *) XtNdistance, (char *) XtCBoolean, XtRBoolean, sizeof(Boolean),
|
||||
offset(distance), XtRImmediate, (XtPointer) FALSE },
|
||||
{(char *) XtNbiblicallyAccurate, (char *) XtCBoolean, XtRBoolean, sizeof(Boolean),
|
||||
offset(biblically_accurate), XtRImmediate, (XtPointer) FALSE },
|
||||
};
|
||||
|
||||
#undef offset
|
||||
#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_THICK (0.175) /* thickness of eye rim */
|
||||
# define BALL_DIAM (0.3)
|
||||
# define BALL_PAD (0.175)
|
||||
# define EYE_DIAM (2.0 - (EYE_THICK + EYE_OFFSET) * 2)
|
||||
# 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 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 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)
|
||||
{
|
||||
XtAddConverter( XtRString, XtRBackingStore, XmuCvtStringToBackingStore,
|
||||
|
@ -344,6 +405,17 @@ static void Initialize (
|
|||
enum EyesPart i;
|
||||
#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:
|
||||
*
|
||||
|
@ -386,9 +458,6 @@ static void Initialize (
|
|||
/* wait for Realize to add the timeout */
|
||||
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;
|
||||
|
||||
if (w->eyes.shape_window && !XShapeQueryExtension (XtDisplay (w),
|
||||
|
@ -511,19 +580,20 @@ eyeLiner(EyesWidget w,
|
|||
Boolean draw,
|
||||
int num)
|
||||
{
|
||||
EyeLayout *l = &w->eyes.configuration->eyes[num];
|
||||
drawEllipse(w, draw ? PART_OUTLINE : PART_SHAPE,
|
||||
EYE_X(num), EYE_Y(num),
|
||||
l->x, l->y,
|
||||
TPOINT_NONE, TPOINT_NONE,
|
||||
EYE_DIAM + 2.0*EYE_THICK);
|
||||
if (draw) {
|
||||
drawEllipse(w, PART_CENTER, EYE_X(num), EYE_Y(num),
|
||||
drawEllipse(w, PART_CENTER, l->x, l->y,
|
||||
TPOINT_NONE, TPOINT_NONE,
|
||||
EYE_DIAM);
|
||||
}
|
||||
}
|
||||
|
||||
static TPoint computePupil (
|
||||
int num,
|
||||
EyeLayout *layout,
|
||||
TPoint mouse,
|
||||
const TRectangle *screen)
|
||||
{
|
||||
|
@ -534,8 +604,8 @@ static TPoint computePupil (
|
|||
double cosa, sina;
|
||||
TPoint ret;
|
||||
|
||||
cx = EYE_X(num); dx = mouse.x - cx;
|
||||
cy = EYE_Y(num); dy = mouse.y - cy;
|
||||
cx = layout->x; dx = mouse.x - cx;
|
||||
cy = layout->y; dy = mouse.y - cy;
|
||||
if (dx == 0 && dy == 0);
|
||||
else {
|
||||
angle = atan2 ((double) dy, (double) dx);
|
||||
|
@ -594,7 +664,7 @@ static TPoint computePupil (
|
|||
static void computePupils (
|
||||
EyesWidget w,
|
||||
TPoint mouse,
|
||||
TPoint pupils[2])
|
||||
TPoint *pupils)
|
||||
{
|
||||
TRectangle screen, *sp = NULL;
|
||||
if (w->eyes.distance) {
|
||||
|
@ -610,8 +680,9 @@ static void computePupils (
|
|||
&w->eyes.t);
|
||||
sp = &screen;
|
||||
}
|
||||
pupils[0] = computePupil (0, mouse, sp);
|
||||
pupils[1] = computePupil (1, mouse, sp);
|
||||
for (int i = 0; i < w->eyes.configuration->count; i++) {
|
||||
pupils[i] = computePupil(&w->eyes.configuration->eyes[i], mouse, sp);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -620,8 +691,9 @@ eyeBall(EyesWidget w,
|
|||
TPoint *old,
|
||||
int num)
|
||||
{
|
||||
//printf("eyeBall(_, %d, %p, %d)\n", draw, old, num);
|
||||
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,
|
||||
BALL_DIAM);
|
||||
}
|
||||
|
@ -632,11 +704,13 @@ static void repaint_window (EyesWidget w)
|
|||
#ifdef PRESENT
|
||||
MakePresentData(w);
|
||||
#endif
|
||||
eyeLiner (w, TRUE, 0);
|
||||
eyeLiner (w, TRUE, 1);
|
||||
computePupils (w, w->eyes.mouse, w->eyes.pupil);
|
||||
eyeBall (w, TRUE, NULL, 0);
|
||||
eyeBall (w, TRUE, NULL, 1);
|
||||
for (int i = 0; i < w->eyes.configuration->count; i++) {
|
||||
eyeLiner (w, TRUE, i);
|
||||
}
|
||||
computePupils (w, w->eyes.mouse, w->eyes.pupils);
|
||||
for (int i = 0; i < w->eyes.configuration->count; i++) {
|
||||
eyeBall (w, TRUE, NULL, i);
|
||||
}
|
||||
#ifdef PRESENT
|
||||
UpdatePresent(w);
|
||||
#endif
|
||||
|
@ -648,17 +722,17 @@ drawEye(EyesWidget w, TPoint newpupil, int num)
|
|||
{
|
||||
XPoint xnewpupil, xpupil;
|
||||
|
||||
xpupil.x = Xx(w->eyes.pupil[num].x, w->eyes.pupil[num].y, &w->eyes.t);
|
||||
xpupil.y = Xy(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.pupils[num].x, w->eyes.pupils[num].y, &w->eyes.t);
|
||||
xnewpupil.x = Xx(newpupil.x, newpupil.y, &w->eyes.t);
|
||||
xnewpupil.y = Xy(newpupil.x, newpupil.y, &w->eyes.t);
|
||||
if (
|
||||
#ifdef XRENDER
|
||||
w->eyes.picture ? !TPointEqual(w->eyes.pupil[num], newpupil) :
|
||||
w->eyes.picture ? !TPointEqual(w->eyes.pupils[num], newpupil) :
|
||||
#endif
|
||||
!XPointEqual(xpupil, xnewpupil)) {
|
||||
TPoint oldpupil = w->eyes.pupil[num];
|
||||
w->eyes.pupil[num] = newpupil;
|
||||
TPoint oldpupil = w->eyes.pupils[num];
|
||||
w->eyes.pupils[num] = newpupil;
|
||||
eyeBall (w, TRUE, &oldpupil, num);
|
||||
}
|
||||
}
|
||||
|
@ -666,8 +740,8 @@ drawEye(EyesWidget w, TPoint newpupil, int num)
|
|||
static void
|
||||
drawEyes(EyesWidget w, TPoint mouse)
|
||||
{
|
||||
TPoint newpupil[2];
|
||||
int num;
|
||||
TPoint newpupils[w->eyes.configuration->count];
|
||||
|
||||
#ifdef PRESENT
|
||||
MakePresentData(w);
|
||||
|
@ -677,9 +751,9 @@ drawEyes(EyesWidget w, TPoint mouse)
|
|||
++w->eyes.update;
|
||||
return;
|
||||
}
|
||||
computePupils (w, mouse, newpupil);
|
||||
for (num = 0; num < 2; num ++) {
|
||||
drawEye(w, newpupil[num], num);
|
||||
computePupils (w, mouse, newpupils);
|
||||
for (num = 0; num < w->eyes.configuration->count; num++) {
|
||||
drawEye(w, newpupils[num], num);
|
||||
}
|
||||
|
||||
w->eyes.mouse = mouse;
|
||||
|
@ -737,8 +811,10 @@ static void Resize (Widget gw)
|
|||
SetTransform (&w->eyes.t,
|
||||
0, w->core.width,
|
||||
w->core.height, 0,
|
||||
W_MIN_X, W_MAX_X,
|
||||
W_MIN_Y, W_MAX_Y);
|
||||
w->eyes.configuration->w_min_x,
|
||||
w->eyes.configuration->w_max_x,
|
||||
w->eyes.configuration->w_min_y,
|
||||
w->eyes.configuration->w_max_y);
|
||||
#ifdef PRESENT
|
||||
if (w->eyes.back_buffer) {
|
||||
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],
|
||||
0, 0, w->core.width, w->core.height);
|
||||
XSetForeground (dpy, w->eyes.gc[PART_SHAPE], 1);
|
||||
eyeLiner (w, FALSE, 0);
|
||||
eyeLiner (w, FALSE, 1);
|
||||
for (int i = 0; i < w->eyes.configuration->count; i++) {
|
||||
eyeLiner (w, FALSE, i);
|
||||
}
|
||||
x = y = 0;
|
||||
for (parent = (Widget) w; XtParent (parent); parent = XtParent (parent)) {
|
||||
x += parent->core.x + parent->core.border_width;
|
||||
|
@ -842,10 +919,10 @@ static void Redisplay(
|
|||
EyesWidget w;
|
||||
|
||||
w = (EyesWidget) gw;
|
||||
w->eyes.pupil[0].x = TPOINT_NONE;
|
||||
w->eyes.pupil[0].y = TPOINT_NONE;
|
||||
w->eyes.pupil[1].x = TPOINT_NONE;
|
||||
w->eyes.pupil[1].y = TPOINT_NONE;
|
||||
for (int i = 0; i < w->eyes.configuration->count; i++) {
|
||||
w->eyes.pupils[i].x = TPOINT_NONE;
|
||||
w->eyes.pupils[i].y = TPOINT_NONE;
|
||||
}
|
||||
(void) repaint_window ((EyesWidget)gw);
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
|
||||
#define XtNrender "render"
|
||||
#define XtNdistance "distance"
|
||||
#define XtNbiblicallyAccurate "biblicallyAccurate"
|
||||
|
||||
#define XtNpresent "present"
|
||||
|
||||
|
|
|
@ -18,6 +18,23 @@
|
|||
|
||||
#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 */
|
||||
typedef struct {
|
||||
Pixel pixel[PART_SHAPE];
|
||||
|
@ -28,7 +45,9 @@ typedef struct {
|
|||
Boolean shape_window; /* use SetWindowShapeMask */
|
||||
int update; /* current timeout index */
|
||||
TPoint mouse; /* old mouse position */
|
||||
TPoint pupil[2]; /* pupil position */
|
||||
Boolean biblically_accurate;
|
||||
EyeConfiguration *configuration;
|
||||
TPoint *pupils;
|
||||
Transform t;
|
||||
Transform maskt;
|
||||
XtIntervalId interval_id;
|
||||
|
|
|
@ -181,9 +181,9 @@ am__relativize = \
|
|||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||
done; \
|
||||
reldir="$$dir2"
|
||||
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
|
||||
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.xz
|
||||
GZIP_ENV = --best
|
||||
DIST_TARGETS = dist-bzip2 dist-gzip
|
||||
DIST_TARGETS = dist-xz dist-gzip
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
|
||||
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
|
||||
|
@ -204,7 +204,6 @@ CC = @CC@
|
|||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHANGELOG_CMD = @CHANGELOG_CMD@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CWARNFLAGS = @CWARNFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
|
@ -215,11 +214,9 @@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
|
|||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FILE_MAN_DIR = @FILE_MAN_DIR@
|
||||
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_CMD = @INSTALL_CMD@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
@ -655,6 +652,7 @@ distdir: $(DISTFILES)
|
|||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
|
||||
$(am__post_remove_distdir)
|
||||
|
@ -662,7 +660,6 @@ dist-bzip2: distdir
|
|||
dist-lzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-xz: distdir
|
||||
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
|
||||
$(am__post_remove_distdir)
|
||||
|
|
|
@ -6,7 +6,7 @@ Xorg mailing list:
|
|||
|
||||
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
|
||||
|
||||
|
|
74
app/xeyes/aclocal.m4
vendored
74
app/xeyes/aclocal.m4
vendored
|
@ -13,8 +13,8 @@
|
|||
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
|
||||
[m4_warning([this file was generated for autoconf 2.69.
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
|
||||
[m4_warning([this file was generated for autoconf 2.71.
|
||||
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.
|
||||
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
|
||||
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 Permission is hereby granted, free of charge, to any person obtaining a
|
||||
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
|
||||
# version you require.
|
||||
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_needed], m4_substr([$1], 0, m4_index([$1], [.])))
|
||||
m4_if(m4_cmp(maj_have, maj_needed), 0,,
|
||||
|
@ -1376,7 +1376,7 @@ AM_MAINTAINER_MODE
|
|||
# such as man pages and config files
|
||||
AC_DEFUN([XORG_PROG_RAWCPP],[
|
||||
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])
|
||||
|
||||
# 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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# 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
|
||||
# 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,
|
||||
# --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
|
||||
# documentation targets except traditional man pages.
|
||||
# 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:
|
||||
# XORG_WITH_XMLTO --with-xmlto
|
||||
# XORG_WITH_ASCIIDOC --with-asciidoc
|
||||
|
@ -2344,7 +2344,7 @@ AC_MSG_RESULT([$build_docs])
|
|||
#
|
||||
# This macro enables a builder to skip all developer documentation.
|
||||
# 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:
|
||||
# XORG_WITH_XMLTO --with-xmlto
|
||||
# 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.
|
||||
# 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:
|
||||
# XORG_WITH_XMLTO --with-xmlto
|
||||
# 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
|
||||
# The lint program on FreeBSD and NetBSD is different from the one on Solaris
|
||||
case $host_os in
|
||||
*linux* | *openbsd* | *secbsd* | kfreebsd*-gnu | darwin* | cygwin*)
|
||||
*linux* | *openbsd* | kfreebsd*-gnu | darwin* | cygwin*)
|
||||
lint_name=splint
|
||||
lint_options="-badflag"
|
||||
;;
|
||||
|
@ -2852,7 +2852,11 @@ AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno])
|
|||
AC_DEFUN([XORG_COMPILER_BRAND], [
|
||||
AC_LANG_CASE(
|
||||
[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++], [
|
||||
AC_REQUIRE([AC_PROG_CXX])
|
||||
|
@ -2868,7 +2872,7 @@ AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
|
|||
# Minimum version: 1.16.0
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# 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(
|
||||
[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([CACHE_PREFIX], [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-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.
|
||||
|
||||
if test "x$SELECTIVE_WERROR" = "xyes" ; then
|
||||
|
@ -3134,23 +3142,35 @@ AC_SUBST([BASE_]PREFIX[FLAGS])
|
|||
AC_LANG_CASE([C], AC_SUBST([CWARNFLAGS]))
|
||||
]) # XORG_STRICT_OPTION
|
||||
|
||||
# XORG_DEFAULT_OPTIONS
|
||||
# --------------------
|
||||
# Minimum version: 1.3.0
|
||||
# XORG_DEFAULT_NOCODE_OPTIONS
|
||||
# ---------------------------
|
||||
# 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])
|
||||
XORG_COMPILER_FLAGS
|
||||
XORG_CWARNFLAGS
|
||||
XORG_STRICT_OPTION
|
||||
XORG_RELEASE_VERSION
|
||||
XORG_CHANGELOG
|
||||
XORG_INSTALL
|
||||
XORG_MANPAGE_SECTIONS
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
|
||||
[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_INSTALL()
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdio.h> header file. */
|
||||
#undef HAVE_STDIO_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
|
@ -60,7 +60,9 @@
|
|||
/* Define to use X Present Extension */
|
||||
#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
|
||||
|
||||
/* Version number of package */
|
||||
|
|
6527
app/xeyes/configure
vendored
6527
app/xeyes/configure
vendored
File diff suppressed because it is too large
Load diff
|
@ -23,14 +23,13 @@ dnl Process this file with autoconf to create configure.
|
|||
|
||||
# Initialize Autoconf
|
||||
AC_PREREQ([2.60])
|
||||
AC_INIT([xeyes], [1.2.0],
|
||||
[https://gitlab.freedesktop.org/xorg/app/xeyes/issues], [xeyes])
|
||||
AC_INIT([xeyes], [1.3.0],
|
||||
[https://gitlab.freedesktop.org/xorg/app/xeyes/-/issues], [xeyes])
|
||||
AC_CONFIG_SRCDIR([Makefile.am])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
|
||||
# Initialize Automake
|
||||
AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
||||
AM_MAINTAINER_MODE
|
||||
AM_INIT_AUTOMAKE([foreign dist-xz])
|
||||
|
||||
# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
|
||||
m4_ifndef([XORG_MACROS_VERSION],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
# 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
|
||||
# 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
|
||||
# from scratch.
|
||||
|
||||
tab=' '
|
||||
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-}
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
doit_exec=$doit
|
||||
fi
|
||||
doit_exec=${doit:-exec}
|
||||
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
|
@ -68,22 +64,16 @@ mvprog=${MVPROG-mv}
|
|||
rmprog=${RMPROG-rm}
|
||||
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=
|
||||
|
||||
# Desired mode of installed file.
|
||||
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=
|
||||
chmodcmd=$chmodprog
|
||||
chowncmd=
|
||||
|
@ -97,7 +87,7 @@ dir_arg=
|
|||
dst_arg=
|
||||
|
||||
copy_on_change=false
|
||||
no_target_directory=
|
||||
is_target_a_directory=possibly
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
|
@ -114,18 +104,28 @@ Options:
|
|||
--version display version info and exit.
|
||||
|
||||
-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.
|
||||
-g GROUP $chgrpprog installed files to GROUP.
|
||||
-m MODE $chmodprog installed files to MODE.
|
||||
-o USER $chownprog installed files to USER.
|
||||
-p pass -p to $cpprog.
|
||||
-s $stripprog installed files.
|
||||
-S SUFFIX attempt to back up existing files, with suffix SUFFIX.
|
||||
-t DIRECTORY install into DIRECTORY.
|
||||
-T report an error if DSTFILE is a directory.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||
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
|
||||
|
@ -137,46 +137,62 @@ while test $# -ne 0; do
|
|||
-d) dir_arg=true;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift;;
|
||||
shift;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) mode=$2
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
case $mode in
|
||||
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift;;
|
||||
shift;;
|
||||
|
||||
-p) cpprog="$cpprog -p";;
|
||||
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dst_arg=$2
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
-S) backupsuffix="$2"
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true;;
|
||||
-t)
|
||||
is_target_a_directory=always
|
||||
dst_arg=$2
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-T) is_target_a_directory=never;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
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
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
|
@ -207,6 +223,15 @@ if test $# -eq 0; then
|
|||
exit 0
|
||||
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
|
||||
do_exit='(exit $ret); exit $ret'
|
||||
trap "ret=129; $do_exit" 1
|
||||
|
@ -223,16 +248,16 @@ if test -z "$dir_arg"; then
|
|||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
|
@ -250,6 +275,10 @@ do
|
|||
dstdir=$dst
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
# Don't chown directories that already exist.
|
||||
if test $dstdir_status = 0; then
|
||||
chowncmd=""
|
||||
fi
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||
|
@ -266,178 +295,148 @@ do
|
|||
fi
|
||||
dst=$dst_arg
|
||||
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
# If destination is a directory, append the input filename.
|
||||
if test -d "$dst"; then
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
if test "$is_target_a_directory" = never; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstbase=`basename "$src"`
|
||||
case $dst in
|
||||
*/) dst=$dst$dstbase;;
|
||||
*) dst=$dst/$dstbase;;
|
||||
esac
|
||||
dstdir_status=0
|
||||
else
|
||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||
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'
|
||||
`
|
||||
|
||||
dstdir=`dirname "$dst"`
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
case $dstdir in
|
||||
*/) dstdirslash=$dstdir;;
|
||||
*) dstdirslash=$dstdir/;;
|
||||
esac
|
||||
|
||||
obsolete_mkdir_used=false
|
||||
|
||||
if test $dstdir_status != 0; then
|
||||
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;;
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
posix_mkdir=false
|
||||
# The $RANDOM variable is not portable (e.g., dash). Use it
|
||||
# here however when possible just to lower collision chance.
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
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 &&
|
||||
$mkdirprog $mkdir_mode "$tmpdir" &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
test_tmpdir="$tmpdir/a"
|
||||
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
|
||||
else
|
||||
mkdir_mode=
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
|
||||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# 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-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
trap '' 0;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
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
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
*) prefix='';;
|
||||
/*) prefix='/';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
eval "$initialize_posix_glob"
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
$posix_glob set -f
|
||||
set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
$posix_glob set +f
|
||||
set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test X"$d" = X && continue
|
||||
test X"$d" = X && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -450,14 +449,25 @@ do
|
|||
else
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
dsttmp=$dstdir/_inst.$$_
|
||||
rmtmp=$dstdir/_rm.$$_
|
||||
dsttmp=${dstdirslash}_inst.$$_
|
||||
rmtmp=${dstdirslash}_rm.$$_
|
||||
|
||||
# Trap to clean up those temp files at exit.
|
||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||
|
||||
# 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.
|
||||
#
|
||||
|
@ -472,20 +482,24 @@ do
|
|||
|
||||
# If -C, don't bother to copy if it wouldn't change the file.
|
||||
if $copy_on_change &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
|
||||
eval "$initialize_posix_glob" &&
|
||||
$posix_glob set -f &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
$posix_glob set +f &&
|
||||
|
||||
set +f &&
|
||||
test "$old" = "$new" &&
|
||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||
then
|
||||
rm -f "$dsttmp"
|
||||
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.
|
||||
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
||||
|
||||
|
@ -493,24 +507,24 @@ do
|
|||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
{
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
fi || exit 1
|
||||
|
||||
|
@ -519,9 +533,9 @@ do
|
|||
done
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
|
|
@ -126,7 +126,6 @@ CC = @CC@
|
|||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHANGELOG_CMD = @CHANGELOG_CMD@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CWARNFLAGS = @CWARNFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
|
@ -137,11 +136,9 @@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
|
|||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FILE_MAN_DIR = @FILE_MAN_DIR@
|
||||
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_CMD = @INSTALL_CMD@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
|
|
@ -51,10 +51,17 @@ disables Xrender and draws traditional eyes.
|
|||
.TP 8
|
||||
.B \-distance
|
||||
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"
|
||||
X(__miscmansuffix__), X Toolkit documentation
|
||||
.br
|
||||
See \fIX(__miscmansuffix__)\fP for a full statement of rights and permissions.
|
||||
.SH AUTHOR
|
||||
Keith Packard, MIT X Consortium
|
||||
.br
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* 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 {
|
||||
|
|
|
@ -44,24 +44,24 @@ from the X Consortium.
|
|||
/* Exit with message describing command line format */
|
||||
|
||||
static void _X_NORETURN
|
||||
usage(void)
|
||||
usage(int exitval)
|
||||
{
|
||||
fprintf(stderr,
|
||||
"usage: xeyes\n"
|
||||
" [-display [{host}]:[{vs}]]\n"
|
||||
" [-geometry [{width}][x{height}][{+-}{xoff}[{+-}{yoff}]]]\n"
|
||||
" [-fg {color}] [-bg {color}] [-bd {color}] [-bw {pixels}]\n"
|
||||
" [-shape | +shape] [-outline {color}] [-center {color}]\n"
|
||||
" [-backing {backing-store}] [-distance]\n");
|
||||
"usage: xeyes [-display [{host}]:{vs}]\n"
|
||||
" [-geometry [{width}][x{height}][{+-}{xoff}[{+-}{yoff}]]]\n"
|
||||
" [-fg {color}] [-bg {color}] [-bd {color}] [-bw {pixels}]\n"
|
||||
" [-shape | +shape] [-outline {color}] [-center {color}]\n"
|
||||
" [-backing {backing-store}] [-distance]\n"
|
||||
" [-biblicallyAccurate]\n"
|
||||
#ifdef XRENDER
|
||||
fprintf(stderr,
|
||||
" [-render | +render]\n");
|
||||
" [-render | +render]\n"
|
||||
#endif
|
||||
#ifdef PRESENT
|
||||
fprintf(stderr,
|
||||
" [-present | +present]\n");
|
||||
" [-present | +present]\n"
|
||||
#endif
|
||||
exit(1);
|
||||
" xeyes -help\n"
|
||||
" xeyes -version\n");
|
||||
exit(exitval);
|
||||
}
|
||||
|
||||
/* 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"},
|
||||
#endif
|
||||
{(char *)"-distance", (char *)"*eyes.distance", XrmoptionNoArg, (char *)"TRUE"},
|
||||
{(char *)"-biblicallyAccurate", (char *)"*eyes.biblicallyAccurate", XrmoptionNoArg, (char *)"TRUE"},
|
||||
};
|
||||
|
||||
static Atom wm_delete_window;
|
||||
|
@ -113,10 +114,36 @@ main(int argc, char **argv)
|
|||
|
||||
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",
|
||||
options, XtNumber(options), &argc, argv,
|
||||
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",
|
||||
False);
|
||||
|
|
1441
xserver/ChangeLog
1441
xserver/ChangeLog
File diff suppressed because it is too large
Load diff
36
xserver/configure
vendored
36
xserver/configure
vendored
|
@ -1,6 +1,6 @@
|
|||
#! /bin/sh
|
||||
# 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>.
|
||||
#
|
||||
|
@ -682,8 +682,8 @@ MAKEFLAGS=
|
|||
# Identity of this package.
|
||||
PACKAGE_NAME='xorg-server'
|
||||
PACKAGE_TARNAME='xorg-server'
|
||||
PACKAGE_VERSION='21.1.10'
|
||||
PACKAGE_STRING='xorg-server 21.1.10'
|
||||
PACKAGE_VERSION='21.1.11'
|
||||
PACKAGE_STRING='xorg-server 21.1.11'
|
||||
PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/xserver/issues'
|
||||
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.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
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]...
|
||||
|
||||
|
@ -2086,7 +2086,7 @@ fi
|
|||
|
||||
if test -n "$ac_init_help"; then
|
||||
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
|
||||
cat <<\_ACEOF
|
||||
|
||||
|
@ -2275,10 +2275,10 @@ Optional Packages:
|
|||
org.x)
|
||||
--with-bundle-version=VERSION
|
||||
Version to use for X11.app's CFBundleVersion
|
||||
(default: 21.1.10)
|
||||
(default: 21.1.11)
|
||||
--with-bundle-version-string=VERSION
|
||||
Version to use for X11.app's
|
||||
CFBundleShortVersionString (default: 21.1.10)
|
||||
CFBundleShortVersionString (default: 21.1.11)
|
||||
--with-sparkle-feed-url=URL
|
||||
URL for the Sparkle feed (default:
|
||||
https://www.xquartz.org/releases/sparkle/release.xml)
|
||||
|
@ -2493,7 +2493,7 @@ fi
|
|||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
xorg-server configure 21.1.10
|
||||
xorg-server configure 21.1.11
|
||||
generated by GNU Autoconf 2.71
|
||||
|
||||
Copyright (C) 2021 Free Software Foundation, Inc.
|
||||
|
@ -3150,7 +3150,7 @@ cat >config.log <<_ACEOF
|
|||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by 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
|
||||
|
||||
$ $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
|
||||
|
||||
|
||||
RELEASE_DATE="2023-12-13"
|
||||
RELEASE_DATE="2024-01-16"
|
||||
RELEASE_NAME="Caramel Ice Cream"
|
||||
|
||||
|
||||
|
@ -4388,7 +4388,7 @@ fi
|
|||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='xorg-server'
|
||||
VERSION='21.1.10'
|
||||
VERSION='21.1.11'
|
||||
|
||||
|
||||
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
|
||||
|
@ -14763,7 +14763,7 @@ freebsd* | dragonfly*)
|
|||
i*86 )
|
||||
# Not sure whether the presence of OpenBSD here was a mistake.
|
||||
# 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_test_file=`echo /usr/lib/libc.so.*`
|
||||
;;
|
||||
|
@ -14837,7 +14837,7 @@ newos6*)
|
|||
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
|
||||
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
|
||||
else
|
||||
|
@ -19275,7 +19275,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
|
|||
*nto* | *qnx*)
|
||||
;;
|
||||
|
||||
openbsd* | secbsd*)
|
||||
openbsd*)
|
||||
if test -f /usr/libexec/ld.so; then
|
||||
hardcode_direct=yes
|
||||
hardcode_shlibpath_var=no
|
||||
|
@ -20322,7 +20322,7 @@ newsos6)
|
|||
dynamic_linker='ldqnx.so'
|
||||
;;
|
||||
|
||||
openbsd* | secbsd*)
|
||||
openbsd*)
|
||||
version_type=sunos
|
||||
sys_lib_dlsearch_path_spec="/usr/lib"
|
||||
need_lib_prefix=no
|
||||
|
@ -24439,7 +24439,7 @@ if test ${with_bundle_version+y}
|
|||
then :
|
||||
withval=$with_bundle_version; BUNDLE_VERSION="${withval}"
|
||||
else $as_nop
|
||||
BUNDLE_VERSION="21.1.10"
|
||||
BUNDLE_VERSION="21.1.11"
|
||||
fi
|
||||
|
||||
|
||||
|
@ -33105,7 +33105,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by 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
|
||||
|
||||
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
|
||||
ac_cs_config='$ac_cs_config_escaped'
|
||||
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,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
|
|
@ -26,8 +26,8 @@ dnl
|
|||
dnl Process this file with autoconf to create configure.
|
||||
|
||||
AC_PREREQ(2.60)
|
||||
AC_INIT([xorg-server], 21.1.10, [https://gitlab.freedesktop.org/xorg/xserver/issues], xorg-server)
|
||||
RELEASE_DATE="2023-12-13"
|
||||
AC_INIT([xorg-server], 21.1.11, [https://gitlab.freedesktop.org/xorg/xserver/issues], xorg-server)
|
||||
RELEASE_DATE="2024-01-16"
|
||||
RELEASE_NAME="Caramel Ice Cream"
|
||||
AC_CONFIG_SRCDIR([Makefile.am])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
|
|
@ -3,10 +3,10 @@ project('xserver', 'c',
|
|||
'buildtype=debugoptimized',
|
||||
'c_std=gnu99',
|
||||
],
|
||||
version: '21.1.10',
|
||||
version: '21.1.11',
|
||||
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'])
|
||||
cc = meson.get_compiler('c')
|
||||
|
|
|
@ -518,7 +518,6 @@ RRMonitorAdd(ClientPtr client, ScreenPtr screen, RRMonitorPtr monitor)
|
|||
|
||||
for (m = 0; m < pScrPriv->numMonitors; m++) {
|
||||
RRMonitorPtr existing = pScrPriv->monitors[m];
|
||||
int o, eo;
|
||||
|
||||
/* If 'name' matches an existing Monitor on the screen, the
|
||||
* existing one will be deleted as if RRDeleteMonitor were called.
|
||||
|
@ -528,27 +527,6 @@ RRMonitorAdd(ClientPtr client, ScreenPtr screen, RRMonitorPtr monitor)
|
|||
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)
|
||||
existing->primary = FALSE;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue