Update xrdb to version 1.2.2

This commit is contained in:
matthieu
2023-07-03 07:03:55 +00:00
parent e826e72b95
commit 341d6380db
10 changed files with 4136 additions and 3569 deletions

View File

@@ -1,3 +1,84 @@
commit ff688ceacaddb8e2f345caadfe33e408d97782a0
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Jun 3 10:40:03 2023 -0700
xrdb 1.2.2
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 6085098c95847f1f9f13d26f2adc7518fabf3b24
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Mon Feb 6 13:13:21 2023 -0800
configure: raise minimum autoconf requirement to 2.70
Needed for builds on NetBSD to work correctly, since it depends on
AC_USE_SYSTEM_EXTENSIONS defining _OPENBSD_SOURCE to expose the
prototype for reallocarray() in the system headers.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit edcda53f9e66afadd871c23793e021e9725b4d6b
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Nov 13 10:48:30 2022 -0800
Fallback asprintf: don't truncate output that has a \0 in string
Unlikely to be hit in xrdb, but may affect other uses if this code
gets copied to other programs.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 496bdd684935b9b7156222fec7009e8aa4a8dbad
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Nov 13 10:44:17 2022 -0800
Rename variable 'dup' to avoid shadowing dup() function
As recommended by cppcheck
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit da0bcc8b8746cd3eb93f20d61145edc6a1040dda
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Nov 13 10:41:14 2022 -0800
Use C99 struct initialization
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 0ac060079060419bdfc4e54ba1a8643cffa1d7d3
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Nov 13 10:34:27 2022 -0800
Variable scope reduction as recommended by cppcheck
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit e7db9aa5f73904c243201d4c52e4b157ded05af7
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 1e20d715f2a064993a1b83b49d2f355d0ef9c56b
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Tue Dec 7 13:55:05 2021 -0800
Build xz tarballs instead of bzip2
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 70d96ac2b99c5ebc959c4baf9a32760c41c0e440
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Tue Dec 7 13:55:02 2021 -0800
gitlab CI: add a basic build test
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 9c3a19e3f13252c6ac5b02ce703531b2bf9f7463 commit 9c3a19e3f13252c6ac5b02ce703531b2bf9f7463
Author: Matthieu Herrb <matthieu.herrb@laas.fr> Author: Matthieu Herrb <matthieu.herrb@laas.fr>
Date: Mon Aug 9 19:31:28 2021 +0200 Date: Mon Aug 9 19:31:28 2021 +0200
@@ -971,7 +1052,7 @@ Date: Sat Jul 2 01:17:35 2005 +0000
(replaces per-OS hardcoding of CppCmd in Imake config files) (replaces per-OS hardcoding of CppCmd in Imake config files)
commit 14ca3186594492b2733b9cc7e071ecfc039fb428 commit 14ca3186594492b2733b9cc7e071ecfc039fb428
Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk> Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
Date: Fri Jul 1 20:27:45 2005 +0000 Date: Fri Jul 1 20:27:45 2005 +0000
Build systems for xrdb, xrandr, xrefresh Build systems for xrdb, xrandr, xrefresh

View File

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

72
app/xrdb/aclocal.m4 vendored
View File

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

View File

@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1999-2018 Free Software Foundation, Inc. # Copyright (C) 1999-2021 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>. # Written by Tom Tromey <tromey@cygnus.com>.
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
@@ -53,7 +53,7 @@ func_file_conv ()
MINGW*) MINGW*)
file_conv=mingw file_conv=mingw
;; ;;
CYGWIN*) CYGWIN* | MSYS*)
file_conv=cygwin file_conv=cygwin
;; ;;
*) *)
@@ -67,7 +67,7 @@ func_file_conv ()
mingw/*) mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;; ;;
cygwin/*) cygwin/* | msys/*)
file=`cygpath -m "$file" || echo "$file"` file=`cygpath -m "$file" || echo "$file"`
;; ;;
wine/*) wine/*)

View File

@@ -9,8 +9,8 @@
/* Define to 1 if you have the <inttypes.h> header file. */ /* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H #undef HAVE_INTTYPES_H
/* Define to 1 if you have the <memory.h> header file. */ /* Define to 1 if you have the <minix/config.h> header file. */
#undef HAVE_MEMORY_H #undef HAVE_MINIX_CONFIG_H
/* Define to 1 if you have the `mkstemp' function. */ /* Define to 1 if you have the `mkstemp' function. */
#undef HAVE_MKSTEMP #undef HAVE_MKSTEMP
@@ -21,6 +21,9 @@
/* Define to 1 if you have the <stdint.h> header file. */ /* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H #undef HAVE_STDINT_H
/* Define to 1 if you have the <stdio.h> header file. */
#undef HAVE_STDIO_H
/* Define to 1 if you have the <stdlib.h> header file. */ /* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H #undef HAVE_STDLIB_H
@@ -39,6 +42,9 @@
/* Define to 1 if you have the <unistd.h> header file. */ /* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H #undef HAVE_UNISTD_H
/* Define to 1 if you have the <wchar.h> header file. */
#undef HAVE_WCHAR_H
/* Define to 1 if you need <netdb.h> to define MAXHOSTNAMELEN */ /* Define to 1 if you need <netdb.h> to define MAXHOSTNAMELEN */
#undef NEED_NETDB_H #undef NEED_NETDB_H
@@ -75,40 +81,98 @@
/* Patch version of this package */ /* Patch version of this package */
#undef PACKAGE_VERSION_PATCHLEVEL #undef PACKAGE_VERSION_PATCHLEVEL
/* Define to 1 if you have the ANSI C header files. */ /* Define to 1 if all of the C90 standard headers exist (not just the ones
required in a freestanding environment). This macro is provided for
backward compatibility; new code need not use it. */
#undef STDC_HEADERS #undef STDC_HEADERS
/* Enable extensions on AIX 3, Interix. */ /* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE #ifndef _ALL_SOURCE
# undef _ALL_SOURCE # undef _ALL_SOURCE
#endif #endif
/* Enable GNU extensions on systems that have them. */ /* Enable general extensions on macOS. */
#ifndef _GNU_SOURCE #ifndef _DARWIN_C_SOURCE
# undef _GNU_SOURCE # undef _DARWIN_C_SOURCE
#endif
/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif #endif
/* Enable general extensions on Solaris. */ /* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__ #ifndef __EXTENSIONS__
# undef __EXTENSIONS__ # undef __EXTENSIONS__
#endif #endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
/* Enable X/Open compliant socket functions that do not require linking
with -lxnet on HP-UX 11.11. */
#ifndef _HPUX_ALT_XOPEN_SOCKET_API
# undef _HPUX_ALT_XOPEN_SOCKET_API
#endif
/* Identify the host operating system as Minix.
This macro does not affect the system headers' behavior.
A future release of Autoconf may stop defining this macro. */
#ifndef _MINIX
# undef _MINIX
#endif
/* Enable general extensions on NetBSD.
Enable NetBSD compatibility extensions on Minix. */
#ifndef _NETBSD_SOURCE
# undef _NETBSD_SOURCE
#endif
/* Enable OpenBSD compatibility extensions on NetBSD.
Oddly enough, this does nothing on OpenBSD. */
#ifndef _OPENBSD_SOURCE
# undef _OPENBSD_SOURCE
#endif
/* Define to 1 if needed for POSIX-compatible behavior. */
#ifndef _POSIX_SOURCE
# undef _POSIX_SOURCE
#endif
/* Define to 2 if needed for POSIX-compatible behavior. */
#ifndef _POSIX_1_SOURCE
# undef _POSIX_1_SOURCE
#endif
/* Enable POSIX-compatible threading on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */
#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
#endif
/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */
#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
# undef __STDC_WANT_IEC_60559_BFP_EXT__
#endif
/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */
#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
# undef __STDC_WANT_IEC_60559_DFP_EXT__
#endif
/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */
#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
# undef __STDC_WANT_IEC_60559_FUNCS_EXT__
#endif
/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */
#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
# undef __STDC_WANT_IEC_60559_TYPES_EXT__
#endif
/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */
#ifndef __STDC_WANT_LIB_EXT2__
# undef __STDC_WANT_LIB_EXT2__
#endif
/* Enable extensions specified by ISO/IEC 24747:2009. */
#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
# undef __STDC_WANT_MATH_SPEC_FUNCS__
#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif
/* Enable X/Open extensions. Define to 500 only if necessary
to make mbstate_t available. */
#ifndef _XOPEN_SOURCE
# undef _XOPEN_SOURCE
#endif
/* Version number of package */ /* Version number of package */
#undef VERSION #undef VERSION
/* Define to 1 if on MINIX. */
#undef _MINIX
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */
#undef _POSIX_1_SOURCE
/* Define to 1 if you need to in order for `stat' and other things to work. */
#undef _POSIX_SOURCE

6830
app/xrdb/configure vendored

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

@@ -168,25 +168,24 @@ asprintf(char **ret, const char *format, ...)
if (len < 0) if (len < 0)
return -1; return -1;
if (len < sizeof(buf)) { *ret = malloc(len + 1); /* snprintf doesn't count trailing '\0' */
*ret = strdup(buf);
}
else {
*ret = malloc(len + 1); /* snprintf doesn't count trailing '\0' */
if (*ret != NULL) {
va_start(ap, format);
len = vsnprintf(*ret, len + 1, format, ap);
va_end(ap);
if (len < 0) {
free(*ret);
*ret = NULL;
}
}
}
if (*ret == NULL) if (*ret == NULL)
return -1; return -1;
if (len < sizeof(buf)) {
memcpy(*ret, buf, len + 1);
}
else {
va_start(ap, format);
len = vsnprintf(*ret, len + 1, format, ap);
va_end(ap);
if (len < 0) {
free(*ret);
*ret = NULL;
return -1;
}
}
return len; return len;
} }
#endif /* HAVE_ASPRINTF */ #endif /* HAVE_ASPRINTF */
@@ -249,9 +248,7 @@ InitEntries(Entries *e)
static void static void
FreeEntries(Entries *e) FreeEntries(Entries *e)
{ {
size_t i; for (size_t i = 0; i < e->used; i++) {
for (i = 0; i < e->used; i++) {
if (e->entry[i].usable) { if (e->entry[i].usable) {
free(e->entry[i].tag); free(e->entry[i].tag);
free(e->entry[i].value); free(e->entry[i].value);
@@ -263,9 +260,7 @@ FreeEntries(Entries *e)
static void static void
AddEntry(Entries *e, Entry *entry) AddEntry(Entries *e, Entry *entry)
{ {
size_t n; for (size_t n = 0; n < e->used; n++) {
for (n = 0; n < e->used; n++) {
if (!strcmp(e->entry[n].tag, entry->tag)) { if (!strcmp(e->entry[n].tag, entry->tag)) {
/* overwrite old entry */ /* overwrite old entry */
if (e->entry[n].lineno && !quiet) { if (e->entry[n].lineno && !quiet) {
@@ -403,11 +398,12 @@ GetEntries(Entries *entries, Buffer *buff, int bequiet)
static void static void
GetEntriesString(Entries *entries, char *str) GetEntriesString(Entries *entries, char *str)
{ {
Buffer buff;
if (str && *str) { if (str && *str) {
buff.buff = str; Buffer buff = {
buff.used = strlen(str); .buff = str,
.used = strlen(str)
};
GetEntries(entries, &buff, 1); GetEntries(entries, &buff, 1);
} }
} }
@@ -512,13 +508,12 @@ AddDefTok(String *buff, const char *prefix, char *title)
static void static void
AddDefHostname(String *buff, const char *title, const char *value) AddDefHostname(String *buff, const char *title, const char *value)
{ {
char *s;
char name[512]; char name[512];
char c; char c;
strncpy(name, value, sizeof(name) - 1); strncpy(name, value, sizeof(name) - 1);
name[sizeof(name) - 1] = '\0'; name[sizeof(name) - 1] = '\0';
for (s = name; (c = *s); s++) { for (char *s = name; (c = *s); s++) {
if (!isalpha(c) && !isdigit(c) && if (!isalpha(c) && !isdigit(c) &&
c != '_' && c != '.' && c != ':' && c != '-') c != '_' && c != '.' && c != ':' && c != '-')
*s = '_'; *s = '_';
@@ -550,13 +545,10 @@ AddUndef(String *buff, const char *title)
static void static void
DoCmdDefines(String *buff) DoCmdDefines(String *buff)
{ {
int i; for (int i = 0; i < num_cmd_defines; i++) {
char *arg, *val; char *arg = cmd_defines[i];
for (i = 0; i < num_cmd_defines; i++) {
arg = cmd_defines[i];
if (arg[1] == 'D') { if (arg[1] == 'D') {
val = strchr(arg, '='); char *val = strchr(arg, '=');
if (val) { if (val) {
*val = '\0'; *val = '\0';
AddDefQ(buff, arg + 2, val + 1); AddDefQ(buff, arg + 2, val + 1);
@@ -647,8 +639,7 @@ DoScreenDefines(Display *display, int scrno, String *defs)
Screen *screen; Screen *screen;
Visual *visual; Visual *visual;
XVisualInfo vinfo, *vinfos; XVisualInfo vinfo, *vinfos;
int nv, i, j; int nv;
char name[50];
screen = ScreenOfDisplay(display, scrno); screen = ScreenOfDisplay(display, scrno);
visual = DefaultVisualOfScreen(screen); visual = DefaultVisualOfScreen(screen);
@@ -662,6 +653,8 @@ DoScreenDefines(Display *display, int scrno, String *defs)
AddNum(defs, "PLANES", DisplayPlanes(display, scrno)); AddNum(defs, "PLANES", DisplayPlanes(display, scrno));
AddNum(defs, "BITS_PER_RGB", visual->bits_per_rgb); AddNum(defs, "BITS_PER_RGB", visual->bits_per_rgb);
if (visual->class >= 0 && visual->class < NUM_CLASS_NAMES) { if (visual->class >= 0 && visual->class < NUM_CLASS_NAMES) {
char name[50];
AddDefQ(defs, "CLASS", ClassNames[visual->class]); AddDefQ(defs, "CLASS", ClassNames[visual->class]);
snprintf(name, sizeof(name), "CLASS_%s", ClassNames[visual->class]); snprintf(name, sizeof(name), "CLASS_%s", ClassNames[visual->class]);
AddNum(defs, name, (int) visual->visualid); AddNum(defs, name, (int) visual->visualid);
@@ -679,7 +672,9 @@ DoScreenDefines(Display *display, int scrno, String *defs)
AddSimpleDef(defs, "COLOR"); AddSimpleDef(defs, "COLOR");
break; break;
} }
for (i = 0; i < nv; i++) { for (int i = 0; i < nv; i++) {
int j;
for (j = i; --j >= 0;) { for (j = i; --j >= 0;) {
if (vinfos[j].class == vinfos[i].class && if (vinfos[j].class == vinfos[i].class &&
vinfos[j].depth == vinfos[i].depth) vinfos[j].depth == vinfos[i].depth)
@@ -687,6 +682,8 @@ DoScreenDefines(Display *display, int scrno, String *defs)
} }
if (j < 0) { if (j < 0) {
if (vinfos[i].class >= 0 && vinfos[i].class < NUM_CLASS_NAMES) { if (vinfos[i].class >= 0 && vinfos[i].class < NUM_CLASS_NAMES) {
char name[50];
snprintf(name, sizeof(name), "CLASS_%s_%d", snprintf(name, sizeof(name), "CLASS_%s_%d",
ClassNames[vinfos[i].class], vinfos[i].depth); ClassNames[vinfos[i].class], vinfos[i].depth);
AddNum(defs, name, (int) vinfos[i].visualid); AddNum(defs, name, (int) vinfos[i].visualid);
@@ -704,22 +701,23 @@ DoScreenDefines(Display *display, int scrno, String *defs)
static Entry * static Entry *
FindEntry(Entries *db, Buffer *b) FindEntry(Entries *db, Buffer *b)
{ {
size_t i; Entry entry = {
register Entry *e; .usable = False,
Entries phoney; .tag = NULL,
Entry entry; .value = NULL
};
Entries phoney = {
.used = 0,
.room = 1,
.entry = &entry
};
entry.usable = False;
entry.tag = NULL;
entry.value = NULL;
phoney.used = 0;
phoney.room = 1;
phoney.entry = &entry;
GetEntries(&phoney, b, 1); GetEntries(&phoney, b, 1);
if (phoney.used < 1) if (phoney.used < 1)
return NULL; return NULL;
for (i = 0; i < db->used; i++) { for (size_t i = 0; i < db->used; i++) {
e = &db->entry[i]; Entry *e = &db->entry[i];
if (!e->usable) if (!e->usable)
continue; continue;
if (strcmp(e->tag, entry.tag)) if (strcmp(e->tag, entry.tag))
@@ -736,15 +734,16 @@ static void
EditFile(Entries *new, FILE *in, FILE *out) EditFile(Entries *new, FILE *in, FILE *out)
{ {
Buffer b; Buffer b;
char buff[BUFSIZ];
register Entry *e;
register char *c;
size_t i;
InitBuffer(&b); InitBuffer(&b);
while (in) { while (in) {
Entry *e;
b.used = 0; b.used = 0;
while (1) { while (1) {
char *c;
char buff[BUFSIZ];
buff[0] = '\0'; buff[0] = '\0';
if (!fgets(buff, BUFSIZ, in)) if (!fgets(buff, BUFSIZ, in))
goto cleanup; goto cleanup;
@@ -761,8 +760,8 @@ EditFile(Entries *new, FILE *in, FILE *out)
fwrite(b.buff, 1, b.used, out); fwrite(b.buff, 1, b.used, out);
} }
cleanup: cleanup:
for (i = 0; i < new->used; i++) { for (size_t i = 0; i < new->used; i++) {
e = &new->entry[i]; Entry *e = &new->entry[i];
if (e->usable) if (e->usable)
fprintf(out, "%s:\t%s\n", e->tag, e->value); fprintf(out, "%s:\t%s\n", e->tag, e->value);
} }
@@ -896,7 +895,6 @@ addtokstring(String *arg, const char *s)
int int
main(int argc, char *argv[]) main(int argc, char *argv[])
{ {
int i;
char *displayname = NULL; char *displayname = NULL;
int whichResources = RALL; int whichResources = RALL;
int retainProp = 0; int retainProp = 0;
@@ -917,28 +915,27 @@ main(int argc, char *argv[])
if (cpp_program == NULL) { if (cpp_program == NULL) {
int number_of_elements int number_of_elements
= (sizeof cpp_locations) / (sizeof cpp_locations[0]); = (sizeof cpp_locations) / (sizeof cpp_locations[0]);
int j;
for (j = 0; j < number_of_elements; j++) { for (int j = 0; j < number_of_elements; j++) {
char *end, *dup; char *end, *cmd;
/* cut off arguments */ /* cut off arguments */
dup = strdup(cpp_locations[j]); cmd = strdup(cpp_locations[j]);
end = strchr(dup, ' '); end = strchr(cmd, ' ');
if (end) if (end)
*end = '\0'; *end = '\0';
if (access(dup, X_OK) == 0) { if (access(cmd, X_OK) == 0) {
cpp_program = cpp_locations[j]; cpp_program = cpp_locations[j];
free(dup); free(cmd);
break; break;
} }
free(dup); free(cmd);
} }
} }
/* needs to be replaced with XrmParseCommand */ /* needs to be replaced with XrmParseCommand */
for (i = 1; i < argc; i++) { for (int i = 1; i < argc; i++) {
char *arg = argv[i]; char *arg = argv[i];
if (arg[0] == '-') { if (arg[0] == '-') {
@@ -1086,9 +1083,13 @@ main(int argc, char *argv[])
} /* end for */ } /* end for */
#ifndef WIN32 #ifndef WIN32
while ((i = open("/dev/null", O_RDONLY)) < 3) {
; /* make sure later freopen won't clobber things */ int fd;
(void) close(i);
while ((fd = open("/dev/null", O_RDONLY)) < 3)
; /* make sure later freopen won't clobber things */
(void) close(fd);
}
#endif #endif
/* Open display */ /* Open display */
if (!(dpy = XOpenDisplay(displayname))) if (!(dpy = XOpenDisplay(displayname)))
@@ -1164,7 +1165,7 @@ main(int argc, char *argv[])
if (need_newline) if (need_newline)
printf("\n"); printf("\n");
} }
for (i = 0; i < ScreenCount(dpy); i++) { for (int i = 0; i < ScreenCount(dpy); i++) {
if (need_newline) { if (need_newline) {
if (oper == OPSYMBOLS) if (oper == OPSYMBOLS)
printf("# screen %d symbols\n", i); printf("# screen %d symbols\n", i);
@@ -1188,7 +1189,7 @@ main(int argc, char *argv[])
dbs = mallocarray(ScreenCount(dpy), sizeof(Entries)); dbs = mallocarray(ScreenCount(dpy), sizeof(Entries));
if (dbs == NULL) if (dbs == NULL)
fatal("%s: Can't allocate memory in %s\n", ProgramName, __func__); fatal("%s: Can't allocate memory in %s\n", ProgramName, __func__);
for (i = 0; i < ScreenCount(dpy); i++) { for (int i = 0; i < ScreenCount(dpy); i++) {
Process(i, True, False); Process(i, True, False);
dbs[i] = newDB; dbs[i] = newDB;
} }
@@ -1201,7 +1202,7 @@ main(int argc, char *argv[])
ReProcess(0, False); ReProcess(0, False);
if (need_newline) if (need_newline)
printf("\n"); printf("\n");
for (i = 0; i < ScreenCount(dpy); i++) { for (int i = 0; i < ScreenCount(dpy); i++) {
newDB = dbs[i]; newDB = dbs[i];
if (need_newline) { if (need_newline) {
printf("! screen %d resources\n", i); printf("! screen %d resources\n", i);
@@ -1228,14 +1229,12 @@ main(int argc, char *argv[])
static void static void
FormatEntries(Buffer *b, Entries *entries) FormatEntries(Buffer *b, Entries *entries)
{ {
size_t i;
b->used = 0; b->used = 0;
if (!entries->used) if (!entries->used)
return; return;
if (oper == OPMERGE) if (oper == OPMERGE)
qsort(entries->entry, entries->used, sizeof(Entry), CompareEntries); qsort(entries->entry, entries->used, sizeof(Entry), CompareEntries);
for (i = 0; i < entries->used; i++) { for (size_t i = 0; i < entries->used; i++) {
if (entries->entry[i].usable) if (entries->entry[i].usable)
AppendEntryToBuffer(b, &entries->entry[i]); AppendEntryToBuffer(b, &entries->entry[i]);
} }
@@ -1338,11 +1337,11 @@ Process(int scrno, Bool doScreen, Bool execute)
fclose(output); fclose(output);
snprintf(old, sizeof(old), "%s%s", editFile, backup_suffix); snprintf(old, sizeof(old), "%s%s", editFile, backup_suffix);
if (dont_execute) { /* then write to standard out */ if (dont_execute) { /* then write to standard out */
char buf[BUFSIZ];
size_t n;
output = fopen(template, "r"); output = fopen(template, "r");
if (output) { if (output) {
char buf[BUFSIZ];
size_t n;
while ((n = fread(buf, 1, sizeof buf, output)) > 0) { while ((n = fread(buf, 1, sizeof buf, output)) > 0) {
fwrite(buf, 1, n, stdout); fwrite(buf, 1, n, stdout);
} }
@@ -1487,19 +1486,21 @@ static void
ShuffleEntries(Entries *db, Entries *dbs, unsigned int num) ShuffleEntries(Entries *db, Entries *dbs, unsigned int num)
{ {
unsigned int *hits; unsigned int *hits;
unsigned int i, j, k; Entries cur;
Entries cur, cmp;
char *curtag, *curvalue;
hits = mallocarray(num, sizeof(int)); hits = mallocarray(num, sizeof(int));
if (hits == NULL) if (hits == NULL)
fatal("%s: Can't allocate memory in %s\n", ProgramName, __func__); fatal("%s: Can't allocate memory in %s\n", ProgramName, __func__);
cur = dbs[0]; cur = dbs[0];
for (i = 0; i < cur.used; i++) { for (unsigned int i = 0; i < cur.used; i++) {
curtag = cur.entry[i].tag; char *curtag = cur.entry[i].tag;
curvalue = cur.entry[i].value; char *curvalue = cur.entry[i].value;
unsigned int j;
for (j = 1; j < num; j++) { for (j = 1; j < num; j++) {
cmp = dbs[j]; Entries cmp = dbs[j];
unsigned int k;
for (k = 0; k < cmp.used; k++) { for (k = 0; k < cmp.used; k++) {
if (cmp.entry[k].usable && if (cmp.entry[k].usable &&
!strcmp(curtag, cmp.entry[k].tag) && !strcmp(curtag, cmp.entry[k].tag) &&