Update to ico 1.0.5

This commit is contained in:
matthieu 2018-05-21 15:32:35 +00:00
parent a22e8b4a1c
commit 8b98922533
9 changed files with 677 additions and 107 deletions

View File

@ -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 commit 0c5f08dee87e0453e3263f8aa5ca545a0a03353e
Author: Alan Coopersmith <alan.coopersmith@oracle.com> Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Tue Jan 15 18:19:49 2013 -0800 Date: Tue Jan 15 18:19:49 2013 -0800

View File

@ -75,8 +75,8 @@ bin_PROGRAMS = ico$(EXEEXT)
subdir = . subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/configure COPYING ChangeLog INSTALL config.guess \ $(top_srcdir)/configure COPYING ChangeLog INSTALL compile \
config.sub depcomp install-sh missing config.guess config.sub depcomp install-sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \

56
app/ico/aclocal.m4 vendored
View File

@ -1242,7 +1242,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, 2006, Oracle and/or its affiliates. All rights reserved. dnl Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
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"),
@ -1279,7 +1279,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.0]) m4_define([vers_have], [1.19.2])
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,,
@ -1357,6 +1357,17 @@ AC_DEFUN([XORG_MANPAGE_SECTIONS],[
AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([AC_PROG_SED]) 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 if test x$APP_MAN_SUFFIX = x ; then
APP_MAN_SUFFIX=1 APP_MAN_SUFFIX=1
fi fi
@ -1372,8 +1383,8 @@ if test x$LIB_MAN_DIR = x ; then
fi fi
if test x$FILE_MAN_SUFFIX = x ; then if test x$FILE_MAN_SUFFIX = x ; then
case $host_os in case $SYSV_MAN_SECTIONS in
solaris*) FILE_MAN_SUFFIX=4 ;; true) FILE_MAN_SUFFIX=4 ;;
*) FILE_MAN_SUFFIX=5 ;; *) FILE_MAN_SUFFIX=5 ;;
esac esac
fi fi
@ -1382,8 +1393,8 @@ if test x$FILE_MAN_DIR = x ; then
fi fi
if test x$MISC_MAN_SUFFIX = x ; then if test x$MISC_MAN_SUFFIX = x ; then
case $host_os in case $SYSV_MAN_SECTIONS in
solaris*) MISC_MAN_SUFFIX=5 ;; true) MISC_MAN_SUFFIX=5 ;;
*) MISC_MAN_SUFFIX=7 ;; *) MISC_MAN_SUFFIX=7 ;;
esac esac
fi fi
@ -1392,8 +1403,8 @@ if test x$MISC_MAN_DIR = x ; then
fi fi
if test x$DRIVER_MAN_SUFFIX = x ; then if test x$DRIVER_MAN_SUFFIX = x ; then
case $host_os in case $SYSV_MAN_SECTIONS in
solaris*) DRIVER_MAN_SUFFIX=7 ;; true) DRIVER_MAN_SUFFIX=7 ;;
*) DRIVER_MAN_SUFFIX=4 ;; *) DRIVER_MAN_SUFFIX=4 ;;
esac esac
fi fi
@ -1402,8 +1413,8 @@ if test x$DRIVER_MAN_DIR = x ; then
fi fi
if test x$ADMIN_MAN_SUFFIX = x ; then if test x$ADMIN_MAN_SUFFIX = x ; then
case $host_os in case $SYSV_MAN_SECTIONS in
solaris*) ADMIN_MAN_SUFFIX=1m ;; true) ADMIN_MAN_SUFFIX=1m ;;
*) ADMIN_MAN_SUFFIX=8 ;; *) ADMIN_MAN_SUFFIX=8 ;;
esac esac
fi fi
@ -1665,13 +1676,24 @@ m4_ifval([$1],
fi]) fi])
# Test for the ability of xmlto to generate a text target # 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 have_xmlto_text=no
cat > conftest.xml << "EOF" cat > conftest.xml << "EOF"
EOF EOF
AS_IF([test "$have_xmlto" = yes], AS_IF([test "$have_xmlto" = yes],
[AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1], [AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1],
[have_xmlto_text=yes], [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 rm -f conftest.xml
AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes]) AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes])
AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = 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` macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ || (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \
echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" touch \$(top_srcdir)/INSTALL; \
echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))"
AC_SUBST([INSTALL_CMD]) AC_SUBST([INSTALL_CMD])
]) # XORG_INSTALL ]) # XORG_INSTALL
dnl Copyright 2005 Red Hat, Inc dnl Copyright 2005 Red Hat, Inc
@ -3129,10 +3152,11 @@ AC_DEFUN([XORG_RELEASE_VERSION],[
# #
# #
AC_DEFUN([XORG_CHANGELOG], [ 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) \ mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ || (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \
echo 'git directory not found: installing possibly empty changelog.' >&2)" touch \$(top_srcdir)/ChangeLog; \
echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))"
AC_SUBST([CHANGELOG_CMD]) AC_SUBST([CHANGELOG_CMD])
]) # XORG_CHANGELOG ]) # XORG_CHANGELOG

347
app/ico/compile Normal file
View File

@ -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:

89
app/ico/configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.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>. # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
# #
@ -581,11 +581,12 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='ico' PACKAGE_NAME='ico'
PACKAGE_TARNAME='ico' PACKAGE_TARNAME='ico'
PACKAGE_VERSION='1.0.4' PACKAGE_VERSION='1.0.5'
PACKAGE_STRING='ico 1.0.4' PACKAGE_STRING='ico 1.0.5'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
PACKAGE_URL='' PACKAGE_URL=''
ac_unique_file="Makefile.am"
# Factoring default headers for most tests. # Factoring default headers for most tests.
ac_includes_default="\ ac_includes_default="\
#include <stdio.h> #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. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures 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]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1381,7 +1382,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of ico 1.0.4:";; short | recursive ) echo "Configuration of ico 1.0.5:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1488,7 +1489,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
ico configure 1.0.4 ico configure 1.0.5
generated by GNU Autoconf 2.69 generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc. Copyright (C) 2012 Free Software Foundation, Inc.
@ -1812,7 +1813,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by 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 generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@ $ $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_compiler_gnu=$ac_cv_c_compiler_gnu
ac_config_headers="$ac_config_headers config.h"
# Initialize Automake
am__api_version='1.12' am__api_version='1.12'
ac_aux_dir= ac_aux_dir=
@ -2636,7 +2642,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='ico' PACKAGE='ico'
VERSION='1.0.4' VERSION='1.0.5'
cat >>confdefs.h <<_ACEOF 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) \ mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ || (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \
echo 'git directory not found: installing possibly empty changelog.' >&2)" 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` macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ || (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \
echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" 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 if test x$APP_MAN_SUFFIX = x ; then
APP_MAN_SUFFIX=1 APP_MAN_SUFFIX=1
fi fi
@ -10337,8 +10375,8 @@ if test x$LIB_MAN_DIR = x ; then
fi fi
if test x$FILE_MAN_SUFFIX = x ; then if test x$FILE_MAN_SUFFIX = x ; then
case $host_os in case $SYSV_MAN_SECTIONS in
solaris*) FILE_MAN_SUFFIX=4 ;; true) FILE_MAN_SUFFIX=4 ;;
*) FILE_MAN_SUFFIX=5 ;; *) FILE_MAN_SUFFIX=5 ;;
esac esac
fi fi
@ -10347,8 +10385,8 @@ if test x$FILE_MAN_DIR = x ; then
fi fi
if test x$MISC_MAN_SUFFIX = x ; then if test x$MISC_MAN_SUFFIX = x ; then
case $host_os in case $SYSV_MAN_SECTIONS in
solaris*) MISC_MAN_SUFFIX=5 ;; true) MISC_MAN_SUFFIX=5 ;;
*) MISC_MAN_SUFFIX=7 ;; *) MISC_MAN_SUFFIX=7 ;;
esac esac
fi fi
@ -10357,8 +10395,8 @@ if test x$MISC_MAN_DIR = x ; then
fi fi
if test x$DRIVER_MAN_SUFFIX = x ; then if test x$DRIVER_MAN_SUFFIX = x ; then
case $host_os in case $SYSV_MAN_SECTIONS in
solaris*) DRIVER_MAN_SUFFIX=7 ;; true) DRIVER_MAN_SUFFIX=7 ;;
*) DRIVER_MAN_SUFFIX=4 ;; *) DRIVER_MAN_SUFFIX=4 ;;
esac esac
fi fi
@ -10367,8 +10405,8 @@ if test x$DRIVER_MAN_DIR = x ; then
fi fi
if test x$ADMIN_MAN_SUFFIX = x ; then if test x$ADMIN_MAN_SUFFIX = x ; then
case $host_os in case $SYSV_MAN_SECTIONS in
solaris*) ADMIN_MAN_SUFFIX=1m ;; true) ADMIN_MAN_SUFFIX=1m ;;
*) ADMIN_MAN_SUFFIX=8 ;; *) ADMIN_MAN_SUFFIX=8 ;;
esac esac
fi fi
@ -10449,9 +10487,6 @@ AM_BACKSLASH='\'
ac_config_headers="$ac_config_headers config.h"
# Checks for library functions. # Checks for library functions.
for ac_func in arc4random_uniform for ac_func in arc4random_uniform
do : do :
@ -11102,7 +11137,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by 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 generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -11168,7 +11203,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\ ac_cs_version="\\
ico config.status 1.0.4 ico config.status 1.0.5
configured by $0, generated by GNU Autoconf 2.69, configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\" 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 for ac_config_target in $ac_config_targets
do do
case $ac_config_target in case $ac_config_target in
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;

View File

@ -21,9 +21,14 @@ dnl PERFORMANCE OF THIS SOFTWARE.
dnl dnl
dnl Process this file with autoconf to create configure. dnl Process this file with autoconf to create configure.
# Initialize Autoconf
AC_PREREQ([2.60]) 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]) [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_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE AM_MAINTAINER_MODE
@ -33,8 +38,6 @@ m4_ifndef([XORG_MACROS_VERSION],
XORG_MACROS_VERSION(1.8) XORG_MACROS_VERSION(1.8)
XORG_DEFAULT_OPTIONS XORG_DEFAULT_OPTIONS
AC_CONFIG_HEADERS([config.h])
# Checks for library functions. # Checks for library functions.
AC_CHECK_FUNCS([arc4random_uniform]) AC_CHECK_FUNCS([arc4random_uniform])

View File

@ -87,6 +87,7 @@ SOFTWARE.
#include <X11/Xfuncs.h> #include <X11/Xfuncs.h>
#include <X11/keysym.h> #include <X11/keysym.h>
#include <stdio.h> #include <stdio.h>
#include <stdarg.h>
#ifdef MULTIBUFFER #ifdef MULTIBUFFER
#include <X11/extensions/multibuf.h> #include <X11/extensions/multibuf.h>
#endif /* MULTIBUFFER */ #endif /* MULTIBUFFER */
@ -179,37 +180,38 @@ static const char *Primaries[] = {
}; };
#define NumberPrimaries 6 #define NumberPrimaries 6
static const char *help_message[] = { static const char *help_message =
"where options include:", "where options include:\n"
"-display host:dpy X server to use", " -display host:dpy X server to use\n"
" -geometry geom geometry of window to use", " -geometry geom geometry of window to use\n"
" -size WxH size of object to rotate", " -size WxH size of object to rotate\n"
" -delta +X+Y amount by which to move object", " -delta +X+Y amount by which to move object\n"
" -r draw in the root window", " -r draw in the root window\n"
" -d number dashed line pattern for wire frames", " -d number dashed line pattern for wire frames\n"
" -bg color background color", " -bg color background color\n"
" -colors color ... codes to use on sides", " -colors color ... codes to use on sides\n"
" -p# use # (1 through 8) primary colors", " -p# use # (1 through 8) primary colors\n"
#ifdef MULTIBUFFER #ifdef MULTIBUFFER
" -dbl use double buffering (extension if present)", " -dbl use double buffering extension (if present)\n"
#else #else
" -dbl use double buffering (software only)", " -dbl use double buffering (software only)\n"
#endif #endif
" -softdbl use software double buffering", " -softdbl use software double buffering\n"
" -noedges don't draw wire frame edges", " -noedges don't draw wire frame edges\n"
" -faces draw faces", " -faces draw faces\n"
" -copy use multibuffer update action Copied", " -copy use multibuffer update action Copied\n"
" -untouched use multibuffer update action Untouched", " -untouched use multibuffer update action Untouched\n"
" -undefined use multibuffer update action Undefined", " -undefined use multibuffer update action Undefined\n"
" -lw number line width to use", " -lw number line width to use\n"
" -i invert", " -i invert\n"
" -sleep number seconds to sleep in between draws", " -sleep number seconds to sleep in between draws\n"
" -obj objname type of polyhedral object to draw", " -obj objname type of polyhedral object to draw\n"
" -objhelp list polyhedral objects available", " -objhelp list polyhedral objects available\n"
#ifdef MULTITHREAD #ifdef MULTITHREAD
" -threads number number of windows, each its own thread", " -threads number number of windows, each its own thread\n"
#endif #endif
NULL}; " -version print program version\n"
;
static const char *ProgramName; /* argv[0] */ 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 _X_NORETURN _X_ATTRIBUTE_PRINTF(1, 2)
icoFatal(const char *fmt, ...)
static void
icoFatal(const char *fmt, const char *a0)
{ {
va_list args;
fprintf(stderr, "%s: ", ProgramName); fprintf(stderr, "%s: ", ProgramName);
fprintf(stderr, fmt, a0); va_start(args, fmt);
vfprintf(stderr, fmt, args);
va_end(args);
fprintf(stderr, "\n"); fprintf(stderr, "\n");
exit(1); exit(1);
} }
@ -467,7 +471,7 @@ icoClearArea(struct closure *closure, int x, int y, int w, int h)
static void static void
initPoly(struct closure *closure, Polyinfo *poly, int icoW, int icoH) initPoly(struct closure *closure, Polyinfo *poly, int icoW, int icoH)
{ {
Point3D *vertices = poly->v; const Point3D *vertices = poly->v;
int NV = poly->numverts; int NV = poly->numverts;
Transform3D r1; Transform3D r1;
Transform3D r2; Transform3D r2;
@ -476,7 +480,7 @@ initPoly(struct closure *closure, Polyinfo *poly, int icoW, int icoH)
FormatRotateMat('y', 5 * 3.1416 / 180.0, r2); FormatRotateMat('y', 5 * 3.1416 / 180.0, r2);
ConcatMat(r1, r2, closure->xform); 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->xv_buffer = 0;
closure->wo2 = icoW / 2.0; closure->wo2 = icoW / 2.0;
@ -563,7 +567,7 @@ static void
drawPoly(struct closure *closure, Polyinfo *poly, GC gc, drawPoly(struct closure *closure, Polyinfo *poly, GC gc,
int icoX, int icoY, int icoW, int icoH, int prevX, int prevY) 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 NV = poly->numverts;
int NF = poly->numfaces; int NF = poly->numfaces;
@ -576,7 +580,7 @@ drawPoly(struct closure *closure, Polyinfo *poly, GC gc,
XSegment edges[MAXEDGES]; XSegment edges[MAXEDGES];
int i; int i;
int j,k; int j,k;
int *pf; const int *pf;
int facecolor; int facecolor;
int pcount; int pcount;
@ -753,7 +757,7 @@ initDBufs(struct closure *closure, unsigned long fg, unsigned long bg,
closure->plane_masks,closure->totalplanes, closure->pixels,1); closure->plane_masks,closure->totalplanes, closure->pixels,1);
/* allocate color planes */ /* allocate color planes */
if (t==0) { 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 #endif
closure->cmap = XDefaultColormap(dpy,DefaultScreen(dpy)); closure->cmap = XDefaultColormap(dpy,DefaultScreen(dpy));
if (!closure->cmap) { if (!closure->cmap) {
icoFatal("no default colormap!", NULL); icoFatal("no default colormap!");
} }
fg = WhitePixel(dpy, DefaultScreen(dpy)); fg = WhitePixel(dpy, DefaultScreen(dpy));
@ -929,7 +933,7 @@ do_ico_window(void *ptr)
printf("thread %x got Expose\n", xthread_self()); printf("thread %x got Expose\n", xthread_self());
#endif #endif
if (XGetWindowAttributes(dpy,closure->draw_window,&xwa)==0) { 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->winW = xwa.width;
closure->winH = xwa.height; closure->winH = xwa.height;
@ -966,7 +970,7 @@ do_ico_window(void *ptr)
0, 0, closure->winW, closure->winH, 0, 0); 0, 0, closure->winW, closure->winH, 0, 0);
closure->win = closure->multibuffers[1]; closure->win = closure->multibuffers[1];
} else } else
icoFatal ("unable to obtain 2 buffers", NULL); icoFatal ("unable to obtain 2 buffers");
} }
#endif /* MULTIBUFFER */ #endif /* MULTIBUFFER */
if (closure->win == None) closure->win = closure->draw_window; if (closure->win == None) closure->win = closure->draw_window;
@ -1127,7 +1131,7 @@ do_ico_window(void *ptr)
static void static void
giveObjHelp(void) giveObjHelp(void)
{ {
int i; unsigned int i;
Polyinfo *poly; Polyinfo *poly;
printf("%-16s%-12s #Vert. #Edges #Faces %-16s\n", printf("%-16s%-12s #Vert. #Edges #Faces %-16s\n",
@ -1144,7 +1148,7 @@ giveObjHelp(void)
static Polyinfo * static Polyinfo *
findpoly(const char *name) findpoly(const char *name)
{ {
int i; unsigned int i;
Polyinfo *poly; Polyinfo *poly;
for (i=0; i<NumberPolygons; i++) { for (i=0; i<NumberPolygons; i++) {
@ -1276,19 +1280,21 @@ int main(int argc, const char **argv)
giveObjHelp(); giveObjHelp();
exit(1); exit(1);
} }
else if (strcmp(*argv, "-version") == 0) {
puts(PACKAGE_STRING);
exit(0);
}
else { /* unknown arg */ else { /* unknown arg */
const char **cpp; fprintf (stderr, "%s: unrecognized argument %s\n\n",
ProgramName, *argv);
fprintf (stderr, "usage: %s [options]\n\n", fprintf (stderr, "usage: %s [options]\n\n%s",
ProgramName); ProgramName, help_message);
for (cpp = help_message; *cpp; cpp++)
fprintf (stderr, "%s\n", *cpp);
exit (1); exit (1);
} }
} }
if (!dofaces && !doedges) if (!dofaces && !doedges)
icoFatal("nothing to draw", NULL); icoFatal("nothing to draw");
#ifdef MULTITHREAD #ifdef MULTITHREAD
XInitThreads(); XInitThreads();

View File

@ -5,7 +5,13 @@ ico \- animate an icosahedron or other polyhedron
.B ico .B ico
[-display display] [-geometry geometry] [-display display] [-geometry geometry]
[-r] [-d pattern] [-i] [-dbl] [-faces] [-noedges] [-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 .SH DESCRIPTION
.I Ico .I Ico
displays a wire-frame rotating polyhedron, with hidden lines removed, displays a wire-frame rotating polyhedron, with hidden lines removed,
@ -54,6 +60,9 @@ about each object.
.B -colors \fIcolor color ...\fP .B -colors \fIcolor color ...\fP
Specify what colors should be used to draw the filled faces of the object. 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. If less colors than faces are given, the colors are reused.
.TP
.B -version
Print program version information and exit.
.SH PROGRAM TERMINATION .SH PROGRAM TERMINATION
.LP .LP
Pressing "q" will close a window. If compiled with threads support, the Pressing "q" will close a window. If compiled with threads support, the

View File

@ -16,7 +16,7 @@ typedef struct {
} Point3D; } Point3D;
/* structure of the include files which define the polyhedra */ /* structure of the include files which define the polyhedra */
typedef struct { struct polyinfo {
const char *longname; /* long name of object */ const char *longname; /* long name of object */
const char *shortname; /* short name of object */ const char *shortname; /* short name of object */
const char *dual; /* long name of dual */ const char *dual; /* long name of dual */
@ -25,6 +25,7 @@ typedef struct {
int numfaces; /* number of faces */ int numfaces; /* number of faces */
Point3D v[MAXVERTS]; /* the vertices */ Point3D v[MAXVERTS]; /* the vertices */
int f[MAXEDGES*2+MAXFACES]; /* the faces */ int f[MAXEDGES*2+MAXFACES]; /* the faces */
} Polyinfo; };
typedef const struct polyinfo Polyinfo;
/* end */ /* end */