summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/ico/ChangeLog145
-rw-r--r--app/ico/Makefile.in4
-rw-r--r--app/ico/aclocal.m464
-rw-r--r--app/ico/compile347
-rw-r--r--app/ico/configure97
-rw-r--r--app/ico/configure.ac9
-rw-r--r--app/ico/ico.c102
-rw-r--r--app/ico/man/ico.man11
-rw-r--r--app/ico/polyinfo.h5
9 files changed, 677 insertions, 107 deletions
diff --git a/app/ico/ChangeLog b/app/ico/ChangeLog
index 8e1d99215..97b6717e9 100644
--- a/app/ico/ChangeLog
+++ b/app/ico/ChangeLog
@@ -1,3 +1,148 @@
+commit e2a3e08d7a93738a88fdc889517f85d17371b626
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Fri Mar 9 22:26:48 2018 -0800
+
+ ico 1.0.5
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 27bb9485b60408c7bad53abf67f69ca99ab8fa2e
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Tue Mar 6 22:50:37 2018 -0800
+
+ Fix more sign-compare warnings
+
+ ico.c:1136:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
+ for (i=0; i<NumberPolygons; i++) {
+ ^
+
+ ico.c:1151:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
+ for (i=0; i<NumberPolygons; i++) {
+ ^
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 16ae54507785927e95942690b130d6827d7fb296
+Author: Mihail Konev <k.mvc@ya.ru>
+Date: Thu Jan 26 14:00:20 2017 +1000
+
+ autogen: add default patch prefix
+
+ Signed-off-by: Mihail Konev <k.mvc@ya.ru>
+
+commit 00a77336cf2ecbe70b5be0e83b3729b76e92211d
+Author: Emil Velikov <emil.l.velikov@gmail.com>
+Date: Mon Mar 9 12:00:52 2015 +0000
+
+ autogen.sh: use quoted string variables
+
+ Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent
+ fall-outs, when they contain space.
+
+ Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
+ Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 3f7683aafa4b93b5c3bc416948e909826dc99a13
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Jan 24 10:32:07 2017 +1000
+
+ autogen.sh: use exec instead of waiting for configure to finish
+
+ Syncs the invocation of configure with the one from the server.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
+
+commit 1d5e7d243e0f0df7afd6198f9e74bb392ddcea46
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Thu Apr 23 22:33:07 2015 -0700
+
+ Add -version to synopsis in man page
+
+ List -version & -objhelp seperately to indicate they cannot be used
+ with any of the other options.
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 2aeef741088c391f0d55ed9a063e3988ffd6ee44
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Fri Jan 16 23:01:55 2015 -0800
+
+ Convert icoFatal() to be a varargs function
+
+ Drops needless NULL arguments and enables printf format checking.
+
+ Gets rid of gcc 4.8 warning:
+ ico.c: In function ‘icoFatal’:
+ ico.c:265:2: warning: format not a string literal, argument types not checked [-Wformat-nonliteral]
+ fprintf(stderr, fmt, a0);
+ ^
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+ Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit bbd4273f328e93d429a6edb8872a74f8fb82b259
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Sat Oct 25 14:18:42 2014 -0700
+
+ Make polygon info const - moves 22k from .data to .rodata
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 9db7347730f3c8c9d77e5be4c9746f6d614ce470
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Sun Jun 1 23:58:50 2014 -0700
+
+ Add -version option to print program version
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 30cb700ab15c963a5cbf16cfe6281d5841f59532
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Sun Jun 1 23:55:00 2014 -0700
+
+ Print which option was in error along with usage message
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 3db5ac8466abe367a0a37efe4289aa6c7886e621
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Sun Jun 1 23:52:26 2014 -0700
+
+ Combine usage message array into single string
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 30b454f820eef8759bc2cbc258bf619717279409
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Sun Jun 1 23:41:36 2014 -0700
+
+ autogen.sh: Honor NOCONFIGURE=1
+
+ See http://people.gnome.org/~walters/docs/build-api.txt
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit fa3d6ddec9447be2d9a3a92b6b6a0dbe00fd1870
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Sun Jun 1 23:41:36 2014 -0700
+
+ configure: Drop AM_MAINTAINER_MODE
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 727503cc004342ee0b34126c5844da381bc0b622
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Sun Jun 1 23:38:40 2014 -0700
+
+ config: Add missing AC_CONFIG_SRCDIR
+
+ Regroup AC statements under the Autoconf initialization section.
+ Regroup AM statements under the Automake initialization section.
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
commit 0c5f08dee87e0453e3263f8aa5ca545a0a03353e
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Tue Jan 15 18:19:49 2013 -0800
diff --git a/app/ico/Makefile.in b/app/ico/Makefile.in
index c125a66de..be8ed0d0a 100644
--- a/app/ico/Makefile.in
+++ b/app/ico/Makefile.in
@@ -75,8 +75,8 @@ bin_PROGRAMS = ico$(EXEEXT)
subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
- $(top_srcdir)/configure COPYING ChangeLog INSTALL config.guess \
- config.sub depcomp install-sh missing
+ $(top_srcdir)/configure COPYING ChangeLog INSTALL compile \
+ config.guess config.sub depcomp install-sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
diff --git a/app/ico/aclocal.m4 b/app/ico/aclocal.m4
index c0dbcfb1f..8bef9a948 100644
--- a/app/ico/aclocal.m4
+++ b/app/ico/aclocal.m4
@@ -1242,7 +1242,7 @@ AC_SUBST([am__untar])
dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure.
dnl
-dnl Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+dnl Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
dnl
dnl Permission is hereby granted, free of charge, to any person obtaining a
dnl copy of this software and associated documentation files (the "Software"),
@@ -1279,7 +1279,7 @@ dnl DEALINGS IN THE SOFTWARE.
# See the "minimum version" comment for each macro you use to see what
# version you require.
m4_defun([XORG_MACROS_VERSION],[
-m4_define([vers_have], [1.19.0])
+m4_define([vers_have], [1.19.2])
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
m4_if(m4_cmp(maj_have, maj_needed), 0,,
@@ -1357,6 +1357,17 @@ AC_DEFUN([XORG_MANPAGE_SECTIONS],[
AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([AC_PROG_SED])
+case $host_os in
+ solaris*)
+ # Solaris 2.0 - 11.3 use SysV man page section numbers, so we
+ # check for a man page file found in later versions that use
+ # traditional section numbers instead
+ AC_CHECK_FILE([/usr/share/man/man7/attributes.7],
+ [SYSV_MAN_SECTIONS=false], [SYSV_MAN_SECTIONS=true])
+ ;;
+ *) SYSV_MAN_SECTIONS=false ;;
+esac
+
if test x$APP_MAN_SUFFIX = x ; then
APP_MAN_SUFFIX=1
fi
@@ -1372,9 +1383,9 @@ if test x$LIB_MAN_DIR = x ; then
fi
if test x$FILE_MAN_SUFFIX = x ; then
- case $host_os in
- solaris*) FILE_MAN_SUFFIX=4 ;;
- *) FILE_MAN_SUFFIX=5 ;;
+ case $SYSV_MAN_SECTIONS in
+ true) FILE_MAN_SUFFIX=4 ;;
+ *) FILE_MAN_SUFFIX=5 ;;
esac
fi
if test x$FILE_MAN_DIR = x ; then
@@ -1382,9 +1393,9 @@ if test x$FILE_MAN_DIR = x ; then
fi
if test x$MISC_MAN_SUFFIX = x ; then
- case $host_os in
- solaris*) MISC_MAN_SUFFIX=5 ;;
- *) MISC_MAN_SUFFIX=7 ;;
+ case $SYSV_MAN_SECTIONS in
+ true) MISC_MAN_SUFFIX=5 ;;
+ *) MISC_MAN_SUFFIX=7 ;;
esac
fi
if test x$MISC_MAN_DIR = x ; then
@@ -1392,9 +1403,9 @@ if test x$MISC_MAN_DIR = x ; then
fi
if test x$DRIVER_MAN_SUFFIX = x ; then
- case $host_os in
- solaris*) DRIVER_MAN_SUFFIX=7 ;;
- *) DRIVER_MAN_SUFFIX=4 ;;
+ case $SYSV_MAN_SECTIONS in
+ true) DRIVER_MAN_SUFFIX=7 ;;
+ *) DRIVER_MAN_SUFFIX=4 ;;
esac
fi
if test x$DRIVER_MAN_DIR = x ; then
@@ -1402,9 +1413,9 @@ if test x$DRIVER_MAN_DIR = x ; then
fi
if test x$ADMIN_MAN_SUFFIX = x ; then
- case $host_os in
- solaris*) ADMIN_MAN_SUFFIX=1m ;;
- *) ADMIN_MAN_SUFFIX=8 ;;
+ case $SYSV_MAN_SECTIONS in
+ true) ADMIN_MAN_SUFFIX=1m ;;
+ *) ADMIN_MAN_SUFFIX=8 ;;
esac
fi
if test x$ADMIN_MAN_DIR = x ; then
@@ -1665,13 +1676,24 @@ m4_ifval([$1],
fi])
# Test for the ability of xmlto to generate a text target
+#
+# NOTE: xmlto 0.0.27 or higher return a non-zero return code in the
+# following test for empty XML docbook files.
+# For compatibility reasons use the following empty XML docbook file and if
+# it fails try it again with a non-empty XML file.
have_xmlto_text=no
cat > conftest.xml << "EOF"
EOF
AS_IF([test "$have_xmlto" = yes],
[AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1],
[have_xmlto_text=yes],
- [AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])])
+ [# Try it again with a non-empty XML file.
+ cat > conftest.xml << "EOF"
+<x></x>
+EOF
+ AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1],
+ [have_xmlto_text=yes],
+ [AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])])])
rm -f conftest.xml
AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes])
AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes])
@@ -3067,8 +3089,9 @@ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
-|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \
-echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)"
+|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \
+touch \$(top_srcdir)/INSTALL; \
+echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))"
AC_SUBST([INSTALL_CMD])
]) # XORG_INSTALL
dnl Copyright 2005 Red Hat, Inc
@@ -3129,10 +3152,11 @@ AC_DEFUN([XORG_RELEASE_VERSION],[
#
#
AC_DEFUN([XORG_CHANGELOG], [
-CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \
+CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \
mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
-|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \
-echo 'git directory not found: installing possibly empty changelog.' >&2)"
+|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \
+touch \$(top_srcdir)/ChangeLog; \
+echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))"
AC_SUBST([CHANGELOG_CMD])
]) # XORG_CHANGELOG
diff --git a/app/ico/compile b/app/ico/compile
new file mode 100644
index 000000000..a85b723c7
--- /dev/null
+++ b/app/ico/compile
@@ -0,0 +1,347 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://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
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" "" $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN*)
+ file_conv=cygwin
+ ;;
+ *)
+ file_conv=wine
+ ;;
+ esac
+ fi
+ case $file_conv/,$2, in
+ *,$file_conv,*)
+ ;;
+ mingw/*)
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+ ;;
+ cygwin/*)
+ file=`cygpath -m "$file" || echo "$file"`
+ ;;
+ wine/*)
+ file=`winepath -w "$file" || echo "$file"`
+ ;;
+ esac
+ ;;
+ esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+ func_file_conv "$1"
+ if test -z "$lib_path"; then
+ lib_path=$file
+ else
+ lib_path="$lib_path;$file"
+ fi
+ linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+ lib=$1
+ found=no
+ save_IFS=$IFS
+ IFS=';'
+ for dir in $lib_path $LIB
+ do
+ IFS=$save_IFS
+ if $shared && test -f "$dir/$lib.dll.lib"; then
+ found=yes
+ lib=$dir/$lib.dll.lib
+ break
+ fi
+ if test -f "$dir/$lib.lib"; then
+ found=yes
+ lib=$dir/$lib.lib
+ break
+ fi
+ if test -f "$dir/lib$lib.a"; then
+ found=yes
+ lib=$dir/lib$lib.a
+ break
+ fi
+ done
+ IFS=$save_IFS
+
+ if test "$found" != yes; then
+ lib=$lib.lib
+ fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+ # Assume a capable shell
+ lib_path=
+ shared=:
+ linker_opts=
+ for arg
+ do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ eat=1
+ case $2 in
+ *.o | *.[oO][bB][jJ])
+ func_file_conv "$2"
+ set x "$@" -Fo"$file"
+ shift
+ ;;
+ *)
+ func_file_conv "$2"
+ set x "$@" -Fe"$file"
+ shift
+ ;;
+ esac
+ ;;
+ -I)
+ eat=1
+ func_file_conv "$2" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -I*)
+ func_file_conv "${1#-I}" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -l)
+ eat=1
+ func_cl_dashl "$2"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -l*)
+ func_cl_dashl "${1#-l}"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -L)
+ eat=1
+ func_cl_dashL "$2"
+ ;;
+ -L*)
+ func_cl_dashL "${1#-L}"
+ ;;
+ -static)
+ shared=false
+ ;;
+ -Wl,*)
+ arg=${1#-Wl,}
+ save_ifs="$IFS"; IFS=','
+ for flag in $arg; do
+ IFS="$save_ifs"
+ linker_opts="$linker_opts $flag"
+ done
+ IFS="$save_ifs"
+ ;;
+ -Xlinker)
+ eat=1
+ linker_opts="$linker_opts $2"
+ ;;
+ -*)
+ set x "$@" "$1"
+ shift
+ ;;
+ *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+ func_file_conv "$1"
+ set x "$@" -Tp"$file"
+ shift
+ ;;
+ *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+ func_file_conv "$1" mingw
+ set x "$@" "$file"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+ done
+ if test -n "$linker_opts"; then
+ linker_opts="-link$linker_opts"
+ fi
+ exec "$@" $linker_opts
+ exit 1
+}
+
+eat=
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+ func_cl_wrapper "$@" # Doesn't return...
+ ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ # So we strip '-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+ # If no '-o' option was seen then we might have been invoked from a
+ # pattern rule where we don't need one. That is ok -- this is a
+ # normal compilation that the losing compiler can handle. If no
+ # '.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file. Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+ test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/app/ico/configure b/app/ico/configure
index b4eba0ed5..7a31af9ef 100644
--- a/app/ico/configure
+++ b/app/ico/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ico 1.0.4.
+# Generated by GNU Autoconf 2.69 for ico 1.0.5.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
#
@@ -581,11 +581,12 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='ico'
PACKAGE_TARNAME='ico'
-PACKAGE_VERSION='1.0.4'
-PACKAGE_STRING='ico 1.0.4'
+PACKAGE_VERSION='1.0.5'
+PACKAGE_STRING='ico 1.0.5'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
PACKAGE_URL=''
+ac_unique_file="Makefile.am"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
@@ -1311,7 +1312,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 ico 1.0.4 to adapt to many kinds of systems.
+\`configure' configures ico 1.0.5 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1381,7 +1382,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ico 1.0.4:";;
+ short | recursive ) echo "Configuration of ico 1.0.5:";;
esac
cat <<\_ACEOF
@@ -1488,7 +1489,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ico configure 1.0.4
+ico configure 1.0.5
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1812,7 +1813,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 ico $as_me 1.0.4, which was
+It was created by ico $as_me 1.0.5, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2160,6 +2161,11 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_config_headers="$ac_config_headers config.h"
+
+
+# Initialize Automake
am__api_version='1.12'
ac_aux_dir=
@@ -2636,7 +2642,7 @@ fi
# Define the identity of the package.
PACKAGE='ico'
- VERSION='1.0.4'
+ VERSION='1.0.5'
cat >>confdefs.h <<_ACEOF
@@ -10303,10 +10309,11 @@ _ACEOF
-CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \
+CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \
mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
-|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \
-echo 'git directory not found: installing possibly empty changelog.' >&2)"
+|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \
+touch \$(top_srcdir)/ChangeLog; \
+echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))"
@@ -10314,14 +10321,45 @@ echo 'git directory not found: installing possibly empty changelog.' >&2)"
macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
-|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \
-echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)"
+|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \
+touch \$(top_srcdir)/INSTALL; \
+echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))"
+case $host_os in
+ solaris*)
+ # Solaris 2.0 - 11.3 use SysV man page section numbers, so we
+ # check for a man page file found in later versions that use
+ # traditional section numbers instead
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/share/man/man7/attributes.7" >&5
+$as_echo_n "checking for /usr/share/man/man7/attributes.7... " >&6; }
+if ${ac_cv_file__usr_share_man_man7_attributes_7+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ test "$cross_compiling" = yes &&
+ as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
+if test -r "/usr/share/man/man7/attributes.7"; then
+ ac_cv_file__usr_share_man_man7_attributes_7=yes
+else
+ ac_cv_file__usr_share_man_man7_attributes_7=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__usr_share_man_man7_attributes_7" >&5
+$as_echo "$ac_cv_file__usr_share_man_man7_attributes_7" >&6; }
+if test "x$ac_cv_file__usr_share_man_man7_attributes_7" = xyes; then :
+ SYSV_MAN_SECTIONS=false
+else
+ SYSV_MAN_SECTIONS=true
+fi
+
+ ;;
+ *) SYSV_MAN_SECTIONS=false ;;
+esac
+
if test x$APP_MAN_SUFFIX = x ; then
APP_MAN_SUFFIX=1
fi
@@ -10337,9 +10375,9 @@ if test x$LIB_MAN_DIR = x ; then
fi
if test x$FILE_MAN_SUFFIX = x ; then
- case $host_os in
- solaris*) FILE_MAN_SUFFIX=4 ;;
- *) FILE_MAN_SUFFIX=5 ;;
+ case $SYSV_MAN_SECTIONS in
+ true) FILE_MAN_SUFFIX=4 ;;
+ *) FILE_MAN_SUFFIX=5 ;;
esac
fi
if test x$FILE_MAN_DIR = x ; then
@@ -10347,9 +10385,9 @@ if test x$FILE_MAN_DIR = x ; then
fi
if test x$MISC_MAN_SUFFIX = x ; then
- case $host_os in
- solaris*) MISC_MAN_SUFFIX=5 ;;
- *) MISC_MAN_SUFFIX=7 ;;
+ case $SYSV_MAN_SECTIONS in
+ true) MISC_MAN_SUFFIX=5 ;;
+ *) MISC_MAN_SUFFIX=7 ;;
esac
fi
if test x$MISC_MAN_DIR = x ; then
@@ -10357,9 +10395,9 @@ if test x$MISC_MAN_DIR = x ; then
fi
if test x$DRIVER_MAN_SUFFIX = x ; then
- case $host_os in
- solaris*) DRIVER_MAN_SUFFIX=7 ;;
- *) DRIVER_MAN_SUFFIX=4 ;;
+ case $SYSV_MAN_SECTIONS in
+ true) DRIVER_MAN_SUFFIX=7 ;;
+ *) DRIVER_MAN_SUFFIX=4 ;;
esac
fi
if test x$DRIVER_MAN_DIR = x ; then
@@ -10367,9 +10405,9 @@ if test x$DRIVER_MAN_DIR = x ; then
fi
if test x$ADMIN_MAN_SUFFIX = x ; then
- case $host_os in
- solaris*) ADMIN_MAN_SUFFIX=1m ;;
- *) ADMIN_MAN_SUFFIX=8 ;;
+ case $SYSV_MAN_SECTIONS in
+ true) ADMIN_MAN_SUFFIX=1m ;;
+ *) ADMIN_MAN_SUFFIX=8 ;;
esac
fi
if test x$ADMIN_MAN_DIR = x ; then
@@ -10449,9 +10487,6 @@ AM_BACKSLASH='\'
-ac_config_headers="$ac_config_headers config.h"
-
-
# Checks for library functions.
for ac_func in arc4random_uniform
do :
@@ -11102,7 +11137,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 ico $as_me 1.0.4, which was
+This file was extended by ico $as_me 1.0.5, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -11168,7 +11203,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-ico config.status 1.0.4
+ico config.status 1.0.5
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -11297,8 +11332,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
for ac_config_target in $ac_config_targets
do
case $ac_config_target in
- "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
diff --git a/app/ico/configure.ac b/app/ico/configure.ac
index d48ba0538..00f703773 100644
--- a/app/ico/configure.ac
+++ b/app/ico/configure.ac
@@ -21,9 +21,14 @@ dnl PERFORMANCE OF THIS SOFTWARE.
dnl
dnl Process this file with autoconf to create configure.
+# Initialize Autoconf
AC_PREREQ([2.60])
-AC_INIT([ico], [1.0.4],
+AC_INIT([ico], [1.0.5],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [ico])
+AC_CONFIG_SRCDIR([Makefile.am])
+AC_CONFIG_HEADERS([config.h])
+
+# Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
@@ -33,8 +38,6 @@ m4_ifndef([XORG_MACROS_VERSION],
XORG_MACROS_VERSION(1.8)
XORG_DEFAULT_OPTIONS
-AC_CONFIG_HEADERS([config.h])
-
# Checks for library functions.
AC_CHECK_FUNCS([arc4random_uniform])
diff --git a/app/ico/ico.c b/app/ico/ico.c
index e3bdebed5..1104ca64d 100644
--- a/app/ico/ico.c
+++ b/app/ico/ico.c
@@ -87,6 +87,7 @@ SOFTWARE.
#include <X11/Xfuncs.h>
#include <X11/keysym.h>
#include <stdio.h>
+#include <stdarg.h>
#ifdef MULTIBUFFER
#include <X11/extensions/multibuf.h>
#endif /* MULTIBUFFER */
@@ -179,37 +180,38 @@ static const char *Primaries[] = {
};
#define NumberPrimaries 6
-static const char *help_message[] = {
-"where options include:",
-"-display host:dpy X server to use",
-" -geometry geom geometry of window to use",
-" -size WxH size of object to rotate",
-" -delta +X+Y amount by which to move object",
-" -r draw in the root window",
-" -d number dashed line pattern for wire frames",
-" -bg color background color",
-" -colors color ... codes to use on sides",
-" -p# use # (1 through 8) primary colors",
+static const char *help_message =
+"where options include:\n"
+" -display host:dpy X server to use\n"
+" -geometry geom geometry of window to use\n"
+" -size WxH size of object to rotate\n"
+" -delta +X+Y amount by which to move object\n"
+" -r draw in the root window\n"
+" -d number dashed line pattern for wire frames\n"
+" -bg color background color\n"
+" -colors color ... codes to use on sides\n"
+" -p# use # (1 through 8) primary colors\n"
#ifdef MULTIBUFFER
-" -dbl use double buffering (extension if present)",
+" -dbl use double buffering extension (if present)\n"
#else
-" -dbl use double buffering (software only)",
+" -dbl use double buffering (software only)\n"
#endif
-" -softdbl use software double buffering",
-" -noedges don't draw wire frame edges",
-" -faces draw faces",
-" -copy use multibuffer update action Copied",
-" -untouched use multibuffer update action Untouched",
-" -undefined use multibuffer update action Undefined",
-" -lw number line width to use",
-" -i invert",
-" -sleep number seconds to sleep in between draws",
-" -obj objname type of polyhedral object to draw",
-" -objhelp list polyhedral objects available",
+" -softdbl use software double buffering\n"
+" -noedges don't draw wire frame edges\n"
+" -faces draw faces\n"
+" -copy use multibuffer update action Copied\n"
+" -untouched use multibuffer update action Untouched\n"
+" -undefined use multibuffer update action Undefined\n"
+" -lw number line width to use\n"
+" -i invert\n"
+" -sleep number seconds to sleep in between draws\n"
+" -obj objname type of polyhedral object to draw\n"
+" -objhelp list polyhedral objects available\n"
#ifdef MULTITHREAD
-" -threads number number of windows, each its own thread",
+" -threads number number of windows, each its own thread\n"
#endif
-NULL};
+" -version print program version\n"
+;
static const char *ProgramName; /* argv[0] */
@@ -255,13 +257,15 @@ static xcondition_rec count_cond;/* Xthreads doesn't define an equivalent to
*****************************************************************************/
-static void icoFatal (const char *fmt, const char *a0) _X_NORETURN;
-
-static void
-icoFatal(const char *fmt, const char *a0)
+static void _X_NORETURN _X_ATTRIBUTE_PRINTF(1, 2)
+icoFatal(const char *fmt, ...)
{
+ va_list args;
+
fprintf(stderr, "%s: ", ProgramName);
- fprintf(stderr, fmt, a0);
+ va_start(args, fmt);
+ vfprintf(stderr, fmt, args);
+ va_end(args);
fprintf(stderr, "\n");
exit(1);
}
@@ -467,7 +471,7 @@ icoClearArea(struct closure *closure, int x, int y, int w, int h)
static void
initPoly(struct closure *closure, Polyinfo *poly, int icoW, int icoH)
{
- Point3D *vertices = poly->v;
+ const Point3D *vertices = poly->v;
int NV = poly->numverts;
Transform3D r1;
Transform3D r2;
@@ -476,7 +480,7 @@ initPoly(struct closure *closure, Polyinfo *poly, int icoW, int icoH)
FormatRotateMat('y', 5 * 3.1416 / 180.0, r2);
ConcatMat(r1, r2, closure->xform);
- memcpy((char *)closure->xv[0], (char *)vertices, NV * sizeof(Point3D));
+ memcpy(closure->xv[0], vertices, NV * sizeof(Point3D));
closure->xv_buffer = 0;
closure->wo2 = icoW / 2.0;
@@ -563,7 +567,7 @@ static void
drawPoly(struct closure *closure, Polyinfo *poly, GC gc,
int icoX, int icoY, int icoW, int icoH, int prevX, int prevY)
{
- int *f = poly->f;
+ const int *f = poly->f;
int NV = poly->numverts;
int NF = poly->numfaces;
@@ -576,7 +580,7 @@ drawPoly(struct closure *closure, Polyinfo *poly, GC gc,
XSegment edges[MAXEDGES];
int i;
int j,k;
- int *pf;
+ const int *pf;
int facecolor;
int pcount;
@@ -753,7 +757,7 @@ initDBufs(struct closure *closure, unsigned long fg, unsigned long bg,
closure->plane_masks,closure->totalplanes, closure->pixels,1);
/* allocate color planes */
if (t==0) {
- icoFatal("can't allocate enough color planes", NULL);
+ icoFatal("can't allocate enough color planes");
}
}
@@ -846,7 +850,7 @@ do_ico_window(void *ptr)
#endif
closure->cmap = XDefaultColormap(dpy,DefaultScreen(dpy));
if (!closure->cmap) {
- icoFatal("no default colormap!", NULL);
+ icoFatal("no default colormap!");
}
fg = WhitePixel(dpy, DefaultScreen(dpy));
@@ -929,7 +933,7 @@ do_ico_window(void *ptr)
printf("thread %x got Expose\n", xthread_self());
#endif
if (XGetWindowAttributes(dpy,closure->draw_window,&xwa)==0) {
- icoFatal("cannot get window attributes (size)", NULL);
+ icoFatal("cannot get window attributes (size)");
}
closure->winW = xwa.width;
closure->winH = xwa.height;
@@ -966,7 +970,7 @@ do_ico_window(void *ptr)
0, 0, closure->winW, closure->winH, 0, 0);
closure->win = closure->multibuffers[1];
} else
- icoFatal ("unable to obtain 2 buffers", NULL);
+ icoFatal ("unable to obtain 2 buffers");
}
#endif /* MULTIBUFFER */
if (closure->win == None) closure->win = closure->draw_window;
@@ -1127,7 +1131,7 @@ do_ico_window(void *ptr)
static void
giveObjHelp(void)
{
- int i;
+ unsigned int i;
Polyinfo *poly;
printf("%-16s%-12s #Vert. #Edges #Faces %-16s\n",
@@ -1144,7 +1148,7 @@ giveObjHelp(void)
static Polyinfo *
findpoly(const char *name)
{
- int i;
+ unsigned int i;
Polyinfo *poly;
for (i=0; i<NumberPolygons; i++) {
@@ -1276,19 +1280,21 @@ int main(int argc, const char **argv)
giveObjHelp();
exit(1);
}
+ else if (strcmp(*argv, "-version") == 0) {
+ puts(PACKAGE_STRING);
+ exit(0);
+ }
else { /* unknown arg */
- const char **cpp;
-
- fprintf (stderr, "usage: %s [options]\n\n",
- ProgramName);
- for (cpp = help_message; *cpp; cpp++)
- fprintf (stderr, "%s\n", *cpp);
+ fprintf (stderr, "%s: unrecognized argument %s\n\n",
+ ProgramName, *argv);
+ fprintf (stderr, "usage: %s [options]\n\n%s",
+ ProgramName, help_message);
exit (1);
}
}
if (!dofaces && !doedges)
- icoFatal("nothing to draw", NULL);
+ icoFatal("nothing to draw");
#ifdef MULTITHREAD
XInitThreads();
diff --git a/app/ico/man/ico.man b/app/ico/man/ico.man
index 34d6254f1..0646fa1a5 100644
--- a/app/ico/man/ico.man
+++ b/app/ico/man/ico.man
@@ -5,7 +5,13 @@ ico \- animate an icosahedron or other polyhedron
.B ico
[-display display] [-geometry geometry]
[-r] [-d pattern] [-i] [-dbl] [-faces] [-noedges]
-[-sleep n] [-obj object] [-objhelp] [-colors color-list]
+[-sleep n] [-obj object] [-colors color-list]
+.LP
+.B ico
+-objhelp
+.LP
+.B ico
+-version
.SH DESCRIPTION
.I Ico
displays a wire-frame rotating polyhedron, with hidden lines removed,
@@ -54,6 +60,9 @@ about each object.
.B -colors \fIcolor color ...\fP
Specify what colors should be used to draw the filled faces of the object.
If less colors than faces are given, the colors are reused.
+.TP
+.B -version
+Print program version information and exit.
.SH PROGRAM TERMINATION
.LP
Pressing "q" will close a window. If compiled with threads support, the
diff --git a/app/ico/polyinfo.h b/app/ico/polyinfo.h
index c4b80f1e6..daf68db5d 100644
--- a/app/ico/polyinfo.h
+++ b/app/ico/polyinfo.h
@@ -16,7 +16,7 @@ typedef struct {
} Point3D;
/* structure of the include files which define the polyhedra */
-typedef struct {
+struct polyinfo {
const char *longname; /* long name of object */
const char *shortname; /* short name of object */
const char *dual; /* long name of dual */
@@ -25,6 +25,7 @@ typedef struct {
int numfaces; /* number of faces */
Point3D v[MAXVERTS]; /* the vertices */
int f[MAXEDGES*2+MAXFACES]; /* the faces */
-} Polyinfo;
+};
+typedef const struct polyinfo Polyinfo;
/* end */