+++ /dev/null
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/alloca.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/alloca.in.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/alloca.in.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/alloca.in.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,56 @@
-+/* Memory allocation on the stack.
-+
-+ Copyright (C) 1995, 1999, 2001-2004, 2006-2008 Free Software
-+ Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Lesser General Public License as published
-+ by the Free Software Foundation; either version 2.1, 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 Lesser General Public
-+ License along with this program; if not, write to the Free Software
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-+ USA. */
-+
-+/* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H
-+ means there is a real alloca function. */
-+#ifndef _GL_ALLOCA_H
-+#define _GL_ALLOCA_H
-+
-+/* alloca (N) returns a pointer to N bytes of memory
-+ allocated on the stack, which will last until the function returns.
-+ Use of alloca should be avoided:
-+ - inside arguments of function calls - undefined behaviour,
-+ - in inline functions - the allocation may actually last until the
-+ calling function returns,
-+ - for huge N (say, N >= 65536) - you never know how large (or small)
-+ the stack is, and when the stack cannot fulfill the memory allocation
-+ request, the program just crashes.
-+ */
-+
-+#ifndef alloca
-+# ifdef __GNUC__
-+# define alloca __builtin_alloca
-+# elif defined _AIX
-+# define alloca __alloca
-+# elif defined _MSC_VER
-+# include <malloc.h>
-+# define alloca _alloca
-+# elif defined __DECC && defined __VMS
-+# define alloca __ALLOCA
-+# else
-+# include <stddef.h>
-+# ifdef __cplusplus
-+extern "C"
-+# endif
-+void *alloca (size_t);
-+# endif
-+#endif
-+
-+#endif /* _GL_ALLOCA_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/arpa_inet.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/arpa_inet.in.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/arpa_inet.in.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/arpa_inet.in.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,80 @@
-+/* A GNU-like <arpa/inet.h>.
-+
-+ Copyright (C) 2005-2006, 2008 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#ifndef _GL_ARPA_INET_H
-+
-+/* Gnulib's sys/socket.h is responsible for pulling in winsock2.h etc
-+ under MinGW. */
-+#include <sys/socket.h>
-+
-+#if @HAVE_ARPA_INET_H@
-+
-+@PRAGMA_SYSTEM_HEADER@
-+
-+/* The include_next requires a split double-inclusion guard. */
-+# @INCLUDE_NEXT@ @NEXT_ARPA_INET_H@
-+
-+#endif
-+
-+#ifndef _GL_ARPA_INET_H
-+#define _GL_ARPA_INET_H
-+
-+/* The definition of GL_LINK_WARNING is copied here. */
-+
-+#if @GNULIB_INET_NTOP@
-+# if !@HAVE_DECL_INET_NTOP@
-+/* Converts an internet address from internal format to a printable,
-+ presentable format.
-+ AF is an internet address family, such as AF_INET or AF_INET6.
-+ SRC points to a 'struct in_addr' (for AF_INET) or 'struct in6_addr'
-+ (for AF_INET6).
-+ DST points to a buffer having room for CNT bytes.
-+ The printable representation of the address (in numeric form, not
-+ surrounded by [...], no reverse DNS is done) is placed in DST, and
-+ DST is returned. If an error occurs, the return value is NULL and
-+ errno is set. If CNT bytes are not sufficient to hold the result,
-+ the return value is NULL and errno is set to ENOSPC. A good value
-+ for CNT is 46.
-+
-+ For more details, see the POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/inet_ntop.html>. */
-+extern const char *inet_ntop (int af, const void *restrict src,
-+ char *restrict dst, socklen_t cnt);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef inet_ntop
-+# define inet_ntop(af,src,dst,cnt) \
-+ (GL_LINK_WARNING ("inet_ntop is unportable - " \
-+ "use gnulib module inet_ntop for portability"), \
-+ inet_ntop (af, src, dst, cnt))
-+#endif
-+
-+#if @GNULIB_INET_PTON@
-+# if !@HAVE_DECL_INET_PTON@
-+extern int inet_pton (int af, const char *restrict src, void *restrict dst);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef inet_pton
-+# define inet_pton(af,src,dst) \
-+ (GL_LINK_WARNING ("inet_pton is unportable - " \
-+ "use gnulib module inet_pton for portability"), \
-+ inet_pton (af, src, dst))
-+#endif
-+
-+#endif /* _GL_ARPA_INET_H */
-+#endif /* _GL_ARPA_INET_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/asnprintf.c gtk-vnc-0.3.7.gnulib/gnulib/lib/asnprintf.c
---- gtk-vnc-0.3.7.dan3/gnulib/lib/asnprintf.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/asnprintf.c 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,35 @@
-+/* Formatted output to strings.
-+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License along
-+ with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#include <config.h>
-+
-+/* Specification. */
-+#include "vasnprintf.h"
-+
-+#include <stdarg.h>
-+
-+char *
-+asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
-+{
-+ va_list args;
-+ char *result;
-+
-+ va_start (args, format);
-+ result = vasnprintf (resultbuf, lengthp, format, args);
-+ va_end (args);
-+ return result;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/dummy.c gtk-vnc-0.3.7.gnulib/gnulib/lib/dummy.c
---- gtk-vnc-0.3.7.dan3/gnulib/lib/dummy.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/dummy.c 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,42 @@
-+/* A dummy file, to prevent empty libraries from breaking builds.
-+ Copyright (C) 2004, 2007 Free Software Foundation, Inc.
-+
-+ This program is free software: you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
-+
-+/* Some systems, reportedly OpenBSD and Mac OS X, refuse to create
-+ libraries without any object files. You might get an error like:
-+
-+ > ar cru .libs/libgl.a
-+ > ar: no archive members specified
-+
-+ Compiling this file, and adding its object file to the library, will
-+ prevent the library from being empty. */
-+
-+/* Some systems, such as Solaris with cc 5.0, refuse to work with libraries
-+ that don't export any symbol. You might get an error like:
-+
-+ > cc ... libgnu.a
-+ > ild: (bad file) garbled symbol table in archive ../gllib/libgnu.a
-+
-+ Compiling this file, and adding its object file to the library, will
-+ prevent the library from exporting no symbols. */
-+
-+#ifdef __sun
-+/* This declaration ensures that the library will export at least 1 symbol. */
-+int gl_dummy_symbol;
-+#else
-+/* This declaration is solely to ensure that after preprocessing
-+ this file is never empty. */
-+typedef int dummy;
-+#endif
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/errno.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/errno.in.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/errno.in.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/errno.in.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,153 @@
-+/* A POSIX-like <errno.h>.
-+
-+ Copyright (C) 2008 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#ifndef _GL_ERRNO_H
-+
-+@PRAGMA_SYSTEM_HEADER@
-+
-+/* The include_next requires a split double-inclusion guard. */
-+#@INCLUDE_NEXT@ @NEXT_ERRNO_H@
-+
-+#ifndef _GL_ERRNO_H
-+#define _GL_ERRNO_H
-+
-+
-+/* On native Windows platforms, many macros are not defined. */
-+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-+
-+/* POSIX says that EAGAIN and EWOULDBLOCK may have the same value. */
-+# define EWOULDBLOCK EAGAIN
-+
-+/* Values >= 100 seem safe to use. */
-+# define ETXTBSY 100
-+# define GNULIB_defined_ETXTBSY 1
-+
-+/* These are intentionally the same values as the WSA* error numbers, defined
-+ in <winsock2.h>. */
-+# define EINPROGRESS 10036
-+# define EALREADY 10037
-+# define ENOTSOCK 10038
-+# define EDESTADDRREQ 10039
-+# define EMSGSIZE 10040
-+# define EPROTOTYPE 10041
-+# define ENOPROTOOPT 10042
-+# define EPROTONOSUPPORT 10043
-+# define ESOCKTNOSUPPORT 10044 /* not required by POSIX */
-+# define EOPNOTSUPP 10045
-+# define EPFNOSUPPORT 10046 /* not required by POSIX */
-+# define EAFNOSUPPORT 10047
-+# define EADDRINUSE 10048
-+# define EADDRNOTAVAIL 10049
-+# define ENETDOWN 10050
-+# define ENETUNREACH 10051
-+# define ENETRESET 10052
-+# define ECONNABORTED 10053
-+# define ECONNRESET 10054
-+# define ENOBUFS 10055
-+# define EISCONN 10056
-+# define ENOTCONN 10057
-+# define ESHUTDOWN 10058 /* not required by POSIX */
-+# define ETOOMANYREFS 10059 /* not required by POSIX */
-+# define ETIMEDOUT 10060
-+# define ECONNREFUSED 10061
-+# define ELOOP 10062
-+# define EHOSTDOWN 10064 /* not required by POSIX */
-+# define EHOSTUNREACH 10065
-+# define EPROCLIM 10067 /* not required by POSIX */
-+# define EUSERS 10068 /* not required by POSIX */
-+# define EDQUOT 10069
-+# define ESTALE 10070
-+# define EREMOTE 10071 /* not required by POSIX */
-+# define GNULIB_defined_ESOCK 1
-+
-+# endif
-+
-+
-+/* On OSF/1 5.1, when _XOPEN_SOURCE_EXTENDED is not defined, the macros
-+ EMULTIHOP, ENOLINK, EOVERFLOW are not defined. */
-+# if @EMULTIHOP_HIDDEN@
-+# define EMULTIHOP @EMULTIHOP_VALUE@
-+# define GNULIB_defined_EMULTIHOP 1
-+# endif
-+# if @ENOLINK_HIDDEN@
-+# define ENOLINK @ENOLINK_VALUE@
-+# define GNULIB_defined_ENOLINK 1
-+# endif
-+# if @EOVERFLOW_HIDDEN@
-+# define EOVERFLOW @EOVERFLOW_VALUE@
-+# define GNULIB_defined_EOVERFLOW 1
-+# endif
-+
-+
-+/* On OpenBSD 4.0 and on native Windows, the macros ENOMSG, EIDRM, ENOLINK,
-+ EPROTO, EMULTIHOP, EBADMSG, EOVERFLOW, ENOTSUP, ECANCELED are not defined.
-+ Define them here. Values >= 2000 seem safe to use: Solaris ESTALE = 151,
-+ HP-UX EWOULDBLOCK = 246, IRIX EDQUOT = 1133.
-+
-+ Note: When one of these systems defines some of these macros some day,
-+ binaries will have to be recompiled so that they recognizes the new
-+ errno values from the system. */
-+
-+# ifndef ENOMSG
-+# define ENOMSG 2000
-+# define GNULIB_defined_ENOMSG 1
-+# endif
-+
-+# ifndef EIDRM
-+# define EIDRM 2001
-+# define GNULIB_defined_EIDRM 1
-+# endif
-+
-+# ifndef ENOLINK
-+# define ENOLINK 2002
-+# define GNULIB_defined_ENOLINK 1
-+# endif
-+
-+# ifndef EPROTO
-+# define EPROTO 2003
-+# define GNULIB_defined_EPROTO 1
-+# endif
-+
-+# ifndef EMULTIHOP
-+# define EMULTIHOP 2004
-+# define GNULIB_defined_EMULTIHOP 1
-+# endif
-+
-+# ifndef EBADMSG
-+# define EBADMSG 2005
-+# define GNULIB_defined_EBADMSG 1
-+# endif
-+
-+# ifndef EOVERFLOW
-+# define EOVERFLOW 2006
-+# define GNULIB_defined_EOVERFLOW 1
-+# endif
-+
-+# ifndef ENOTSUP
-+# define ENOTSUP 2007
-+# define GNULIB_defined_ENOTSUP 1
-+# endif
-+
-+# ifndef ECANCELED
-+# define ECANCELED 2008
-+# define GNULIB_defined_ECANCELED 1
-+# endif
-+
-+
-+#endif /* _GL_ERRNO_H */
-+#endif /* _GL_ERRNO_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/float+.h gtk-vnc-0.3.7.gnulib/gnulib/lib/float+.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/float+.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/float+.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,148 @@
-+/* Supplemental information about the floating-point formats.
-+ Copyright (C) 2007 Free Software Foundation, Inc.
-+ Written by Bruno Haible <bruno@clisp.org>, 2007.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#ifndef _FLOATPLUS_H
-+#define _FLOATPLUS_H
-+
-+#include <float.h>
-+#include <limits.h>
-+
-+/* Number of bits in the mantissa of a floating-point number, including the
-+ "hidden bit". */
-+#if FLT_RADIX == 2
-+# define FLT_MANT_BIT FLT_MANT_DIG
-+# define DBL_MANT_BIT DBL_MANT_DIG
-+# define LDBL_MANT_BIT LDBL_MANT_DIG
-+#elif FLT_RADIX == 4
-+# define FLT_MANT_BIT (FLT_MANT_DIG * 2)
-+# define DBL_MANT_BIT (DBL_MANT_DIG * 2)
-+# define LDBL_MANT_BIT (LDBL_MANT_DIG * 2)
-+#elif FLT_RADIX == 16
-+# define FLT_MANT_BIT (FLT_MANT_DIG * 4)
-+# define DBL_MANT_BIT (DBL_MANT_DIG * 4)
-+# define LDBL_MANT_BIT (LDBL_MANT_DIG * 4)
-+#endif
-+
-+/* Bit mask that can be used to mask the exponent, as an unsigned number. */
-+#define FLT_EXP_MASK ((FLT_MAX_EXP - FLT_MIN_EXP) | 7)
-+#define DBL_EXP_MASK ((DBL_MAX_EXP - DBL_MIN_EXP) | 7)
-+#define LDBL_EXP_MASK ((LDBL_MAX_EXP - LDBL_MIN_EXP) | 7)
-+
-+/* Number of bits used for the exponent of a floating-point number, including
-+ the exponent's sign. */
-+#define FLT_EXP_BIT \
-+ (FLT_EXP_MASK < 0x100 ? 8 : \
-+ FLT_EXP_MASK < 0x200 ? 9 : \
-+ FLT_EXP_MASK < 0x400 ? 10 : \
-+ FLT_EXP_MASK < 0x800 ? 11 : \
-+ FLT_EXP_MASK < 0x1000 ? 12 : \
-+ FLT_EXP_MASK < 0x2000 ? 13 : \
-+ FLT_EXP_MASK < 0x4000 ? 14 : \
-+ FLT_EXP_MASK < 0x8000 ? 15 : \
-+ FLT_EXP_MASK < 0x10000 ? 16 : \
-+ FLT_EXP_MASK < 0x20000 ? 17 : \
-+ FLT_EXP_MASK < 0x40000 ? 18 : \
-+ FLT_EXP_MASK < 0x80000 ? 19 : \
-+ FLT_EXP_MASK < 0x100000 ? 20 : \
-+ FLT_EXP_MASK < 0x200000 ? 21 : \
-+ FLT_EXP_MASK < 0x400000 ? 22 : \
-+ FLT_EXP_MASK < 0x800000 ? 23 : \
-+ FLT_EXP_MASK < 0x1000000 ? 24 : \
-+ FLT_EXP_MASK < 0x2000000 ? 25 : \
-+ FLT_EXP_MASK < 0x4000000 ? 26 : \
-+ FLT_EXP_MASK < 0x8000000 ? 27 : \
-+ FLT_EXP_MASK < 0x10000000 ? 28 : \
-+ FLT_EXP_MASK < 0x20000000 ? 29 : \
-+ FLT_EXP_MASK < 0x40000000 ? 30 : \
-+ FLT_EXP_MASK <= 0x7fffffff ? 31 : \
-+ 32)
-+#define DBL_EXP_BIT \
-+ (DBL_EXP_MASK < 0x100 ? 8 : \
-+ DBL_EXP_MASK < 0x200 ? 9 : \
-+ DBL_EXP_MASK < 0x400 ? 10 : \
-+ DBL_EXP_MASK < 0x800 ? 11 : \
-+ DBL_EXP_MASK < 0x1000 ? 12 : \
-+ DBL_EXP_MASK < 0x2000 ? 13 : \
-+ DBL_EXP_MASK < 0x4000 ? 14 : \
-+ DBL_EXP_MASK < 0x8000 ? 15 : \
-+ DBL_EXP_MASK < 0x10000 ? 16 : \
-+ DBL_EXP_MASK < 0x20000 ? 17 : \
-+ DBL_EXP_MASK < 0x40000 ? 18 : \
-+ DBL_EXP_MASK < 0x80000 ? 19 : \
-+ DBL_EXP_MASK < 0x100000 ? 20 : \
-+ DBL_EXP_MASK < 0x200000 ? 21 : \
-+ DBL_EXP_MASK < 0x400000 ? 22 : \
-+ DBL_EXP_MASK < 0x800000 ? 23 : \
-+ DBL_EXP_MASK < 0x1000000 ? 24 : \
-+ DBL_EXP_MASK < 0x2000000 ? 25 : \
-+ DBL_EXP_MASK < 0x4000000 ? 26 : \
-+ DBL_EXP_MASK < 0x8000000 ? 27 : \
-+ DBL_EXP_MASK < 0x10000000 ? 28 : \
-+ DBL_EXP_MASK < 0x20000000 ? 29 : \
-+ DBL_EXP_MASK < 0x40000000 ? 30 : \
-+ DBL_EXP_MASK <= 0x7fffffff ? 31 : \
-+ 32)
-+#define LDBL_EXP_BIT \
-+ (LDBL_EXP_MASK < 0x100 ? 8 : \
-+ LDBL_EXP_MASK < 0x200 ? 9 : \
-+ LDBL_EXP_MASK < 0x400 ? 10 : \
-+ LDBL_EXP_MASK < 0x800 ? 11 : \
-+ LDBL_EXP_MASK < 0x1000 ? 12 : \
-+ LDBL_EXP_MASK < 0x2000 ? 13 : \
-+ LDBL_EXP_MASK < 0x4000 ? 14 : \
-+ LDBL_EXP_MASK < 0x8000 ? 15 : \
-+ LDBL_EXP_MASK < 0x10000 ? 16 : \
-+ LDBL_EXP_MASK < 0x20000 ? 17 : \
-+ LDBL_EXP_MASK < 0x40000 ? 18 : \
-+ LDBL_EXP_MASK < 0x80000 ? 19 : \
-+ LDBL_EXP_MASK < 0x100000 ? 20 : \
-+ LDBL_EXP_MASK < 0x200000 ? 21 : \
-+ LDBL_EXP_MASK < 0x400000 ? 22 : \
-+ LDBL_EXP_MASK < 0x800000 ? 23 : \
-+ LDBL_EXP_MASK < 0x1000000 ? 24 : \
-+ LDBL_EXP_MASK < 0x2000000 ? 25 : \
-+ LDBL_EXP_MASK < 0x4000000 ? 26 : \
-+ LDBL_EXP_MASK < 0x8000000 ? 27 : \
-+ LDBL_EXP_MASK < 0x10000000 ? 28 : \
-+ LDBL_EXP_MASK < 0x20000000 ? 29 : \
-+ LDBL_EXP_MASK < 0x40000000 ? 30 : \
-+ LDBL_EXP_MASK <= 0x7fffffff ? 31 : \
-+ 32)
-+
-+/* Number of bits used for a floating-point number: the mantissa (not
-+ counting the "hidden bit", since it may or may not be explicit), the
-+ exponent, and the sign. */
-+#define FLT_TOTAL_BIT ((FLT_MANT_BIT - 1) + FLT_EXP_BIT + 1)
-+#define DBL_TOTAL_BIT ((DBL_MANT_BIT - 1) + DBL_EXP_BIT + 1)
-+#define LDBL_TOTAL_BIT ((LDBL_MANT_BIT - 1) + LDBL_EXP_BIT + 1)
-+
-+/* Number of bytes used for a floating-point number.
-+ This can be smaller than the 'sizeof'. For example, on i386 systems,
-+ 'long double' most often have LDBL_MANT_BIT = 64, LDBL_EXP_BIT = 16, hence
-+ LDBL_TOTAL_BIT = 80 bits, i.e. 10 bytes of consecutive memory, but
-+ sizeof (long double) = 12 or = 16. */
-+#define SIZEOF_FLT ((FLT_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT)
-+#define SIZEOF_DBL ((DBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT)
-+#define SIZEOF_LDBL ((LDBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT)
-+
-+/* Verify that SIZEOF_FLT <= sizeof (float) etc. */
-+typedef int verify_sizeof_flt[2 * (SIZEOF_FLT <= sizeof (float)) - 1];
-+typedef int verify_sizeof_dbl[2 * (SIZEOF_DBL <= sizeof (double)) - 1];
-+typedef int verify_sizeof_ldbl[2 * (SIZEOF_LDBL <= sizeof (long double)) - 1];
-+
-+#endif /* _FLOATPLUS_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/float.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/float.in.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/float.in.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/float.in.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,60 @@
-+/* A correct <float.h>.
-+
-+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
-+
-+ This program is free software: you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _GL_FLOAT_H
-+
-+@PRAGMA_SYSTEM_HEADER@
-+
-+/* The include_next requires a split double-inclusion guard. */
-+#@INCLUDE_NEXT@ @NEXT_FLOAT_H@
-+
-+#ifndef _GL_FLOAT_H
-+#define _GL_FLOAT_H
-+
-+/* 'long double' properties. */
-+#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
-+/* Number of mantissa units, in base FLT_RADIX. */
-+# undef LDBL_MANT_DIG
-+# define LDBL_MANT_DIG 64
-+/* Number of decimal digits that is sufficient for representing a number. */
-+# undef LDBL_DIG
-+# define LDBL_DIG 18
-+/* x-1 where x is the smallest representable number > 1. */
-+# undef LDBL_EPSILON
-+# define LDBL_EPSILON 1.0842021724855044340E-19L
-+/* Minimum e such that FLT_RADIX^(e-1) is a normalized number. */
-+# undef LDBL_MIN_EXP
-+# define LDBL_MIN_EXP (-16381)
-+/* Maximum e such that FLT_RADIX^(e-1) is a representable finite number. */
-+# undef LDBL_MAX_EXP
-+# define LDBL_MAX_EXP 16384
-+/* Minimum positive normalized number. */
-+# undef LDBL_MIN
-+# define LDBL_MIN 3.3621031431120935063E-4932L
-+/* Maximum representable finite number. */
-+# undef LDBL_MAX
-+# define LDBL_MAX 1.1897314953572317650E+4932L
-+/* Minimum e such that 10^e is in the range of normalized numbers. */
-+# undef LDBL_MIN_10_EXP
-+# define LDBL_MIN_10_EXP (-4931)
-+/* Maximum e such that 10^e is in the range of representable finite numbers. */
-+# undef LDBL_MAX_10_EXP
-+# define LDBL_MAX_10_EXP 4932
-+#endif
-+
-+#endif /* _GL_FLOAT_H */
-+#endif /* _GL_FLOAT_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/gai_strerror.c gtk-vnc-0.3.7.gnulib/gnulib/lib/gai_strerror.c
---- gtk-vnc-0.3.7.dan3/gnulib/lib/gai_strerror.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/gai_strerror.c 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,78 @@
-+/* Copyright (C) 1997, 2001, 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Philip Blundell <pjb27@cam.ac.uk>, 1997.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#ifndef _LIBC
-+# include <config.h>
-+# include "getaddrinfo.h"
-+#endif
-+
-+#include <stdio.h>
-+#ifdef HAVE_NETDB_H
-+# include <netdb.h>
-+#endif
-+
-+#ifdef _LIBC
-+# include <libintl.h>
-+#else
-+# include "gettext.h"
-+# define _(String) gettext (String)
-+# define N_(String) String
-+#endif
-+
-+static struct
-+ {
-+ int code;
-+ const char *msg;
-+ }
-+values[] =
-+ {
-+ { EAI_ADDRFAMILY, N_("Address family for hostname not supported") },
-+ { EAI_AGAIN, N_("Temporary failure in name resolution") },
-+ { EAI_BADFLAGS, N_("Bad value for ai_flags") },
-+ { EAI_FAIL, N_("Non-recoverable failure in name resolution") },
-+ { EAI_FAMILY, N_("ai_family not supported") },
-+ { EAI_MEMORY, N_("Memory allocation failure") },
-+ { EAI_NODATA, N_("No address associated with hostname") },
-+ { EAI_NONAME, N_("Name or service not known") },
-+ { EAI_SERVICE, N_("Servname not supported for ai_socktype") },
-+ { EAI_SOCKTYPE, N_("ai_socktype not supported") },
-+ { EAI_SYSTEM, N_("System error") },
-+ { EAI_OVERFLOW, N_("Argument buffer too small") },
-+#ifdef __USE_GNU
-+ { EAI_INPROGRESS, N_("Processing request in progress") },
-+ { EAI_CANCELED, N_("Request canceled") },
-+ { EAI_NOTCANCELED, N_("Request not canceled") },
-+ { EAI_ALLDONE, N_("All requests done") },
-+ { EAI_INTR, N_("Interrupted by a signal") },
-+ { EAI_IDN_ENCODE, N_("Parameter string not correctly encoded") }
-+#endif
-+ };
-+
-+const char *
-+gai_strerror (int code)
-+{
-+ size_t i;
-+ for (i = 0; i < sizeof (values) / sizeof (values[0]); ++i)
-+ if (values[i].code == code)
-+ return _(values[i].msg);
-+
-+ return _("Unknown error");
-+}
-+#ifdef _LIBC
-+libc_hidden_def (gai_strerror)
-+#endif
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/getaddrinfo.c gtk-vnc-0.3.7.gnulib/gnulib/lib/getaddrinfo.c
---- gtk-vnc-0.3.7.dan3/gnulib/lib/getaddrinfo.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/getaddrinfo.c 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,419 @@
-+/* Get address information (partial implementation).
-+ Copyright (C) 1997, 2001, 2002, 2004, 2005, 2006, 2007, 2008 Free Software
-+ Foundation, Inc.
-+ Contributed by Simon Josefsson <simon@josefsson.org>.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#include <config.h>
-+
-+#include "getaddrinfo.h"
-+
-+#if HAVE_NETINET_IN_H
-+# include <netinet/in.h>
-+#endif
-+
-+/* Get inet_ntop. */
-+#include <arpa/inet.h>
-+
-+/* Get calloc. */
-+#include <stdlib.h>
-+
-+/* Get memcpy, strdup. */
-+#include <string.h>
-+
-+/* Get snprintf. */
-+#include <stdio.h>
-+
-+#include <stdbool.h>
-+
-+#include "gettext.h"
-+#define _(String) gettext (String)
-+#define N_(String) String
-+
-+/* BeOS has AF_INET, but not PF_INET. */
-+#ifndef PF_INET
-+# define PF_INET AF_INET
-+#endif
-+/* BeOS also lacks PF_UNSPEC. */
-+#ifndef PF_UNSPEC
-+# define PF_UNSPEC 0
-+#endif
-+
-+#if defined _WIN32 || defined __WIN32__
-+# define WIN32_NATIVE
-+#endif
-+
-+#ifdef WIN32_NATIVE
-+typedef int (WSAAPI *getaddrinfo_func) (const char*, const char*,
-+ const struct addrinfo*,
-+ struct addrinfo**);
-+typedef void (WSAAPI *freeaddrinfo_func) (struct addrinfo*);
-+typedef int (WSAAPI *getnameinfo_func) (const struct sockaddr*,
-+ socklen_t, char*, DWORD,
-+ char*, DWORD, int);
-+
-+static getaddrinfo_func getaddrinfo_ptr = NULL;
-+static freeaddrinfo_func freeaddrinfo_ptr = NULL;
-+static getnameinfo_func getnameinfo_ptr = NULL;
-+
-+static int
-+use_win32_p (void)
-+{
-+ static int done = 0;
-+ HMODULE h;
-+
-+ if (done)
-+ return getaddrinfo_ptr ? 1 : 0;
-+
-+ done = 1;
-+
-+ h = GetModuleHandle ("ws2_32.dll");
-+
-+ if (h)
-+ {
-+ getaddrinfo_ptr = (getaddrinfo_func) GetProcAddress (h, "getaddrinfo");
-+ freeaddrinfo_ptr = (freeaddrinfo_func) GetProcAddress (h, "freeaddrinfo");
-+ getnameinfo_ptr = (getnameinfo_func) GetProcAddress (h, "getnameinfo");
-+ }
-+
-+ /* If either is missing, something is odd. */
-+ if (!getaddrinfo_ptr || !freeaddrinfo_ptr || !getnameinfo_ptr)
-+ {
-+ getaddrinfo_ptr = NULL;
-+ freeaddrinfo_ptr = NULL;
-+ getnameinfo_ptr = NULL;
-+ return 0;
-+ }
-+
-+ return 1;
-+}
-+#endif
-+
-+static inline bool
-+validate_family (int family)
-+{
-+ /* FIXME: Support more families. */
-+#if HAVE_IPV4
-+ if (family == PF_INET)
-+ return true;
-+#endif
-+#if HAVE_IPV6
-+ if (family == PF_INET6)
-+ return true;
-+#endif
-+ if (family == PF_UNSPEC)
-+ return true;
-+ return false;
-+}
-+
-+/* Translate name of a service location and/or a service name to set of
-+ socket addresses. */
-+int
-+getaddrinfo (const char *restrict nodename,
-+ const char *restrict servname,
-+ const struct addrinfo *restrict hints,
-+ struct addrinfo **restrict res)
-+{
-+ struct addrinfo *tmp;
-+ int port = 0;
-+ struct hostent *he;
-+ void *storage;
-+ size_t size;
-+#if HAVE_IPV6
-+ struct v6_pair {
-+ struct addrinfo addrinfo;
-+ struct sockaddr_in6 sockaddr_in6;
-+ };
-+#endif
-+#if HAVE_IPV4
-+ struct v4_pair {
-+ struct addrinfo addrinfo;
-+ struct sockaddr_in sockaddr_in;
-+ };
-+#endif
-+
-+#ifdef WIN32_NATIVE
-+ if (use_win32_p ())
-+ return getaddrinfo_ptr (nodename, servname, hints, res);
-+#endif
-+
-+ if (hints && (hints->ai_flags & ~(AI_CANONNAME|AI_PASSIVE)))
-+ /* FIXME: Support more flags. */
-+ return EAI_BADFLAGS;
-+
-+ if (hints && !validate_family (hints->ai_family))
-+ return EAI_FAMILY;
-+
-+ if (hints &&
-+ hints->ai_socktype != SOCK_STREAM && hints->ai_socktype != SOCK_DGRAM)
-+ /* FIXME: Support other socktype. */
-+ return EAI_SOCKTYPE; /* FIXME: Better return code? */
-+
-+ if (!nodename)
-+ {
-+ if (!(hints->ai_flags & AI_PASSIVE))
-+ return EAI_NONAME;
-+
-+#ifdef HAVE_IPV6
-+ nodename = (hints->ai_family == AF_INET6) ? "::" : "0.0.0.0";
-+#else
-+ nodename = "0.0.0.0";
-+#endif
-+ }
-+
-+ if (servname)
-+ {
-+ struct servent *se = NULL;
-+ const char *proto =
-+ (hints && hints->ai_socktype == SOCK_DGRAM) ? "udp" : "tcp";
-+
-+ if (hints == NULL || !(hints->ai_flags & AI_NUMERICSERV))
-+ /* FIXME: Use getservbyname_r if available. */
-+ se = getservbyname (servname, proto);
-+
-+ if (!se)
-+ {
-+ char *c;
-+ if (!(*servname >= '0' && *servname <= '9'))
-+ return EAI_NONAME;
-+ port = strtoul (servname, &c, 10);
-+ if (*c || port > 0xffff)
-+ return EAI_NONAME;
-+ port = htons (port);
-+ }
-+ else
-+ port = se->s_port;
-+ }
-+
-+ /* FIXME: Use gethostbyname_r if available. */
-+ he = gethostbyname (nodename);
-+ if (!he || he->h_addr_list[0] == NULL)
-+ return EAI_NONAME;
-+
-+ switch (he->h_addrtype)
-+ {
-+#if HAVE_IPV6
-+ case PF_INET6:
-+ size = sizeof (struct v6_pair);
-+ break;
-+#endif
-+
-+#if HAVE_IPV4
-+ case PF_INET:
-+ size = sizeof (struct v4_pair);
-+ break;
-+#endif
-+
-+ default:
-+ return EAI_NODATA;
-+ }
-+
-+ storage = calloc (1, size);
-+ if (!storage)
-+ return EAI_MEMORY;
-+
-+ switch (he->h_addrtype)
-+ {
-+#if HAVE_IPV6
-+ case PF_INET6:
-+ {
-+ struct v6_pair *p = storage;
-+ struct sockaddr_in6 *sinp = &p->sockaddr_in6;
-+ tmp = &p->addrinfo;
-+
-+ if (port)
-+ sinp->sin6_port = port;
-+
-+ if (he->h_length != sizeof (sinp->sin6_addr))
-+ {
-+ free (storage);
-+ return EAI_SYSTEM; /* FIXME: Better return code? Set errno? */
-+ }
-+
-+ memcpy (&sinp->sin6_addr, he->h_addr_list[0], sizeof sinp->sin6_addr);
-+
-+ tmp->ai_addr = (struct sockaddr *) sinp;
-+ tmp->ai_addrlen = sizeof *sinp;
-+ }
-+ break;
-+#endif
-+
-+#if HAVE_IPV4
-+ case PF_INET:
-+ {
-+ struct v4_pair *p = storage;
-+ struct sockaddr_in *sinp = &p->sockaddr_in;
-+ tmp = &p->addrinfo;
-+
-+ if (port)
-+ sinp->sin_port = port;
-+
-+ if (he->h_length != sizeof (sinp->sin_addr))
-+ {
-+ free (storage);
-+ return EAI_SYSTEM; /* FIXME: Better return code? Set errno? */
-+ }
-+
-+ memcpy (&sinp->sin_addr, he->h_addr_list[0], sizeof sinp->sin_addr);
-+
-+ tmp->ai_addr = (struct sockaddr *) sinp;
-+ tmp->ai_addrlen = sizeof *sinp;
-+ }
-+ break;
-+#endif
-+
-+ default:
-+ free (storage);
-+ return EAI_NODATA;
-+ }
-+
-+ if (hints && hints->ai_flags & AI_CANONNAME)
-+ {
-+ const char *cn;
-+ if (he->h_name)
-+ cn = he->h_name;
-+ else
-+ cn = nodename;
-+
-+ tmp->ai_canonname = strdup (cn);
-+ if (!tmp->ai_canonname)
-+ {
-+ free (storage);
-+ return EAI_MEMORY;
-+ }
-+ }
-+
-+ tmp->ai_protocol = (hints) ? hints->ai_protocol : 0;
-+ tmp->ai_socktype = (hints) ? hints->ai_socktype : 0;
-+ tmp->ai_addr->sa_family = he->h_addrtype;
-+ tmp->ai_family = he->h_addrtype;
-+
-+ /* FIXME: If more than one address, create linked list of addrinfo's. */
-+
-+ *res = tmp;
-+
-+ return 0;
-+}
-+
-+/* Free `addrinfo' structure AI including associated storage. */
-+void
-+freeaddrinfo (struct addrinfo *ai)
-+{
-+#ifdef WIN32_NATIVE
-+ if (use_win32_p ())
-+ {
-+ freeaddrinfo_ptr (ai);
-+ return;
-+ }
-+#endif
-+
-+ while (ai)
-+ {
-+ struct addrinfo *cur;
-+
-+ cur = ai;
-+ ai = ai->ai_next;
-+
-+ free (cur->ai_canonname);
-+ free (cur);
-+ }
-+}
-+
-+int getnameinfo(const struct sockaddr *restrict sa, socklen_t salen,
-+ char *restrict node, socklen_t nodelen,
-+ char *restrict service, socklen_t servicelen,
-+ int flags)
-+{
-+#ifdef WIN32_NATIVE
-+ if (use_win32_p ())
-+ return getnameinfo_ptr (sa, salen, node, nodelen,
-+ service, servicelen, flags);
-+#endif
-+
-+ /* FIXME: Support other flags. */
-+ if ((node && nodelen > 0 && !(flags & NI_NUMERICHOST)) ||
-+ (service && servicelen > 0 && !(flags & NI_NUMERICHOST)) ||
-+ (flags & ~(NI_NUMERICHOST|NI_NUMERICSERV)))
-+ return EAI_BADFLAGS;
-+
-+ if (sa == NULL || salen < sizeof (sa->sa_family))
-+ return EAI_FAMILY;
-+
-+ switch (sa->sa_family)
-+ {
-+#if HAVE_IPV4
-+ case AF_INET:
-+ if (salen < sizeof (struct sockaddr_in))
-+ return EAI_FAMILY;
-+ break;
-+#endif
-+#if HAVE_IPV6
-+ case AF_INET6:
-+ if (salen < sizeof (struct sockaddr_in6))
-+ return EAI_FAMILY;
-+ break;
-+#endif
-+ default:
-+ return EAI_FAMILY;
-+ }
-+
-+ if (node && nodelen > 0 && flags & NI_NUMERICHOST)
-+ {
-+ switch (sa->sa_family)
-+ {
-+#if HAVE_IPV4
-+ case AF_INET:
-+ if (!inet_ntop (AF_INET,
-+ &(((const struct sockaddr_in *) sa)->sin_addr),
-+ node, nodelen))
-+ return EAI_SYSTEM;
-+ break;
-+#endif
-+
-+#if HAVE_IPV6
-+ case AF_INET6:
-+ if (!inet_ntop (AF_INET6,
-+ &(((const struct sockaddr_in6 *) sa)->sin6_addr),
-+ node, nodelen))
-+ return EAI_SYSTEM;
-+ break;
-+#endif
-+
-+ default:
-+ return EAI_FAMILY;
-+ }
-+ }
-+
-+ if (service && servicelen > 0 && flags & NI_NUMERICSERV)
-+ switch (sa->sa_family)
-+ {
-+#if HAVE_IPV4
-+ case AF_INET:
-+#endif
-+#if HAVE_IPV6
-+ case AF_INET6:
-+#endif
-+ {
-+ unsigned short int port
-+ = ntohs (((const struct sockaddr_in *) sa)->sin_port);
-+ if (servicelen <= snprintf (service, servicelen, "%u", port))
-+ return EAI_OVERFLOW;
-+ }
-+ break;
-+ }
-+
-+ return 0;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/getaddrinfo.h gtk-vnc-0.3.7.gnulib/gnulib/lib/getaddrinfo.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/getaddrinfo.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/getaddrinfo.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,163 @@
-+/* Get address information.
-+ Copyright (C) 1996-2002, 2003, 2004, 2005, 2006, 2008
-+ Free Software Foundation, Inc.
-+ Contributed by Simon Josefsson <simon@josefsson.org>.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#ifndef GETADDRINFO_H
-+#define GETADDRINFO_H
-+
-+/* sys/socket.h in i386-unknown-freebsd4.10 and
-+ powerpc-apple-darwin5.5 require sys/types.h, so include it first.
-+ Then we'll also get 'socklen_t' and 'struct sockaddr' which are
-+ used below. */
-+#include <sys/types.h>
-+/* Get all getaddrinfo related declarations, if available. */
-+#include <sys/socket.h>
-+#ifdef HAVE_NETDB_H
-+# include <netdb.h>
-+#endif
-+
-+#ifndef HAVE_STRUCT_ADDRINFO
-+
-+/* Structure to contain information about address of a service provider. */
-+struct addrinfo
-+{
-+ int ai_flags; /* Input flags. */
-+ int ai_family; /* Protocol family for socket. */
-+ int ai_socktype; /* Socket type. */
-+ int ai_protocol; /* Protocol for socket. */
-+ socklen_t ai_addrlen; /* Length of socket address. */
-+ struct sockaddr *ai_addr; /* Socket address for socket. */
-+ char *ai_canonname; /* Canonical name for service location. */
-+ struct addrinfo *ai_next; /* Pointer to next in list. */
-+};
-+#endif
-+
-+/* Possible values for `ai_flags' field in `addrinfo' structure. */
-+#ifndef AI_PASSIVE
-+# define AI_PASSIVE 0x0001 /* Socket address is intended for `bind'. */
-+#endif
-+#ifndef AI_CANONNAME
-+# define AI_CANONNAME 0x0002 /* Request for canonical name. */
-+#endif
-+#ifndef AI_NUMERICSERV
-+# define AI_NUMERICSERV 0x0400 /* Don't use name resolution. */
-+#endif
-+
-+#if 0
-+/* The commented out definitions below are not yet implemented in the
-+ GNULIB getaddrinfo() replacement, so are not yet needed and may, in fact,
-+ cause conflicts on systems with a getaddrinfo() function which does not
-+ define them.
-+
-+ If they are restored, be sure to protect the definitions with #ifndef. */
-+#define AI_NUMERICHOST 0x0004 /* Don't use name resolution. */
-+#define AI_V4MAPPED 0x0008 /* IPv4 mapped addresses are acceptable. */
-+#define AI_ALL 0x0010 /* Return IPv4 mapped and IPv6 addresses. */
-+#define AI_ADDRCONFIG 0x0020 /* Use configuration of this host to choose
-+ returned address type.. */
-+#endif /* 0 */
-+
-+/* Error values for `getaddrinfo' function. */
-+#ifndef EAI_BADFLAGS
-+# define EAI_BADFLAGS -1 /* Invalid value for `ai_flags' field. */
-+# define EAI_NONAME -2 /* NAME or SERVICE is unknown. */
-+# define EAI_AGAIN -3 /* Temporary failure in name resolution. */
-+# define EAI_FAIL -4 /* Non-recoverable failure in name res. */
-+# define EAI_NODATA -5 /* No address associated with NAME. */
-+# define EAI_FAMILY -6 /* `ai_family' not supported. */
-+# define EAI_SOCKTYPE -7 /* `ai_socktype' not supported. */
-+# define EAI_SERVICE -8 /* SERVICE not supported for `ai_socktype'. */
-+# define EAI_MEMORY -10 /* Memory allocation failure. */
-+#endif
-+
-+/* Since EAI_NODATA is deprecated by RFC3493, some systems (at least
-+ FreeBSD, which does define EAI_BADFLAGS) have removed the definition
-+ in favor of EAI_NONAME. */
-+#if !defined EAI_NODATA && defined EAI_NONAME
-+# define EAI_NODATA EAI_NONAME
-+#endif
-+
-+#ifndef EAI_OVERFLOW
-+/* Not defined on mingw32. */
-+# define EAI_OVERFLOW -12 /* Argument buffer overflow. */
-+#endif
-+#ifndef EAI_ADDRFAMILY
-+/* Not defined on mingw32. */
-+# define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */
-+#endif
-+#ifndef EAI_SYSTEM
-+/* Not defined on mingw32. */
-+# define EAI_SYSTEM -11 /* System error returned in `errno'. */
-+#endif
-+
-+#ifdef __USE_GNU
-+# ifndef EAI_INPROGRESS
-+# define EAI_INPROGRESS -100 /* Processing request in progress. */
-+# define EAI_CANCELED -101 /* Request canceled. */
-+# define EAI_NOTCANCELED -102 /* Request not canceled. */
-+# define EAI_ALLDONE -103 /* All requests done. */
-+# define EAI_INTR -104 /* Interrupted by a signal. */
-+# define EAI_IDN_ENCODE -105 /* IDN encoding failed. */
-+# endif
-+#endif
-+
-+#if !HAVE_DECL_GETADDRINFO
-+/* Translate name of a service location and/or a service name to set of
-+ socket addresses.
-+ For more details, see the POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/getaddrinfo.html>. */
-+extern int getaddrinfo (const char *restrict nodename,
-+ const char *restrict servname,
-+ const struct addrinfo *restrict hints,
-+ struct addrinfo **restrict res);
-+#endif
-+
-+#if !HAVE_DECL_FREEADDRINFO
-+/* Free `addrinfo' structure AI including associated storage.
-+ For more details, see the POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/getaddrinfo.html>. */
-+extern void freeaddrinfo (struct addrinfo *ai);
-+#endif
-+
-+#if !HAVE_DECL_GAI_STRERROR
-+/* Convert error return from getaddrinfo() to a string.
-+ For more details, see the POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/gai_strerror.html>. */
-+extern const char *gai_strerror (int ecode);
-+#endif
-+
-+#if !HAVE_DECL_GETNAMEINFO
-+/* Convert socket address to printable node and service names.
-+ For more details, see the POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/getnameinfo.html>. */
-+extern int getnameinfo(const struct sockaddr *restrict sa, socklen_t salen,
-+ char *restrict node, socklen_t nodelen,
-+ char *restrict service, socklen_t servicelen,
-+ int flags);
-+
-+#endif
-+
-+/* Possible flags for getnameinfo. */
-+#ifndef NI_NUMERICHOST
-+# define NI_NUMERICHOST 1
-+#endif
-+#ifndef NI_NUMERICSERV
-+# define NI_NUMERICSERV 2
-+#endif
-+
-+#endif /* GETADDRINFO_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/gettext.h gtk-vnc-0.3.7.gnulib/gnulib/lib/gettext.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/gettext.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/gettext.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,270 @@
-+/* Convenience header for conditional use of GNU <libintl.h>.
-+ Copyright (C) 1995-1998, 2000-2002, 2004-2006 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License along
-+ with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#ifndef _LIBGETTEXT_H
-+#define _LIBGETTEXT_H 1
-+
-+/* NLS can be disabled through the configure --disable-nls option. */
-+#if ENABLE_NLS
-+
-+/* Get declarations of GNU message catalog functions. */
-+# include <libintl.h>
-+
-+/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by
-+ the gettext() and ngettext() macros. This is an alternative to calling
-+ textdomain(), and is useful for libraries. */
-+# ifdef DEFAULT_TEXT_DOMAIN
-+# undef gettext
-+# define gettext(Msgid) \
-+ dgettext (DEFAULT_TEXT_DOMAIN, Msgid)
-+# undef ngettext
-+# define ngettext(Msgid1, Msgid2, N) \
-+ dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N)
-+# endif
-+
-+#else
-+
-+/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
-+ chokes if dcgettext is defined as a macro. So include it now, to make
-+ later inclusions of <locale.h> a NOP. We don't include <libintl.h>
-+ as well because people using "gettext.h" will not include <libintl.h>,
-+ and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
-+ is OK. */
-+#if defined(__sun)
-+# include <locale.h>
-+#endif
-+
-+/* Many header files from the libstdc++ coming with g++ 3.3 or newer include
-+ <libintl.h>, which chokes if dcgettext is defined as a macro. So include
-+ it now, to make later inclusions of <libintl.h> a NOP. */
-+#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
-+# include <cstdlib>
-+# if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H
-+# include <libintl.h>
-+# endif
-+#endif
-+
-+/* Disabled NLS.
-+ The casts to 'const char *' serve the purpose of producing warnings
-+ for invalid uses of the value returned from these functions.
-+ On pre-ANSI systems without 'const', the config.h file is supposed to
-+ contain "#define const". */
-+# define gettext(Msgid) ((const char *) (Msgid))
-+# define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid))
-+# define dcgettext(Domainname, Msgid, Category) \
-+ ((void) (Category), dgettext (Domainname, Msgid))
-+# define ngettext(Msgid1, Msgid2, N) \
-+ ((N) == 1 \
-+ ? ((void) (Msgid2), (const char *) (Msgid1)) \
-+ : ((void) (Msgid1), (const char *) (Msgid2)))
-+# define dngettext(Domainname, Msgid1, Msgid2, N) \
-+ ((void) (Domainname), ngettext (Msgid1, Msgid2, N))
-+# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
-+ ((void) (Category), dngettext(Domainname, Msgid1, Msgid2, N))
-+# define textdomain(Domainname) ((const char *) (Domainname))
-+# define bindtextdomain(Domainname, Dirname) \
-+ ((void) (Domainname), (const char *) (Dirname))
-+# define bind_textdomain_codeset(Domainname, Codeset) \
-+ ((void) (Domainname), (const char *) (Codeset))
-+
-+#endif
-+
-+/* A pseudo function call that serves as a marker for the automated
-+ extraction of messages, but does not call gettext(). The run-time
-+ translation is done at a different place in the code.
-+ The argument, String, should be a literal string. Concatenated strings
-+ and other string expressions won't work.
-+ The macro's expansion is not parenthesized, so that it is suitable as
-+ initializer for static 'char[]' or 'const char[]' variables. */
-+#define gettext_noop(String) String
-+
-+/* The separator between msgctxt and msgid in a .mo file. */
-+#define GETTEXT_CONTEXT_GLUE "\004"
-+
-+/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a
-+ MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be
-+ short and rarely need to change.
-+ The letter 'p' stands for 'particular' or 'special'. */
-+#ifdef DEFAULT_TEXT_DOMAIN
-+# define pgettext(Msgctxt, Msgid) \
-+ pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
-+#else
-+# define pgettext(Msgctxt, Msgid) \
-+ pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
-+#endif
-+#define dpgettext(Domainname, Msgctxt, Msgid) \
-+ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
-+#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \
-+ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category)
-+#ifdef DEFAULT_TEXT_DOMAIN
-+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
-+ npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
-+#else
-+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
-+ npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
-+#endif
-+#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
-+ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
-+#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \
-+ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category)
-+
-+#ifdef __GNUC__
-+__inline
-+#else
-+#ifdef __cplusplus
-+inline
-+#endif
-+#endif
-+static const char *
-+pgettext_aux (const char *domain,
-+ const char *msg_ctxt_id, const char *msgid,
-+ int category)
-+{
-+ const char *translation = dcgettext (domain, msg_ctxt_id, category);
-+ if (translation == msg_ctxt_id)
-+ return msgid;
-+ else
-+ return translation;
-+}
-+
-+#ifdef __GNUC__
-+__inline
-+#else
-+#ifdef __cplusplus
-+inline
-+#endif
-+#endif
-+static const char *
-+npgettext_aux (const char *domain,
-+ const char *msg_ctxt_id, const char *msgid,
-+ const char *msgid_plural, unsigned long int n,
-+ int category)
-+{
-+ const char *translation =
-+ dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
-+ if (translation == msg_ctxt_id || translation == msgid_plural)
-+ return (n == 1 ? msgid : msgid_plural);
-+ else
-+ return translation;
-+}
-+
-+/* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID
-+ can be arbitrary expressions. But for string literals these macros are
-+ less efficient than those above. */
-+
-+#include <string.h>
-+
-+#define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \
-+ (((__GNUC__ >= 3 || __GNUG__ >= 2) && !__STRICT_ANSI__) \
-+ /* || __STDC_VERSION__ >= 199901L */ )
-+
-+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
-+#include <stdlib.h>
-+#endif
-+
-+#define pgettext_expr(Msgctxt, Msgid) \
-+ dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES)
-+#define dpgettext_expr(Domainname, Msgctxt, Msgid) \
-+ dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES)
-+
-+#ifdef __GNUC__
-+__inline
-+#else
-+#ifdef __cplusplus
-+inline
-+#endif
-+#endif
-+static const char *
-+dcpgettext_expr (const char *domain,
-+ const char *msgctxt, const char *msgid,
-+ int category)
-+{
-+ size_t msgctxt_len = strlen (msgctxt) + 1;
-+ size_t msgid_len = strlen (msgid) + 1;
-+ const char *translation;
-+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
-+ char msg_ctxt_id[msgctxt_len + msgid_len];
-+#else
-+ char buf[1024];
-+ char *msg_ctxt_id =
-+ (msgctxt_len + msgid_len <= sizeof (buf)
-+ ? buf
-+ : (char *) malloc (msgctxt_len + msgid_len));
-+ if (msg_ctxt_id != NULL)
-+#endif
-+ {
-+ memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
-+ msg_ctxt_id[msgctxt_len - 1] = '\004';
-+ memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
-+ translation = dcgettext (domain, msg_ctxt_id, category);
-+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
-+ if (msg_ctxt_id != buf)
-+ free (msg_ctxt_id);
-+#endif
-+ if (translation != msg_ctxt_id)
-+ return translation;
-+ }
-+ return msgid;
-+}
-+
-+#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \
-+ dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
-+#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
-+ dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
-+
-+#ifdef __GNUC__
-+__inline
-+#else
-+#ifdef __cplusplus
-+inline
-+#endif
-+#endif
-+static const char *
-+dcnpgettext_expr (const char *domain,
-+ const char *msgctxt, const char *msgid,
-+ const char *msgid_plural, unsigned long int n,
-+ int category)
-+{
-+ size_t msgctxt_len = strlen (msgctxt) + 1;
-+ size_t msgid_len = strlen (msgid) + 1;
-+ const char *translation;
-+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
-+ char msg_ctxt_id[msgctxt_len + msgid_len];
-+#else
-+ char buf[1024];
-+ char *msg_ctxt_id =
-+ (msgctxt_len + msgid_len <= sizeof (buf)
-+ ? buf
-+ : (char *) malloc (msgctxt_len + msgid_len));
-+ if (msg_ctxt_id != NULL)
-+#endif
-+ {
-+ memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
-+ msg_ctxt_id[msgctxt_len - 1] = '\004';
-+ memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
-+ translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
-+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
-+ if (msg_ctxt_id != buf)
-+ free (msg_ctxt_id);
-+#endif
-+ if (!(translation == msg_ctxt_id || translation == msgid_plural))
-+ return translation;
-+ }
-+ return (n == 1 ? msgid : msgid_plural);
-+}
-+
-+#endif /* _LIBGETTEXT_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/inet_ntop.c gtk-vnc-0.3.7.gnulib/gnulib/lib/inet_ntop.c
---- gtk-vnc-0.3.7.dan3/gnulib/lib/inet_ntop.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/inet_ntop.c 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,238 @@
-+/* inet_ntop.c -- convert IPv4 and IPv6 addresses from binary to text form
-+
-+ Copyright (C) 2005, 2006, 2008 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+/*
-+ * Copyright (c) 1996-1999 by Internet Software Consortium.
-+ *
-+ * Permission to use, copy, modify, and distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
-+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
-+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
-+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-+ * SOFTWARE.
-+ */
-+
-+#include <config.h>
-+
-+/* Specification. */
-+#include <arpa/inet.h>
-+
-+#include <stdio.h>
-+#include <string.h>
-+#include <errno.h>
-+
-+#ifndef EAFNOSUPPORT
-+# define EAFNOSUPPORT EINVAL
-+#endif
-+
-+#define NS_IN6ADDRSZ 16
-+#define NS_INT16SZ 2
-+
-+/*
-+ * WARNING: Don't even consider trying to compile this on a system where
-+ * sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX.
-+ */
-+typedef int verify_int_size[2 * sizeof (int) - 7];
-+
-+static const char *inet_ntop4 (const unsigned char *src, char *dst, socklen_t size);
-+#if HAVE_IPV6
-+static const char *inet_ntop6 (const unsigned char *src, char *dst, socklen_t size);
-+#endif
-+
-+
-+/* char *
-+ * inet_ntop(af, src, dst, size)
-+ * convert a network format address to presentation format.
-+ * return:
-+ * pointer to presentation format address (`dst'), or NULL (see errno).
-+ * author:
-+ * Paul Vixie, 1996.
-+ */
-+const char *
-+inet_ntop (int af, const void *restrict src,
-+ char *restrict dst, socklen_t cnt)
-+{
-+ switch (af)
-+ {
-+#if HAVE_IPV4
-+ case AF_INET:
-+ return (inet_ntop4 (src, dst, cnt));
-+#endif
-+
-+#if HAVE_IPV6
-+ case AF_INET6:
-+ return (inet_ntop6 (src, dst, cnt));
-+#endif
-+
-+ default:
-+ errno = EAFNOSUPPORT;
-+ return (NULL);
-+ }
-+ /* NOTREACHED */
-+}
-+
-+/* const char *
-+ * inet_ntop4(src, dst, size)
-+ * format an IPv4 address
-+ * return:
-+ * `dst' (as a const)
-+ * notes:
-+ * (1) uses no statics
-+ * (2) takes a u_char* not an in_addr as input
-+ * author:
-+ * Paul Vixie, 1996.
-+ */
-+static const char *
-+inet_ntop4 (const unsigned char *src, char *dst, socklen_t size)
-+{
-+ char tmp[sizeof "255.255.255.255"];
-+ int len;
-+
-+ len = sprintf (tmp, "%u.%u.%u.%u", src[0], src[1], src[2], src[3]);
-+ if (len < 0)
-+ return NULL;
-+
-+ if (len > size)
-+ {
-+ errno = ENOSPC;
-+ return NULL;
-+ }
-+
-+ return strcpy (dst, tmp);
-+}
-+
-+#if HAVE_IPV6
-+
-+/* const char *
-+ * inet_ntop6(src, dst, size)
-+ * convert IPv6 binary address into presentation (printable) format
-+ * author:
-+ * Paul Vixie, 1996.
-+ */
-+static const char *
-+inet_ntop6 (const unsigned char *src, char *dst, socklen_t size)
-+{
-+ /*
-+ * Note that int32_t and int16_t need only be "at least" large enough
-+ * to contain a value of the specified size. On some systems, like
-+ * Crays, there is no such thing as an integer variable with 16 bits.
-+ * Keep this in mind if you think this function should have been coded
-+ * to use pointer overlays. All the world's not a VAX.
-+ */
-+ char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"], *tp;
-+ struct
-+ {
-+ int base, len;
-+ } best, cur;
-+ unsigned int words[NS_IN6ADDRSZ / NS_INT16SZ];
-+ int i;
-+
-+ /*
-+ * Preprocess:
-+ * Copy the input (bytewise) array into a wordwise array.
-+ * Find the longest run of 0x00's in src[] for :: shorthanding.
-+ */
-+ memset (words, '\0', sizeof words);
-+ for (i = 0; i < NS_IN6ADDRSZ; i += 2)
-+ words[i / 2] = (src[i] << 8) | src[i + 1];
-+ best.base = -1;
-+ cur.base = -1;
-+ for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++)
-+ {
-+ if (words[i] == 0)
-+ {
-+ if (cur.base == -1)
-+ cur.base = i, cur.len = 1;
-+ else
-+ cur.len++;
-+ }
-+ else
-+ {
-+ if (cur.base != -1)
-+ {
-+ if (best.base == -1 || cur.len > best.len)
-+ best = cur;
-+ cur.base = -1;
-+ }
-+ }
-+ }
-+ if (cur.base != -1)
-+ {
-+ if (best.base == -1 || cur.len > best.len)
-+ best = cur;
-+ }
-+ if (best.base != -1 && best.len < 2)
-+ best.base = -1;
-+
-+ /*
-+ * Format the result.
-+ */
-+ tp = tmp;
-+ for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++)
-+ {
-+ /* Are we inside the best run of 0x00's? */
-+ if (best.base != -1 && i >= best.base && i < (best.base + best.len))
-+ {
-+ if (i == best.base)
-+ *tp++ = ':';
-+ continue;
-+ }
-+ /* Are we following an initial run of 0x00s or any real hex? */
-+ if (i != 0)
-+ *tp++ = ':';
-+ /* Is this address an encapsulated IPv4? */
-+ if (i == 6 && best.base == 0 &&
-+ (best.len == 6 || (best.len == 5 && words[5] == 0xffff)))
-+ {
-+ if (!inet_ntop4 (src + 12, tp, sizeof tmp - (tp - tmp)))
-+ return (NULL);
-+ tp += strlen (tp);
-+ break;
-+ }
-+ {
-+ int len = sprintf (tp, "%x", words[i]);
-+ if (len < 0)
-+ return NULL;
-+ tp += len;
-+ }
-+ }
-+ /* Was it a trailing run of 0x00's? */
-+ if (best.base != -1 && (best.base + best.len) ==
-+ (NS_IN6ADDRSZ / NS_INT16SZ))
-+ *tp++ = ':';
-+ *tp++ = '\0';
-+
-+ /*
-+ * Check for overflow, copy, and we're done.
-+ */
-+ if ((socklen_t) (tp - tmp) > size)
-+ {
-+ errno = ENOSPC;
-+ return NULL;
-+ }
-+
-+ return strcpy (dst, tmp);
-+}
-+
-+#endif
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/Makefile.am gtk-vnc-0.3.7.gnulib/gnulib/lib/Makefile.am
---- gtk-vnc-0.3.7.dan3/gnulib/lib/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/Makefile.am 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,605 @@
-+## DO NOT EDIT! GENERATED AUTOMATICALLY!
-+## Process this file with automake to produce Makefile.in.
-+# Copyright (C) 2002-2008 Free Software Foundation, Inc.
-+#
-+# This file is free software, distributed under the terms of the GNU
-+# General Public License. As a special exception to the GNU General
-+# Public License, this file may be distributed as part of a program
-+# that contains a configuration script generated by Autoconf, under
-+# the same distribution terms as the rest of that program.
-+#
-+# Generated by gnulib-tool.
-+# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --doc-base=doc --tests-base=gnulib/tests --aux-dir=. --with-tests --lgpl=2 --libtool --macro-prefix=gl connect getaddrinfo malloc recv send socket vc-list-files
-+
-+AUTOMAKE_OPTIONS = 1.5 gnits
-+
-+SUBDIRS =
-+noinst_HEADERS =
-+noinst_LIBRARIES =
-+noinst_LTLIBRARIES =
-+EXTRA_DIST =
-+BUILT_SOURCES =
-+SUFFIXES =
-+MOSTLYCLEANFILES = core *.stackdump
-+MOSTLYCLEANDIRS =
-+CLEANFILES =
-+DISTCLEANFILES =
-+MAINTAINERCLEANFILES =
-+
-+AM_CPPFLAGS =
-+
-+noinst_LTLIBRARIES += libgnu.la
-+
-+libgnu_la_SOURCES =
-+libgnu_la_LIBADD = $(gl_LTLIBOBJS)
-+libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS)
-+EXTRA_libgnu_la_SOURCES =
-+libgnu_la_LDFLAGS = $(AM_LDFLAGS)
-+
-+## begin gnulib module alloca-opt
-+
-+BUILT_SOURCES += $(ALLOCA_H)
-+
-+# We need the following in order to create <alloca.h> when the system
-+# doesn't have one that works with the given compiler.
-+alloca.h: alloca.in.h
-+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-+ cat $(srcdir)/alloca.in.h; \
-+ } > $@-t
-+ mv -f $@-t $@
-+MOSTLYCLEANFILES += alloca.h alloca.h-t
-+
-+EXTRA_DIST += alloca.in.h
-+
-+## end gnulib module alloca-opt
-+
-+## begin gnulib module arpa_inet
-+
-+BUILT_SOURCES += $(ARPA_INET_H)
-+
-+# We need the following in order to create <arpa/inet.h> when the system
-+# doesn't have one.
-+arpa/inet.h:
-+ @MKDIR_P@ arpa
-+ rm -f $@-t $@
-+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-+ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-+ -e 's|@''NEXT_ARPA_INET_H''@|$(NEXT_ARPA_INET_H)|g' \
-+ -e 's|@''HAVE_ARPA_INET_H''@|$(HAVE_ARPA_INET_H)|g' \
-+ -e 's|@''GNULIB_INET_NTOP''@|$(GNULIB_INET_NTOP)|g' \
-+ -e 's|@''GNULIB_INET_PTON''@|$(GNULIB_INET_PTON)|g' \
-+ -e 's|@''HAVE_DECL_INET_NTOP''@|$(HAVE_DECL_INET_NTOP)|g' \
-+ -e 's|@''HAVE_DECL_INET_PTON''@|$(HAVE_DECL_INET_PTON)|g' \
-+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
-+ < $(srcdir)/arpa_inet.in.h; \
-+ } > $@-t
-+ mv $@-t $@
-+MOSTLYCLEANFILES += arpa/inet.h arpa/inet.h-t
-+MOSTLYCLEANDIRS += arpa
-+
-+EXTRA_DIST += arpa_inet.in.h
-+
-+## end gnulib module arpa_inet
-+
-+## begin gnulib module connect
-+
-+
-+EXTRA_DIST += winsock.c
-+
-+EXTRA_libgnu_la_SOURCES += winsock.c
-+
-+## end gnulib module connect
-+
-+## begin gnulib module errno
-+
-+BUILT_SOURCES += $(ERRNO_H)
-+
-+# We need the following in order to create <errno.h> when the system
-+# doesn't have one that is POSIX compliant.
-+errno.h: errno.in.h
-+ rm -f $@-t $@
-+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-+ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-+ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
-+ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \
-+ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \
-+ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \
-+ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \
-+ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \
-+ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \
-+ < $(srcdir)/errno.in.h; \
-+ } > $@-t
-+ mv $@-t $@
-+MOSTLYCLEANFILES += errno.h errno.h-t
-+
-+EXTRA_DIST += errno.in.h
-+
-+## end gnulib module errno
-+
-+## begin gnulib module float
-+
-+BUILT_SOURCES += $(FLOAT_H)
-+
-+# We need the following in order to create <float.h> when the system
-+# doesn't have one that works with the given compiler.
-+float.h: float.in.h
-+ rm -f $@-t $@
-+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-+ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-+ -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
-+ < $(srcdir)/float.in.h; \
-+ } > $@-t
-+ mv $@-t $@
-+MOSTLYCLEANFILES += float.h float.h-t
-+
-+EXTRA_DIST += float.in.h
-+
-+## end gnulib module float
-+
-+## begin gnulib module getaddrinfo
-+
-+
-+EXTRA_DIST += gai_strerror.c getaddrinfo.c getaddrinfo.h
-+
-+EXTRA_libgnu_la_SOURCES += gai_strerror.c getaddrinfo.c
-+
-+## end gnulib module getaddrinfo
-+
-+## begin gnulib module gettext-h
-+
-+libgnu_la_SOURCES += gettext.h
-+
-+## end gnulib module gettext-h
-+
-+## begin gnulib module inet_ntop
-+
-+
-+EXTRA_DIST += inet_ntop.c
-+
-+EXTRA_libgnu_la_SOURCES += inet_ntop.c
-+
-+## end gnulib module inet_ntop
-+
-+## begin gnulib module link-warning
-+
-+LINK_WARNING_H=$(top_srcdir)/./link-warning.h
-+
-+EXTRA_DIST += $(top_srcdir)/./link-warning.h
-+
-+## end gnulib module link-warning
-+
-+## begin gnulib module malloc
-+
-+
-+EXTRA_DIST += malloc.c
-+
-+EXTRA_libgnu_la_SOURCES += malloc.c
-+
-+## end gnulib module malloc
-+
-+## begin gnulib module malloc-posix
-+
-+
-+EXTRA_DIST += malloc.c
-+
-+EXTRA_libgnu_la_SOURCES += malloc.c
-+
-+## end gnulib module malloc-posix
-+
-+## begin gnulib module netinet_in
-+
-+BUILT_SOURCES += $(NETINET_IN_H)
-+
-+# We need the following in order to create <netinet/in.h> when the system
-+# doesn't have one.
-+netinet/in.h: netinet_in.in.h
-+ @MKDIR_P@ netinet
-+ rm -f $@-t $@
-+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-+ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-+ -e 's|@''NEXT_NETINET_IN_H''@|$(NEXT_NETINET_IN_H)|g' \
-+ -e 's|@''HAVE_NETINET_IN_H''@|$(HAVE_NETINET_IN_H)|g' \
-+ < $(srcdir)/netinet_in.in.h; \
-+ } > $@-t
-+ mv $@-t $@
-+MOSTLYCLEANFILES += netinet/in.h netinet/in.h-t
-+MOSTLYCLEANDIRS += netinet
-+
-+EXTRA_DIST += netinet_in.in.h
-+
-+## end gnulib module netinet_in
-+
-+## begin gnulib module recv
-+
-+
-+EXTRA_DIST += winsock.c
-+
-+EXTRA_libgnu_la_SOURCES += winsock.c
-+
-+## end gnulib module recv
-+
-+## begin gnulib module send
-+
-+
-+EXTRA_DIST += winsock.c
-+
-+EXTRA_libgnu_la_SOURCES += winsock.c
-+
-+## end gnulib module send
-+
-+## begin gnulib module size_max
-+
-+libgnu_la_SOURCES += size_max.h
-+
-+## end gnulib module size_max
-+
-+## begin gnulib module snprintf
-+
-+
-+EXTRA_DIST += snprintf.c
-+
-+EXTRA_libgnu_la_SOURCES += snprintf.c
-+
-+## end gnulib module snprintf
-+
-+## begin gnulib module socket
-+
-+
-+EXTRA_DIST += winsock.c
-+
-+EXTRA_libgnu_la_SOURCES += winsock.c
-+
-+## end gnulib module socket
-+
-+## begin gnulib module stdbool
-+
-+BUILT_SOURCES += $(STDBOOL_H)
-+
-+# We need the following in order to create <stdbool.h> when the system
-+# doesn't have one that works.
-+stdbool.h: stdbool.in.h
-+ rm -f $@-t $@
-+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-+ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
-+ } > $@-t
-+ mv $@-t $@
-+MOSTLYCLEANFILES += stdbool.h stdbool.h-t
-+
-+EXTRA_DIST += stdbool.in.h
-+
-+## end gnulib module stdbool
-+
-+## begin gnulib module stdint
-+
-+BUILT_SOURCES += $(STDINT_H)
-+
-+# We need the following in order to create <stdint.h> when the system
-+# doesn't have one that works with the given compiler.
-+stdint.h: stdint.in.h
-+ rm -f $@-t $@
-+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-+ sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
-+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-+ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
-+ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
-+ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
-+ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
-+ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
-+ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
-+ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
-+ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
-+ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
-+ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
-+ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
-+ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
-+ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
-+ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
-+ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
-+ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
-+ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
-+ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
-+ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
-+ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
-+ < $(srcdir)/stdint.in.h; \
-+ } > $@-t
-+ mv $@-t $@
-+MOSTLYCLEANFILES += stdint.h stdint.h-t
-+
-+EXTRA_DIST += stdint.in.h
-+
-+## end gnulib module stdint
-+
-+## begin gnulib module stdio
-+
-+BUILT_SOURCES += stdio.h
-+
-+# We need the following in order to create <stdio.h> when the system
-+# doesn't have one that works with the given compiler.
-+stdio.h: stdio.in.h
-+ rm -f $@-t $@
-+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-+ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-+ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \
-+ -e 's|@''GNULIB_FPRINTF''@|$(GNULIB_FPRINTF)|g' \
-+ -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \
-+ -e 's|@''GNULIB_PRINTF''@|$(GNULIB_PRINTF)|g' \
-+ -e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \
-+ -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \
-+ -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \
-+ -e 's|@''GNULIB_VFPRINTF''@|$(GNULIB_VFPRINTF)|g' \
-+ -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \
-+ -e 's|@''GNULIB_VPRINTF''@|$(GNULIB_VPRINTF)|g' \
-+ -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \
-+ -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \
-+ -e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \
-+ -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \
-+ -e 's|@''GNULIB_OBSTACK_PRINTF''@|$(GNULIB_OBSTACK_PRINTF)|g' \
-+ -e 's|@''GNULIB_OBSTACK_PRINTF_POSIX''@|$(GNULIB_OBSTACK_PRINTF_POSIX)|g' \
-+ -e 's|@''GNULIB_FOPEN''@|$(GNULIB_FOPEN)|g' \
-+ -e 's|@''GNULIB_FREOPEN''@|$(GNULIB_FREOPEN)|g' \
-+ -e 's|@''GNULIB_FSEEK''@|$(GNULIB_FSEEK)|g' \
-+ -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \
-+ -e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \
-+ -e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \
-+ -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \
-+ -e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \
-+ -e 's|@''GNULIB_PUTC''@|$(GNULIB_PUTC)|g' \
-+ -e 's|@''GNULIB_PUTCHAR''@|$(GNULIB_PUTCHAR)|g' \
-+ -e 's|@''GNULIB_FPUTS''@|$(GNULIB_FPUTS)|g' \
-+ -e 's|@''GNULIB_PUTS''@|$(GNULIB_PUTS)|g' \
-+ -e 's|@''GNULIB_FWRITE''@|$(GNULIB_FWRITE)|g' \
-+ -e 's|@''GNULIB_GETDELIM''@|$(GNULIB_GETDELIM)|g' \
-+ -e 's|@''GNULIB_GETLINE''@|$(GNULIB_GETLINE)|g' \
-+ -e 's|@''GNULIB_PERROR''@|$(GNULIB_PERROR)|g' \
-+ -e 's|@''GNULIB_STDIO_H_SIGPIPE''@|$(GNULIB_STDIO_H_SIGPIPE)|g' \
-+ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \
-+ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \
-+ -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \
-+ -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \
-+ -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \
-+ -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \
-+ -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \
-+ -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \
-+ -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \
-+ -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \
-+ -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \
-+ -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \
-+ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \
-+ -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \
-+ -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \
-+ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \
-+ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \
-+ -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \
-+ -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \
-+ -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \
-+ -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \
-+ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \
-+ -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \
-+ -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \
-+ -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \
-+ -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \
-+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
-+ < $(srcdir)/stdio.in.h; \
-+ } > $@-t
-+ mv $@-t $@
-+MOSTLYCLEANFILES += stdio.h stdio.h-t
-+
-+EXTRA_DIST += stdio-write.c stdio.in.h
-+
-+EXTRA_libgnu_la_SOURCES += stdio-write.c
-+
-+## end gnulib module stdio
-+
-+## begin gnulib module stdlib
-+
-+BUILT_SOURCES += stdlib.h
-+
-+# We need the following in order to create <stdlib.h> when the system
-+# doesn't have one that works with the given compiler.
-+stdlib.h: stdlib.in.h
-+ rm -f $@-t $@
-+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-+ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-+ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
-+ -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \
-+ -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \
-+ -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \
-+ -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
-+ -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
-+ -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
-+ -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \
-+ -e 's|@''GNULIB_RPMATCH''@|$(GNULIB_RPMATCH)|g' \
-+ -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \
-+ -e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \
-+ -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \
-+ -e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \
-+ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
-+ -e 's|@''HAVE_MALLOC_POSIX''@|$(HAVE_MALLOC_POSIX)|g' \
-+ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
-+ -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \
-+ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
-+ -e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \
-+ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
-+ -e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \
-+ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
-+ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
-+ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \
-+ -e 's|@''VOID_UNSETENV''@|$(VOID_UNSETENV)|g' \
-+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
-+ < $(srcdir)/stdlib.in.h; \
-+ } > $@-t
-+ mv $@-t $@
-+MOSTLYCLEANFILES += stdlib.h stdlib.h-t
-+
-+EXTRA_DIST += stdlib.in.h
-+
-+## end gnulib module stdlib
-+
-+## begin gnulib module sys_socket
-+
-+BUILT_SOURCES += $(SYS_SOCKET_H)
-+
-+# We need the following in order to create <sys/socket.h> when the system
-+# doesn't have one that works with the given compiler.
-+sys/socket.h: sys_socket.in.h
-+ @MKDIR_P@ sys
-+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-+ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-+ -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \
-+ -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \
-+ -e 's|@''GNULIB_SOCKET''@|$(GNULIB_SOCKET)|g' \
-+ -e 's|@''GNULIB_CONNECT''@|$(GNULIB_CONNECT)|g' \
-+ -e 's|@''GNULIB_ACCEPT''@|$(GNULIB_ACCEPT)|g' \
-+ -e 's|@''GNULIB_BIND''@|$(GNULIB_BIND)|g' \
-+ -e 's|@''GNULIB_GETPEERNAME''@|$(GNULIB_GETPEERNAME)|g' \
-+ -e 's|@''GNULIB_GETSOCKNAME''@|$(GNULIB_GETSOCKNAME)|g' \
-+ -e 's|@''GNULIB_GETSOCKOPT''@|$(GNULIB_GETSOCKOPT)|g' \
-+ -e 's|@''GNULIB_LISTEN''@|$(GNULIB_LISTEN)|g' \
-+ -e 's|@''GNULIB_RECV''@|$(GNULIB_RECV)|g' \
-+ -e 's|@''GNULIB_SEND''@|$()GNULIB_SEND|g' \
-+ -e 's|@''GNULIB_RECVFROM''@|$(GNULIB_RECVFROM)|g' \
-+ -e 's|@''GNULIB_SENDTO''@|$(GNULIB_SENDTO)|g' \
-+ -e 's|@''GNULIB_SETSOCKOPT''@|$(GNULIB_SETSOCKOPT)|g' \
-+ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
-+ -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
-+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
-+ < $(srcdir)/sys_socket.in.h; \
-+ } > $@-t
-+ mv -f $@-t $@
-+MOSTLYCLEANFILES += sys/socket.h sys/socket.h-t
-+MOSTLYCLEANDIRS += sys
-+
-+EXTRA_DIST += sys_socket.in.h winsock.c
-+
-+EXTRA_libgnu_la_SOURCES += winsock.c
-+
-+## end gnulib module sys_socket
-+
-+## begin gnulib module unistd
-+
-+BUILT_SOURCES += unistd.h
-+
-+# We need the following in order to create an empty placeholder for
-+# <unistd.h> when the system doesn't have one.
-+unistd.h: unistd.in.h
-+ rm -f $@-t $@
-+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-+ sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
-+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-+ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
-+ -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
-+ -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
-+ -e 's|@''GNULIB_ENVIRON''@|$(GNULIB_ENVIRON)|g' \
-+ -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
-+ -e 's|@''GNULIB_FSYNC''@|$(GNULIB_FSYNC)|g' \
-+ -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
-+ -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
-+ -e 's|@''GNULIB_GETDTABLESIZE''@|$(GNULIB_GETDTABLESIZE)|g' \
-+ -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
-+ -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \
-+ -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \
-+ -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
-+ -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
-+ -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
-+ -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \
-+ -e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \
-+ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
-+ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \
-+ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
-+ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \
-+ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
-+ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
-+ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
-+ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
-+ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
-+ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
-+ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
-+ -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
-+ -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
-+ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
-+ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
-+ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
-+ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
-+ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \
-+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
-+ < $(srcdir)/unistd.in.h; \
-+ } > $@-t
-+ mv $@-t $@
-+MOSTLYCLEANFILES += unistd.h unistd.h-t
-+
-+EXTRA_DIST += unistd.in.h
-+
-+## end gnulib module unistd
-+
-+## begin gnulib module vasnprintf
-+
-+
-+EXTRA_DIST += asnprintf.c float+.h printf-args.c printf-args.h printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h
-+
-+EXTRA_libgnu_la_SOURCES += asnprintf.c printf-args.c printf-parse.c vasnprintf.c
-+
-+## end gnulib module vasnprintf
-+
-+## begin gnulib module vc-list-files
-+
-+
-+EXTRA_DIST += $(top_srcdir)/./vc-list-files
-+
-+## end gnulib module vc-list-files
-+
-+## begin gnulib module wchar
-+
-+BUILT_SOURCES += $(WCHAR_H)
-+
-+# We need the following in order to create <wchar.h> when the system
-+# version does not work standalone.
-+wchar.h: wchar.in.h
-+ rm -f $@-t $@
-+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-+ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-+ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
-+ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
-+ -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
-+ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
-+ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
-+ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
-+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
-+ < $(srcdir)/wchar.in.h; \
-+ } > $@-t
-+ mv $@-t $@
-+MOSTLYCLEANFILES += wchar.h wchar.h-t
-+
-+EXTRA_DIST += wchar.in.h
-+
-+## end gnulib module wchar
-+
-+## begin gnulib module xsize
-+
-+libgnu_la_SOURCES += xsize.h
-+
-+## end gnulib module xsize
-+
-+## begin gnulib module dummy
-+
-+libgnu_la_SOURCES += dummy.c
-+
-+## end gnulib module dummy
-+
-+
-+mostlyclean-local: mostlyclean-generic
-+ @for dir in '' $(MOSTLYCLEANDIRS); do \
-+ if test -n "$$dir" && test -d $$dir; then \
-+ echo "rmdir $$dir"; rmdir $$dir; \
-+ fi; \
-+ done; \
-+ :
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/malloc.c gtk-vnc-0.3.7.gnulib/gnulib/lib/malloc.c
---- gtk-vnc-0.3.7.dan3/gnulib/lib/malloc.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/malloc.c 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,57 @@
-+/* malloc() function that is glibc compatible.
-+
-+ Copyright (C) 1997, 1998, 2006, 2007 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+/* written by Jim Meyering and Bruno Haible */
-+
-+#include <config.h>
-+/* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h. */
-+#ifdef malloc
-+# define NEED_MALLOC_GNU
-+# undef malloc
-+#endif
-+
-+/* Specification. */
-+#include <stdlib.h>
-+
-+#include <errno.h>
-+
-+/* Call the system's malloc below. */
-+#undef malloc
-+
-+/* Allocate an N-byte block of memory from the heap.
-+ If N is zero, allocate a 1-byte block. */
-+
-+void *
-+rpl_malloc (size_t n)
-+{
-+ void *result;
-+
-+#ifdef NEED_MALLOC_GNU
-+ if (n == 0)
-+ n = 1;
-+#endif
-+
-+ result = malloc (n);
-+
-+#if !HAVE_MALLOC_POSIX
-+ if (result == NULL)
-+ errno = ENOMEM;
-+#endif
-+
-+ return result;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/netinet_in.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/netinet_in.in.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/netinet_in.in.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/netinet_in.in.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,45 @@
-+/* Substitute for <netinet/in.h>.
-+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#ifndef _GL_NETINET_IN_H
-+
-+#if @HAVE_NETINET_IN_H@
-+
-+@PRAGMA_SYSTEM_HEADER@
-+
-+/* On many platforms, <netinet/in.h> assumes prior inclusion of
-+ <sys/types.h>. */
-+# include <sys/types.h>
-+
-+/* The include_next requires a split double-inclusion guard. */
-+# @INCLUDE_NEXT@ @NEXT_NETINET_IN_H@
-+
-+#endif
-+
-+#ifndef _GL_NETINET_IN_H
-+#define _GL_NETINET_IN_H
-+
-+#if !@HAVE_NETINET_IN_H@
-+
-+/* A platform that lacks <netinet/in.h>. */
-+
-+# include <sys/socket.h>
-+
-+#endif
-+
-+#endif /* _GL_NETINET_IN_H */
-+#endif /* _GL_NETINET_IN_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/printf-args.c gtk-vnc-0.3.7.gnulib/gnulib/lib/printf-args.c
---- gtk-vnc-0.3.7.dan3/gnulib/lib/printf-args.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/printf-args.c 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,187 @@
-+/* Decomposed printf argument list.
-+ Copyright (C) 1999, 2002-2003, 2005-2007 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License along
-+ with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+/* This file can be parametrized with the following macros:
-+ ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions.
-+ PRINTF_FETCHARGS Name of the function to be defined.
-+ STATIC Set to 'static' to declare the function static. */
-+
-+#ifndef PRINTF_FETCHARGS
-+# include <config.h>
-+#endif
-+
-+/* Specification. */
-+#ifndef PRINTF_FETCHARGS
-+# include "printf-args.h"
-+#endif
-+
-+#ifdef STATIC
-+STATIC
-+#endif
-+int
-+PRINTF_FETCHARGS (va_list args, arguments *a)
-+{
-+ size_t i;
-+ argument *ap;
-+
-+ for (i = 0, ap = &a->arg[0]; i < a->count; i++, ap++)
-+ switch (ap->type)
-+ {
-+ case TYPE_SCHAR:
-+ ap->a.a_schar = va_arg (args, /*signed char*/ int);
-+ break;
-+ case TYPE_UCHAR:
-+ ap->a.a_uchar = va_arg (args, /*unsigned char*/ int);
-+ break;
-+ case TYPE_SHORT:
-+ ap->a.a_short = va_arg (args, /*short*/ int);
-+ break;
-+ case TYPE_USHORT:
-+ ap->a.a_ushort = va_arg (args, /*unsigned short*/ int);
-+ break;
-+ case TYPE_INT:
-+ ap->a.a_int = va_arg (args, int);
-+ break;
-+ case TYPE_UINT:
-+ ap->a.a_uint = va_arg (args, unsigned int);
-+ break;
-+ case TYPE_LONGINT:
-+ ap->a.a_longint = va_arg (args, long int);
-+ break;
-+ case TYPE_ULONGINT:
-+ ap->a.a_ulongint = va_arg (args, unsigned long int);
-+ break;
-+#if HAVE_LONG_LONG_INT
-+ case TYPE_LONGLONGINT:
-+ ap->a.a_longlongint = va_arg (args, long long int);
-+ break;
-+ case TYPE_ULONGLONGINT:
-+ ap->a.a_ulonglongint = va_arg (args, unsigned long long int);
-+ break;
-+#endif
-+ case TYPE_DOUBLE:
-+ ap->a.a_double = va_arg (args, double);
-+ break;
-+ case TYPE_LONGDOUBLE:
-+ ap->a.a_longdouble = va_arg (args, long double);
-+ break;
-+ case TYPE_CHAR:
-+ ap->a.a_char = va_arg (args, int);
-+ break;
-+#if HAVE_WINT_T
-+ case TYPE_WIDE_CHAR:
-+ /* Although ISO C 99 7.24.1.(2) says that wint_t is "unchanged by
-+ default argument promotions", this is not the case in mingw32,
-+ where wint_t is 'unsigned short'. */
-+ ap->a.a_wide_char =
-+ (sizeof (wint_t) < sizeof (int)
-+ ? va_arg (args, int)
-+ : va_arg (args, wint_t));
-+ break;
-+#endif
-+ case TYPE_STRING:
-+ ap->a.a_string = va_arg (args, const char *);
-+ /* A null pointer is an invalid argument for "%s", but in practice
-+ it occurs quite frequently in printf statements that produce
-+ debug output. Use a fallback in this case. */
-+ if (ap->a.a_string == NULL)
-+ ap->a.a_string = "(NULL)";
-+ break;
-+#if HAVE_WCHAR_T
-+ case TYPE_WIDE_STRING:
-+ ap->a.a_wide_string = va_arg (args, const wchar_t *);
-+ /* A null pointer is an invalid argument for "%ls", but in practice
-+ it occurs quite frequently in printf statements that produce
-+ debug output. Use a fallback in this case. */
-+ if (ap->a.a_wide_string == NULL)
-+ {
-+ static const wchar_t wide_null_string[] =
-+ {
-+ (wchar_t)'(',
-+ (wchar_t)'N', (wchar_t)'U', (wchar_t)'L', (wchar_t)'L',
-+ (wchar_t)')',
-+ (wchar_t)0
-+ };
-+ ap->a.a_wide_string = wide_null_string;
-+ }
-+ break;
-+#endif
-+ case TYPE_POINTER:
-+ ap->a.a_pointer = va_arg (args, void *);
-+ break;
-+ case TYPE_COUNT_SCHAR_POINTER:
-+ ap->a.a_count_schar_pointer = va_arg (args, signed char *);
-+ break;
-+ case TYPE_COUNT_SHORT_POINTER:
-+ ap->a.a_count_short_pointer = va_arg (args, short *);
-+ break;
-+ case TYPE_COUNT_INT_POINTER:
-+ ap->a.a_count_int_pointer = va_arg (args, int *);
-+ break;
-+ case TYPE_COUNT_LONGINT_POINTER:
-+ ap->a.a_count_longint_pointer = va_arg (args, long int *);
-+ break;
-+#if HAVE_LONG_LONG_INT
-+ case TYPE_COUNT_LONGLONGINT_POINTER:
-+ ap->a.a_count_longlongint_pointer = va_arg (args, long long int *);
-+ break;
-+#endif
-+#if ENABLE_UNISTDIO
-+ /* The unistdio extensions. */
-+ case TYPE_U8_STRING:
-+ ap->a.a_u8_string = va_arg (args, const uint8_t *);
-+ /* A null pointer is an invalid argument for "%U", but in practice
-+ it occurs quite frequently in printf statements that produce
-+ debug output. Use a fallback in this case. */
-+ if (ap->a.a_u8_string == NULL)
-+ {
-+ static const uint8_t u8_null_string[] =
-+ { '(', 'N', 'U', 'L', 'L', ')', 0 };
-+ ap->a.a_u8_string = u8_null_string;
-+ }
-+ break;
-+ case TYPE_U16_STRING:
-+ ap->a.a_u16_string = va_arg (args, const uint16_t *);
-+ /* A null pointer is an invalid argument for "%lU", but in practice
-+ it occurs quite frequently in printf statements that produce
-+ debug output. Use a fallback in this case. */
-+ if (ap->a.a_u16_string == NULL)
-+ {
-+ static const uint16_t u16_null_string[] =
-+ { '(', 'N', 'U', 'L', 'L', ')', 0 };
-+ ap->a.a_u16_string = u16_null_string;
-+ }
-+ break;
-+ case TYPE_U32_STRING:
-+ ap->a.a_u32_string = va_arg (args, const uint32_t *);
-+ /* A null pointer is an invalid argument for "%llU", but in practice
-+ it occurs quite frequently in printf statements that produce
-+ debug output. Use a fallback in this case. */
-+ if (ap->a.a_u32_string == NULL)
-+ {
-+ static const uint32_t u32_null_string[] =
-+ { '(', 'N', 'U', 'L', 'L', ')', 0 };
-+ ap->a.a_u32_string = u32_null_string;
-+ }
-+ break;
-+#endif
-+ default:
-+ /* Unknown type. */
-+ return -1;
-+ }
-+ return 0;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/printf-args.h gtk-vnc-0.3.7.gnulib/gnulib/lib/printf-args.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/printf-args.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/printf-args.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,154 @@
-+/* Decomposed printf argument list.
-+ Copyright (C) 1999, 2002-2003, 2006-2007 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License along
-+ with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#ifndef _PRINTF_ARGS_H
-+#define _PRINTF_ARGS_H
-+
-+/* This file can be parametrized with the following macros:
-+ ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions.
-+ PRINTF_FETCHARGS Name of the function to be declared.
-+ STATIC Set to 'static' to declare the function static. */
-+
-+/* Default parameters. */
-+#ifndef PRINTF_FETCHARGS
-+# define PRINTF_FETCHARGS printf_fetchargs
-+#endif
-+
-+/* Get size_t. */
-+#include <stddef.h>
-+
-+/* Get wchar_t. */
-+#if HAVE_WCHAR_T
-+# include <stddef.h>
-+#endif
-+
-+/* Get wint_t. */
-+#if HAVE_WINT_T
-+# include <wchar.h>
-+#endif
-+
-+/* Get va_list. */
-+#include <stdarg.h>
-+
-+
-+/* Argument types */
-+typedef enum
-+{
-+ TYPE_NONE,
-+ TYPE_SCHAR,
-+ TYPE_UCHAR,
-+ TYPE_SHORT,
-+ TYPE_USHORT,
-+ TYPE_INT,
-+ TYPE_UINT,
-+ TYPE_LONGINT,
-+ TYPE_ULONGINT,
-+#if HAVE_LONG_LONG_INT
-+ TYPE_LONGLONGINT,
-+ TYPE_ULONGLONGINT,
-+#endif
-+ TYPE_DOUBLE,
-+ TYPE_LONGDOUBLE,
-+ TYPE_CHAR,
-+#if HAVE_WINT_T
-+ TYPE_WIDE_CHAR,
-+#endif
-+ TYPE_STRING,
-+#if HAVE_WCHAR_T
-+ TYPE_WIDE_STRING,
-+#endif
-+ TYPE_POINTER,
-+ TYPE_COUNT_SCHAR_POINTER,
-+ TYPE_COUNT_SHORT_POINTER,
-+ TYPE_COUNT_INT_POINTER,
-+ TYPE_COUNT_LONGINT_POINTER
-+#if HAVE_LONG_LONG_INT
-+, TYPE_COUNT_LONGLONGINT_POINTER
-+#endif
-+#if ENABLE_UNISTDIO
-+ /* The unistdio extensions. */
-+, TYPE_U8_STRING
-+, TYPE_U16_STRING
-+, TYPE_U32_STRING
-+#endif
-+} arg_type;
-+
-+/* Polymorphic argument */
-+typedef struct
-+{
-+ arg_type type;
-+ union
-+ {
-+ signed char a_schar;
-+ unsigned char a_uchar;
-+ short a_short;
-+ unsigned short a_ushort;
-+ int a_int;
-+ unsigned int a_uint;
-+ long int a_longint;
-+ unsigned long int a_ulongint;
-+#if HAVE_LONG_LONG_INT
-+ long long int a_longlongint;
-+ unsigned long long int a_ulonglongint;
-+#endif
-+ float a_float;
-+ double a_double;
-+ long double a_longdouble;
-+ int a_char;
-+#if HAVE_WINT_T
-+ wint_t a_wide_char;
-+#endif
-+ const char* a_string;
-+#if HAVE_WCHAR_T
-+ const wchar_t* a_wide_string;
-+#endif
-+ void* a_pointer;
-+ signed char * a_count_schar_pointer;
-+ short * a_count_short_pointer;
-+ int * a_count_int_pointer;
-+ long int * a_count_longint_pointer;
-+#if HAVE_LONG_LONG_INT
-+ long long int * a_count_longlongint_pointer;
-+#endif
-+#if ENABLE_UNISTDIO
-+ /* The unistdio extensions. */
-+ const uint8_t * a_u8_string;
-+ const uint16_t * a_u16_string;
-+ const uint32_t * a_u32_string;
-+#endif
-+ }
-+ a;
-+}
-+argument;
-+
-+typedef struct
-+{
-+ size_t count;
-+ argument *arg;
-+}
-+arguments;
-+
-+
-+/* Fetch the arguments, putting them into a. */
-+#ifdef STATIC
-+STATIC
-+#else
-+extern
-+#endif
-+int PRINTF_FETCHARGS (va_list args, arguments *a);
-+
-+#endif /* _PRINTF_ARGS_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/printf-parse.c gtk-vnc-0.3.7.gnulib/gnulib/lib/printf-parse.c
---- gtk-vnc-0.3.7.dan3/gnulib/lib/printf-parse.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/printf-parse.c 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,627 @@
-+/* Formatted output to strings.
-+ Copyright (C) 1999-2000, 2002-2003, 2006-2008 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License along
-+ with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+/* This file can be parametrized with the following macros:
-+ CHAR_T The element type of the format string.
-+ CHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters
-+ in the format string are ASCII.
-+ DIRECTIVE Structure denoting a format directive.
-+ Depends on CHAR_T.
-+ DIRECTIVES Structure denoting the set of format directives of a
-+ format string. Depends on CHAR_T.
-+ PRINTF_PARSE Function that parses a format string.
-+ Depends on CHAR_T.
-+ STATIC Set to 'static' to declare the function static.
-+ ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. */
-+
-+#ifndef PRINTF_PARSE
-+# include <config.h>
-+#endif
-+
-+/* Specification. */
-+#ifndef PRINTF_PARSE
-+# include "printf-parse.h"
-+#endif
-+
-+/* Default parameters. */
-+#ifndef PRINTF_PARSE
-+# define PRINTF_PARSE printf_parse
-+# define CHAR_T char
-+# define DIRECTIVE char_directive
-+# define DIRECTIVES char_directives
-+#endif
-+
-+/* Get size_t, NULL. */
-+#include <stddef.h>
-+
-+/* Get intmax_t. */
-+#if defined IN_LIBINTL || defined IN_LIBASPRINTF
-+# if HAVE_STDINT_H_WITH_UINTMAX
-+# include <stdint.h>
-+# endif
-+# if HAVE_INTTYPES_H_WITH_UINTMAX
-+# include <inttypes.h>
-+# endif
-+#else
-+# include <stdint.h>
-+#endif
-+
-+/* malloc(), realloc(), free(). */
-+#include <stdlib.h>
-+
-+/* errno. */
-+#include <errno.h>
-+
-+/* Checked size_t computations. */
-+#include "xsize.h"
-+
-+#if CHAR_T_ONLY_ASCII
-+/* c_isascii(). */
-+# include "c-ctype.h"
-+#endif
-+
-+#ifdef STATIC
-+STATIC
-+#endif
-+int
-+PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
-+{
-+ const CHAR_T *cp = format; /* pointer into format */
-+ size_t arg_posn = 0; /* number of regular arguments consumed */
-+ size_t d_allocated; /* allocated elements of d->dir */
-+ size_t a_allocated; /* allocated elements of a->arg */
-+ size_t max_width_length = 0;
-+ size_t max_precision_length = 0;
-+
-+ d->count = 0;
-+ d_allocated = 1;
-+ d->dir = (DIRECTIVE *) malloc (d_allocated * sizeof (DIRECTIVE));
-+ if (d->dir == NULL)
-+ /* Out of memory. */
-+ goto out_of_memory_1;
-+
-+ a->count = 0;
-+ a_allocated = 0;
-+ a->arg = NULL;
-+
-+#define REGISTER_ARG(_index_,_type_) \
-+ { \
-+ size_t n = (_index_); \
-+ if (n >= a_allocated) \
-+ { \
-+ size_t memory_size; \
-+ argument *memory; \
-+ \
-+ a_allocated = xtimes (a_allocated, 2); \
-+ if (a_allocated <= n) \
-+ a_allocated = xsum (n, 1); \
-+ memory_size = xtimes (a_allocated, sizeof (argument)); \
-+ if (size_overflow_p (memory_size)) \
-+ /* Overflow, would lead to out of memory. */ \
-+ goto out_of_memory; \
-+ memory = (argument *) (a->arg \
-+ ? realloc (a->arg, memory_size) \
-+ : malloc (memory_size)); \
-+ if (memory == NULL) \
-+ /* Out of memory. */ \
-+ goto out_of_memory; \
-+ a->arg = memory; \
-+ } \
-+ while (a->count <= n) \
-+ a->arg[a->count++].type = TYPE_NONE; \
-+ if (a->arg[n].type == TYPE_NONE) \
-+ a->arg[n].type = (_type_); \
-+ else if (a->arg[n].type != (_type_)) \
-+ /* Ambiguous type for positional argument. */ \
-+ goto error; \
-+ }
-+
-+ while (*cp != '\0')
-+ {
-+ CHAR_T c = *cp++;
-+ if (c == '%')
-+ {
-+ size_t arg_index = ARG_NONE;
-+ DIRECTIVE *dp = &d->dir[d->count]; /* pointer to next directive */
-+
-+ /* Initialize the next directive. */
-+ dp->dir_start = cp - 1;
-+ dp->flags = 0;
-+ dp->width_start = NULL;
-+ dp->width_end = NULL;
-+ dp->width_arg_index = ARG_NONE;
-+ dp->precision_start = NULL;
-+ dp->precision_end = NULL;
-+ dp->precision_arg_index = ARG_NONE;
-+ dp->arg_index = ARG_NONE;
-+
-+ /* Test for positional argument. */
-+ if (*cp >= '0' && *cp <= '9')
-+ {
-+ const CHAR_T *np;
-+
-+ for (np = cp; *np >= '0' && *np <= '9'; np++)
-+ ;
-+ if (*np == '$')
-+ {
-+ size_t n = 0;
-+
-+ for (np = cp; *np >= '0' && *np <= '9'; np++)
-+ n = xsum (xtimes (n, 10), *np - '0');
-+ if (n == 0)
-+ /* Positional argument 0. */
-+ goto error;
-+ if (size_overflow_p (n))
-+ /* n too large, would lead to out of memory later. */
-+ goto error;
-+ arg_index = n - 1;
-+ cp = np + 1;
-+ }
-+ }
-+
-+ /* Read the flags. */
-+ for (;;)
-+ {
-+ if (*cp == '\'')
-+ {
-+ dp->flags |= FLAG_GROUP;
-+ cp++;
-+ }
-+ else if (*cp == '-')
-+ {
-+ dp->flags |= FLAG_LEFT;
-+ cp++;
-+ }
-+ else if (*cp == '+')
-+ {
-+ dp->flags |= FLAG_SHOWSIGN;
-+ cp++;
-+ }
-+ else if (*cp == ' ')
-+ {
-+ dp->flags |= FLAG_SPACE;
-+ cp++;
-+ }
-+ else if (*cp == '#')
-+ {
-+ dp->flags |= FLAG_ALT;
-+ cp++;
-+ }
-+ else if (*cp == '0')
-+ {
-+ dp->flags |= FLAG_ZERO;
-+ cp++;
-+ }
-+ else
-+ break;
-+ }
-+
-+ /* Parse the field width. */
-+ if (*cp == '*')
-+ {
-+ dp->width_start = cp;
-+ cp++;
-+ dp->width_end = cp;
-+ if (max_width_length < 1)
-+ max_width_length = 1;
-+
-+ /* Test for positional argument. */
-+ if (*cp >= '0' && *cp <= '9')
-+ {
-+ const CHAR_T *np;
-+
-+ for (np = cp; *np >= '0' && *np <= '9'; np++)
-+ ;
-+ if (*np == '$')
-+ {
-+ size_t n = 0;
-+
-+ for (np = cp; *np >= '0' && *np <= '9'; np++)
-+ n = xsum (xtimes (n, 10), *np - '0');
-+ if (n == 0)
-+ /* Positional argument 0. */
-+ goto error;
-+ if (size_overflow_p (n))
-+ /* n too large, would lead to out of memory later. */
-+ goto error;
-+ dp->width_arg_index = n - 1;
-+ cp = np + 1;
-+ }
-+ }
-+ if (dp->width_arg_index == ARG_NONE)
-+ {
-+ dp->width_arg_index = arg_posn++;
-+ if (dp->width_arg_index == ARG_NONE)
-+ /* arg_posn wrapped around. */
-+ goto error;
-+ }
-+ REGISTER_ARG (dp->width_arg_index, TYPE_INT);
-+ }
-+ else if (*cp >= '0' && *cp <= '9')
-+ {
-+ size_t width_length;
-+
-+ dp->width_start = cp;
-+ for (; *cp >= '0' && *cp <= '9'; cp++)
-+ ;
-+ dp->width_end = cp;
-+ width_length = dp->width_end - dp->width_start;
-+ if (max_width_length < width_length)
-+ max_width_length = width_length;
-+ }
-+
-+ /* Parse the precision. */
-+ if (*cp == '.')
-+ {
-+ cp++;
-+ if (*cp == '*')
-+ {
-+ dp->precision_start = cp - 1;
-+ cp++;
-+ dp->precision_end = cp;
-+ if (max_precision_length < 2)
-+ max_precision_length = 2;
-+
-+ /* Test for positional argument. */
-+ if (*cp >= '0' && *cp <= '9')
-+ {
-+ const CHAR_T *np;
-+
-+ for (np = cp; *np >= '0' && *np <= '9'; np++)
-+ ;
-+ if (*np == '$')
-+ {
-+ size_t n = 0;
-+
-+ for (np = cp; *np >= '0' && *np <= '9'; np++)
-+ n = xsum (xtimes (n, 10), *np - '0');
-+ if (n == 0)
-+ /* Positional argument 0. */
-+ goto error;
-+ if (size_overflow_p (n))
-+ /* n too large, would lead to out of memory
-+ later. */
-+ goto error;
-+ dp->precision_arg_index = n - 1;
-+ cp = np + 1;
-+ }
-+ }
-+ if (dp->precision_arg_index == ARG_NONE)
-+ {
-+ dp->precision_arg_index = arg_posn++;
-+ if (dp->precision_arg_index == ARG_NONE)
-+ /* arg_posn wrapped around. */
-+ goto error;
-+ }
-+ REGISTER_ARG (dp->precision_arg_index, TYPE_INT);
-+ }
-+ else
-+ {
-+ size_t precision_length;
-+
-+ dp->precision_start = cp - 1;
-+ for (; *cp >= '0' && *cp <= '9'; cp++)
-+ ;
-+ dp->precision_end = cp;
-+ precision_length = dp->precision_end - dp->precision_start;
-+ if (max_precision_length < precision_length)
-+ max_precision_length = precision_length;
-+ }
-+ }
-+
-+ {
-+ arg_type type;
-+
-+ /* Parse argument type/size specifiers. */
-+ {
-+ int flags = 0;
-+
-+ for (;;)
-+ {
-+ if (*cp == 'h')
-+ {
-+ flags |= (1 << (flags & 1));
-+ cp++;
-+ }
-+ else if (*cp == 'L')
-+ {
-+ flags |= 4;
-+ cp++;
-+ }
-+ else if (*cp == 'l')
-+ {
-+ flags += 8;
-+ cp++;
-+ }
-+ else if (*cp == 'j')
-+ {
-+ if (sizeof (intmax_t) > sizeof (long))
-+ {
-+ /* intmax_t = long long */
-+ flags += 16;
-+ }
-+ else if (sizeof (intmax_t) > sizeof (int))
-+ {
-+ /* intmax_t = long */
-+ flags += 8;
-+ }
-+ cp++;
-+ }
-+ else if (*cp == 'z' || *cp == 'Z')
-+ {
-+ /* 'z' is standardized in ISO C 99, but glibc uses 'Z'
-+ because the warning facility in gcc-2.95.2 understands
-+ only 'Z' (see gcc-2.95.2/gcc/c-common.c:1784). */
-+ if (sizeof (size_t) > sizeof (long))
-+ {
-+ /* size_t = long long */
-+ flags += 16;
-+ }
-+ else if (sizeof (size_t) > sizeof (int))
-+ {
-+ /* size_t = long */
-+ flags += 8;
-+ }
-+ cp++;
-+ }
-+ else if (*cp == 't')
-+ {
-+ if (sizeof (ptrdiff_t) > sizeof (long))
-+ {
-+ /* ptrdiff_t = long long */
-+ flags += 16;
-+ }
-+ else if (sizeof (ptrdiff_t) > sizeof (int))
-+ {
-+ /* ptrdiff_t = long */
-+ flags += 8;
-+ }
-+ cp++;
-+ }
-+#if defined __APPLE__ && defined __MACH__
-+ /* On MacOS X 10.3, PRIdMAX is defined as "qd".
-+ We cannot change it to "lld" because PRIdMAX must also
-+ be understood by the system's printf routines. */
-+ else if (*cp == 'q')
-+ {
-+ if (64 / 8 > sizeof (long))
-+ {
-+ /* int64_t = long long */
-+ flags += 16;
-+ }
-+ else
-+ {
-+ /* int64_t = long */
-+ flags += 8;
-+ }
-+ cp++;
-+ }
-+#endif
-+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-+ /* On native Win32, PRIdMAX is defined as "I64d".
-+ We cannot change it to "lld" because PRIdMAX must also
-+ be understood by the system's printf routines. */
-+ else if (*cp == 'I' && cp[1] == '6' && cp[2] == '4')
-+ {
-+ if (64 / 8 > sizeof (long))
-+ {
-+ /* __int64 = long long */
-+ flags += 16;
-+ }
-+ else
-+ {
-+ /* __int64 = long */
-+ flags += 8;
-+ }
-+ cp += 3;
-+ }
-+#endif
-+ else
-+ break;
-+ }
-+
-+ /* Read the conversion character. */
-+ c = *cp++;
-+ switch (c)
-+ {
-+ case 'd': case 'i':
-+#if HAVE_LONG_LONG_INT
-+ /* If 'long long' exists and is larger than 'long': */
-+ if (flags >= 16 || (flags & 4))
-+ type = TYPE_LONGLONGINT;
-+ else
-+#endif
-+ /* If 'long long' exists and is the same as 'long', we parse
-+ "lld" into TYPE_LONGINT. */
-+ if (flags >= 8)
-+ type = TYPE_LONGINT;
-+ else if (flags & 2)
-+ type = TYPE_SCHAR;
-+ else if (flags & 1)
-+ type = TYPE_SHORT;
-+ else
-+ type = TYPE_INT;
-+ break;
-+ case 'o': case 'u': case 'x': case 'X':
-+#if HAVE_LONG_LONG_INT
-+ /* If 'long long' exists and is larger than 'long': */
-+ if (flags >= 16 || (flags & 4))
-+ type = TYPE_ULONGLONGINT;
-+ else
-+#endif
-+ /* If 'unsigned long long' exists and is the same as
-+ 'unsigned long', we parse "llu" into TYPE_ULONGINT. */
-+ if (flags >= 8)
-+ type = TYPE_ULONGINT;
-+ else if (flags & 2)
-+ type = TYPE_UCHAR;
-+ else if (flags & 1)
-+ type = TYPE_USHORT;
-+ else
-+ type = TYPE_UINT;
-+ break;
-+ case 'f': case 'F': case 'e': case 'E': case 'g': case 'G':
-+ case 'a': case 'A':
-+ if (flags >= 16 || (flags & 4))
-+ type = TYPE_LONGDOUBLE;
-+ else
-+ type = TYPE_DOUBLE;
-+ break;
-+ case 'c':
-+ if (flags >= 8)
-+#if HAVE_WINT_T
-+ type = TYPE_WIDE_CHAR;
-+#else
-+ goto error;
-+#endif
-+ else
-+ type = TYPE_CHAR;
-+ break;
-+#if HAVE_WINT_T
-+ case 'C':
-+ type = TYPE_WIDE_CHAR;
-+ c = 'c';
-+ break;
-+#endif
-+ case 's':
-+ if (flags >= 8)
-+#if HAVE_WCHAR_T
-+ type = TYPE_WIDE_STRING;
-+#else
-+ goto error;
-+#endif
-+ else
-+ type = TYPE_STRING;
-+ break;
-+#if HAVE_WCHAR_T
-+ case 'S':
-+ type = TYPE_WIDE_STRING;
-+ c = 's';
-+ break;
-+#endif
-+ case 'p':
-+ type = TYPE_POINTER;
-+ break;
-+ case 'n':
-+#if HAVE_LONG_LONG_INT
-+ /* If 'long long' exists and is larger than 'long': */
-+ if (flags >= 16 || (flags & 4))
-+ type = TYPE_COUNT_LONGLONGINT_POINTER;
-+ else
-+#endif
-+ /* If 'long long' exists and is the same as 'long', we parse
-+ "lln" into TYPE_COUNT_LONGINT_POINTER. */
-+ if (flags >= 8)
-+ type = TYPE_COUNT_LONGINT_POINTER;
-+ else if (flags & 2)
-+ type = TYPE_COUNT_SCHAR_POINTER;
-+ else if (flags & 1)
-+ type = TYPE_COUNT_SHORT_POINTER;
-+ else
-+ type = TYPE_COUNT_INT_POINTER;
-+ break;
-+#if ENABLE_UNISTDIO
-+ /* The unistdio extensions. */
-+ case 'U':
-+ if (flags >= 16)
-+ type = TYPE_U32_STRING;
-+ else if (flags >= 8)
-+ type = TYPE_U16_STRING;
-+ else
-+ type = TYPE_U8_STRING;
-+ break;
-+#endif
-+ case '%':
-+ type = TYPE_NONE;
-+ break;
-+ default:
-+ /* Unknown conversion character. */
-+ goto error;
-+ }
-+ }
-+
-+ if (type != TYPE_NONE)
-+ {
-+ dp->arg_index = arg_index;
-+ if (dp->arg_index == ARG_NONE)
-+ {
-+ dp->arg_index = arg_posn++;
-+ if (dp->arg_index == ARG_NONE)
-+ /* arg_posn wrapped around. */
-+ goto error;
-+ }
-+ REGISTER_ARG (dp->arg_index, type);
-+ }
-+ dp->conversion = c;
-+ dp->dir_end = cp;
-+ }
-+
-+ d->count++;
-+ if (d->count >= d_allocated)
-+ {
-+ size_t memory_size;
-+ DIRECTIVE *memory;
-+
-+ d_allocated = xtimes (d_allocated, 2);
-+ memory_size = xtimes (d_allocated, sizeof (DIRECTIVE));
-+ if (size_overflow_p (memory_size))
-+ /* Overflow, would lead to out of memory. */
-+ goto out_of_memory;
-+ memory = (DIRECTIVE *) realloc (d->dir, memory_size);
-+ if (memory == NULL)
-+ /* Out of memory. */
-+ goto out_of_memory;
-+ d->dir = memory;
-+ }
-+ }
-+#if CHAR_T_ONLY_ASCII
-+ else if (!c_isascii (c))
-+ {
-+ /* Non-ASCII character. Not supported. */
-+ goto error;
-+ }
-+#endif
-+ }
-+ d->dir[d->count].dir_start = cp;
-+
-+ d->max_width_length = max_width_length;
-+ d->max_precision_length = max_precision_length;
-+ return 0;
-+
-+error:
-+ if (a->arg)
-+ free (a->arg);
-+ if (d->dir)
-+ free (d->dir);
-+ errno = EINVAL;
-+ return -1;
-+
-+out_of_memory:
-+ if (a->arg)
-+ free (a->arg);
-+ if (d->dir)
-+ free (d->dir);
-+out_of_memory_1:
-+ errno = ENOMEM;
-+ return -1;
-+}
-+
-+#undef PRINTF_PARSE
-+#undef DIRECTIVES
-+#undef DIRECTIVE
-+#undef CHAR_T_ONLY_ASCII
-+#undef CHAR_T
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/printf-parse.h gtk-vnc-0.3.7.gnulib/gnulib/lib/printf-parse.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/printf-parse.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/printf-parse.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,179 @@
-+/* Parse printf format string.
-+ Copyright (C) 1999, 2002-2003, 2005, 2007 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License along
-+ with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#ifndef _PRINTF_PARSE_H
-+#define _PRINTF_PARSE_H
-+
-+/* This file can be parametrized with the following macros:
-+ ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions.
-+ STATIC Set to 'static' to declare the function static. */
-+
-+#include "printf-args.h"
-+
-+
-+/* Flags */
-+#define FLAG_GROUP 1 /* ' flag */
-+#define FLAG_LEFT 2 /* - flag */
-+#define FLAG_SHOWSIGN 4 /* + flag */
-+#define FLAG_SPACE 8 /* space flag */
-+#define FLAG_ALT 16 /* # flag */
-+#define FLAG_ZERO 32
-+
-+/* arg_index value indicating that no argument is consumed. */
-+#define ARG_NONE (~(size_t)0)
-+
-+/* xxx_directive: A parsed directive.
-+ xxx_directives: A parsed format string. */
-+
-+/* A parsed directive. */
-+typedef struct
-+{
-+ const char* dir_start;
-+ const char* dir_end;
-+ int flags;
-+ const char* width_start;
-+ const char* width_end;
-+ size_t width_arg_index;
-+ const char* precision_start;
-+ const char* precision_end;
-+ size_t precision_arg_index;
-+ char conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
-+ size_t arg_index;
-+}
-+char_directive;
-+
-+/* A parsed format string. */
-+typedef struct
-+{
-+ size_t count;
-+ char_directive *dir;
-+ size_t max_width_length;
-+ size_t max_precision_length;
-+}
-+char_directives;
-+
-+#if ENABLE_UNISTDIO
-+
-+/* A parsed directive. */
-+typedef struct
-+{
-+ const uint8_t* dir_start;
-+ const uint8_t* dir_end;
-+ int flags;
-+ const uint8_t* width_start;
-+ const uint8_t* width_end;
-+ size_t width_arg_index;
-+ const uint8_t* precision_start;
-+ const uint8_t* precision_end;
-+ size_t precision_arg_index;
-+ uint8_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
-+ size_t arg_index;
-+}
-+u8_directive;
-+
-+/* A parsed format string. */
-+typedef struct
-+{
-+ size_t count;
-+ u8_directive *dir;
-+ size_t max_width_length;
-+ size_t max_precision_length;
-+}
-+u8_directives;
-+
-+/* A parsed directive. */
-+typedef struct
-+{
-+ const uint16_t* dir_start;
-+ const uint16_t* dir_end;
-+ int flags;
-+ const uint16_t* width_start;
-+ const uint16_t* width_end;
-+ size_t width_arg_index;
-+ const uint16_t* precision_start;
-+ const uint16_t* precision_end;
-+ size_t precision_arg_index;
-+ uint16_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
-+ size_t arg_index;
-+}
-+u16_directive;
-+
-+/* A parsed format string. */
-+typedef struct
-+{
-+ size_t count;
-+ u16_directive *dir;
-+ size_t max_width_length;
-+ size_t max_precision_length;
-+}
-+u16_directives;
-+
-+/* A parsed directive. */
-+typedef struct
-+{
-+ const uint32_t* dir_start;
-+ const uint32_t* dir_end;
-+ int flags;
-+ const uint32_t* width_start;
-+ const uint32_t* width_end;
-+ size_t width_arg_index;
-+ const uint32_t* precision_start;
-+ const uint32_t* precision_end;
-+ size_t precision_arg_index;
-+ uint32_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
-+ size_t arg_index;
-+}
-+u32_directive;
-+
-+/* A parsed format string. */
-+typedef struct
-+{
-+ size_t count;
-+ u32_directive *dir;
-+ size_t max_width_length;
-+ size_t max_precision_length;
-+}
-+u32_directives;
-+
-+#endif
-+
-+
-+/* Parses the format string. Fills in the number N of directives, and fills
-+ in directives[0], ..., directives[N-1], and sets directives[N].dir_start
-+ to the end of the format string. Also fills in the arg_type fields of the
-+ arguments and the needed count of arguments. */
-+#if ENABLE_UNISTDIO
-+extern int
-+ ulc_printf_parse (const char *format, char_directives *d, arguments *a);
-+extern int
-+ u8_printf_parse (const uint8_t *format, u8_directives *d, arguments *a);
-+extern int
-+ u16_printf_parse (const uint16_t *format, u16_directives *d,
-+ arguments *a);
-+extern int
-+ u32_printf_parse (const uint32_t *format, u32_directives *d,
-+ arguments *a);
-+#else
-+# ifdef STATIC
-+STATIC
-+# else
-+extern
-+# endif
-+int printf_parse (const char *format, char_directives *d, arguments *a);
-+#endif
-+
-+#endif /* _PRINTF_PARSE_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/size_max.h gtk-vnc-0.3.7.gnulib/gnulib/lib/size_max.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/size_max.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/size_max.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,31 @@
-+/* size_max.h -- declare SIZE_MAX through system headers
-+ Copyright (C) 2005-2006 Free Software Foundation, Inc.
-+ Written by Simon Josefsson.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#ifndef GNULIB_SIZE_MAX_H
-+#define GNULIB_SIZE_MAX_H
-+
-+/* Get SIZE_MAX declaration on systems like Solaris 7/8/9. */
-+# include <limits.h>
-+/* Get SIZE_MAX declaration on systems like glibc 2. */
-+# if HAVE_STDINT_H
-+# include <stdint.h>
-+# endif
-+/* On systems where these include files don't define it, SIZE_MAX is defined
-+ in config.h. */
-+
-+#endif /* GNULIB_SIZE_MAX_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/snprintf.c gtk-vnc-0.3.7.gnulib/gnulib/lib/snprintf.c
---- gtk-vnc-0.3.7.dan3/gnulib/lib/snprintf.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/snprintf.c 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,72 @@
-+/* Formatted output to strings.
-+ Copyright (C) 2004, 2006-2008 Free Software Foundation, Inc.
-+ Written by Simon Josefsson and Paul Eggert.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License along
-+ with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#include <config.h>
-+
-+/* Specification. */
-+#include <stdio.h>
-+
-+#include <errno.h>
-+#include <limits.h>
-+#include <stdarg.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+#include "vasnprintf.h"
-+
-+/* Print formatted output to string STR. Similar to sprintf, but
-+ additional length SIZE limit how much is written into STR. Returns
-+ string length of formatted string (which may be larger than SIZE).
-+ STR may be NULL, in which case nothing will be written. On error,
-+ return a negative value. */
-+int
-+snprintf (char *str, size_t size, const char *format, ...)
-+{
-+ char *output;
-+ size_t len;
-+ size_t lenbuf = size;
-+ va_list args;
-+
-+ va_start (args, format);
-+ output = vasnprintf (str, &lenbuf, format, args);
-+ len = lenbuf;
-+ va_end (args);
-+
-+ if (!output)
-+ return -1;
-+
-+ if (output != str)
-+ {
-+ if (size)
-+ {
-+ size_t pruned_len = (len < size ? len : size - 1);
-+ memcpy (str, output, pruned_len);
-+ str[pruned_len] = '\0';
-+ }
-+
-+ free (output);
-+ }
-+
-+ if (INT_MAX < len)
-+ {
-+ errno = EOVERFLOW;
-+ return -1;
-+ }
-+
-+ return len;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/stdbool.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/stdbool.in.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/stdbool.in.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/stdbool.in.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,119 @@
-+/* Copyright (C) 2001-2003, 2006-2008 Free Software Foundation, Inc.
-+ Written by Bruno Haible <haible@clisp.cons.org>, 2001.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#ifndef _GL_STDBOOL_H
-+#define _GL_STDBOOL_H
-+
-+/* ISO C 99 <stdbool.h> for platforms that lack it. */
-+
-+/* Usage suggestions:
-+
-+ Programs that use <stdbool.h> should be aware of some limitations
-+ and standards compliance issues.
-+
-+ Standards compliance:
-+
-+ - <stdbool.h> must be #included before 'bool', 'false', 'true'
-+ can be used.
-+
-+ - You cannot assume that sizeof (bool) == 1.
-+
-+ - Programs should not undefine the macros bool, true, and false,
-+ as C99 lists that as an "obsolescent feature".
-+
-+ Limitations of this substitute, when used in a C89 environment:
-+
-+ - <stdbool.h> must be #included before the '_Bool' type can be used.
-+
-+ - You cannot assume that _Bool is a typedef; it might be a macro.
-+
-+ - Bit-fields of type 'bool' are not supported. Portable code
-+ should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'.
-+
-+ - In C99, casts and automatic conversions to '_Bool' or 'bool' are
-+ performed in such a way that every nonzero value gets converted
-+ to 'true', and zero gets converted to 'false'. This doesn't work
-+ with this substitute. With this substitute, only the values 0 and 1
-+ give the expected result when converted to _Bool' or 'bool'.
-+
-+ Also, it is suggested that programs use 'bool' rather than '_Bool';
-+ this isn't required, but 'bool' is more common. */
-+
-+
-+/* 7.16. Boolean type and values */
-+
-+/* BeOS <sys/socket.h> already #defines false 0, true 1. We use the same
-+ definitions below, but temporarily we have to #undef them. */
-+#if defined __BEOS__ && !defined __HAIKU__
-+# include <OS.h> /* defines bool but not _Bool */
-+# undef false
-+# undef true
-+#endif
-+
-+/* For the sake of symbolic names in gdb, we define true and false as
-+ enum constants, not only as macros.
-+ It is tempting to write
-+ typedef enum { false = 0, true = 1 } _Bool;
-+ so that gdb prints values of type 'bool' symbolically. But if we do
-+ this, values of type '_Bool' may promote to 'int' or 'unsigned int'
-+ (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
-+ (see ISO C 99 6.3.1.1.(2)). So we add a negative value to the
-+ enum; this ensures that '_Bool' promotes to 'int'. */
-+#if defined __cplusplus || (defined __BEOS__ && !defined __HAIKU__)
-+ /* A compiler known to have 'bool'. */
-+ /* If the compiler already has both 'bool' and '_Bool', we can assume they
-+ are the same types. */
-+# if !@HAVE__BOOL@
-+typedef bool _Bool;
-+# endif
-+#else
-+# if !defined __GNUC__
-+ /* If @HAVE__BOOL@:
-+ Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
-+ the built-in _Bool type is used. See
-+ http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-+ http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
-+ http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
-+ Similar bugs are likely with other compilers as well; this file
-+ wouldn't be used if <stdbool.h> was working.
-+ So we override the _Bool type.
-+ If !@HAVE__BOOL@:
-+ Need to define _Bool ourselves. As 'signed char' or as an enum type?
-+ Use of a typedef, with SunPRO C, leads to a stupid
-+ "warning: _Bool is a keyword in ISO C99".
-+ Use of an enum type, with IRIX cc, leads to a stupid
-+ "warning(1185): enumerated type mixed with another type".
-+ Even the existence of an enum type, without a typedef,
-+ "Invalid enumerator. (badenum)" with HP-UX cc on Tru64.
-+ The only benefit of the enum, debuggability, is not important
-+ with these compilers. So use 'signed char' and no enum. */
-+# define _Bool signed char
-+# else
-+ /* With this compiler, trust the _Bool type if the compiler has it. */
-+# if !@HAVE__BOOL@
-+typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
-+# endif
-+# endif
-+#endif
-+#define bool _Bool
-+
-+/* The other macros must be usable in preprocessor directives. */
-+#define false 0
-+#define true 1
-+#define __bool_true_false_are_defined 1
-+
-+#endif /* _GL_STDBOOL_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/stdint.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/stdint.in.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/stdint.in.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/stdint.in.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,523 @@
-+/* Copyright (C) 2001-2002, 2004-2008 Free Software Foundation, Inc.
-+ Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
-+ This file is part of gnulib.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+/*
-+ * ISO C 99 <stdint.h> for platforms that lack it.
-+ * <http://www.opengroup.org/susv3xbd/stdint.h.html>
-+ */
-+
-+#ifndef _GL_STDINT_H
-+
-+/* When including a system file that in turn includes <inttypes.h>,
-+ use the system <inttypes.h>, not our substitute. This avoids
-+ problems with (for example) VMS, whose <sys/bitypes.h> includes
-+ <inttypes.h>. */
-+#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
-+
-+/* Get those types that are already defined in other system include
-+ files, so that we can "#define int8_t signed char" below without
-+ worrying about a later system include file containing a "typedef
-+ signed char int8_t;" that will get messed up by our macro. Our
-+ macros should all be consistent with the system versions, except
-+ for the "fast" types and macros, which we recommend against using
-+ in public interfaces due to compiler differences. */
-+
-+#if @HAVE_STDINT_H@
-+# if defined __sgi && ! defined __c99
-+ /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users
-+ with "This header file is to be used only for c99 mode compilations"
-+ diagnostics. */
-+# define __STDINT_H__
-+# endif
-+ /* Other systems may have an incomplete or buggy <stdint.h>.
-+ Include it before <inttypes.h>, since any "#include <stdint.h>"
-+ in <inttypes.h> would reinclude us, skipping our contents because
-+ _GL_STDINT_H is defined.
-+ The include_next requires a split double-inclusion guard. */
-+@PRAGMA_SYSTEM_HEADER@
-+# @INCLUDE_NEXT@ @NEXT_STDINT_H@
-+#endif
-+
-+#if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
-+#define _GL_STDINT_H
-+
-+/* <sys/types.h> defines some of the stdint.h types as well, on glibc,
-+ IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
-+ AIX 5.2 <sys/types.h> isn't needed and causes troubles.
-+ MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
-+ relies on the system <stdint.h> definitions, so include
-+ <sys/types.h> after @NEXT_STDINT_H@. */
-+#if @HAVE_SYS_TYPES_H@ && ! defined _AIX
-+# include <sys/types.h>
-+#endif
-+
-+/* Get LONG_MIN, LONG_MAX, ULONG_MAX. */
-+#include <limits.h>
-+
-+#if @HAVE_INTTYPES_H@
-+ /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines
-+ int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
-+ <inttypes.h> also defines intptr_t and uintptr_t. */
-+# include <inttypes.h>
-+#elif @HAVE_SYS_INTTYPES_H@
-+ /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and
-+ the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */
-+# include <sys/inttypes.h>
-+#endif
-+
-+#if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__
-+ /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines
-+ int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is
-+ included by <sys/types.h>. */
-+# include <sys/bitypes.h>
-+#endif
-+
-+#if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
-+
-+/* Get WCHAR_MIN, WCHAR_MAX. */
-+# if ! (defined WCHAR_MIN && defined WCHAR_MAX)
-+# include <wchar.h>
-+# endif
-+
-+#endif
-+
-+#undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
-+
-+/* Minimum and maximum values for a integer type under the usual assumption.
-+ Return an unspecified value if BITS == 0, adding a check to pacify
-+ picky compilers. */
-+
-+#define _STDINT_MIN(signed, bits, zero) \
-+ ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero))
-+
-+#define _STDINT_MAX(signed, bits, zero) \
-+ ((signed) \
-+ ? ~ _STDINT_MIN (signed, bits, zero) \
-+ : /* The expression for the unsigned case. The subtraction of (signed) \
-+ is a nop in the unsigned case and avoids "signed integer overflow" \
-+ warnings in the signed case. */ \
-+ ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)
-+
-+/* 7.18.1.1. Exact-width integer types */
-+
-+/* Here we assume a standard architecture where the hardware integer
-+ types have 8, 16, 32, optionally 64 bits. */
-+
-+#undef int8_t
-+#undef uint8_t
-+#define int8_t signed char
-+#define uint8_t unsigned char
-+
-+#undef int16_t
-+#undef uint16_t
-+#define int16_t short int
-+#define uint16_t unsigned short int
-+
-+#undef int32_t
-+#undef uint32_t
-+#define int32_t int
-+#define uint32_t unsigned int
-+
-+/* Do not undefine int64_t if gnulib is not being used with 64-bit
-+ types, since otherwise it breaks platforms like Tandem/NSK. */
-+#if LONG_MAX >> 31 >> 31 == 1
-+# undef int64_t
-+# define int64_t long int
-+# define GL_INT64_T
-+#elif defined _MSC_VER
-+# undef int64_t
-+# define int64_t __int64
-+# define GL_INT64_T
-+#elif @HAVE_LONG_LONG_INT@
-+# undef int64_t
-+# define int64_t long long int
-+# define GL_INT64_T
-+#endif
-+
-+#if ULONG_MAX >> 31 >> 31 >> 1 == 1
-+# undef uint64_t
-+# define uint64_t unsigned long int
-+# define GL_UINT64_T
-+#elif defined _MSC_VER
-+# undef uint64_t
-+# define uint64_t unsigned __int64
-+# define GL_UINT64_T
-+#elif @HAVE_UNSIGNED_LONG_LONG_INT@
-+# undef uint64_t
-+# define uint64_t unsigned long long int
-+# define GL_UINT64_T
-+#endif
-+
-+/* Avoid collision with Solaris 2.5.1 <pthread.h> etc. */
-+#define _UINT8_T
-+#define _UINT32_T
-+#define _UINT64_T
-+
-+
-+/* 7.18.1.2. Minimum-width integer types */
-+
-+/* Here we assume a standard architecture where the hardware integer
-+ types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
-+ are the same as the corresponding N_t types. */
-+
-+#undef int_least8_t
-+#undef uint_least8_t
-+#undef int_least16_t
-+#undef uint_least16_t
-+#undef int_least32_t
-+#undef uint_least32_t
-+#undef int_least64_t
-+#undef uint_least64_t
-+#define int_least8_t int8_t
-+#define uint_least8_t uint8_t
-+#define int_least16_t int16_t
-+#define uint_least16_t uint16_t
-+#define int_least32_t int32_t
-+#define uint_least32_t uint32_t
-+#ifdef GL_INT64_T
-+# define int_least64_t int64_t
-+#endif
-+#ifdef GL_UINT64_T
-+# define uint_least64_t uint64_t
-+#endif
-+
-+/* 7.18.1.3. Fastest minimum-width integer types */
-+
-+/* Note: Other <stdint.h> substitutes may define these types differently.
-+ It is not recommended to use these types in public header files. */
-+
-+/* Here we assume a standard architecture where the hardware integer
-+ types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
-+ are taken from the same list of types. Assume that 'long int'
-+ is fast enough for all narrower integers. */
-+
-+#undef int_fast8_t
-+#undef uint_fast8_t
-+#undef int_fast16_t
-+#undef uint_fast16_t
-+#undef int_fast32_t
-+#undef uint_fast32_t
-+#undef int_fast64_t
-+#undef uint_fast64_t
-+#define int_fast8_t long int
-+#define uint_fast8_t unsigned int_fast8_t
-+#define int_fast16_t long int
-+#define uint_fast16_t unsigned int_fast16_t
-+#define int_fast32_t long int
-+#define uint_fast32_t unsigned int_fast32_t
-+#ifdef GL_INT64_T
-+# define int_fast64_t int64_t
-+#endif
-+#ifdef GL_UINT64_T
-+# define uint_fast64_t uint64_t
-+#endif
-+
-+/* 7.18.1.4. Integer types capable of holding object pointers */
-+
-+#undef intptr_t
-+#undef uintptr_t
-+#define intptr_t long int
-+#define uintptr_t unsigned long int
-+
-+/* 7.18.1.5. Greatest-width integer types */
-+
-+/* Note: These types are compiler dependent. It may be unwise to use them in
-+ public header files. */
-+
-+#undef intmax_t
-+#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
-+# define intmax_t long long int
-+#elif defined GL_INT64_T
-+# define intmax_t int64_t
-+#else
-+# define intmax_t long int
-+#endif
-+
-+#undef uintmax_t
-+#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
-+# define uintmax_t unsigned long long int
-+#elif defined GL_UINT64_T
-+# define uintmax_t uint64_t
-+#else
-+# define uintmax_t unsigned long int
-+#endif
-+
-+/* Verify that intmax_t and uintmax_t have the same size. Too much code
-+ breaks if this is not the case. If this check fails, the reason is likely
-+ to be found in the autoconf macros. */
-+typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - 1];
-+
-+/* 7.18.2. Limits of specified-width integer types */
-+
-+#if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
-+
-+/* 7.18.2.1. Limits of exact-width integer types */
-+
-+/* Here we assume a standard architecture where the hardware integer
-+ types have 8, 16, 32, optionally 64 bits. */
-+
-+#undef INT8_MIN
-+#undef INT8_MAX
-+#undef UINT8_MAX
-+#define INT8_MIN (~ INT8_MAX)
-+#define INT8_MAX 127
-+#define UINT8_MAX 255
-+
-+#undef INT16_MIN
-+#undef INT16_MAX
-+#undef UINT16_MAX
-+#define INT16_MIN (~ INT16_MAX)
-+#define INT16_MAX 32767
-+#define UINT16_MAX 65535
-+
-+#undef INT32_MIN
-+#undef INT32_MAX
-+#undef UINT32_MAX
-+#define INT32_MIN (~ INT32_MAX)
-+#define INT32_MAX 2147483647
-+#define UINT32_MAX 4294967295U
-+
-+#undef INT64_MIN
-+#undef INT64_MAX
-+#ifdef GL_INT64_T
-+/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0
-+ evaluates the latter incorrectly in preprocessor expressions. */
-+# define INT64_MIN (- INTMAX_C (1) << 63)
-+# define INT64_MAX INTMAX_C (9223372036854775807)
-+#endif
-+
-+#undef UINT64_MAX
-+#ifdef GL_UINT64_T
-+# define UINT64_MAX UINTMAX_C (18446744073709551615)
-+#endif
-+
-+/* 7.18.2.2. Limits of minimum-width integer types */
-+
-+/* Here we assume a standard architecture where the hardware integer
-+ types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
-+ are the same as the corresponding N_t types. */
-+
-+#undef INT_LEAST8_MIN
-+#undef INT_LEAST8_MAX
-+#undef UINT_LEAST8_MAX
-+#define INT_LEAST8_MIN INT8_MIN
-+#define INT_LEAST8_MAX INT8_MAX
-+#define UINT_LEAST8_MAX UINT8_MAX
-+
-+#undef INT_LEAST16_MIN
-+#undef INT_LEAST16_MAX
-+#undef UINT_LEAST16_MAX
-+#define INT_LEAST16_MIN INT16_MIN
-+#define INT_LEAST16_MAX INT16_MAX
-+#define UINT_LEAST16_MAX UINT16_MAX
-+
-+#undef INT_LEAST32_MIN
-+#undef INT_LEAST32_MAX
-+#undef UINT_LEAST32_MAX
-+#define INT_LEAST32_MIN INT32_MIN
-+#define INT_LEAST32_MAX INT32_MAX
-+#define UINT_LEAST32_MAX UINT32_MAX
-+
-+#undef INT_LEAST64_MIN
-+#undef INT_LEAST64_MAX
-+#ifdef GL_INT64_T
-+# define INT_LEAST64_MIN INT64_MIN
-+# define INT_LEAST64_MAX INT64_MAX
-+#endif
-+
-+#undef UINT_LEAST64_MAX
-+#ifdef GL_UINT64_T
-+# define UINT_LEAST64_MAX UINT64_MAX
-+#endif
-+
-+/* 7.18.2.3. Limits of fastest minimum-width integer types */
-+
-+/* Here we assume a standard architecture where the hardware integer
-+ types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
-+ are taken from the same list of types. */
-+
-+#undef INT_FAST8_MIN
-+#undef INT_FAST8_MAX
-+#undef UINT_FAST8_MAX
-+#define INT_FAST8_MIN LONG_MIN
-+#define INT_FAST8_MAX LONG_MAX
-+#define UINT_FAST8_MAX ULONG_MAX
-+
-+#undef INT_FAST16_MIN
-+#undef INT_FAST16_MAX
-+#undef UINT_FAST16_MAX
-+#define INT_FAST16_MIN LONG_MIN
-+#define INT_FAST16_MAX LONG_MAX
-+#define UINT_FAST16_MAX ULONG_MAX
-+
-+#undef INT_FAST32_MIN
-+#undef INT_FAST32_MAX
-+#undef UINT_FAST32_MAX
-+#define INT_FAST32_MIN LONG_MIN
-+#define INT_FAST32_MAX LONG_MAX
-+#define UINT_FAST32_MAX ULONG_MAX
-+
-+#undef INT_FAST64_MIN
-+#undef INT_FAST64_MAX
-+#ifdef GL_INT64_T
-+# define INT_FAST64_MIN INT64_MIN
-+# define INT_FAST64_MAX INT64_MAX
-+#endif
-+
-+#undef UINT_FAST64_MAX
-+#ifdef GL_UINT64_T
-+# define UINT_FAST64_MAX UINT64_MAX
-+#endif
-+
-+/* 7.18.2.4. Limits of integer types capable of holding object pointers */
-+
-+#undef INTPTR_MIN
-+#undef INTPTR_MAX
-+#undef UINTPTR_MAX
-+#define INTPTR_MIN LONG_MIN
-+#define INTPTR_MAX LONG_MAX
-+#define UINTPTR_MAX ULONG_MAX
-+
-+/* 7.18.2.5. Limits of greatest-width integer types */
-+
-+#undef INTMAX_MIN
-+#undef INTMAX_MAX
-+#ifdef INT64_MAX
-+# define INTMAX_MIN INT64_MIN
-+# define INTMAX_MAX INT64_MAX
-+#else
-+# define INTMAX_MIN INT32_MIN
-+# define INTMAX_MAX INT32_MAX
-+#endif
-+
-+#undef UINTMAX_MAX
-+#ifdef UINT64_MAX
-+# define UINTMAX_MAX UINT64_MAX
-+#else
-+# define UINTMAX_MAX UINT32_MAX
-+#endif
-+
-+/* 7.18.3. Limits of other integer types */
-+
-+/* ptrdiff_t limits */
-+#undef PTRDIFF_MIN
-+#undef PTRDIFF_MAX
-+#define PTRDIFF_MIN \
-+ _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
-+#define PTRDIFF_MAX \
-+ _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
-+
-+/* sig_atomic_t limits */
-+#undef SIG_ATOMIC_MIN
-+#undef SIG_ATOMIC_MAX
-+#define SIG_ATOMIC_MIN \
-+ _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
-+ 0@SIG_ATOMIC_T_SUFFIX@)
-+#define SIG_ATOMIC_MAX \
-+ _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
-+ 0@SIG_ATOMIC_T_SUFFIX@)
-+
-+
-+/* size_t limit */
-+#undef SIZE_MAX
-+#define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@)
-+
-+/* wchar_t limits */
-+#undef WCHAR_MIN
-+#undef WCHAR_MAX
-+#define WCHAR_MIN \
-+ _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
-+#define WCHAR_MAX \
-+ _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
-+
-+/* wint_t limits */
-+#undef WINT_MIN
-+#undef WINT_MAX
-+#define WINT_MIN \
-+ _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
-+#define WINT_MAX \
-+ _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
-+
-+#endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */
-+
-+/* 7.18.4. Macros for integer constants */
-+
-+#if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
-+
-+/* 7.18.4.1. Macros for minimum-width integer constants */
-+/* According to ISO C 99 Technical Corrigendum 1 */
-+
-+/* Here we assume a standard architecture where the hardware integer
-+ types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */
-+
-+#undef INT8_C
-+#undef UINT8_C
-+#define INT8_C(x) x
-+#define UINT8_C(x) x
-+
-+#undef INT16_C
-+#undef UINT16_C
-+#define INT16_C(x) x
-+#define UINT16_C(x) x
-+
-+#undef INT32_C
-+#undef UINT32_C
-+#define INT32_C(x) x
-+#define UINT32_C(x) x ## U
-+
-+#undef INT64_C
-+#undef UINT64_C
-+#if LONG_MAX >> 31 >> 31 == 1
-+# define INT64_C(x) x##L
-+#elif defined _MSC_VER
-+# define INT64_C(x) x##i64
-+#elif @HAVE_LONG_LONG_INT@
-+# define INT64_C(x) x##LL
-+#endif
-+#if ULONG_MAX >> 31 >> 31 >> 1 == 1
-+# define UINT64_C(x) x##UL
-+#elif defined _MSC_VER
-+# define UINT64_C(x) x##ui64
-+#elif @HAVE_UNSIGNED_LONG_LONG_INT@
-+# define UINT64_C(x) x##ULL
-+#endif
-+
-+/* 7.18.4.2. Macros for greatest-width integer constants */
-+
-+#undef INTMAX_C
-+#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
-+# define INTMAX_C(x) x##LL
-+#elif defined GL_INT64_T
-+# define INTMAX_C(x) INT64_C(x)
-+#else
-+# define INTMAX_C(x) x##L
-+#endif
-+
-+#undef UINTMAX_C
-+#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
-+# define UINTMAX_C(x) x##ULL
-+#elif defined GL_UINT64_T
-+# define UINTMAX_C(x) UINT64_C(x)
-+#else
-+# define UINTMAX_C(x) x##UL
-+#endif
-+
-+#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
-+
-+#endif /* _GL_STDINT_H */
-+#endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/stdio.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/stdio.in.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/stdio.in.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/stdio.in.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,475 @@
-+/* A GNU-like <stdio.h>.
-+
-+ Copyright (C) 2004, 2007-2008 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+@PRAGMA_SYSTEM_HEADER@
-+
-+#if defined __need_FILE || defined __need___FILE
-+/* Special invocation convention inside glibc header files. */
-+
-+#@INCLUDE_NEXT@ @NEXT_STDIO_H@
-+
-+#else
-+/* Normal invocation convention. */
-+
-+#ifndef _GL_STDIO_H
-+
-+/* The include_next requires a split double-inclusion guard. */
-+#@INCLUDE_NEXT@ @NEXT_STDIO_H@
-+
-+#ifndef _GL_STDIO_H
-+#define _GL_STDIO_H
-+
-+#include <stdarg.h>
-+#include <stddef.h>
-+
-+#if (@GNULIB_FSEEKO@ && @REPLACE_FSEEKO@) \
-+ || (@GNULIB_FTELLO@ && @REPLACE_FTELLO@) \
-+ || (@GNULIB_GETDELIM@ && !@HAVE_DECL_GETDELIM@) \
-+ || (@GNULIB_GETLINE@ && (!@HAVE_DECL_GETLINE@ || @REPLACE_GETLINE@))
-+/* Get off_t and ssize_t. */
-+# include <sys/types.h>
-+#endif
-+
-+#ifndef __attribute__
-+/* This feature is available in gcc versions 2.5 and later. */
-+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-+# define __attribute__(Spec) /* empty */
-+# endif
-+/* The __-protected variants of `format' and `printf' attributes
-+ are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
-+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
-+# define __format__ format
-+# define __printf__ printf
-+# endif
-+#endif
-+
-+
-+/* The definition of GL_LINK_WARNING is copied here. */
-+
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+
-+#if @GNULIB_FPRINTF_POSIX@
-+# if @REPLACE_FPRINTF@
-+# define fprintf rpl_fprintf
-+extern int fprintf (FILE *fp, const char *format, ...)
-+ __attribute__ ((__format__ (__printf__, 2, 3)));
-+# endif
-+#elif @GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
-+# define fprintf rpl_fprintf
-+extern int fprintf (FILE *fp, const char *format, ...)
-+ __attribute__ ((__format__ (__printf__, 2, 3)));
-+#elif defined GNULIB_POSIXCHECK
-+# undef fprintf
-+# define fprintf \
-+ (GL_LINK_WARNING ("fprintf is not always POSIX compliant - " \
-+ "use gnulib module fprintf-posix for portable " \
-+ "POSIX compliance"), \
-+ fprintf)
-+#endif
-+
-+#if @GNULIB_VFPRINTF_POSIX@
-+# if @REPLACE_VFPRINTF@
-+# define vfprintf rpl_vfprintf
-+extern int vfprintf (FILE *fp, const char *format, va_list args)
-+ __attribute__ ((__format__ (__printf__, 2, 0)));
-+# endif
-+#elif @GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
-+# define vfprintf rpl_vfprintf
-+extern int vfprintf (FILE *fp, const char *format, va_list args)
-+ __attribute__ ((__format__ (__printf__, 2, 0)));
-+#elif defined GNULIB_POSIXCHECK
-+# undef vfprintf
-+# define vfprintf(s,f,a) \
-+ (GL_LINK_WARNING ("vfprintf is not always POSIX compliant - " \
-+ "use gnulib module vfprintf-posix for portable " \
-+ "POSIX compliance"), \
-+ vfprintf (s, f, a))
-+#endif
-+
-+#if @GNULIB_PRINTF_POSIX@
-+# if @REPLACE_PRINTF@
-+/* Don't break __attribute__((format(printf,M,N))). */
-+# define printf __printf__
-+extern int printf (const char *format, ...)
-+ __attribute__ ((__format__ (__printf__, 1, 2)));
-+# endif
-+#elif @GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
-+/* Don't break __attribute__((format(printf,M,N))). */
-+# define printf __printf__
-+extern int printf (const char *format, ...)
-+ __attribute__ ((__format__ (__printf__, 1, 2)));
-+#elif defined GNULIB_POSIXCHECK
-+# undef printf
-+# define printf \
-+ (GL_LINK_WARNING ("printf is not always POSIX compliant - " \
-+ "use gnulib module printf-posix for portable " \
-+ "POSIX compliance"), \
-+ printf)
-+/* Don't break __attribute__((format(printf,M,N))). */
-+# define format(kind,m,n) format (__##kind##__, m, n)
-+# define __format__(kind,m,n) __format__ (__##kind##__, m, n)
-+# define ____printf____ __printf__
-+# define ____scanf____ __scanf__
-+# define ____strftime____ __strftime__
-+# define ____strfmon____ __strfmon__
-+#endif
-+
-+#if @GNULIB_VPRINTF_POSIX@
-+# if @REPLACE_VPRINTF@
-+# define vprintf rpl_vprintf
-+extern int vprintf (const char *format, va_list args)
-+ __attribute__ ((__format__ (__printf__, 1, 0)));
-+# endif
-+#elif @GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
-+# define vprintf rpl_vprintf
-+extern int vprintf (const char *format, va_list args)
-+ __attribute__ ((__format__ (__printf__, 1, 0)));
-+#elif defined GNULIB_POSIXCHECK
-+# undef vprintf
-+# define vprintf(f,a) \
-+ (GL_LINK_WARNING ("vprintf is not always POSIX compliant - " \
-+ "use gnulib module vprintf-posix for portable " \
-+ "POSIX compliance"), \
-+ vprintf (f, a))
-+#endif
-+
-+#if @GNULIB_SNPRINTF@
-+# if @REPLACE_SNPRINTF@
-+# define snprintf rpl_snprintf
-+# endif
-+# if @REPLACE_SNPRINTF@ || !@HAVE_DECL_SNPRINTF@
-+extern int snprintf (char *str, size_t size, const char *format, ...)
-+ __attribute__ ((__format__ (__printf__, 3, 4)));
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef snprintf
-+# define snprintf \
-+ (GL_LINK_WARNING ("snprintf is unportable - " \
-+ "use gnulib module snprintf for portability"), \
-+ snprintf)
-+#endif
-+
-+#if @GNULIB_VSNPRINTF@
-+# if @REPLACE_VSNPRINTF@
-+# define vsnprintf rpl_vsnprintf
-+# endif
-+# if @REPLACE_VSNPRINTF@ || !@HAVE_DECL_VSNPRINTF@
-+extern int vsnprintf (char *str, size_t size, const char *format, va_list args)
-+ __attribute__ ((__format__ (__printf__, 3, 0)));
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef vsnprintf
-+# define vsnprintf(b,s,f,a) \
-+ (GL_LINK_WARNING ("vsnprintf is unportable - " \
-+ "use gnulib module vsnprintf for portability"), \
-+ vsnprintf (b, s, f, a))
-+#endif
-+
-+#if @GNULIB_SPRINTF_POSIX@
-+# if @REPLACE_SPRINTF@
-+# define sprintf rpl_sprintf
-+extern int sprintf (char *str, const char *format, ...)
-+ __attribute__ ((__format__ (__printf__, 2, 3)));
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef sprintf
-+# define sprintf \
-+ (GL_LINK_WARNING ("sprintf is not always POSIX compliant - " \
-+ "use gnulib module sprintf-posix for portable " \
-+ "POSIX compliance"), \
-+ sprintf)
-+#endif
-+
-+#if @GNULIB_VSPRINTF_POSIX@
-+# if @REPLACE_VSPRINTF@
-+# define vsprintf rpl_vsprintf
-+extern int vsprintf (char *str, const char *format, va_list args)
-+ __attribute__ ((__format__ (__printf__, 2, 0)));
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef vsprintf
-+# define vsprintf(b,f,a) \
-+ (GL_LINK_WARNING ("vsprintf is not always POSIX compliant - " \
-+ "use gnulib module vsprintf-posix for portable " \
-+ "POSIX compliance"), \
-+ vsprintf (b, f, a))
-+#endif
-+
-+#if @GNULIB_VASPRINTF@
-+# if @REPLACE_VASPRINTF@
-+# define asprintf rpl_asprintf
-+# define vasprintf rpl_vasprintf
-+# endif
-+# if @REPLACE_VASPRINTF@ || !@HAVE_VASPRINTF@
-+ /* Write formatted output to a string dynamically allocated with malloc().
-+ If the memory allocation succeeds, store the address of the string in
-+ *RESULT and return the number of resulting bytes, excluding the trailing
-+ NUL. Upon memory allocation error, or some other error, return -1. */
-+ extern int asprintf (char **result, const char *format, ...)
-+ __attribute__ ((__format__ (__printf__, 2, 3)));
-+ extern int vasprintf (char **result, const char *format, va_list args)
-+ __attribute__ ((__format__ (__printf__, 2, 0)));
-+# endif
-+#endif
-+
-+#if @GNULIB_OBSTACK_PRINTF@
-+# if @REPLACE_OBSTACK_PRINTF@
-+# define obstack_printf rpl_osbtack_printf
-+# define obstack_vprintf rpl_obstack_vprintf
-+# endif
-+# if @REPLACE_OBSTACK_PRINTF@ || !@HAVE_DECL_OBSTACK_PRINTF@
-+ struct obstack;
-+ /* Grow an obstack with formatted output. Return the number of
-+ bytes added to OBS. No trailing nul byte is added, and the
-+ object should be closed with obstack_finish before use. Upon
-+ memory allocation error, call obstack_alloc_failed_handler. Upon
-+ other error, return -1. */
-+ extern int obstack_printf (struct obstack *obs, const char *format, ...)
-+ __attribute__ ((__format__ (__printf__, 2, 3)));
-+ extern int obstack_vprintf (struct obstack *obs, const char *format,
-+ va_list args)
-+ __attribute__ ((__format__ (__printf__, 2, 0)));
-+# endif
-+#endif
-+
-+#if @GNULIB_FOPEN@
-+# if @REPLACE_FOPEN@
-+# undef fopen
-+# define fopen rpl_fopen
-+extern FILE * fopen (const char *filename, const char *mode);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef fopen
-+# define fopen(f,m) \
-+ (GL_LINK_WARNING ("fopen on Win32 platforms is not POSIX compatible - " \
-+ "use gnulib module fopen for portability"), \
-+ fopen (f, m))
-+#endif
-+
-+#if @GNULIB_FREOPEN@
-+# if @REPLACE_FREOPEN@
-+# undef freopen
-+# define freopen rpl_freopen
-+extern FILE * freopen (const char *filename, const char *mode, FILE *stream);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef freopen
-+# define freopen(f,m,s) \
-+ (GL_LINK_WARNING ("freopen on Win32 platforms is not POSIX compatible - " \
-+ "use gnulib module freopen for portability"), \
-+ freopen (f, m, s))
-+#endif
-+
-+#if @GNULIB_FSEEKO@
-+# if @REPLACE_FSEEKO@
-+/* Provide fseek, fseeko functions that are aware of a preceding
-+ fflush(), and which detect pipes. */
-+# define fseeko rpl_fseeko
-+extern int fseeko (FILE *fp, off_t offset, int whence);
-+# define fseek(fp, offset, whence) fseeko (fp, (off_t)(offset), whence)
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef fseeko
-+# define fseeko(f,o,w) \
-+ (GL_LINK_WARNING ("fseeko is unportable - " \
-+ "use gnulib module fseeko for portability"), \
-+ fseeko (f, o, w))
-+#endif
-+
-+#if @GNULIB_FSEEK@ && @REPLACE_FSEEK@
-+extern int rpl_fseek (FILE *fp, long offset, int whence);
-+# undef fseek
-+# if defined GNULIB_POSIXCHECK
-+# define fseek(f,o,w) \
-+ (GL_LINK_WARNING ("fseek cannot handle files larger than 4 GB " \
-+ "on 32-bit platforms - " \
-+ "use fseeko function for handling of large files"), \
-+ rpl_fseek (f, o, w))
-+# else
-+# define fseek rpl_fseek
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# ifndef fseek
-+# define fseek(f,o,w) \
-+ (GL_LINK_WARNING ("fseek cannot handle files larger than 4 GB " \
-+ "on 32-bit platforms - " \
-+ "use fseeko function for handling of large files"), \
-+ fseek (f, o, w))
-+# endif
-+#endif
-+
-+#if @GNULIB_FTELLO@
-+# if @REPLACE_FTELLO@
-+# define ftello rpl_ftello
-+extern off_t ftello (FILE *fp);
-+# define ftell(fp) ftello (fp)
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef ftello
-+# define ftello(f) \
-+ (GL_LINK_WARNING ("ftello is unportable - " \
-+ "use gnulib module ftello for portability"), \
-+ ftello (f))
-+#endif
-+
-+#if @GNULIB_FTELL@ && @REPLACE_FTELL@
-+extern long rpl_ftell (FILE *fp);
-+# undef ftell
-+# if GNULIB_POSIXCHECK
-+# define ftell(f) \
-+ (GL_LINK_WARNING ("ftell cannot handle files larger than 4 GB " \
-+ "on 32-bit platforms - " \
-+ "use ftello function for handling of large files"), \
-+ rpl_ftell (f))
-+# else
-+# define ftell rpl_ftell
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# ifndef ftell
-+# define ftell(f) \
-+ (GL_LINK_WARNING ("ftell cannot handle files larger than 4 GB " \
-+ "on 32-bit platforms - " \
-+ "use ftello function for handling of large files"), \
-+ ftell (f))
-+# endif
-+#endif
-+
-+#if @GNULIB_FFLUSH@
-+# if @REPLACE_FFLUSH@
-+# define fflush rpl_fflush
-+ /* Flush all pending data on STREAM according to POSIX rules. Both
-+ output and seekable input streams are supported.
-+ Note! LOSS OF DATA can occur if fflush is applied on an input stream
-+ that is _not_seekable_ or on an update stream that is _not_seekable_
-+ and in which the most recent operation was input. Seekability can
-+ be tested with lseek(fileno(fp),0,SEEK_CUR). */
-+ extern int fflush (FILE *gl_stream);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef fflush
-+# define fflush(f) \
-+ (GL_LINK_WARNING ("fflush is not always POSIX compliant - " \
-+ "use gnulib module fflush for portable " \
-+ "POSIX compliance"), \
-+ fflush (f))
-+#endif
-+
-+#if @GNULIB_FPUTC@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
-+# undef fputc
-+# define fputc rpl_fputc
-+extern int fputc (int c, FILE *stream);
-+#endif
-+
-+#if @GNULIB_PUTC@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
-+# undef putc
-+# define putc rpl_fputc
-+extern int putc (int c, FILE *stream);
-+#endif
-+
-+#if @GNULIB_PUTCHAR@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
-+# undef putchar
-+# define putchar rpl_putchar
-+extern int putchar (int c);
-+#endif
-+
-+#if @GNULIB_FPUTS@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
-+# undef fputs
-+# define fputs rpl_fputs
-+extern int fputs (const char *string, FILE *stream);
-+#endif
-+
-+#if @GNULIB_PUTS@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
-+# undef puts
-+# define puts rpl_puts
-+extern int puts (const char *string);
-+#endif
-+
-+#if @GNULIB_FWRITE@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
-+# undef fwrite
-+# define fwrite rpl_fwrite
-+extern size_t fwrite (const void *ptr, size_t s, size_t n, FILE *stream);
-+#endif
-+
-+#if @GNULIB_GETDELIM@
-+# if !@HAVE_DECL_GETDELIM@
-+/* Read input, up to (and including) the next occurrence of DELIMITER, from
-+ STREAM, store it in *LINEPTR (and NUL-terminate it).
-+ *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE
-+ bytes of space. It is realloc'd as necessary.
-+ Return the number of bytes read and stored at *LINEPTR (not including the
-+ NUL terminator), or -1 on error or EOF. */
-+extern ssize_t getdelim (char **lineptr, size_t *linesize, int delimiter,
-+ FILE *stream);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef getdelim
-+# define getdelim(l, s, d, f) \
-+ (GL_LINK_WARNING ("getdelim is unportable - " \
-+ "use gnulib module getdelim for portability"), \
-+ getdelim (l, s, d, f))
-+#endif
-+
-+#if @GNULIB_GETLINE@
-+# if @REPLACE_GETLINE@
-+# undef getline
-+# define getline rpl_getline
-+# endif
-+# if !@HAVE_DECL_GETLINE@ || @REPLACE_GETLINE@
-+/* Read a line, up to (and including) the next newline, from STREAM, store it
-+ in *LINEPTR (and NUL-terminate it).
-+ *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE
-+ bytes of space. It is realloc'd as necessary.
-+ Return the number of bytes read and stored at *LINEPTR (not including the
-+ NUL terminator), or -1 on error or EOF. */
-+extern ssize_t getline (char **lineptr, size_t *linesize, FILE *stream);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef getline
-+# define getline(l, s, f) \
-+ (GL_LINK_WARNING ("getline is unportable - " \
-+ "use gnulib module getline for portability"), \
-+ getline (l, s, f))
-+#endif
-+
-+#if @GNULIB_PERROR@
-+# if @REPLACE_PERROR@
-+# define perror rpl_perror
-+/* Print a message to standard error, describing the value of ERRNO,
-+ (if STRING is not NULL and not empty) prefixed with STRING and ": ",
-+ and terminated with a newline. */
-+extern void perror (const char *string);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef perror
-+# define perror(s) \
-+ (GL_LINK_WARNING ("perror is not always POSIX compliant - " \
-+ "use gnulib module perror for portability"), \
-+ perror (s))
-+#endif
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* _GL_STDIO_H */
-+#endif /* _GL_STDIO_H */
-+#endif
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/stdio-write.c gtk-vnc-0.3.7.gnulib/gnulib/lib/stdio-write.c
---- gtk-vnc-0.3.7.dan3/gnulib/lib/stdio-write.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/stdio-write.c 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,148 @@
-+/* POSIX compatible FILE stream write function.
-+ Copyright (C) 2008 Free Software Foundation, Inc.
-+ Written by Bruno Haible <bruno@clisp.org>, 2008.
-+
-+ This program is free software: you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
-+
-+#include <config.h>
-+
-+/* Specification. */
-+#include <stdio.h>
-+
-+/* Replace these functions only if module 'sigpipe' is requested. */
-+#if GNULIB_SIGPIPE
-+
-+/* On native Windows platforms, SIGPIPE does not exist. When write() is
-+ called on a pipe with no readers, WriteFile() fails with error
-+ GetLastError() = ERROR_NO_DATA, and write() in consequence fails with
-+ error EINVAL. This write() function is at the basis of the function
-+ which flushes the buffer of a FILE stream. */
-+
-+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-+
-+# include <errno.h>
-+# include <signal.h>
-+# include <io.h>
-+
-+# define WIN32_LEAN_AND_MEAN /* avoid including junk */
-+# include <windows.h>
-+
-+# define CALL_WITH_SIGPIPE_EMULATION(RETTYPE, EXPRESSION, FAILED) \
-+ if (ferror (stream)) \
-+ return (EXPRESSION); \
-+ else \
-+ { \
-+ RETTYPE ret; \
-+ SetLastError (0); \
-+ ret = (EXPRESSION); \
-+ if (FAILED && GetLastError () == ERROR_NO_DATA && ferror (stream)) \
-+ { \
-+ int fd = fileno (stream); \
-+ if (fd >= 0 \
-+ && GetFileType ((HANDLE) _get_osfhandle (fd)) == FILE_TYPE_PIPE)\
-+ { \
-+ /* Try to raise signal SIGPIPE. */ \
-+ raise (SIGPIPE); \
-+ /* If it is currently blocked or ignored, change errno from \
-+ EINVAL to EPIPE. */ \
-+ errno = EPIPE; \
-+ } \
-+ } \
-+ return ret; \
-+ }
-+
-+# if !REPLACE_PRINTF_POSIX /* avoid collision with printf.c */
-+int
-+printf (const char *format, ...)
-+{
-+ int retval;
-+ va_list args;
-+
-+ va_start (args, format);
-+ retval = vfprintf (stdout, format, args);
-+ va_end (args);
-+
-+ return retval;
-+}
-+# endif
-+
-+# if !REPLACE_FPRINTF_POSIX /* avoid collision with fprintf.c */
-+int
-+fprintf (FILE *stream, const char *format, ...)
-+{
-+ int retval;
-+ va_list args;
-+
-+ va_start (args, format);
-+ retval = vfprintf (stream, format, args);
-+ va_end (args);
-+
-+ return retval;
-+}
-+# endif
-+
-+# if !REPLACE_VFPRINTF_POSIX /* avoid collision with vprintf.c */
-+int
-+vprintf (const char *format, va_list args)
-+{
-+ return vfprintf (stdout, format, args);
-+}
-+# endif
-+
-+# if !REPLACE_VPRINTF_POSIX /* avoid collision with vfprintf.c */
-+int
-+vfprintf (FILE *stream, const char *format, va_list args)
-+#undef vfprintf
-+{
-+ CALL_WITH_SIGPIPE_EMULATION (int, vfprintf (stream, format, args), ret == EOF)
-+}
-+# endif
-+
-+int
-+putchar (int c)
-+{
-+ return fputc (c, stdout);
-+}
-+
-+int
-+fputc (int c, FILE *stream)
-+#undef fputc
-+{
-+ CALL_WITH_SIGPIPE_EMULATION (int, fputc (c, stream), ret == EOF)
-+}
-+
-+int
-+fputs (const char *string, FILE *stream)
-+#undef fputs
-+{
-+ CALL_WITH_SIGPIPE_EMULATION (int, fputs (string, stream), ret == EOF)
-+}
-+
-+int
-+puts (const char *string)
-+#undef puts
-+{
-+ FILE *stream = stdout;
-+ CALL_WITH_SIGPIPE_EMULATION (int, puts (string), ret == EOF)
-+}
-+
-+size_t
-+fwrite (const void *ptr, size_t s, size_t n, FILE *stream)
-+#undef fwrite
-+{
-+ CALL_WITH_SIGPIPE_EMULATION (size_t, fwrite (ptr, s, n, stream), ret < n)
-+}
-+
-+# endif
-+#endif
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/stdlib.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/stdlib.in.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/stdlib.in.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/stdlib.in.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,242 @@
-+/* A GNU-like <stdlib.h>.
-+
-+ Copyright (C) 1995, 2001-2004, 2006-2008 Free Software Foundation, Inc.
-+
-+ This program is free software: you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
-+
-+@PRAGMA_SYSTEM_HEADER@
-+
-+#if defined __need_malloc_and_calloc
-+/* Special invocation convention inside glibc header files. */
-+
-+#@INCLUDE_NEXT@ @NEXT_STDLIB_H@
-+
-+#else
-+/* Normal invocation convention. */
-+
-+#ifndef _GL_STDLIB_H
-+
-+/* The include_next requires a split double-inclusion guard. */
-+#@INCLUDE_NEXT@ @NEXT_STDLIB_H@
-+
-+#ifndef _GL_STDLIB_H
-+#define _GL_STDLIB_H
-+
-+
-+/* The definition of GL_LINK_WARNING is copied here. */
-+
-+
-+/* Some systems do not define EXIT_*, despite otherwise supporting C89. */
-+#ifndef EXIT_SUCCESS
-+# define EXIT_SUCCESS 0
-+#endif
-+/* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere
-+ with proper operation of xargs. */
-+#ifndef EXIT_FAILURE
-+# define EXIT_FAILURE 1
-+#elif EXIT_FAILURE != 1
-+# undef EXIT_FAILURE
-+# define EXIT_FAILURE 1
-+#endif
-+
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+
-+#if @GNULIB_MALLOC_POSIX@
-+# if !@HAVE_MALLOC_POSIX@
-+# undef malloc
-+# define malloc rpl_malloc
-+extern void * malloc (size_t size);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef malloc
-+# define malloc(s) \
-+ (GL_LINK_WARNING ("malloc is not POSIX compliant everywhere - " \
-+ "use gnulib module malloc-posix for portability"), \
-+ malloc (s))
-+#endif
-+
-+
-+#if @GNULIB_REALLOC_POSIX@
-+# if !@HAVE_REALLOC_POSIX@
-+# undef realloc
-+# define realloc rpl_realloc
-+extern void * realloc (void *ptr, size_t size);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef realloc
-+# define realloc(p,s) \
-+ (GL_LINK_WARNING ("realloc is not POSIX compliant everywhere - " \
-+ "use gnulib module realloc-posix for portability"), \
-+ realloc (p, s))
-+#endif
-+
-+
-+#if @GNULIB_CALLOC_POSIX@
-+# if !@HAVE_CALLOC_POSIX@
-+# undef calloc
-+# define calloc rpl_calloc
-+extern void * calloc (size_t nmemb, size_t size);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef calloc
-+# define calloc(n,s) \
-+ (GL_LINK_WARNING ("calloc is not POSIX compliant everywhere - " \
-+ "use gnulib module calloc-posix for portability"), \
-+ calloc (n, s))
-+#endif
-+
-+
-+#if @GNULIB_GETSUBOPT@
-+/* Assuming *OPTIONP is a comma separated list of elements of the form
-+ "token" or "token=value", getsubopt parses the first of these elements.
-+ If the first element refers to a "token" that is member of the given
-+ NULL-terminated array of tokens:
-+ - It replaces the comma with a NUL byte, updates *OPTIONP to point past
-+ the first option and the comma, sets *VALUEP to the value of the
-+ element (or NULL if it doesn't contain an "=" sign),
-+ - It returns the index of the "token" in the given array of tokens.
-+ Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined.
-+ For more details see the POSIX:2001 specification.
-+ http://www.opengroup.org/susv3xsh/getsubopt.html */
-+# if !@HAVE_GETSUBOPT@
-+extern int getsubopt (char **optionp, char *const *tokens, char **valuep);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef getsubopt
-+# define getsubopt(o,t,v) \
-+ (GL_LINK_WARNING ("getsubopt is unportable - " \
-+ "use gnulib module getsubopt for portability"), \
-+ getsubopt (o, t, v))
-+#endif
-+
-+
-+#if @GNULIB_MKDTEMP@
-+# if !@HAVE_MKDTEMP@
-+/* Create a unique temporary directory from TEMPLATE.
-+ The last six characters of TEMPLATE must be "XXXXXX";
-+ they are replaced with a string that makes the directory name unique.
-+ Returns TEMPLATE, or a null pointer if it cannot get a unique name.
-+ The directory is created mode 700. */
-+extern char * mkdtemp (char * /*template*/);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef mkdtemp
-+# define mkdtemp(t) \
-+ (GL_LINK_WARNING ("mkdtemp is unportable - " \
-+ "use gnulib module mkdtemp for portability"), \
-+ mkdtemp (t))
-+#endif
-+
-+
-+#if @GNULIB_MKSTEMP@
-+# if @REPLACE_MKSTEMP@
-+/* Create a unique temporary file from TEMPLATE.
-+ The last six characters of TEMPLATE must be "XXXXXX";
-+ they are replaced with a string that makes the file name unique.
-+ The file is then created, ensuring it didn't exist before.
-+ The file is created read-write (mask at least 0600 & ~umask), but it may be
-+ world-readable and world-writable (mask 0666 & ~umask), depending on the
-+ implementation.
-+ Returns the open file descriptor if successful, otherwise -1 and errno
-+ set. */
-+# define mkstemp rpl_mkstemp
-+extern int mkstemp (char * /*template*/);
-+# else
-+/* On MacOS X 10.3, only <unistd.h> declares mkstemp. */
-+# include <unistd.h>
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef mkstemp
-+# define mkstemp(t) \
-+ (GL_LINK_WARNING ("mkstemp is unportable - " \
-+ "use gnulib module mkstemp for portability"), \
-+ mkstemp (t))
-+#endif
-+
-+
-+#if @GNULIB_PUTENV@
-+# if @REPLACE_PUTENV@
-+# undef putenv
-+# define putenv rpl_putenv
-+extern int putenv (char *string);
-+# endif
-+#endif
-+
-+
-+#if @GNULIB_RPMATCH@
-+# if !@HAVE_RPMATCH@
-+/* Test a user response to a question.
-+ Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */
-+extern int rpmatch (const char *response);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef rpmatch
-+# define rpmatch(r) \
-+ (GL_LINK_WARNING ("rpmatch is unportable - " \
-+ "use gnulib module rpmatch for portability"), \
-+ rpmatch (r))
-+#endif
-+
-+
-+#if @GNULIB_SETENV@
-+# if !@HAVE_SETENV@
-+/* Set NAME to VALUE in the environment.
-+ If REPLACE is nonzero, overwrite an existing value. */
-+extern int setenv (const char *name, const char *value, int replace);
-+# endif
-+#endif
-+
-+
-+#if @GNULIB_UNSETENV@
-+# if @HAVE_UNSETENV@
-+# if @VOID_UNSETENV@
-+/* On some systems, unsetenv() returns void.
-+ This is the case for MacOS X 10.3, FreeBSD 4.8, NetBSD 1.6, OpenBSD 3.4. */
-+# define unsetenv(name) ((unsetenv)(name), 0)
-+# endif
-+# else
-+/* Remove the variable NAME from the environment. */
-+extern int unsetenv (const char *name);
-+# endif
-+#endif
-+
-+
-+#if @GNULIB_STRTOD@
-+# if @REPLACE_STRTOD@
-+# define strtod rpl_strtod
-+# endif
-+# if !@HAVE_STRTOD@ || @REPLACE_STRTOD@
-+ /* Parse a double from STRING, updating ENDP if appropriate. */
-+extern double strtod (const char *str, char **endp);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef strtod
-+# define strtod(s, e) \
-+ (GL_LINK_WARNING ("strtod is unportable - " \
-+ "use gnulib module strtod for portability"), \
-+ strtod (s, e))
-+#endif
-+
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* _GL_STDLIB_H */
-+#endif /* _GL_STDLIB_H */
-+#endif
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/sys_socket.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/sys_socket.in.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/sys_socket.in.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/sys_socket.in.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,386 @@
-+/* Provide a sys/socket header file for systems lacking it (read: MinGW)
-+ and for systems where it is incomplete.
-+ Copyright (C) 2005-2008 Free Software Foundation, Inc.
-+ Written by Simon Josefsson.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+/* This file is supposed to be used on platforms that lack <sys/socket.h>,
-+ on platforms where <sys/socket.h> cannot be included standalone, and on
-+ platforms where <sys/socket.h> does not provide all necessary definitions.
-+ It is intended to provide definitions and prototypes needed by an
-+ application. */
-+
-+#ifndef _GL_SYS_SOCKET_H
-+
-+#if @HAVE_SYS_SOCKET_H@
-+
-+@PRAGMA_SYSTEM_HEADER@
-+
-+/* On many platforms, <sys/socket.h> assumes prior inclusion of
-+ <sys/types.h>. */
-+# include <sys/types.h>
-+
-+/* The include_next requires a split double-inclusion guard. */
-+# @INCLUDE_NEXT@ @NEXT_SYS_SOCKET_H@
-+
-+#endif
-+
-+#ifndef _GL_SYS_SOCKET_H
-+#define _GL_SYS_SOCKET_H
-+
-+#if @HAVE_SYS_SOCKET_H@
-+
-+/* A platform that has <sys/socket.h>. */
-+
-+/* For shutdown(). */
-+# if !defined SHUT_RD
-+# define SHUT_RD 0
-+# endif
-+# if !defined SHUT_WR
-+# define SHUT_WR 1
-+# endif
-+# if !defined SHUT_RDWR
-+# define SHUT_RDWR 2
-+# endif
-+
-+#else
-+
-+# ifdef __CYGWIN__
-+# error "Cygwin does have a sys/socket.h, doesn't it?!?"
-+# endif
-+
-+/* A platform that lacks <sys/socket.h>.
-+
-+ Currently only MinGW is supported. See the gnulib manual regarding
-+ Windows sockets. MinGW has the header files winsock2.h and
-+ ws2tcpip.h that declare the sys/socket.h definitions we need. Note
-+ that you can influence which definitions you get by setting the
-+ WINVER symbol before including these two files. For example,
-+ getaddrinfo is only available if _WIN32_WINNT >= 0x0501 (that
-+ symbol is set indiriectly through WINVER). You can set this by
-+ adding AC_DEFINE(WINVER, 0x0501) to configure.ac. Note that your
-+ code may not run on older Windows releases then. My Windows 2000
-+ box was not able to run the code, for example. The situation is
-+ slightly confusing because:
-+ http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/getaddrinfo_2.asp
-+ suggests that getaddrinfo should be available on all Windows
-+ releases. */
-+
-+
-+# if @HAVE_WINSOCK2_H@
-+# include <winsock2.h>
-+# endif
-+# if @HAVE_WS2TCPIP_H@
-+# include <ws2tcpip.h>
-+# endif
-+
-+/* For shutdown(). */
-+# if !defined SHUT_RD && defined SD_RECEIVE
-+# define SHUT_RD SD_RECEIVE
-+# endif
-+# if !defined SHUT_WR && defined SD_SEND
-+# define SHUT_WR SD_SEND
-+# endif
-+# if !defined SHUT_RDWR && defined SD_BOTH
-+# define SHUT_RDWR SD_BOTH
-+# endif
-+
-+/* The definition of GL_LINK_WARNING is copied here. */
-+
-+# if @HAVE_WINSOCK2_H@
-+/* Include headers needed by the emulation code. */
-+# include <sys/types.h>
-+# include <io.h>
-+
-+typedef int socklen_t;
-+
-+# endif
-+
-+# ifdef __cplusplus
-+extern "C" {
-+# endif
-+
-+# if @HAVE_WINSOCK2_H@
-+
-+/* Re-define FD_ISSET to avoid a WSA call while we are not using
-+ network sockets. */
-+static inline int
-+rpl_fd_isset (int fd, fd_set * set)
-+{
-+ int i;
-+ if (set == NULL)
-+ return 0;
-+
-+ for (i = 0; i < set->fd_count; i++)
-+ if (set->fd_array[i] == fd)
-+ return 1;
-+
-+ return 0;
-+}
-+
-+# undef FD_ISSET
-+# define FD_ISSET(fd, set) rpl_fd_isset(fd, set)
-+
-+# endif
-+
-+/* Wrap everything else to use libc file descriptors for sockets. */
-+
-+# if @HAVE_WINSOCK2_H@
-+# undef close
-+# define close rpl_close
-+extern int rpl_close(int);
-+# endif
-+
-+# if @GNULIB_SOCKET@
-+# if @HAVE_WINSOCK2_H@
-+# undef socket
-+# define socket rpl_socket
-+extern int rpl_socket (int, int, int protocol);
-+# endif
-+# elif @HAVE_WINSOCK2_H@
-+# undef socket
-+# define socket socket_used_without_requesting_gnulib_module_socket
-+# elif defined GNULIB_POSIXCHECK
-+# undef socket
-+# define socket(d,t,p) \
-+ (GL_LINK_WARNING ("socket is not always POSIX compliant - " \
-+ "use gnulib module socket for portability"), \
-+ socket (d, t, p))
-+# endif
-+
-+# if @GNULIB_CONNECT@
-+# if @HAVE_WINSOCK2_H@
-+# undef connect
-+# define connect rpl_connect
-+extern int rpl_connect (int, struct sockaddr *, int);
-+# endif
-+# elif @HAVE_WINSOCK2_H@
-+# undef connect
-+# define connect socket_used_without_requesting_gnulib_module_connect
-+# elif defined GNULIB_POSIXCHECK
-+# undef connect
-+# define connect(s,a,l) \
-+ (GL_LINK_WARNING ("connect is not always POSIX compliant - " \
-+ "use gnulib module connect for portability"), \
-+ connect (s, a, l))
-+# endif
-+
-+# if @GNULIB_ACCEPT@
-+# if @HAVE_WINSOCK2_H@
-+# undef accept
-+# define accept rpl_accept
-+extern int rpl_accept (int, struct sockaddr *, int *);
-+# endif
-+# elif @HAVE_WINSOCK2_H@
-+# undef accept
-+# define accept accept_used_without_requesting_gnulib_module_accept
-+# elif defined GNULIB_POSIXCHECK
-+# undef accept
-+# define accept(s,a,l) \
-+ (GL_LINK_WARNING ("accept is not always POSIX compliant - " \
-+ "use gnulib module accept for portability"), \
-+ accept (s, a, l))
-+# endif
-+
-+# if @GNULIB_BIND@
-+# if @HAVE_WINSOCK2_H@
-+# undef bind
-+# define bind rpl_bind
-+extern int rpl_bind (int, struct sockaddr *, int);
-+# endif
-+# elif @HAVE_WINSOCK2_H@
-+# undef bind
-+# define bind bind_used_without_requesting_gnulib_module_bind
-+# elif defined GNULIB_POSIXCHECK
-+# undef bind
-+# define bind(s,a,l) \
-+ (GL_LINK_WARNING ("bind is not always POSIX compliant - " \
-+ "use gnulib module bind for portability"), \
-+ bind (s, a, l))
-+# endif
-+
-+# if @GNULIB_GETPEERNAME@
-+# if @HAVE_WINSOCK2_H@
-+# undef getpeername
-+# define getpeername rpl_getpeername
-+extern int rpl_getpeername (int, struct sockaddr *, int *);
-+# endif
-+# elif @HAVE_WINSOCK2_H@
-+# undef getpeername
-+# define getpeername getpeername_used_without_requesting_gnulib_module_getpeername
-+# elif defined GNULIB_POSIXCHECK
-+# undef getpeername
-+# define getpeername(s,a,l) \
-+ (GL_LINK_WARNING ("getpeername is not always POSIX compliant - " \
-+ "use gnulib module getpeername for portability"), \
-+ getpeername (s, a, l))
-+# endif
-+
-+# if @GNULIB_GETSOCKNAME@
-+# if @HAVE_WINSOCK2_H@
-+# undef getsockname
-+# define getsockname rpl_getsockname
-+extern int rpl_getsockname (int, struct sockaddr *, int *);
-+# endif
-+# elif @HAVE_WINSOCK2_H@
-+# undef getsockname
-+# define getsockname getsockname_used_without_requesting_gnulib_module_getsockname
-+# elif defined GNULIB_POSIXCHECK
-+# undef getsockname
-+# define getsockname(s,a,l) \
-+ (GL_LINK_WARNING ("getsockname is not always POSIX compliant - " \
-+ "use gnulib module getsockname for portability"), \
-+ getsockname (s, a, l))
-+# endif
-+
-+# if @GNULIB_GETSOCKOPT@
-+# if @HAVE_WINSOCK2_H@
-+# undef getsockopt
-+# define getsockopt rpl_getsockopt
-+extern int rpl_getsockopt (int, int, int, void *, int *);
-+# endif
-+# elif @HAVE_WINSOCK2_H@
-+# undef getsockopt
-+# define getsockopt getsockopt_used_without_requesting_gnulib_module_getsockopt
-+# elif defined GNULIB_POSIXCHECK
-+# undef getsockopt
-+# define getsockopt(s,lvl,o,v,l) \
-+ (GL_LINK_WARNING ("getsockopt is not always POSIX compliant - " \
-+ "use gnulib module getsockopt for portability"), \
-+ getsockopt (s, lvl, o, v, l))
-+# endif
-+
-+# if @GNULIB_LISTEN@
-+# if @HAVE_WINSOCK2_H@
-+# undef listen
-+# define listen rpl_listen
-+extern int rpl_listen (int, int);
-+# endif
-+# elif @HAVE_WINSOCK2_H@
-+# undef listen
-+# define listen listen_used_without_requesting_gnulib_module_listen
-+# elif defined GNULIB_POSIXCHECK
-+# undef listen
-+# define listen(s,b) \
-+ (GL_LINK_WARNING ("listen is not always POSIX compliant - " \
-+ "use gnulib module listen for portability"), \
-+ listen (s, b))
-+# endif
-+
-+# if @HAVE_WINSOCK2_H@
-+# undef ioctl
-+# define ioctl rpl_ioctl
-+extern int rpl_ioctl (int, unsigned long, char *);
-+# endif
-+
-+# if @GNULIB_RECV@
-+# if @HAVE_WINSOCK2_H@
-+# undef recv
-+# define recv rpl_recv
-+extern int rpl_recv (int, void *, int, int);
-+# endif
-+# elif @HAVE_WINSOCK2_H@
-+# undef recv
-+# define recv recv_used_without_requesting_gnulib_module_recv
-+# elif defined GNULIB_POSIXCHECK
-+# undef recv
-+# define recv(s,b,n,f) \
-+ (GL_LINK_WARNING ("recv is not always POSIX compliant - " \
-+ "use gnulib module recv for portability"), \
-+ recv (s, b, n, f))
-+# endif
-+
-+# if @GNULIB_SEND@
-+# if @HAVE_WINSOCK2_H@
-+# undef send
-+# define send rpl_send
-+extern int rpl_send (int, const void *, int, int);
-+# endif
-+# elif @HAVE_WINSOCK2_H@
-+# undef send
-+# define send send_used_without_requesting_gnulib_module_send
-+# elif defined GNULIB_POSIXCHECK
-+# undef send
-+# define send(s,b,n,f) \
-+ (GL_LINK_WARNING ("send is not always POSIX compliant - " \
-+ "use gnulib module send for portability"), \
-+ send (s, b, n, f))
-+# endif
-+
-+# if @GNULIB_RECVFROM@
-+# if @HAVE_WINSOCK2_H@
-+# undef recvfrom
-+# define recvfrom rpl_recvfrom
-+extern int rpl_recvfrom (int, void *, int, int, struct sockaddr *, int *);
-+# endif
-+# elif @HAVE_WINSOCK2_H@
-+# undef recvfrom
-+# define recvfrom recvfrom_used_without_requesting_gnulib_module_recvfrom
-+# elif defined GNULIB_POSIXCHECK
-+# undef recvfrom
-+# define recvfrom(s,b,n,f,a,l) \
-+ (GL_LINK_WARNING ("recvfrom is not always POSIX compliant - " \
-+ "use gnulib module recvfrom for portability"), \
-+ recvfrom (s, b, n, f, a, l))
-+# endif
-+
-+# if @GNULIB_SENDTO@
-+# if @HAVE_WINSOCK2_H@
-+# undef sendto
-+# define sendto rpl_sendto
-+extern int rpl_sendto (int, const void *, int, int, struct sockaddr *, int);
-+# endif
-+# elif @HAVE_WINSOCK2_H@
-+# undef sendto
-+# define sendto sendto_used_without_requesting_gnulib_module_sendto
-+# elif defined GNULIB_POSIXCHECK
-+# undef sendto
-+# define sendto(s,b,n,f,a,l) \
-+ (GL_LINK_WARNING ("sendto is not always POSIX compliant - " \
-+ "use gnulib module sendto for portability"), \
-+ sendto (s, b, n, f, a, l))
-+# endif
-+
-+# if @GNULIB_SETSOCKOPT@
-+# if @HAVE_WINSOCK2_H@
-+# undef setsockopt
-+# define setsockopt rpl_setsockopt
-+extern int rpl_setsockopt (int, int, int, const void *, int);
-+# endif
-+# elif @HAVE_WINSOCK2_H@
-+# undef setsockopt
-+# define setsockopt setsockopt_used_without_requesting_gnulib_module_setsockopt
-+# elif defined GNULIB_POSIXCHECK
-+# undef setsockopt
-+# define setsockopt(s,lvl,o,v,l) \
-+ (GL_LINK_WARNING ("setsockopt is not always POSIX compliant - " \
-+ "use gnulib module setsockopt for portability"), \
-+ setsockopt (s, lvl, o, v, l))
-+# endif
-+
-+# if @HAVE_WINSOCK2_H@
-+# undef select
-+# define select select_used_without_including_sys_select_h
-+# endif
-+
-+# ifdef __cplusplus
-+}
-+# endif
-+
-+#endif /* HAVE_SYS_SOCKET_H */
-+
-+#endif /* _GL_SYS_SOCKET_H */
-+#endif /* _GL_SYS_SOCKET_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/unistd.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/unistd.in.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/unistd.in.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/unistd.in.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,388 @@
-+/* Substitute for and wrapper around <unistd.h>.
-+ Copyright (C) 2004-2008 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#ifndef _GL_UNISTD_H
-+
-+@PRAGMA_SYSTEM_HEADER@
-+
-+/* The include_next requires a split double-inclusion guard. */
-+#if @HAVE_UNISTD_H@
-+# @INCLUDE_NEXT@ @NEXT_UNISTD_H@
-+#endif
-+
-+#ifndef _GL_UNISTD_H
-+#define _GL_UNISTD_H
-+
-+/* mingw doesn't define the SEEK_* macros in <unistd.h>. */
-+#if !(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET)
-+# include <stdio.h>
-+#endif
-+
-+/* mingw fails to declare _exit in <unistd.h>. */
-+#include <stdlib.h>
-+
-+#if @GNULIB_WRITE@ && @REPLACE_WRITE@ && @GNULIB_UNISTD_H_SIGPIPE@
-+/* Get ssize_t. */
-+# include <sys/types.h>
-+#endif
-+
-+/* The definition of GL_LINK_WARNING is copied here. */
-+
-+
-+/* Declare overridden functions. */
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+
-+#if @GNULIB_CHOWN@
-+# if @REPLACE_CHOWN@
-+# ifndef REPLACE_CHOWN
-+# define REPLACE_CHOWN 1
-+# endif
-+# if REPLACE_CHOWN
-+/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
-+ to GID (if GID is not -1). Follow symbolic links.
-+ Return 0 if successful, otherwise -1 and errno set.
-+ See the POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/chown.html>. */
-+# define chown rpl_chown
-+extern int chown (const char *file, uid_t uid, gid_t gid);
-+# endif
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef chown
-+# define chown(f,u,g) \
-+ (GL_LINK_WARNING ("chown fails to follow symlinks on some systems and " \
-+ "doesn't treat a uid or gid of -1 on some systems - " \
-+ "use gnulib module chown for portability"), \
-+ chown (f, u, g))
-+#endif
-+
-+
-+#if @GNULIB_DUP2@
-+# if !@HAVE_DUP2@
-+/* Copy the file descriptor OLDFD into file descriptor NEWFD. Do nothing if
-+ NEWFD = OLDFD, otherwise close NEWFD first if it is open.
-+ Return 0 if successful, otherwise -1 and errno set.
-+ See the POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/dup2.html>. */
-+extern int dup2 (int oldfd, int newfd);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef dup2
-+# define dup2(o,n) \
-+ (GL_LINK_WARNING ("dup2 is unportable - " \
-+ "use gnulib module dup2 for portability"), \
-+ dup2 (o, n))
-+#endif
-+
-+
-+#if @GNULIB_ENVIRON@
-+# if !@HAVE_DECL_ENVIRON@
-+/* Set of environment variables and values. An array of strings of the form
-+ "VARIABLE=VALUE", terminated with a NULL. */
-+# if defined __APPLE__ && defined __MACH__
-+# include <crt_externs.h>
-+# define environ (*_NSGetEnviron ())
-+# else
-+extern char **environ;
-+# endif
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef environ
-+# define environ \
-+ (GL_LINK_WARNING ("environ is unportable - " \
-+ "use gnulib module environ for portability"), \
-+ environ)
-+#endif
-+
-+
-+#if @GNULIB_FCHDIR@
-+# if @REPLACE_FCHDIR@
-+
-+/* Change the process' current working directory to the directory on which
-+ the given file descriptor is open.
-+ Return 0 if successful, otherwise -1 and errno set.
-+ See the POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/fchdir.html>. */
-+extern int fchdir (int /*fd*/);
-+
-+# define close rpl_close
-+extern int close (int);
-+# define dup rpl_dup
-+extern int dup (int);
-+# define dup2 rpl_dup2
-+extern int dup2 (int, int);
-+
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef fchdir
-+# define fchdir(f) \
-+ (GL_LINK_WARNING ("fchdir is unportable - " \
-+ "use gnulib module fchdir for portability"), \
-+ fchdir (f))
-+#endif
-+
-+
-+#if @GNULIB_FSYNC@
-+/* Synchronize changes to a file.
-+ Return 0 if successful, otherwise -1 and errno set.
-+ See POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/fsync.html>. */
-+# if !@HAVE_FSYNC@
-+extern int fsync (int fd);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef fsync
-+# define fsync(fd) \
-+ (GL_LINK_WARNING ("fsync is unportable - " \
-+ "use gnulib module fsync for portability"), \
-+ fsync (fd))
-+#endif
-+
-+
-+#if @GNULIB_FTRUNCATE@
-+# if !@HAVE_FTRUNCATE@
-+/* Change the size of the file to which FD is opened to become equal to LENGTH.
-+ Return 0 if successful, otherwise -1 and errno set.
-+ See the POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/ftruncate.html>. */
-+extern int ftruncate (int fd, off_t length);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef ftruncate
-+# define ftruncate(f,l) \
-+ (GL_LINK_WARNING ("ftruncate is unportable - " \
-+ "use gnulib module ftruncate for portability"), \
-+ ftruncate (f, l))
-+#endif
-+
-+
-+#if @GNULIB_GETCWD@
-+/* Include the headers that might declare getcwd so that they will not
-+ cause confusion if included after this file. */
-+# include <stdlib.h>
-+# if @REPLACE_GETCWD@
-+/* Get the name of the current working directory, and put it in SIZE bytes
-+ of BUF.
-+ Return BUF if successful, or NULL if the directory couldn't be determined
-+ or SIZE was too small.
-+ See the POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/getcwd.html>.
-+ Additionally, the gnulib module 'getcwd' guarantees the following GNU
-+ extension: If BUF is NULL, an array is allocated with 'malloc'; the array
-+ is SIZE bytes long, unless SIZE == 0, in which case it is as big as
-+ necessary. */
-+# define getcwd rpl_getcwd
-+extern char * getcwd (char *buf, size_t size);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef getcwd
-+# define getcwd(b,s) \
-+ (GL_LINK_WARNING ("getcwd is unportable - " \
-+ "use gnulib module getcwd for portability"), \
-+ getcwd (b, s))
-+#endif
-+
-+
-+#if @GNULIB_GETDTABLESIZE@
-+# if !@HAVE_GETDTABLESIZE@
-+/* Return the maximum number of file descriptors in the current process. */
-+extern int getdtablesize (void);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef getdtablesize
-+# define getdtablesize() \
-+ (GL_LINK_WARNING ("getdtablesize is unportable - " \
-+ "use gnulib module getdtablesize for portability"), \
-+ getdtablesize ())
-+#endif
-+
-+
-+#if @GNULIB_GETLOGIN_R@
-+/* Copies the user's login name to NAME.
-+ The array pointed to by NAME has room for SIZE bytes.
-+
-+ Returns 0 if successful. Upon error, an error number is returned, or -1 in
-+ the case that the login name cannot be found but no specific error is
-+ provided (this case is hopefully rare but is left open by the POSIX spec).
-+
-+ See <http://www.opengroup.org/susv3xsh/getlogin.html>.
-+ */
-+# if !@HAVE_DECL_GETLOGIN_R@
-+# include <stddef.h>
-+extern int getlogin_r (char *name, size_t size);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef getlogin_r
-+# define getlogin_r(n,s) \
-+ (GL_LINK_WARNING ("getlogin_r is unportable - " \
-+ "use gnulib module getlogin_r for portability"), \
-+ getlogin_r (n, s))
-+#endif
-+
-+
-+#if @GNULIB_GETPAGESIZE@
-+# if @REPLACE_GETPAGESIZE@
-+# define getpagesize rpl_getpagesize
-+extern int getpagesize (void);
-+# elif !@HAVE_GETPAGESIZE@
-+/* This is for POSIX systems. */
-+# if !defined getpagesize && defined _SC_PAGESIZE
-+# if ! (defined __VMS && __VMS_VER < 70000000)
-+# define getpagesize() sysconf (_SC_PAGESIZE)
-+# endif
-+# endif
-+/* This is for older VMS. */
-+# if !defined getpagesize && defined __VMS
-+# ifdef __ALPHA
-+# define getpagesize() 8192
-+# else
-+# define getpagesize() 512
-+# endif
-+# endif
-+/* This is for BeOS. */
-+# if !defined getpagesize && @HAVE_OS_H@
-+# include <OS.h>
-+# if defined B_PAGE_SIZE
-+# define getpagesize() B_PAGE_SIZE
-+# endif
-+# endif
-+/* This is for AmigaOS4.0. */
-+# if !defined getpagesize && defined __amigaos4__
-+# define getpagesize() 2048
-+# endif
-+/* This is for older Unix systems. */
-+# if !defined getpagesize && @HAVE_SYS_PARAM_H@
-+# include <sys/param.h>
-+# ifdef EXEC_PAGESIZE
-+# define getpagesize() EXEC_PAGESIZE
-+# else
-+# ifdef NBPG
-+# ifndef CLSIZE
-+# define CLSIZE 1
-+# endif
-+# define getpagesize() (NBPG * CLSIZE)
-+# else
-+# ifdef NBPC
-+# define getpagesize() NBPC
-+# endif
-+# endif
-+# endif
-+# endif
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef getpagesize
-+# define getpagesize() \
-+ (GL_LINK_WARNING ("getpagesize is unportable - " \
-+ "use gnulib module getpagesize for portability"), \
-+ getpagesize ())
-+#endif
-+
-+
-+#if @GNULIB_LCHOWN@
-+# if @REPLACE_LCHOWN@
-+/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
-+ to GID (if GID is not -1). Do not follow symbolic links.
-+ Return 0 if successful, otherwise -1 and errno set.
-+ See the POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/lchown.html>. */
-+# define lchown rpl_lchown
-+extern int lchown (char const *file, uid_t owner, gid_t group);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef lchown
-+# define lchown(f,u,g) \
-+ (GL_LINK_WARNING ("lchown is unportable to pre-POSIX.1-2001 " \
-+ "systems - use gnulib module lchown for portability"), \
-+ lchown (f, u, g))
-+#endif
-+
-+
-+#if @GNULIB_LSEEK@
-+# if @REPLACE_LSEEK@
-+/* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END.
-+ Return the new offset if successful, otherwise -1 and errno set.
-+ See the POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/lseek.html>. */
-+# define lseek rpl_lseek
-+ extern off_t lseek (int fd, off_t offset, int whence);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef lseek
-+# define lseek(f,o,w) \
-+ (GL_LINK_WARNING ("lseek does not fail with ESPIPE on pipes on some " \
-+ "systems - use gnulib module lseek for portability"), \
-+ lseek (f, o, w))
-+#endif
-+
-+
-+#if @GNULIB_READLINK@
-+/* Read the contents of the symbolic link FILE and place the first BUFSIZE
-+ bytes of it into BUF. Return the number of bytes placed into BUF if
-+ successful, otherwise -1 and errno set.
-+ See the POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/readlink.html>. */
-+# if !@HAVE_READLINK@
-+# include <stddef.h>
-+extern int readlink (const char *file, char *buf, size_t bufsize);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef readlink
-+# define readlink(f,b,s) \
-+ (GL_LINK_WARNING ("readlink is unportable - " \
-+ "use gnulib module readlink for portability"), \
-+ readlink (f, b, s))
-+#endif
-+
-+
-+#if @GNULIB_SLEEP@
-+/* Pause the execution of the current thread for N seconds.
-+ Returns the number of seconds left to sleep.
-+ See the POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/sleep.html>. */
-+# if !@HAVE_SLEEP@
-+extern unsigned int sleep (unsigned int n);
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef sleep
-+# define sleep(n) \
-+ (GL_LINK_WARNING ("sleep is unportable - " \
-+ "use gnulib module sleep for portability"), \
-+ sleep (n))
-+#endif
-+
-+
-+#if @GNULIB_WRITE@ && @REPLACE_WRITE@ && @GNULIB_UNISTD_H_SIGPIPE@
-+/* Write up to COUNT bytes starting at BUF to file descriptor FD.
-+ See the POSIX:2001 specification
-+ <http://www.opengroup.org/susv3xsh/write.html>. */
-+# undef write
-+# define write rpl_write
-+extern ssize_t write (int fd, const void *buf, size_t count);
-+#endif
-+
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+
-+#endif /* _GL_UNISTD_H */
-+#endif /* _GL_UNISTD_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/vasnprintf.c gtk-vnc-0.3.7.gnulib/gnulib/lib/vasnprintf.c
---- gtk-vnc-0.3.7.dan3/gnulib/lib/vasnprintf.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/vasnprintf.c 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,4887 @@
-+/* vsprintf with automatic memory allocation.
-+ Copyright (C) 1999, 2002-2008 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License along
-+ with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+/* This file can be parametrized with the following macros:
-+ VASNPRINTF The name of the function being defined.
-+ FCHAR_T The element type of the format string.
-+ DCHAR_T The element type of the destination (result) string.
-+ FCHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters
-+ in the format string are ASCII. MUST be set if
-+ FCHAR_T and DCHAR_T are not the same type.
-+ DIRECTIVE Structure denoting a format directive.
-+ Depends on FCHAR_T.
-+ DIRECTIVES Structure denoting the set of format directives of a
-+ format string. Depends on FCHAR_T.
-+ PRINTF_PARSE Function that parses a format string.
-+ Depends on FCHAR_T.
-+ DCHAR_CPY memcpy like function for DCHAR_T[] arrays.
-+ DCHAR_SET memset like function for DCHAR_T[] arrays.
-+ DCHAR_MBSNLEN mbsnlen like function for DCHAR_T[] arrays.
-+ SNPRINTF The system's snprintf (or similar) function.
-+ This may be either snprintf or swprintf.
-+ TCHAR_T The element type of the argument and result string
-+ of the said SNPRINTF function. This may be either
-+ char or wchar_t. The code exploits that
-+ sizeof (TCHAR_T) | sizeof (DCHAR_T) and
-+ alignof (TCHAR_T) <= alignof (DCHAR_T).
-+ DCHAR_IS_TCHAR Set to 1 if DCHAR_T and TCHAR_T are the same type.
-+ DCHAR_CONV_FROM_ENCODING A function to convert from char[] to DCHAR[].
-+ DCHAR_IS_UINT8_T Set to 1 if DCHAR_T is uint8_t.
-+ DCHAR_IS_UINT16_T Set to 1 if DCHAR_T is uint16_t.
-+ DCHAR_IS_UINT32_T Set to 1 if DCHAR_T is uint32_t. */
-+
-+/* Tell glibc's <stdio.h> to provide a prototype for snprintf().
-+ This must come before <config.h> because <config.h> may include
-+ <features.h>, and once <features.h> has been included, it's too late. */
-+#ifndef _GNU_SOURCE
-+# define _GNU_SOURCE 1
-+#endif
-+
-+#ifndef VASNPRINTF
-+# include <config.h>
-+#endif
-+#ifndef IN_LIBINTL
-+# include <alloca.h>
-+#endif
-+
-+/* Specification. */
-+#ifndef VASNPRINTF
-+# if WIDE_CHAR_VERSION
-+# include "vasnwprintf.h"
-+# else
-+# include "vasnprintf.h"
-+# endif
-+#endif
-+
-+#include <locale.h> /* localeconv() */
-+#include <stdio.h> /* snprintf(), sprintf() */
-+#include <stdlib.h> /* abort(), malloc(), realloc(), free() */
-+#include <string.h> /* memcpy(), strlen() */
-+#include <errno.h> /* errno */
-+#include <limits.h> /* CHAR_BIT */
-+#include <float.h> /* DBL_MAX_EXP, LDBL_MAX_EXP */
-+#if HAVE_NL_LANGINFO
-+# include <langinfo.h>
-+#endif
-+#ifndef VASNPRINTF
-+# if WIDE_CHAR_VERSION
-+# include "wprintf-parse.h"
-+# else
-+# include "printf-parse.h"
-+# endif
-+#endif
-+
-+/* Checked size_t computations. */
-+#include "xsize.h"
-+
-+#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
-+# include <math.h>
-+# include "float+.h"
-+#endif
-+
-+#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL
-+# include <math.h>
-+# include "isnand-nolibm.h"
-+#endif
-+
-+#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) && !defined IN_LIBINTL
-+# include <math.h>
-+# include "isnanl-nolibm.h"
-+# include "fpucw.h"
-+#endif
-+
-+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
-+# include <math.h>
-+# include "isnand-nolibm.h"
-+# include "printf-frexp.h"
-+#endif
-+
-+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
-+# include <math.h>
-+# include "isnanl-nolibm.h"
-+# include "printf-frexpl.h"
-+# include "fpucw.h"
-+#endif
-+
-+#if HAVE_WCHAR_T
-+# if HAVE_WCSLEN
-+# define local_wcslen wcslen
-+# else
-+ /* Solaris 2.5.1 has wcslen() in a separate library libw.so. To avoid
-+ a dependency towards this library, here is a local substitute.
-+ Define this substitute only once, even if this file is included
-+ twice in the same compilation unit. */
-+# ifndef local_wcslen_defined
-+# define local_wcslen_defined 1
-+static size_t
-+local_wcslen (const wchar_t *s)
-+{
-+ const wchar_t *ptr;
-+
-+ for (ptr = s; *ptr != (wchar_t) 0; ptr++)
-+ ;
-+ return ptr - s;
-+}
-+# endif
-+# endif
-+#endif
-+
-+/* Default parameters. */
-+#ifndef VASNPRINTF
-+# if WIDE_CHAR_VERSION
-+# define VASNPRINTF vasnwprintf
-+# define FCHAR_T wchar_t
-+# define DCHAR_T wchar_t
-+# define TCHAR_T wchar_t
-+# define DCHAR_IS_TCHAR 1
-+# define DIRECTIVE wchar_t_directive
-+# define DIRECTIVES wchar_t_directives
-+# define PRINTF_PARSE wprintf_parse
-+# define DCHAR_CPY wmemcpy
-+# else
-+# define VASNPRINTF vasnprintf
-+# define FCHAR_T char
-+# define DCHAR_T char
-+# define TCHAR_T char
-+# define DCHAR_IS_TCHAR 1
-+# define DIRECTIVE char_directive
-+# define DIRECTIVES char_directives
-+# define PRINTF_PARSE printf_parse
-+# define DCHAR_CPY memcpy
-+# endif
-+#endif
-+#if WIDE_CHAR_VERSION
-+ /* TCHAR_T is wchar_t. */
-+# define USE_SNPRINTF 1
-+# if HAVE_DECL__SNWPRINTF
-+ /* On Windows, the function swprintf() has a different signature than
-+ on Unix; we use the _snwprintf() function instead. */
-+# define SNPRINTF _snwprintf
-+# else
-+ /* Unix. */
-+# define SNPRINTF swprintf
-+# endif
-+#else
-+ /* TCHAR_T is char. */
-+ /* Use snprintf if it exists under the name 'snprintf' or '_snprintf'.
-+ But don't use it on BeOS, since BeOS snprintf produces no output if the
-+ size argument is >= 0x3000000.
-+ Also don't use it on Linux libc5, since there snprintf with size = 1
-+ writes any output without bounds, like sprintf. */
-+# if (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF) && !defined __BEOS__ && !(__GNU_LIBRARY__ == 1)
-+# define USE_SNPRINTF 1
-+# else
-+# define USE_SNPRINTF 0
-+# endif
-+# if HAVE_DECL__SNPRINTF
-+ /* Windows. */
-+# define SNPRINTF _snprintf
-+# else
-+ /* Unix. */
-+# define SNPRINTF snprintf
-+ /* Here we need to call the native snprintf, not rpl_snprintf. */
-+# undef snprintf
-+# endif
-+#endif
-+/* Here we need to call the native sprintf, not rpl_sprintf. */
-+#undef sprintf
-+
-+/* GCC >= 4.0 with -Wall emits unjustified "... may be used uninitialized"
-+ warnings in this file. Use -Dlint to suppress them. */
-+#ifdef lint
-+# define IF_LINT(Code) Code
-+#else
-+# define IF_LINT(Code) /* empty */
-+#endif
-+
-+/* Avoid some warnings from "gcc -Wshadow".
-+ This file doesn't use the exp() and remainder() functions. */
-+#undef exp
-+#define exp expo
-+#undef remainder
-+#define remainder rem
-+
-+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL
-+/* Determine the decimal-point character according to the current locale. */
-+# ifndef decimal_point_char_defined
-+# define decimal_point_char_defined 1
-+static char
-+decimal_point_char ()
-+{
-+ const char *point;
-+ /* Determine it in a multithread-safe way. We know nl_langinfo is
-+ multithread-safe on glibc systems, but is not required to be multithread-
-+ safe by POSIX. sprintf(), however, is multithread-safe. localeconv()
-+ is rarely multithread-safe. */
-+# if HAVE_NL_LANGINFO && __GLIBC__
-+ point = nl_langinfo (RADIXCHAR);
-+# elif 1
-+ char pointbuf[5];
-+ sprintf (pointbuf, "%#.0f", 1.0);
-+ point = &pointbuf[1];
-+# else
-+ point = localeconv () -> decimal_point;
-+# endif
-+ /* The decimal point is always a single byte: either '.' or ','. */
-+ return (point[0] != '\0' ? point[0] : '.');
-+}
-+# endif
-+#endif
-+
-+#if NEED_PRINTF_INFINITE_DOUBLE && !NEED_PRINTF_DOUBLE && !defined IN_LIBINTL
-+
-+/* Equivalent to !isfinite(x) || x == 0, but does not require libm. */
-+static int
-+is_infinite_or_zero (double x)
-+{
-+ return isnand (x) || x + x == x;
-+}
-+
-+#endif
-+
-+#if NEED_PRINTF_INFINITE_LONG_DOUBLE && !NEED_PRINTF_LONG_DOUBLE && !defined IN_LIBINTL
-+
-+/* Equivalent to !isfinite(x) || x == 0, but does not require libm. */
-+static int
-+is_infinite_or_zerol (long double x)
-+{
-+ return isnanl (x) || x + x == x;
-+}
-+
-+#endif
-+
-+#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
-+
-+/* Converting 'long double' to decimal without rare rounding bugs requires
-+ real bignums. We use the naming conventions of GNU gmp, but vastly simpler
-+ (and slower) algorithms. */
-+
-+typedef unsigned int mp_limb_t;
-+# define GMP_LIMB_BITS 32
-+typedef int mp_limb_verify[2 * (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS) - 1];
-+
-+typedef unsigned long long mp_twolimb_t;
-+# define GMP_TWOLIMB_BITS 64
-+typedef int mp_twolimb_verify[2 * (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS) - 1];
-+
-+/* Representation of a bignum >= 0. */
-+typedef struct
-+{
-+ size_t nlimbs;
-+ mp_limb_t *limbs; /* Bits in little-endian order, allocated with malloc(). */
-+} mpn_t;
-+
-+/* Compute the product of two bignums >= 0.
-+ Return the allocated memory in case of success, NULL in case of memory
-+ allocation failure. */
-+static void *
-+multiply (mpn_t src1, mpn_t src2, mpn_t *dest)
-+{
-+ const mp_limb_t *p1;
-+ const mp_limb_t *p2;
-+ size_t len1;
-+ size_t len2;
-+
-+ if (src1.nlimbs <= src2.nlimbs)
-+ {
-+ len1 = src1.nlimbs;
-+ p1 = src1.limbs;
-+ len2 = src2.nlimbs;
-+ p2 = src2.limbs;
-+ }
-+ else
-+ {
-+ len1 = src2.nlimbs;
-+ p1 = src2.limbs;
-+ len2 = src1.nlimbs;
-+ p2 = src1.limbs;
-+ }
-+ /* Now 0 <= len1 <= len2. */
-+ if (len1 == 0)
-+ {
-+ /* src1 or src2 is zero. */
-+ dest->nlimbs = 0;
-+ dest->limbs = (mp_limb_t *) malloc (1);
-+ }
-+ else
-+ {
-+ /* Here 1 <= len1 <= len2. */
-+ size_t dlen;
-+ mp_limb_t *dp;
-+ size_t k, i, j;
-+
-+ dlen = len1 + len2;
-+ dp = (mp_limb_t *) malloc (dlen * sizeof (mp_limb_t));
-+ if (dp == NULL)
-+ return NULL;
-+ for (k = len2; k > 0; )
-+ dp[--k] = 0;
-+ for (i = 0; i < len1; i++)
-+ {
-+ mp_limb_t digit1 = p1[i];
-+ mp_twolimb_t carry = 0;
-+ for (j = 0; j < len2; j++)
-+ {
-+ mp_limb_t digit2 = p2[j];
-+ carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2;
-+ carry += dp[i + j];
-+ dp[i + j] = (mp_limb_t) carry;
-+ carry = carry >> GMP_LIMB_BITS;
-+ }
-+ dp[i + len2] = (mp_limb_t) carry;
-+ }
-+ /* Normalise. */
-+ while (dlen > 0 && dp[dlen - 1] == 0)
-+ dlen--;
-+ dest->nlimbs = dlen;
-+ dest->limbs = dp;
-+ }
-+ return dest->limbs;
-+}
-+
-+/* Compute the quotient of a bignum a >= 0 and a bignum b > 0.
-+ a is written as a = q * b + r with 0 <= r < b. q is the quotient, r
-+ the remainder.
-+ Finally, round-to-even is performed: If r > b/2 or if r = b/2 and q is odd,
-+ q is incremented.
-+ Return the allocated memory in case of success, NULL in case of memory
-+ allocation failure. */
-+static void *
-+divide (mpn_t a, mpn_t b, mpn_t *q)
-+{
-+ /* Algorithm:
-+ First normalise a and b: a=[a[m-1],...,a[0]], b=[b[n-1],...,b[0]]
-+ with m>=0 and n>0 (in base beta = 2^GMP_LIMB_BITS).
-+ If m<n, then q:=0 and r:=a.
-+ If m>=n=1, perform a single-precision division:
-+ r:=0, j:=m,
-+ while j>0 do
-+ {Here (q[m-1]*beta^(m-1)+...+q[j]*beta^j) * b[0] + r*beta^j =
-+ = a[m-1]*beta^(m-1)+...+a[j]*beta^j und 0<=r<b[0]<beta}
-+ j:=j-1, r:=r*beta+a[j], q[j]:=floor(r/b[0]), r:=r-b[0]*q[j].
-+ Normalise [q[m-1],...,q[0]], yields q.
-+ If m>=n>1, perform a multiple-precision division:
-+ We have a/b < beta^(m-n+1).
-+ s:=intDsize-1-(hightest bit in b[n-1]), 0<=s<intDsize.
-+ Shift a and b left by s bits, copying them. r:=a.
-+ r=[r[m],...,r[0]], b=[b[n-1],...,b[0]] with b[n-1]>=beta/2.
-+ For j=m-n,...,0: {Here 0 <= r < b*beta^(j+1).}
-+ Compute q* :
-+ q* := floor((r[j+n]*beta+r[j+n-1])/b[n-1]).
-+ In case of overflow (q* >= beta) set q* := beta-1.
-+ Compute c2 := ((r[j+n]*beta+r[j+n-1]) - q* * b[n-1])*beta + r[j+n-2]
-+ and c3 := b[n-2] * q*.
-+ {We have 0 <= c2 < 2*beta^2, even 0 <= c2 < beta^2 if no overflow
-+ occurred. Furthermore 0 <= c3 < beta^2.
-+ If there was overflow and
-+ r[j+n]*beta+r[j+n-1] - q* * b[n-1] >= beta, i.e. c2 >= beta^2,
-+ the next test can be skipped.}
-+ While c3 > c2, {Here 0 <= c2 < c3 < beta^2}
-+ Put q* := q* - 1, c2 := c2 + b[n-1]*beta, c3 := c3 - b[n-2].
-+ If q* > 0:
-+ Put r := r - b * q* * beta^j. In detail:
-+ [r[n+j],...,r[j]] := [r[n+j],...,r[j]] - q* * [b[n-1],...,b[0]].
-+ hence: u:=0, for i:=0 to n-1 do
-+ u := u + q* * b[i],
-+ r[j+i]:=r[j+i]-(u mod beta) (+ beta, if carry),
-+ u:=u div beta (+ 1, if carry in subtraction)
-+ r[n+j]:=r[n+j]-u.
-+ {Since always u = (q* * [b[i-1],...,b[0]] div beta^i) + 1
-+ < q* + 1 <= beta,
-+ the carry u does not overflow.}
-+ If a negative carry occurs, put q* := q* - 1
-+ and [r[n+j],...,r[j]] := [r[n+j],...,r[j]] + [0,b[n-1],...,b[0]].
-+ Set q[j] := q*.
-+ Normalise [q[m-n],..,q[0]]; this yields the quotient q.
-+ Shift [r[n-1],...,r[0]] right by s bits and normalise; this yields the
-+ rest r.
-+ The room for q[j] can be allocated at the memory location of r[n+j].
-+ Finally, round-to-even:
-+ Shift r left by 1 bit.
-+ If r > b or if r = b and q[0] is odd, q := q+1.
-+ */
-+ const mp_limb_t *a_ptr = a.limbs;
-+ size_t a_len = a.nlimbs;
-+ const mp_limb_t *b_ptr = b.limbs;
-+ size_t b_len = b.nlimbs;
-+ mp_limb_t *roomptr;
-+ mp_limb_t *tmp_roomptr = NULL;
-+ mp_limb_t *q_ptr;
-+ size_t q_len;
-+ mp_limb_t *r_ptr;
-+ size_t r_len;
-+
-+ /* Allocate room for a_len+2 digits.
-+ (Need a_len+1 digits for the real division and 1 more digit for the
-+ final rounding of q.) */
-+ roomptr = (mp_limb_t *) malloc ((a_len + 2) * sizeof (mp_limb_t));
-+ if (roomptr == NULL)
-+ return NULL;
-+
-+ /* Normalise a. */
-+ while (a_len > 0 && a_ptr[a_len - 1] == 0)
-+ a_len--;
-+
-+ /* Normalise b. */
-+ for (;;)
-+ {
-+ if (b_len == 0)
-+ /* Division by zero. */
-+ abort ();
-+ if (b_ptr[b_len - 1] == 0)
-+ b_len--;
-+ else
-+ break;
-+ }
-+
-+ /* Here m = a_len >= 0 and n = b_len > 0. */
-+
-+ if (a_len < b_len)
-+ {
-+ /* m<n: trivial case. q=0, r := copy of a. */
-+ r_ptr = roomptr;
-+ r_len = a_len;
-+ memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t));
-+ q_ptr = roomptr + a_len;
-+ q_len = 0;
-+ }
-+ else if (b_len == 1)
-+ {
-+ /* n=1: single precision division.
-+ beta^(m-1) <= a < beta^m ==> beta^(m-2) <= a/b < beta^m */
-+ r_ptr = roomptr;
-+ q_ptr = roomptr + 1;
-+ {
-+ mp_limb_t den = b_ptr[0];
-+ mp_limb_t remainder = 0;
-+ const mp_limb_t *sourceptr = a_ptr + a_len;
-+ mp_limb_t *destptr = q_ptr + a_len;
-+ size_t count;
-+ for (count = a_len; count > 0; count--)
-+ {
-+ mp_twolimb_t num =
-+ ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--sourceptr;
-+ *--destptr = num / den;
-+ remainder = num % den;
-+ }
-+ /* Normalise and store r. */
-+ if (remainder > 0)
-+ {
-+ r_ptr[0] = remainder;
-+ r_len = 1;
-+ }
-+ else
-+ r_len = 0;
-+ /* Normalise q. */
-+ q_len = a_len;
-+ if (q_ptr[q_len - 1] == 0)
-+ q_len--;
-+ }
-+ }
-+ else
-+ {
-+ /* n>1: multiple precision division.
-+ beta^(m-1) <= a < beta^m, beta^(n-1) <= b < beta^n ==>
-+ beta^(m-n-1) <= a/b < beta^(m-n+1). */
-+ /* Determine s. */
-+ size_t s;
-+ {
-+ mp_limb_t msd = b_ptr[b_len - 1]; /* = b[n-1], > 0 */
-+ s = 31;
-+ if (msd >= 0x10000)
-+ {
-+ msd = msd >> 16;
-+ s -= 16;
-+ }
-+ if (msd >= 0x100)
-+ {
-+ msd = msd >> 8;
-+ s -= 8;
-+ }
-+ if (msd >= 0x10)
-+ {
-+ msd = msd >> 4;
-+ s -= 4;
-+ }
-+ if (msd >= 0x4)
-+ {
-+ msd = msd >> 2;
-+ s -= 2;
-+ }
-+ if (msd >= 0x2)
-+ {
-+ msd = msd >> 1;
-+ s -= 1;
-+ }
-+ }
-+ /* 0 <= s < GMP_LIMB_BITS.
-+ Copy b, shifting it left by s bits. */
-+ if (s > 0)
-+ {
-+ tmp_roomptr = (mp_limb_t *) malloc (b_len * sizeof (mp_limb_t));
-+ if (tmp_roomptr == NULL)
-+ {
-+ free (roomptr);
-+ return NULL;
-+ }
-+ {
-+ const mp_limb_t *sourceptr = b_ptr;
-+ mp_limb_t *destptr = tmp_roomptr;
-+ mp_twolimb_t accu = 0;
-+ size_t count;
-+ for (count = b_len; count > 0; count--)
-+ {
-+ accu += (mp_twolimb_t) *sourceptr++ << s;
-+ *destptr++ = (mp_limb_t) accu;
-+ accu = accu >> GMP_LIMB_BITS;
-+ }
-+ /* accu must be zero, since that was how s was determined. */
-+ if (accu != 0)
-+ abort ();
-+ }
-+ b_ptr = tmp_roomptr;
-+ }
-+ /* Copy a, shifting it left by s bits, yields r.
-+ Memory layout:
-+ At the beginning: r = roomptr[0..a_len],
-+ at the end: r = roomptr[0..b_len-1], q = roomptr[b_len..a_len] */
-+ r_ptr = roomptr;
-+ if (s == 0)
-+ {
-+ memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t));
-+ r_ptr[a_len] = 0;
-+ }
-+ else
-+ {
-+ const mp_limb_t *sourceptr = a_ptr;
-+ mp_limb_t *destptr = r_ptr;
-+ mp_twolimb_t accu = 0;
-+ size_t count;
-+ for (count = a_len; count > 0; count--)
-+ {
-+ accu += (mp_twolimb_t) *sourceptr++ << s;
-+ *destptr++ = (mp_limb_t) accu;
-+ accu = accu >> GMP_LIMB_BITS;
-+ }
-+ *destptr++ = (mp_limb_t) accu;
-+ }
-+ q_ptr = roomptr + b_len;
-+ q_len = a_len - b_len + 1; /* q will have m-n+1 limbs */
-+ {
-+ size_t j = a_len - b_len; /* m-n */
-+ mp_limb_t b_msd = b_ptr[b_len - 1]; /* b[n-1] */
-+ mp_limb_t b_2msd = b_ptr[b_len - 2]; /* b[n-2] */
-+ mp_twolimb_t b_msdd = /* b[n-1]*beta+b[n-2] */
-+ ((mp_twolimb_t) b_msd << GMP_LIMB_BITS) | b_2msd;
-+ /* Division loop, traversed m-n+1 times.
-+ j counts down, b is unchanged, beta/2 <= b[n-1] < beta. */
-+ for (;;)
-+ {
-+ mp_limb_t q_star;
-+ mp_limb_t c1;
-+ if (r_ptr[j + b_len] < b_msd) /* r[j+n] < b[n-1] ? */
-+ {
-+ /* Divide r[j+n]*beta+r[j+n-1] by b[n-1], no overflow. */
-+ mp_twolimb_t num =
-+ ((mp_twolimb_t) r_ptr[j + b_len] << GMP_LIMB_BITS)
-+ | r_ptr[j + b_len - 1];
-+ q_star = num / b_msd;
-+ c1 = num % b_msd;
-+ }
-+ else
-+ {
-+ /* Overflow, hence r[j+n]*beta+r[j+n-1] >= beta*b[n-1]. */
-+ q_star = (mp_limb_t)~(mp_limb_t)0; /* q* = beta-1 */
-+ /* Test whether r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] >= beta
-+ <==> r[j+n]*beta+r[j+n-1] + b[n-1] >= beta*b[n-1]+beta
-+ <==> b[n-1] < floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta)
-+ {<= beta !}.
-+ If yes, jump directly to the subtraction loop.
-+ (Otherwise, r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] < beta
-+ <==> floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) = b[n-1] ) */
-+ if (r_ptr[j + b_len] > b_msd
-+ || (c1 = r_ptr[j + b_len - 1] + b_msd) < b_msd)
-+ /* r[j+n] >= b[n-1]+1 or
-+ r[j+n] = b[n-1] and the addition r[j+n-1]+b[n-1] gives a
-+ carry. */
-+ goto subtract;
-+ }
-+ /* q_star = q*,
-+ c1 = (r[j+n]*beta+r[j+n-1]) - q* * b[n-1] (>=0, <beta). */
-+ {
-+ mp_twolimb_t c2 = /* c1*beta+r[j+n-2] */
-+ ((mp_twolimb_t) c1 << GMP_LIMB_BITS) | r_ptr[j + b_len - 2];
-+ mp_twolimb_t c3 = /* b[n-2] * q* */
-+ (mp_twolimb_t) b_2msd * (mp_twolimb_t) q_star;
-+ /* While c2 < c3, increase c2 and decrease c3.
-+ Consider c3-c2. While it is > 0, decrease it by
-+ b[n-1]*beta+b[n-2]. Because of b[n-1]*beta+b[n-2] >= beta^2/2
-+ this can happen only twice. */
-+ if (c3 > c2)
-+ {
-+ q_star = q_star - 1; /* q* := q* - 1 */
-+ if (c3 - c2 > b_msdd)
-+ q_star = q_star - 1; /* q* := q* - 1 */
-+ }
-+ }
-+ if (q_star > 0)
-+ subtract:
-+ {
-+ /* Subtract r := r - b * q* * beta^j. */
-+ mp_limb_t cr;
-+ {
-+ const mp_limb_t *sourceptr = b_ptr;
-+ mp_limb_t *destptr = r_ptr + j;
-+ mp_twolimb_t carry = 0;
-+ size_t count;
-+ for (count = b_len; count > 0; count--)
-+ {
-+ /* Here 0 <= carry <= q*. */
-+ carry =
-+ carry
-+ + (mp_twolimb_t) q_star * (mp_twolimb_t) *sourceptr++
-+ + (mp_limb_t) ~(*destptr);
-+ /* Here 0 <= carry <= beta*q* + beta-1. */
-+ *destptr++ = ~(mp_limb_t) carry;
-+ carry = carry >> GMP_LIMB_BITS; /* <= q* */
-+ }
-+ cr = (mp_limb_t) carry;
-+ }
-+ /* Subtract cr from r_ptr[j + b_len], then forget about
-+ r_ptr[j + b_len]. */
-+ if (cr > r_ptr[j + b_len])
-+ {
-+ /* Subtraction gave a carry. */
-+ q_star = q_star - 1; /* q* := q* - 1 */
-+ /* Add b back. */
-+ {
-+ const mp_limb_t *sourceptr = b_ptr;
-+ mp_limb_t *destptr = r_ptr + j;
-+ mp_limb_t carry = 0;
-+ size_t count;
-+ for (count = b_len; count > 0; count--)
-+ {
-+ mp_limb_t source1 = *sourceptr++;
-+ mp_limb_t source2 = *destptr;
-+ *destptr++ = source1 + source2 + carry;
-+ carry =
-+ (carry
-+ ? source1 >= (mp_limb_t) ~source2
-+ : source1 > (mp_limb_t) ~source2);
-+ }
-+ }
-+ /* Forget about the carry and about r[j+n]. */
-+ }
-+ }
-+ /* q* is determined. Store it as q[j]. */
-+ q_ptr[j] = q_star;
-+ if (j == 0)
-+ break;
-+ j--;
-+ }
-+ }
-+ r_len = b_len;
-+ /* Normalise q. */
-+ if (q_ptr[q_len - 1] == 0)
-+ q_len--;
-+# if 0 /* Not needed here, since we need r only to compare it with b/2, and
-+ b is shifted left by s bits. */
-+ /* Shift r right by s bits. */
-+ if (s > 0)
-+ {
-+ mp_limb_t ptr = r_ptr + r_len;
-+ mp_twolimb_t accu = 0;
-+ size_t count;
-+ for (count = r_len; count > 0; count--)
-+ {
-+ accu = (mp_twolimb_t) (mp_limb_t) accu << GMP_LIMB_BITS;
-+ accu += (mp_twolimb_t) *--ptr << (GMP_LIMB_BITS - s);
-+ *ptr = (mp_limb_t) (accu >> GMP_LIMB_BITS);
-+ }
-+ }
-+# endif
-+ /* Normalise r. */
-+ while (r_len > 0 && r_ptr[r_len - 1] == 0)
-+ r_len--;
-+ }
-+ /* Compare r << 1 with b. */
-+ if (r_len > b_len)
-+ goto increment_q;
-+ {
-+ size_t i;
-+ for (i = b_len;;)
-+ {
-+ mp_limb_t r_i =
-+ (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0)
-+ | (i < r_len ? r_ptr[i] << 1 : 0);
-+ mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0);
-+ if (r_i > b_i)
-+ goto increment_q;
-+ if (r_i < b_i)
-+ goto keep_q;
-+ if (i == 0)
-+ break;
-+ i--;
-+ }
-+ }
-+ if (q_len > 0 && ((q_ptr[0] & 1) != 0))
-+ /* q is odd. */
-+ increment_q:
-+ {
-+ size_t i;
-+ for (i = 0; i < q_len; i++)
-+ if (++(q_ptr[i]) != 0)
-+ goto keep_q;
-+ q_ptr[q_len++] = 1;
-+ }
-+ keep_q:
-+ if (tmp_roomptr != NULL)
-+ free (tmp_roomptr);
-+ q->limbs = q_ptr;
-+ q->nlimbs = q_len;
-+ return roomptr;
-+}
-+
-+/* Convert a bignum a >= 0, multiplied with 10^extra_zeroes, to decimal
-+ representation.
-+ Destroys the contents of a.
-+ Return the allocated memory - containing the decimal digits in low-to-high
-+ order, terminated with a NUL character - in case of success, NULL in case
-+ of memory allocation failure. */
-+static char *
-+convert_to_decimal (mpn_t a, size_t extra_zeroes)
-+{
-+ mp_limb_t *a_ptr = a.limbs;
-+ size_t a_len = a.nlimbs;
-+ /* 0.03345 is slightly larger than log(2)/(9*log(10)). */
-+ size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1);
-+ char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes));
-+ if (c_ptr != NULL)
-+ {
-+ char *d_ptr = c_ptr;
-+ for (; extra_zeroes > 0; extra_zeroes--)
-+ *d_ptr++ = '0';
-+ while (a_len > 0)
-+ {
-+ /* Divide a by 10^9, in-place. */
-+ mp_limb_t remainder = 0;
-+ mp_limb_t *ptr = a_ptr + a_len;
-+ size_t count;
-+ for (count = a_len; count > 0; count--)
-+ {
-+ mp_twolimb_t num =
-+ ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--ptr;
-+ *ptr = num / 1000000000;
-+ remainder = num % 1000000000;
-+ }
-+ /* Store the remainder as 9 decimal digits. */
-+ for (count = 9; count > 0; count--)
-+ {
-+ *d_ptr++ = '0' + (remainder % 10);
-+ remainder = remainder / 10;
-+ }
-+ /* Normalize a. */
-+ if (a_ptr[a_len - 1] == 0)
-+ a_len--;
-+ }
-+ /* Remove leading zeroes. */
-+ while (d_ptr > c_ptr && d_ptr[-1] == '0')
-+ d_ptr--;
-+ /* But keep at least one zero. */
-+ if (d_ptr == c_ptr)
-+ *d_ptr++ = '0';
-+ /* Terminate the string. */
-+ *d_ptr = '\0';
-+ }
-+ return c_ptr;
-+}
-+
-+# if NEED_PRINTF_LONG_DOUBLE
-+
-+/* Assuming x is finite and >= 0:
-+ write x as x = 2^e * m, where m is a bignum.
-+ Return the allocated memory in case of success, NULL in case of memory
-+ allocation failure. */
-+static void *
-+decode_long_double (long double x, int *ep, mpn_t *mp)
-+{
-+ mpn_t m;
-+ int exp;
-+ long double y;
-+ size_t i;
-+
-+ /* Allocate memory for result. */
-+ m.nlimbs = (LDBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS;
-+ m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t));
-+ if (m.limbs == NULL)
-+ return NULL;
-+ /* Split into exponential part and mantissa. */
-+ y = frexpl (x, &exp);
-+ if (!(y >= 0.0L && y < 1.0L))
-+ abort ();
-+ /* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * LDBL_MANT_BIT), and the
-+ latter is an integer. */
-+ /* Convert the mantissa (y * LDBL_MANT_BIT) to a sequence of limbs.
-+ I'm not sure whether it's safe to cast a 'long double' value between
-+ 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only
-+ 'long double' values between 0 and 2^16 (to 'unsigned int' or 'int',
-+ doesn't matter). */
-+# if (LDBL_MANT_BIT % GMP_LIMB_BITS) != 0
-+# if (LDBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2
-+ {
-+ mp_limb_t hi, lo;
-+ y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % (GMP_LIMB_BITS / 2));
-+ hi = (int) y;
-+ y -= hi;
-+ if (!(y >= 0.0L && y < 1.0L))
-+ abort ();
-+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
-+ lo = (int) y;
-+ y -= lo;
-+ if (!(y >= 0.0L && y < 1.0L))
-+ abort ();
-+ m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo;
-+ }
-+# else
-+ {
-+ mp_limb_t d;
-+ y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % GMP_LIMB_BITS);
-+ d = (int) y;
-+ y -= d;
-+ if (!(y >= 0.0L && y < 1.0L))
-+ abort ();
-+ m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = d;
-+ }
-+# endif
-+# endif
-+ for (i = LDBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
-+ {
-+ mp_limb_t hi, lo;
-+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
-+ hi = (int) y;
-+ y -= hi;
-+ if (!(y >= 0.0L && y < 1.0L))
-+ abort ();
-+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
-+ lo = (int) y;
-+ y -= lo;
-+ if (!(y >= 0.0L && y < 1.0L))
-+ abort ();
-+ m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo;
-+ }
-+#if 0 /* On FreeBSD 6.1/x86, 'long double' numbers sometimes have excess
-+ precision. */
-+ if (!(y == 0.0L))
-+ abort ();
-+#endif
-+ /* Normalise. */
-+ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0)
-+ m.nlimbs--;
-+ *mp = m;
-+ *ep = exp - LDBL_MANT_BIT;
-+ return m.limbs;
-+}
-+
-+# endif
-+
-+# if NEED_PRINTF_DOUBLE
-+
-+/* Assuming x is finite and >= 0:
-+ write x as x = 2^e * m, where m is a bignum.
-+ Return the allocated memory in case of success, NULL in case of memory
-+ allocation failure. */
-+static void *
-+decode_double (double x, int *ep, mpn_t *mp)
-+{
-+ mpn_t m;
-+ int exp;
-+ double y;
-+ size_t i;
-+
-+ /* Allocate memory for result. */
-+ m.nlimbs = (DBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS;
-+ m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t));
-+ if (m.limbs == NULL)
-+ return NULL;
-+ /* Split into exponential part and mantissa. */
-+ y = frexp (x, &exp);
-+ if (!(y >= 0.0 && y < 1.0))
-+ abort ();
-+ /* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * DBL_MANT_BIT), and the
-+ latter is an integer. */
-+ /* Convert the mantissa (y * DBL_MANT_BIT) to a sequence of limbs.
-+ I'm not sure whether it's safe to cast a 'double' value between
-+ 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only
-+ 'double' values between 0 and 2^16 (to 'unsigned int' or 'int',
-+ doesn't matter). */
-+# if (DBL_MANT_BIT % GMP_LIMB_BITS) != 0
-+# if (DBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2
-+ {
-+ mp_limb_t hi, lo;
-+ y *= (mp_limb_t) 1 << (DBL_MANT_BIT % (GMP_LIMB_BITS / 2));
-+ hi = (int) y;
-+ y -= hi;
-+ if (!(y >= 0.0 && y < 1.0))
-+ abort ();
-+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
-+ lo = (int) y;
-+ y -= lo;
-+ if (!(y >= 0.0 && y < 1.0))
-+ abort ();
-+ m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo;
-+ }
-+# else
-+ {
-+ mp_limb_t d;
-+ y *= (mp_limb_t) 1 << (DBL_MANT_BIT % GMP_LIMB_BITS);
-+ d = (int) y;
-+ y -= d;
-+ if (!(y >= 0.0 && y < 1.0))
-+ abort ();
-+ m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = d;
-+ }
-+# endif
-+# endif
-+ for (i = DBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
-+ {
-+ mp_limb_t hi, lo;
-+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
-+ hi = (int) y;
-+ y -= hi;
-+ if (!(y >= 0.0 && y < 1.0))
-+ abort ();
-+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
-+ lo = (int) y;
-+ y -= lo;
-+ if (!(y >= 0.0 && y < 1.0))
-+ abort ();
-+ m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo;
-+ }
-+ if (!(y == 0.0))
-+ abort ();
-+ /* Normalise. */
-+ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0)
-+ m.nlimbs--;
-+ *mp = m;
-+ *ep = exp - DBL_MANT_BIT;
-+ return m.limbs;
-+}
-+
-+# endif
-+
-+/* Assuming x = 2^e * m is finite and >= 0, and n is an integer:
-+ Returns the decimal representation of round (x * 10^n).
-+ Return the allocated memory - containing the decimal digits in low-to-high
-+ order, terminated with a NUL character - in case of success, NULL in case
-+ of memory allocation failure. */
-+static char *
-+scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
-+{
-+ int s;
-+ size_t extra_zeroes;
-+ unsigned int abs_n;
-+ unsigned int abs_s;
-+ mp_limb_t *pow5_ptr;
-+ size_t pow5_len;
-+ unsigned int s_limbs;
-+ unsigned int s_bits;
-+ mpn_t pow5;
-+ mpn_t z;
-+ void *z_memory;
-+ char *digits;
-+
-+ if (memory == NULL)
-+ return NULL;
-+ /* x = 2^e * m, hence
-+ y = round (2^e * 10^n * m) = round (2^(e+n) * 5^n * m)
-+ = round (2^s * 5^n * m). */
-+ s = e + n;
-+ extra_zeroes = 0;
-+ /* Factor out a common power of 10 if possible. */
-+ if (s > 0 && n > 0)
-+ {
-+ extra_zeroes = (s < n ? s : n);
-+ s -= extra_zeroes;
-+ n -= extra_zeroes;
-+ }
-+ /* Here y = round (2^s * 5^n * m) * 10^extra_zeroes.
-+ Before converting to decimal, we need to compute
-+ z = round (2^s * 5^n * m). */
-+ /* Compute 5^|n|, possibly shifted by |s| bits if n and s have the same
-+ sign. 2.322 is slightly larger than log(5)/log(2). */
-+ abs_n = (n >= 0 ? n : -n);
-+ abs_s = (s >= 0 ? s : -s);
-+ pow5_ptr = (mp_limb_t *) malloc (((int)(abs_n * (2.322f / GMP_LIMB_BITS)) + 1
-+ + abs_s / GMP_LIMB_BITS + 1)
-+ * sizeof (mp_limb_t));
-+ if (pow5_ptr == NULL)
-+ {
-+ free (memory);
-+ return NULL;
-+ }
-+ /* Initialize with 1. */
-+ pow5_ptr[0] = 1;
-+ pow5_len = 1;
-+ /* Multiply with 5^|n|. */
-+ if (abs_n > 0)
-+ {
-+ static mp_limb_t const small_pow5[13 + 1] =
-+ {
-+ 1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625,
-+ 48828125, 244140625, 1220703125
-+ };
-+ unsigned int n13;
-+ for (n13 = 0; n13 <= abs_n; n13 += 13)
-+ {
-+ mp_limb_t digit1 = small_pow5[n13 + 13 <= abs_n ? 13 : abs_n - n13];
-+ size_t j;
-+ mp_twolimb_t carry = 0;
-+ for (j = 0; j < pow5_len; j++)
-+ {
-+ mp_limb_t digit2 = pow5_ptr[j];
-+ carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2;
-+ pow5_ptr[j] = (mp_limb_t) carry;
-+ carry = carry >> GMP_LIMB_BITS;
-+ }
-+ if (carry > 0)
-+ pow5_ptr[pow5_len++] = (mp_limb_t) carry;
-+ }
-+ }
-+ s_limbs = abs_s / GMP_LIMB_BITS;
-+ s_bits = abs_s % GMP_LIMB_BITS;
-+ if (n >= 0 ? s >= 0 : s <= 0)
-+ {
-+ /* Multiply with 2^|s|. */
-+ if (s_bits > 0)
-+ {
-+ mp_limb_t *ptr = pow5_ptr;
-+ mp_twolimb_t accu = 0;
-+ size_t count;
-+ for (count = pow5_len; count > 0; count--)
-+ {
-+ accu += (mp_twolimb_t) *ptr << s_bits;
-+ *ptr++ = (mp_limb_t) accu;
-+ accu = accu >> GMP_LIMB_BITS;
-+ }
-+ if (accu > 0)
-+ {
-+ *ptr = (mp_limb_t) accu;
-+ pow5_len++;
-+ }
-+ }
-+ if (s_limbs > 0)
-+ {
-+ size_t count;
-+ for (count = pow5_len; count > 0;)
-+ {
-+ count--;
-+ pow5_ptr[s_limbs + count] = pow5_ptr[count];
-+ }
-+ for (count = s_limbs; count > 0;)
-+ {
-+ count--;
-+ pow5_ptr[count] = 0;
-+ }
-+ pow5_len += s_limbs;
-+ }
-+ pow5.limbs = pow5_ptr;
-+ pow5.nlimbs = pow5_len;
-+ if (n >= 0)
-+ {
-+ /* Multiply m with pow5. No division needed. */
-+ z_memory = multiply (m, pow5, &z);
-+ }
-+ else
-+ {
-+ /* Divide m by pow5 and round. */
-+ z_memory = divide (m, pow5, &z);
-+ }
-+ }
-+ else
-+ {
-+ pow5.limbs = pow5_ptr;
-+ pow5.nlimbs = pow5_len;
-+ if (n >= 0)
-+ {
-+ /* n >= 0, s < 0.
-+ Multiply m with pow5, then divide by 2^|s|. */
-+ mpn_t numerator;
-+ mpn_t denominator;
-+ void *tmp_memory;
-+ tmp_memory = multiply (m, pow5, &numerator);
-+ if (tmp_memory == NULL)
-+ {
-+ free (pow5_ptr);
-+ free (memory);
-+ return NULL;
-+ }
-+ /* Construct 2^|s|. */
-+ {
-+ mp_limb_t *ptr = pow5_ptr + pow5_len;
-+ size_t i;
-+ for (i = 0; i < s_limbs; i++)
-+ ptr[i] = 0;
-+ ptr[s_limbs] = (mp_limb_t) 1 << s_bits;
-+ denominator.limbs = ptr;
-+ denominator.nlimbs = s_limbs + 1;
-+ }
-+ z_memory = divide (numerator, denominator, &z);
-+ free (tmp_memory);
-+ }
-+ else
-+ {
-+ /* n < 0, s > 0.
-+ Multiply m with 2^s, then divide by pow5. */
-+ mpn_t numerator;
-+ mp_limb_t *num_ptr;
-+ num_ptr = (mp_limb_t *) malloc ((m.nlimbs + s_limbs + 1)
-+ * sizeof (mp_limb_t));
-+ if (num_ptr == NULL)
-+ {
-+ free (pow5_ptr);
-+ free (memory);
-+ return NULL;
-+ }
-+ {
-+ mp_limb_t *destptr = num_ptr;
-+ {
-+ size_t i;
-+ for (i = 0; i < s_limbs; i++)
-+ *destptr++ = 0;
-+ }
-+ if (s_bits > 0)
-+ {
-+ const mp_limb_t *sourceptr = m.limbs;
-+ mp_twolimb_t accu = 0;
-+ size_t count;
-+ for (count = m.nlimbs; count > 0; count--)
-+ {
-+ accu += (mp_twolimb_t) *sourceptr++ << s_bits;
-+ *destptr++ = (mp_limb_t) accu;
-+ accu = accu >> GMP_LIMB_BITS;
-+ }
-+ if (accu > 0)
-+ *destptr++ = (mp_limb_t) accu;
-+ }
-+ else
-+ {
-+ const mp_limb_t *sourceptr = m.limbs;
-+ size_t count;
-+ for (count = m.nlimbs; count > 0; count--)
-+ *destptr++ = *sourceptr++;
-+ }
-+ numerator.limbs = num_ptr;
-+ numerator.nlimbs = destptr - num_ptr;
-+ }
-+ z_memory = divide (numerator, pow5, &z);
-+ free (num_ptr);
-+ }
-+ }
-+ free (pow5_ptr);
-+ free (memory);
-+
-+ /* Here y = round (x * 10^n) = z * 10^extra_zeroes. */
-+
-+ if (z_memory == NULL)
-+ return NULL;
-+ digits = convert_to_decimal (z, extra_zeroes);
-+ free (z_memory);
-+ return digits;
-+}
-+
-+# if NEED_PRINTF_LONG_DOUBLE
-+
-+/* Assuming x is finite and >= 0, and n is an integer:
-+ Returns the decimal representation of round (x * 10^n).
-+ Return the allocated memory - containing the decimal digits in low-to-high
-+ order, terminated with a NUL character - in case of success, NULL in case
-+ of memory allocation failure. */
-+static char *
-+scale10_round_decimal_long_double (long double x, int n)
-+{
-+ int e IF_LINT(= 0);
-+ mpn_t m;
-+ void *memory = decode_long_double (x, &e, &m);
-+ return scale10_round_decimal_decoded (e, m, memory, n);
-+}
-+
-+# endif
-+
-+# if NEED_PRINTF_DOUBLE
-+
-+/* Assuming x is finite and >= 0, and n is an integer:
-+ Returns the decimal representation of round (x * 10^n).
-+ Return the allocated memory - containing the decimal digits in low-to-high
-+ order, terminated with a NUL character - in case of success, NULL in case
-+ of memory allocation failure. */
-+static char *
-+scale10_round_decimal_double (double x, int n)
-+{
-+ int e IF_LINT(= 0);
-+ mpn_t m;
-+ void *memory = decode_double (x, &e, &m);
-+ return scale10_round_decimal_decoded (e, m, memory, n);
-+}
-+
-+# endif
-+
-+# if NEED_PRINTF_LONG_DOUBLE
-+
-+/* Assuming x is finite and > 0:
-+ Return an approximation for n with 10^n <= x < 10^(n+1).
-+ The approximation is usually the right n, but may be off by 1 sometimes. */
-+static int
-+floorlog10l (long double x)
-+{
-+ int exp;
-+ long double y;
-+ double z;
-+ double l;
-+
-+ /* Split into exponential part and mantissa. */
-+ y = frexpl (x, &exp);
-+ if (!(y >= 0.0L && y < 1.0L))
-+ abort ();
-+ if (y == 0.0L)
-+ return INT_MIN;
-+ if (y < 0.5L)
-+ {
-+ while (y < (1.0L / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2))))
-+ {
-+ y *= 1.0L * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2));
-+ exp -= GMP_LIMB_BITS;
-+ }
-+ if (y < (1.0L / (1 << 16)))
-+ {
-+ y *= 1.0L * (1 << 16);
-+ exp -= 16;
-+ }
-+ if (y < (1.0L / (1 << 8)))
-+ {
-+ y *= 1.0L * (1 << 8);
-+ exp -= 8;
-+ }
-+ if (y < (1.0L / (1 << 4)))
-+ {
-+ y *= 1.0L * (1 << 4);
-+ exp -= 4;
-+ }
-+ if (y < (1.0L / (1 << 2)))
-+ {
-+ y *= 1.0L * (1 << 2);
-+ exp -= 2;
-+ }
-+ if (y < (1.0L / (1 << 1)))
-+ {
-+ y *= 1.0L * (1 << 1);
-+ exp -= 1;
-+ }
-+ }
-+ if (!(y >= 0.5L && y < 1.0L))
-+ abort ();
-+ /* Compute an approximation for l = log2(x) = exp + log2(y). */
-+ l = exp;
-+ z = y;
-+ if (z < 0.70710678118654752444)
-+ {
-+ z *= 1.4142135623730950488;
-+ l -= 0.5;
-+ }
-+ if (z < 0.8408964152537145431)
-+ {
-+ z *= 1.1892071150027210667;
-+ l -= 0.25;
-+ }
-+ if (z < 0.91700404320467123175)
-+ {
-+ z *= 1.0905077326652576592;
-+ l -= 0.125;
-+ }
-+ if (z < 0.9576032806985736469)
-+ {
-+ z *= 1.0442737824274138403;
-+ l -= 0.0625;
-+ }
-+ /* Now 0.95 <= z <= 1.01. */
-+ z = 1 - z;
-+ /* log2(1-z) = 1/log(2) * (- z - z^2/2 - z^3/3 - z^4/4 - ...)
-+ Four terms are enough to get an approximation with error < 10^-7. */
-+ l -= 1.4426950408889634074 * z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25)));
-+ /* Finally multiply with log(2)/log(10), yields an approximation for
-+ log10(x). */
-+ l *= 0.30102999566398119523;
-+ /* Round down to the next integer. */
-+ return (int) l + (l < 0 ? -1 : 0);
-+}
-+
-+# endif
-+
-+# if NEED_PRINTF_DOUBLE
-+
-+/* Assuming x is finite and > 0:
-+ Return an approximation for n with 10^n <= x < 10^(n+1).
-+ The approximation is usually the right n, but may be off by 1 sometimes. */
-+static int
-+floorlog10 (double x)
-+{
-+ int exp;
-+ double y;
-+ double z;
-+ double l;
-+
-+ /* Split into exponential part and mantissa. */
-+ y = frexp (x, &exp);
-+ if (!(y >= 0.0 && y < 1.0))
-+ abort ();
-+ if (y == 0.0)
-+ return INT_MIN;
-+ if (y < 0.5)
-+ {
-+ while (y < (1.0 / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2))))
-+ {
-+ y *= 1.0 * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2));
-+ exp -= GMP_LIMB_BITS;
-+ }
-+ if (y < (1.0 / (1 << 16)))
-+ {
-+ y *= 1.0 * (1 << 16);
-+ exp -= 16;
-+ }
-+ if (y < (1.0 / (1 << 8)))
-+ {
-+ y *= 1.0 * (1 << 8);
-+ exp -= 8;
-+ }
-+ if (y < (1.0 / (1 << 4)))
-+ {
-+ y *= 1.0 * (1 << 4);
-+ exp -= 4;
-+ }
-+ if (y < (1.0 / (1 << 2)))
-+ {
-+ y *= 1.0 * (1 << 2);
-+ exp -= 2;
-+ }
-+ if (y < (1.0 / (1 << 1)))
-+ {
-+ y *= 1.0 * (1 << 1);
-+ exp -= 1;
-+ }
-+ }
-+ if (!(y >= 0.5 && y < 1.0))
-+ abort ();
-+ /* Compute an approximation for l = log2(x) = exp + log2(y). */
-+ l = exp;
-+ z = y;
-+ if (z < 0.70710678118654752444)
-+ {
-+ z *= 1.4142135623730950488;
-+ l -= 0.5;
-+ }
-+ if (z < 0.8408964152537145431)
-+ {
-+ z *= 1.1892071150027210667;
-+ l -= 0.25;
-+ }
-+ if (z < 0.91700404320467123175)
-+ {
-+ z *= 1.0905077326652576592;
-+ l -= 0.125;
-+ }
-+ if (z < 0.9576032806985736469)
-+ {
-+ z *= 1.0442737824274138403;
-+ l -= 0.0625;
-+ }
-+ /* Now 0.95 <= z <= 1.01. */
-+ z = 1 - z;
-+ /* log2(1-z) = 1/log(2) * (- z - z^2/2 - z^3/3 - z^4/4 - ...)
-+ Four terms are enough to get an approximation with error < 10^-7. */
-+ l -= 1.4426950408889634074 * z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25)));
-+ /* Finally multiply with log(2)/log(10), yields an approximation for
-+ log10(x). */
-+ l *= 0.30102999566398119523;
-+ /* Round down to the next integer. */
-+ return (int) l + (l < 0 ? -1 : 0);
-+}
-+
-+# endif
-+
-+/* Tests whether a string of digits consists of exactly PRECISION zeroes and
-+ a single '1' digit. */
-+static int
-+is_borderline (const char *digits, size_t precision)
-+{
-+ for (; precision > 0; precision--, digits++)
-+ if (*digits != '0')
-+ return 0;
-+ if (*digits != '1')
-+ return 0;
-+ digits++;
-+ return *digits == '\0';
-+}
-+
-+#endif
-+
-+DCHAR_T *
-+VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
-+ const FCHAR_T *format, va_list args)
-+{
-+ DIRECTIVES d;
-+ arguments a;
-+
-+ if (PRINTF_PARSE (format, &d, &a) < 0)
-+ /* errno is already set. */
-+ return NULL;
-+
-+#define CLEANUP() \
-+ free (d.dir); \
-+ if (a.arg) \
-+ free (a.arg);
-+
-+ if (PRINTF_FETCHARGS (args, &a) < 0)
-+ {
-+ CLEANUP ();
-+ errno = EINVAL;
-+ return NULL;
-+ }
-+
-+ {
-+ size_t buf_neededlength;
-+ TCHAR_T *buf;
-+ TCHAR_T *buf_malloced;
-+ const FCHAR_T *cp;
-+ size_t i;
-+ DIRECTIVE *dp;
-+ /* Output string accumulator. */
-+ DCHAR_T *result;
-+ size_t allocated;
-+ size_t length;
-+
-+ /* Allocate a small buffer that will hold a directive passed to
-+ sprintf or snprintf. */
-+ buf_neededlength =
-+ xsum4 (7, d.max_width_length, d.max_precision_length, 6);
-+#if HAVE_ALLOCA
-+ if (buf_neededlength < 4000 / sizeof (TCHAR_T))
-+ {
-+ buf = (TCHAR_T *) alloca (buf_neededlength * sizeof (TCHAR_T));
-+ buf_malloced = NULL;
-+ }
-+ else
-+#endif
-+ {
-+ size_t buf_memsize = xtimes (buf_neededlength, sizeof (TCHAR_T));
-+ if (size_overflow_p (buf_memsize))
-+ goto out_of_memory_1;
-+ buf = (TCHAR_T *) malloc (buf_memsize);
-+ if (buf == NULL)
-+ goto out_of_memory_1;
-+ buf_malloced = buf;
-+ }
-+
-+ if (resultbuf != NULL)
-+ {
-+ result = resultbuf;
-+ allocated = *lengthp;
-+ }
-+ else
-+ {
-+ result = NULL;
-+ allocated = 0;
-+ }
-+ length = 0;
-+ /* Invariants:
-+ result is either == resultbuf or == NULL or malloc-allocated.
-+ If length > 0, then result != NULL. */
-+
-+ /* Ensures that allocated >= needed. Aborts through a jump to
-+ out_of_memory if needed is SIZE_MAX or otherwise too big. */
-+#define ENSURE_ALLOCATION(needed) \
-+ if ((needed) > allocated) \
-+ { \
-+ size_t memory_size; \
-+ DCHAR_T *memory; \
-+ \
-+ allocated = (allocated > 0 ? xtimes (allocated, 2) : 12); \
-+ if ((needed) > allocated) \
-+ allocated = (needed); \
-+ memory_size = xtimes (allocated, sizeof (DCHAR_T)); \
-+ if (size_overflow_p (memory_size)) \
-+ goto out_of_memory; \
-+ if (result == resultbuf || result == NULL) \
-+ memory = (DCHAR_T *) malloc (memory_size); \
-+ else \
-+ memory = (DCHAR_T *) realloc (result, memory_size); \
-+ if (memory == NULL) \
-+ goto out_of_memory; \
-+ if (result == resultbuf && length > 0) \
-+ DCHAR_CPY (memory, result, length); \
-+ result = memory; \
-+ }
-+
-+ for (cp = format, i = 0, dp = &d.dir[0]; ; cp = dp->dir_end, i++, dp++)
-+ {
-+ if (cp != dp->dir_start)
-+ {
-+ size_t n = dp->dir_start - cp;
-+ size_t augmented_length = xsum (length, n);
-+
-+ ENSURE_ALLOCATION (augmented_length);
-+ /* This copies a piece of FCHAR_T[] into a DCHAR_T[]. Here we
-+ need that the format string contains only ASCII characters
-+ if FCHAR_T and DCHAR_T are not the same type. */
-+ if (sizeof (FCHAR_T) == sizeof (DCHAR_T))
-+ {
-+ DCHAR_CPY (result + length, (const DCHAR_T *) cp, n);
-+ length = augmented_length;
-+ }
-+ else
-+ {
-+ do
-+ result[length++] = (unsigned char) *cp++;
-+ while (--n > 0);
-+ }
-+ }
-+ if (i == d.count)
-+ break;
-+
-+ /* Execute a single directive. */
-+ if (dp->conversion == '%')
-+ {
-+ size_t augmented_length;
-+
-+ if (!(dp->arg_index == ARG_NONE))
-+ abort ();
-+ augmented_length = xsum (length, 1);
-+ ENSURE_ALLOCATION (augmented_length);
-+ result[length] = '%';
-+ length = augmented_length;
-+ }
-+ else
-+ {
-+ if (!(dp->arg_index != ARG_NONE))
-+ abort ();
-+
-+ if (dp->conversion == 'n')
-+ {
-+ switch (a.arg[dp->arg_index].type)
-+ {
-+ case TYPE_COUNT_SCHAR_POINTER:
-+ *a.arg[dp->arg_index].a.a_count_schar_pointer = length;
-+ break;
-+ case TYPE_COUNT_SHORT_POINTER:
-+ *a.arg[dp->arg_index].a.a_count_short_pointer = length;
-+ break;
-+ case TYPE_COUNT_INT_POINTER:
-+ *a.arg[dp->arg_index].a.a_count_int_pointer = length;
-+ break;
-+ case TYPE_COUNT_LONGINT_POINTER:
-+ *a.arg[dp->arg_index].a.a_count_longint_pointer = length;
-+ break;
-+#if HAVE_LONG_LONG_INT
-+ case TYPE_COUNT_LONGLONGINT_POINTER:
-+ *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length;
-+ break;
-+#endif
-+ default:
-+ abort ();
-+ }
-+ }
-+#if ENABLE_UNISTDIO
-+ /* The unistdio extensions. */
-+ else if (dp->conversion == 'U')
-+ {
-+ arg_type type = a.arg[dp->arg_index].type;
-+ int flags = dp->flags;
-+ int has_width;
-+ size_t width;
-+ int has_precision;
-+ size_t precision;
-+
-+ has_width = 0;
-+ width = 0;
-+ if (dp->width_start != dp->width_end)
-+ {
-+ if (dp->width_arg_index != ARG_NONE)
-+ {
-+ int arg;
-+
-+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
-+ abort ();
-+ arg = a.arg[dp->width_arg_index].a.a_int;
-+ if (arg < 0)
-+ {
-+ /* "A negative field width is taken as a '-' flag
-+ followed by a positive field width." */
-+ flags |= FLAG_LEFT;
-+ width = (unsigned int) (-arg);
-+ }
-+ else
-+ width = arg;
-+ }
-+ else
-+ {
-+ const FCHAR_T *digitp = dp->width_start;
-+
-+ do
-+ width = xsum (xtimes (width, 10), *digitp++ - '0');
-+ while (digitp != dp->width_end);
-+ }
-+ has_width = 1;
-+ }
-+
-+ has_precision = 0;
-+ precision = 0;
-+ if (dp->precision_start != dp->precision_end)
-+ {
-+ if (dp->precision_arg_index != ARG_NONE)
-+ {
-+ int arg;
-+
-+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
-+ abort ();
-+ arg = a.arg[dp->precision_arg_index].a.a_int;
-+ /* "A negative precision is taken as if the precision
-+ were omitted." */
-+ if (arg >= 0)
-+ {
-+ precision = arg;
-+ has_precision = 1;
-+ }
-+ }
-+ else
-+ {
-+ const FCHAR_T *digitp = dp->precision_start + 1;
-+
-+ precision = 0;
-+ while (digitp != dp->precision_end)
-+ precision = xsum (xtimes (precision, 10), *digitp++ - '0');
-+ has_precision = 1;
-+ }
-+ }
-+
-+ switch (type)
-+ {
-+ case TYPE_U8_STRING:
-+ {
-+ const uint8_t *arg = a.arg[dp->arg_index].a.a_u8_string;
-+ const uint8_t *arg_end;
-+ size_t characters;
-+
-+ if (has_precision)
-+ {
-+ /* Use only PRECISION characters, from the left. */
-+ arg_end = arg;
-+ characters = 0;
-+ for (; precision > 0; precision--)
-+ {
-+ int count = u8_strmblen (arg_end);
-+ if (count == 0)
-+ break;
-+ if (count < 0)
-+ {
-+ if (!(result == resultbuf || result == NULL))
-+ free (result);
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ CLEANUP ();
-+ errno = EILSEQ;
-+ return NULL;
-+ }
-+ arg_end += count;
-+ characters++;
-+ }
-+ }
-+ else if (has_width)
-+ {
-+ /* Use the entire string, and count the number of
-+ characters. */
-+ arg_end = arg;
-+ characters = 0;
-+ for (;;)
-+ {
-+ int count = u8_strmblen (arg_end);
-+ if (count == 0)
-+ break;
-+ if (count < 0)
-+ {
-+ if (!(result == resultbuf || result == NULL))
-+ free (result);
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ CLEANUP ();
-+ errno = EILSEQ;
-+ return NULL;
-+ }
-+ arg_end += count;
-+ characters++;
-+ }
-+ }
-+ else
-+ {
-+ /* Use the entire string. */
-+ arg_end = arg + u8_strlen (arg);
-+ /* The number of characters doesn't matter. */
-+ characters = 0;
-+ }
-+
-+ if (has_width && width > characters
-+ && !(dp->flags & FLAG_LEFT))
-+ {
-+ size_t n = width - characters;
-+ ENSURE_ALLOCATION (xsum (length, n));
-+ DCHAR_SET (result + length, ' ', n);
-+ length += n;
-+ }
-+
-+# if DCHAR_IS_UINT8_T
-+ {
-+ size_t n = arg_end - arg;
-+ ENSURE_ALLOCATION (xsum (length, n));
-+ DCHAR_CPY (result + length, arg, n);
-+ length += n;
-+ }
-+# else
-+ { /* Convert. */
-+ DCHAR_T *converted = result + length;
-+ size_t converted_len = allocated - length;
-+# if DCHAR_IS_TCHAR
-+ /* Convert from UTF-8 to locale encoding. */
-+ if (u8_conv_to_encoding (locale_charset (),
-+ iconveh_question_mark,
-+ arg, arg_end - arg, NULL,
-+ &converted, &converted_len)
-+ < 0)
-+# else
-+ /* Convert from UTF-8 to UTF-16/UTF-32. */
-+ converted =
-+ U8_TO_DCHAR (arg, arg_end - arg,
-+ converted, &converted_len);
-+ if (converted == NULL)
-+# endif
-+ {
-+ int saved_errno = errno;
-+ if (!(result == resultbuf || result == NULL))
-+ free (result);
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ CLEANUP ();
-+ errno = saved_errno;
-+ return NULL;
-+ }
-+ if (converted != result + length)
-+ {
-+ ENSURE_ALLOCATION (xsum (length, converted_len));
-+ DCHAR_CPY (result + length, converted, converted_len);
-+ free (converted);
-+ }
-+ length += converted_len;
-+ }
-+# endif
-+
-+ if (has_width && width > characters
-+ && (dp->flags & FLAG_LEFT))
-+ {
-+ size_t n = width - characters;
-+ ENSURE_ALLOCATION (xsum (length, n));
-+ DCHAR_SET (result + length, ' ', n);
-+ length += n;
-+ }
-+ }
-+ break;
-+
-+ case TYPE_U16_STRING:
-+ {
-+ const uint16_t *arg = a.arg[dp->arg_index].a.a_u16_string;
-+ const uint16_t *arg_end;
-+ size_t characters;
-+
-+ if (has_precision)
-+ {
-+ /* Use only PRECISION characters, from the left. */
-+ arg_end = arg;
-+ characters = 0;
-+ for (; precision > 0; precision--)
-+ {
-+ int count = u16_strmblen (arg_end);
-+ if (count == 0)
-+ break;
-+ if (count < 0)
-+ {
-+ if (!(result == resultbuf || result == NULL))
-+ free (result);
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ CLEANUP ();
-+ errno = EILSEQ;
-+ return NULL;
-+ }
-+ arg_end += count;
-+ characters++;
-+ }
-+ }
-+ else if (has_width)
-+ {
-+ /* Use the entire string, and count the number of
-+ characters. */
-+ arg_end = arg;
-+ characters = 0;
-+ for (;;)
-+ {
-+ int count = u16_strmblen (arg_end);
-+ if (count == 0)
-+ break;
-+ if (count < 0)
-+ {
-+ if (!(result == resultbuf || result == NULL))
-+ free (result);
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ CLEANUP ();
-+ errno = EILSEQ;
-+ return NULL;
-+ }
-+ arg_end += count;
-+ characters++;
-+ }
-+ }
-+ else
-+ {
-+ /* Use the entire string. */
-+ arg_end = arg + u16_strlen (arg);
-+ /* The number of characters doesn't matter. */
-+ characters = 0;
-+ }
-+
-+ if (has_width && width > characters
-+ && !(dp->flags & FLAG_LEFT))
-+ {
-+ size_t n = width - characters;
-+ ENSURE_ALLOCATION (xsum (length, n));
-+ DCHAR_SET (result + length, ' ', n);
-+ length += n;
-+ }
-+
-+# if DCHAR_IS_UINT16_T
-+ {
-+ size_t n = arg_end - arg;
-+ ENSURE_ALLOCATION (xsum (length, n));
-+ DCHAR_CPY (result + length, arg, n);
-+ length += n;
-+ }
-+# else
-+ { /* Convert. */
-+ DCHAR_T *converted = result + length;
-+ size_t converted_len = allocated - length;
-+# if DCHAR_IS_TCHAR
-+ /* Convert from UTF-16 to locale encoding. */
-+ if (u16_conv_to_encoding (locale_charset (),
-+ iconveh_question_mark,
-+ arg, arg_end - arg, NULL,
-+ &converted, &converted_len)
-+ < 0)
-+# else
-+ /* Convert from UTF-16 to UTF-8/UTF-32. */
-+ converted =
-+ U16_TO_DCHAR (arg, arg_end - arg,
-+ converted, &converted_len);
-+ if (converted == NULL)
-+# endif
-+ {
-+ int saved_errno = errno;
-+ if (!(result == resultbuf || result == NULL))
-+ free (result);
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ CLEANUP ();
-+ errno = saved_errno;
-+ return NULL;
-+ }
-+ if (converted != result + length)
-+ {
-+ ENSURE_ALLOCATION (xsum (length, converted_len));
-+ DCHAR_CPY (result + length, converted, converted_len);
-+ free (converted);
-+ }
-+ length += converted_len;
-+ }
-+# endif
-+
-+ if (has_width && width > characters
-+ && (dp->flags & FLAG_LEFT))
-+ {
-+ size_t n = width - characters;
-+ ENSURE_ALLOCATION (xsum (length, n));
-+ DCHAR_SET (result + length, ' ', n);
-+ length += n;
-+ }
-+ }
-+ break;
-+
-+ case TYPE_U32_STRING:
-+ {
-+ const uint32_t *arg = a.arg[dp->arg_index].a.a_u32_string;
-+ const uint32_t *arg_end;
-+ size_t characters;
-+
-+ if (has_precision)
-+ {
-+ /* Use only PRECISION characters, from the left. */
-+ arg_end = arg;
-+ characters = 0;
-+ for (; precision > 0; precision--)
-+ {
-+ int count = u32_strmblen (arg_end);
-+ if (count == 0)
-+ break;
-+ if (count < 0)
-+ {
-+ if (!(result == resultbuf || result == NULL))
-+ free (result);
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ CLEANUP ();
-+ errno = EILSEQ;
-+ return NULL;
-+ }
-+ arg_end += count;
-+ characters++;
-+ }
-+ }
-+ else if (has_width)
-+ {
-+ /* Use the entire string, and count the number of
-+ characters. */
-+ arg_end = arg;
-+ characters = 0;
-+ for (;;)
-+ {
-+ int count = u32_strmblen (arg_end);
-+ if (count == 0)
-+ break;
-+ if (count < 0)
-+ {
-+ if (!(result == resultbuf || result == NULL))
-+ free (result);
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ CLEANUP ();
-+ errno = EILSEQ;
-+ return NULL;
-+ }
-+ arg_end += count;
-+ characters++;
-+ }
-+ }
-+ else
-+ {
-+ /* Use the entire string. */
-+ arg_end = arg + u32_strlen (arg);
-+ /* The number of characters doesn't matter. */
-+ characters = 0;
-+ }
-+
-+ if (has_width && width > characters
-+ && !(dp->flags & FLAG_LEFT))
-+ {
-+ size_t n = width - characters;
-+ ENSURE_ALLOCATION (xsum (length, n));
-+ DCHAR_SET (result + length, ' ', n);
-+ length += n;
-+ }
-+
-+# if DCHAR_IS_UINT32_T
-+ {
-+ size_t n = arg_end - arg;
-+ ENSURE_ALLOCATION (xsum (length, n));
-+ DCHAR_CPY (result + length, arg, n);
-+ length += n;
-+ }
-+# else
-+ { /* Convert. */
-+ DCHAR_T *converted = result + length;
-+ size_t converted_len = allocated - length;
-+# if DCHAR_IS_TCHAR
-+ /* Convert from UTF-32 to locale encoding. */
-+ if (u32_conv_to_encoding (locale_charset (),
-+ iconveh_question_mark,
-+ arg, arg_end - arg, NULL,
-+ &converted, &converted_len)
-+ < 0)
-+# else
-+ /* Convert from UTF-32 to UTF-8/UTF-16. */
-+ converted =
-+ U32_TO_DCHAR (arg, arg_end - arg,
-+ converted, &converted_len);
-+ if (converted == NULL)
-+# endif
-+ {
-+ int saved_errno = errno;
-+ if (!(result == resultbuf || result == NULL))
-+ free (result);
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ CLEANUP ();
-+ errno = saved_errno;
-+ return NULL;
-+ }
-+ if (converted != result + length)
-+ {
-+ ENSURE_ALLOCATION (xsum (length, converted_len));
-+ DCHAR_CPY (result + length, converted, converted_len);
-+ free (converted);
-+ }
-+ length += converted_len;
-+ }
-+# endif
-+
-+ if (has_width && width > characters
-+ && (dp->flags & FLAG_LEFT))
-+ {
-+ size_t n = width - characters;
-+ ENSURE_ALLOCATION (xsum (length, n));
-+ DCHAR_SET (result + length, ' ', n);
-+ length += n;
-+ }
-+ }
-+ break;
-+
-+ default:
-+ abort ();
-+ }
-+ }
-+#endif
-+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
-+ else if ((dp->conversion == 'a' || dp->conversion == 'A')
-+# if !(NEED_PRINTF_DIRECTIVE_A || (NEED_PRINTF_LONG_DOUBLE && NEED_PRINTF_DOUBLE))
-+ && (0
-+# if NEED_PRINTF_DOUBLE
-+ || a.arg[dp->arg_index].type == TYPE_DOUBLE
-+# endif
-+# if NEED_PRINTF_LONG_DOUBLE
-+ || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE
-+# endif
-+ )
-+# endif
-+ )
-+ {
-+ arg_type type = a.arg[dp->arg_index].type;
-+ int flags = dp->flags;
-+ int has_width;
-+ size_t width;
-+ int has_precision;
-+ size_t precision;
-+ size_t tmp_length;
-+ DCHAR_T tmpbuf[700];
-+ DCHAR_T *tmp;
-+ DCHAR_T *pad_ptr;
-+ DCHAR_T *p;
-+
-+ has_width = 0;
-+ width = 0;
-+ if (dp->width_start != dp->width_end)
-+ {
-+ if (dp->width_arg_index != ARG_NONE)
-+ {
-+ int arg;
-+
-+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
-+ abort ();
-+ arg = a.arg[dp->width_arg_index].a.a_int;
-+ if (arg < 0)
-+ {
-+ /* "A negative field width is taken as a '-' flag
-+ followed by a positive field width." */
-+ flags |= FLAG_LEFT;
-+ width = (unsigned int) (-arg);
-+ }
-+ else
-+ width = arg;
-+ }
-+ else
-+ {
-+ const FCHAR_T *digitp = dp->width_start;
-+
-+ do
-+ width = xsum (xtimes (width, 10), *digitp++ - '0');
-+ while (digitp != dp->width_end);
-+ }
-+ has_width = 1;
-+ }
-+
-+ has_precision = 0;
-+ precision = 0;
-+ if (dp->precision_start != dp->precision_end)
-+ {
-+ if (dp->precision_arg_index != ARG_NONE)
-+ {
-+ int arg;
-+
-+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
-+ abort ();
-+ arg = a.arg[dp->precision_arg_index].a.a_int;
-+ /* "A negative precision is taken as if the precision
-+ were omitted." */
-+ if (arg >= 0)
-+ {
-+ precision = arg;
-+ has_precision = 1;
-+ }
-+ }
-+ else
-+ {
-+ const FCHAR_T *digitp = dp->precision_start + 1;
-+
-+ precision = 0;
-+ while (digitp != dp->precision_end)
-+ precision = xsum (xtimes (precision, 10), *digitp++ - '0');
-+ has_precision = 1;
-+ }
-+ }
-+
-+ /* Allocate a temporary buffer of sufficient size. */
-+ if (type == TYPE_LONGDOUBLE)
-+ tmp_length =
-+ (unsigned int) ((LDBL_DIG + 1)
-+ * 0.831 /* decimal -> hexadecimal */
-+ )
-+ + 1; /* turn floor into ceil */
-+ else
-+ tmp_length =
-+ (unsigned int) ((DBL_DIG + 1)
-+ * 0.831 /* decimal -> hexadecimal */
-+ )
-+ + 1; /* turn floor into ceil */
-+ if (tmp_length < precision)
-+ tmp_length = precision;
-+ /* Account for sign, decimal point etc. */
-+ tmp_length = xsum (tmp_length, 12);
-+
-+ if (tmp_length < width)
-+ tmp_length = width;
-+
-+ tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
-+
-+ if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T))
-+ tmp = tmpbuf;
-+ else
-+ {
-+ size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T));
-+
-+ if (size_overflow_p (tmp_memsize))
-+ /* Overflow, would lead to out of memory. */
-+ goto out_of_memory;
-+ tmp = (DCHAR_T *) malloc (tmp_memsize);
-+ if (tmp == NULL)
-+ /* Out of memory. */
-+ goto out_of_memory;
-+ }
-+
-+ pad_ptr = NULL;
-+ p = tmp;
-+ if (type == TYPE_LONGDOUBLE)
-+ {
-+# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE
-+ long double arg = a.arg[dp->arg_index].a.a_longdouble;
-+
-+ if (isnanl (arg))
-+ {
-+ if (dp->conversion == 'A')
-+ {
-+ *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
-+ }
-+ else
-+ {
-+ *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
-+ }
-+ }
-+ else
-+ {
-+ int sign = 0;
-+ DECL_LONG_DOUBLE_ROUNDING
-+
-+ BEGIN_LONG_DOUBLE_ROUNDING ();
-+
-+ if (signbit (arg)) /* arg < 0.0L or negative zero */
-+ {
-+ sign = -1;
-+ arg = -arg;
-+ }
-+
-+ if (sign < 0)
-+ *p++ = '-';
-+ else if (flags & FLAG_SHOWSIGN)
-+ *p++ = '+';
-+ else if (flags & FLAG_SPACE)
-+ *p++ = ' ';
-+
-+ if (arg > 0.0L && arg + arg == arg)
-+ {
-+ if (dp->conversion == 'A')
-+ {
-+ *p++ = 'I'; *p++ = 'N'; *p++ = 'F';
-+ }
-+ else
-+ {
-+ *p++ = 'i'; *p++ = 'n'; *p++ = 'f';
-+ }
-+ }
-+ else
-+ {
-+ int exponent;
-+ long double mantissa;
-+
-+ if (arg > 0.0L)
-+ mantissa = printf_frexpl (arg, &exponent);
-+ else
-+ {
-+ exponent = 0;
-+ mantissa = 0.0L;
-+ }
-+
-+ if (has_precision
-+ && precision < (unsigned int) ((LDBL_DIG + 1) * 0.831) + 1)
-+ {
-+ /* Round the mantissa. */
-+ long double tail = mantissa;
-+ size_t q;
-+
-+ for (q = precision; ; q--)
-+ {
-+ int digit = (int) tail;
-+ tail -= digit;
-+ if (q == 0)
-+ {
-+ if (digit & 1 ? tail >= 0.5L : tail > 0.5L)
-+ tail = 1 - tail;
-+ else
-+ tail = - tail;
-+ break;
-+ }
-+ tail *= 16.0L;
-+ }
-+ if (tail != 0.0L)
-+ for (q = precision; q > 0; q--)
-+ tail *= 0.0625L;
-+ mantissa += tail;
-+ }
-+
-+ *p++ = '0';
-+ *p++ = dp->conversion - 'A' + 'X';
-+ pad_ptr = p;
-+ {
-+ int digit;
-+
-+ digit = (int) mantissa;
-+ mantissa -= digit;
-+ *p++ = '0' + digit;
-+ if ((flags & FLAG_ALT)
-+ || mantissa > 0.0L || precision > 0)
-+ {
-+ *p++ = decimal_point_char ();
-+ /* This loop terminates because we assume
-+ that FLT_RADIX is a power of 2. */
-+ while (mantissa > 0.0L)
-+ {
-+ mantissa *= 16.0L;
-+ digit = (int) mantissa;
-+ mantissa -= digit;
-+ *p++ = digit
-+ + (digit < 10
-+ ? '0'
-+ : dp->conversion - 10);
-+ if (precision > 0)
-+ precision--;
-+ }
-+ while (precision > 0)
-+ {
-+ *p++ = '0';
-+ precision--;
-+ }
-+ }
-+ }
-+ *p++ = dp->conversion - 'A' + 'P';
-+# if WIDE_CHAR_VERSION
-+ {
-+ static const wchar_t decimal_format[] =
-+ { '%', '+', 'd', '\0' };
-+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
-+ }
-+ while (*p != '\0')
-+ p++;
-+# else
-+ if (sizeof (DCHAR_T) == 1)
-+ {
-+ sprintf ((char *) p, "%+d", exponent);
-+ while (*p != '\0')
-+ p++;
-+ }
-+ else
-+ {
-+ char expbuf[6 + 1];
-+ const char *ep;
-+ sprintf (expbuf, "%+d", exponent);
-+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
-+ p++;
-+ }
-+# endif
-+ }
-+
-+ END_LONG_DOUBLE_ROUNDING ();
-+ }
-+# else
-+ abort ();
-+# endif
-+ }
-+ else
-+ {
-+# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE
-+ double arg = a.arg[dp->arg_index].a.a_double;
-+
-+ if (isnand (arg))
-+ {
-+ if (dp->conversion == 'A')
-+ {
-+ *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
-+ }
-+ else
-+ {
-+ *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
-+ }
-+ }
-+ else
-+ {
-+ int sign = 0;
-+
-+ if (signbit (arg)) /* arg < 0.0 or negative zero */
-+ {
-+ sign = -1;
-+ arg = -arg;
-+ }
-+
-+ if (sign < 0)
-+ *p++ = '-';
-+ else if (flags & FLAG_SHOWSIGN)
-+ *p++ = '+';
-+ else if (flags & FLAG_SPACE)
-+ *p++ = ' ';
-+
-+ if (arg > 0.0 && arg + arg == arg)
-+ {
-+ if (dp->conversion == 'A')
-+ {
-+ *p++ = 'I'; *p++ = 'N'; *p++ = 'F';
-+ }
-+ else
-+ {
-+ *p++ = 'i'; *p++ = 'n'; *p++ = 'f';
-+ }
-+ }
-+ else
-+ {
-+ int exponent;
-+ double mantissa;
-+
-+ if (arg > 0.0)
-+ mantissa = printf_frexp (arg, &exponent);
-+ else
-+ {
-+ exponent = 0;
-+ mantissa = 0.0;
-+ }
-+
-+ if (has_precision
-+ && precision < (unsigned int) ((DBL_DIG + 1) * 0.831) + 1)
-+ {
-+ /* Round the mantissa. */
-+ double tail = mantissa;
-+ size_t q;
-+
-+ for (q = precision; ; q--)
-+ {
-+ int digit = (int) tail;
-+ tail -= digit;
-+ if (q == 0)
-+ {
-+ if (digit & 1 ? tail >= 0.5 : tail > 0.5)
-+ tail = 1 - tail;
-+ else
-+ tail = - tail;
-+ break;
-+ }
-+ tail *= 16.0;
-+ }
-+ if (tail != 0.0)
-+ for (q = precision; q > 0; q--)
-+ tail *= 0.0625;
-+ mantissa += tail;
-+ }
-+
-+ *p++ = '0';
-+ *p++ = dp->conversion - 'A' + 'X';
-+ pad_ptr = p;
-+ {
-+ int digit;
-+
-+ digit = (int) mantissa;
-+ mantissa -= digit;
-+ *p++ = '0' + digit;
-+ if ((flags & FLAG_ALT)
-+ || mantissa > 0.0 || precision > 0)
-+ {
-+ *p++ = decimal_point_char ();
-+ /* This loop terminates because we assume
-+ that FLT_RADIX is a power of 2. */
-+ while (mantissa > 0.0)
-+ {
-+ mantissa *= 16.0;
-+ digit = (int) mantissa;
-+ mantissa -= digit;
-+ *p++ = digit
-+ + (digit < 10
-+ ? '0'
-+ : dp->conversion - 10);
-+ if (precision > 0)
-+ precision--;
-+ }
-+ while (precision > 0)
-+ {
-+ *p++ = '0';
-+ precision--;
-+ }
-+ }
-+ }
-+ *p++ = dp->conversion - 'A' + 'P';
-+# if WIDE_CHAR_VERSION
-+ {
-+ static const wchar_t decimal_format[] =
-+ { '%', '+', 'd', '\0' };
-+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
-+ }
-+ while (*p != '\0')
-+ p++;
-+# else
-+ if (sizeof (DCHAR_T) == 1)
-+ {
-+ sprintf ((char *) p, "%+d", exponent);
-+ while (*p != '\0')
-+ p++;
-+ }
-+ else
-+ {
-+ char expbuf[6 + 1];
-+ const char *ep;
-+ sprintf (expbuf, "%+d", exponent);
-+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
-+ p++;
-+ }
-+# endif
-+ }
-+ }
-+# else
-+ abort ();
-+# endif
-+ }
-+ /* The generated string now extends from tmp to p, with the
-+ zero padding insertion point being at pad_ptr. */
-+ if (has_width && p - tmp < width)
-+ {
-+ size_t pad = width - (p - tmp);
-+ DCHAR_T *end = p + pad;
-+
-+ if (flags & FLAG_LEFT)
-+ {
-+ /* Pad with spaces on the right. */
-+ for (; pad > 0; pad--)
-+ *p++ = ' ';
-+ }
-+ else if ((flags & FLAG_ZERO) && pad_ptr != NULL)
-+ {
-+ /* Pad with zeroes. */
-+ DCHAR_T *q = end;
-+
-+ while (p > pad_ptr)
-+ *--q = *--p;
-+ for (; pad > 0; pad--)
-+ *p++ = '0';
-+ }
-+ else
-+ {
-+ /* Pad with spaces on the left. */
-+ DCHAR_T *q = end;
-+
-+ while (p > tmp)
-+ *--q = *--p;
-+ for (; pad > 0; pad--)
-+ *p++ = ' ';
-+ }
-+
-+ p = end;
-+ }
-+
-+ {
-+ size_t count = p - tmp;
-+
-+ if (count >= tmp_length)
-+ /* tmp_length was incorrectly calculated - fix the
-+ code above! */
-+ abort ();
-+
-+ /* Make room for the result. */
-+ if (count >= allocated - length)
-+ {
-+ size_t n = xsum (length, count);
-+
-+ ENSURE_ALLOCATION (n);
-+ }
-+
-+ /* Append the result. */
-+ memcpy (result + length, tmp, count * sizeof (DCHAR_T));
-+ if (tmp != tmpbuf)
-+ free (tmp);
-+ length += count;
-+ }
-+ }
-+#endif
-+#if (NEED_PRINTF_INFINITE_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
-+ else if ((dp->conversion == 'f' || dp->conversion == 'F'
-+ || dp->conversion == 'e' || dp->conversion == 'E'
-+ || dp->conversion == 'g' || dp->conversion == 'G'
-+ || dp->conversion == 'a' || dp->conversion == 'A')
-+ && (0
-+# if NEED_PRINTF_DOUBLE
-+ || a.arg[dp->arg_index].type == TYPE_DOUBLE
-+# elif NEED_PRINTF_INFINITE_DOUBLE
-+ || (a.arg[dp->arg_index].type == TYPE_DOUBLE
-+ /* The systems (mingw) which produce wrong output
-+ for Inf, -Inf, and NaN also do so for -0.0.
-+ Therefore we treat this case here as well. */
-+ && is_infinite_or_zero (a.arg[dp->arg_index].a.a_double))
-+# endif
-+# if NEED_PRINTF_LONG_DOUBLE
-+ || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE
-+# elif NEED_PRINTF_INFINITE_LONG_DOUBLE
-+ || (a.arg[dp->arg_index].type == TYPE_LONGDOUBLE
-+ /* Some systems produce wrong output for Inf,
-+ -Inf, and NaN. Some systems in this category
-+ (IRIX 5.3) also do so for -0.0. Therefore we
-+ treat this case here as well. */
-+ && is_infinite_or_zerol (a.arg[dp->arg_index].a.a_longdouble))
-+# endif
-+ ))
-+ {
-+# if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE)
-+ arg_type type = a.arg[dp->arg_index].type;
-+# endif
-+ int flags = dp->flags;
-+ int has_width;
-+ size_t width;
-+ int has_precision;
-+ size_t precision;
-+ size_t tmp_length;
-+ DCHAR_T tmpbuf[700];
-+ DCHAR_T *tmp;
-+ DCHAR_T *pad_ptr;
-+ DCHAR_T *p;
-+
-+ has_width = 0;
-+ width = 0;
-+ if (dp->width_start != dp->width_end)
-+ {
-+ if (dp->width_arg_index != ARG_NONE)
-+ {
-+ int arg;
-+
-+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
-+ abort ();
-+ arg = a.arg[dp->width_arg_index].a.a_int;
-+ if (arg < 0)
-+ {
-+ /* "A negative field width is taken as a '-' flag
-+ followed by a positive field width." */
-+ flags |= FLAG_LEFT;
-+ width = (unsigned int) (-arg);
-+ }
-+ else
-+ width = arg;
-+ }
-+ else
-+ {
-+ const FCHAR_T *digitp = dp->width_start;
-+
-+ do
-+ width = xsum (xtimes (width, 10), *digitp++ - '0');
-+ while (digitp != dp->width_end);
-+ }
-+ has_width = 1;
-+ }
-+
-+ has_precision = 0;
-+ precision = 0;
-+ if (dp->precision_start != dp->precision_end)
-+ {
-+ if (dp->precision_arg_index != ARG_NONE)
-+ {
-+ int arg;
-+
-+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
-+ abort ();
-+ arg = a.arg[dp->precision_arg_index].a.a_int;
-+ /* "A negative precision is taken as if the precision
-+ were omitted." */
-+ if (arg >= 0)
-+ {
-+ precision = arg;
-+ has_precision = 1;
-+ }
-+ }
-+ else
-+ {
-+ const FCHAR_T *digitp = dp->precision_start + 1;
-+
-+ precision = 0;
-+ while (digitp != dp->precision_end)
-+ precision = xsum (xtimes (precision, 10), *digitp++ - '0');
-+ has_precision = 1;
-+ }
-+ }
-+
-+ /* POSIX specifies the default precision to be 6 for %f, %F,
-+ %e, %E, but not for %g, %G. Implementations appear to use
-+ the same default precision also for %g, %G. But for %a, %A,
-+ the default precision is 0. */
-+ if (!has_precision)
-+ if (!(dp->conversion == 'a' || dp->conversion == 'A'))
-+ precision = 6;
-+
-+ /* Allocate a temporary buffer of sufficient size. */
-+# if NEED_PRINTF_DOUBLE && NEED_PRINTF_LONG_DOUBLE
-+ tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : DBL_DIG + 1);
-+# elif NEED_PRINTF_INFINITE_DOUBLE && NEED_PRINTF_LONG_DOUBLE
-+ tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : 0);
-+# elif NEED_PRINTF_LONG_DOUBLE
-+ tmp_length = LDBL_DIG + 1;
-+# elif NEED_PRINTF_DOUBLE
-+ tmp_length = DBL_DIG + 1;
-+# else
-+ tmp_length = 0;
-+# endif
-+ if (tmp_length < precision)
-+ tmp_length = precision;
-+# if NEED_PRINTF_LONG_DOUBLE
-+# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
-+ if (type == TYPE_LONGDOUBLE)
-+# endif
-+ if (dp->conversion == 'f' || dp->conversion == 'F')
-+ {
-+ long double arg = a.arg[dp->arg_index].a.a_longdouble;
-+ if (!(isnanl (arg) || arg + arg == arg))
-+ {
-+ /* arg is finite and nonzero. */
-+ int exponent = floorlog10l (arg < 0 ? -arg : arg);
-+ if (exponent >= 0 && tmp_length < exponent + precision)
-+ tmp_length = exponent + precision;
-+ }
-+ }
-+# endif
-+# if NEED_PRINTF_DOUBLE
-+# if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE
-+ if (type == TYPE_DOUBLE)
-+# endif
-+ if (dp->conversion == 'f' || dp->conversion == 'F')
-+ {
-+ double arg = a.arg[dp->arg_index].a.a_double;
-+ if (!(isnand (arg) || arg + arg == arg))
-+ {
-+ /* arg is finite and nonzero. */
-+ int exponent = floorlog10 (arg < 0 ? -arg : arg);
-+ if (exponent >= 0 && tmp_length < exponent + precision)
-+ tmp_length = exponent + precision;
-+ }
-+ }
-+# endif
-+ /* Account for sign, decimal point etc. */
-+ tmp_length = xsum (tmp_length, 12);
-+
-+ if (tmp_length < width)
-+ tmp_length = width;
-+
-+ tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
-+
-+ if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T))
-+ tmp = tmpbuf;
-+ else
-+ {
-+ size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T));
-+
-+ if (size_overflow_p (tmp_memsize))
-+ /* Overflow, would lead to out of memory. */
-+ goto out_of_memory;
-+ tmp = (DCHAR_T *) malloc (tmp_memsize);
-+ if (tmp == NULL)
-+ /* Out of memory. */
-+ goto out_of_memory;
-+ }
-+
-+ pad_ptr = NULL;
-+ p = tmp;
-+
-+# if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE
-+# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
-+ if (type == TYPE_LONGDOUBLE)
-+# endif
-+ {
-+ long double arg = a.arg[dp->arg_index].a.a_longdouble;
-+
-+ if (isnanl (arg))
-+ {
-+ if (dp->conversion >= 'A' && dp->conversion <= 'Z')
-+ {
-+ *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
-+ }
-+ else
-+ {
-+ *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
-+ }
-+ }
-+ else
-+ {
-+ int sign = 0;
-+ DECL_LONG_DOUBLE_ROUNDING
-+
-+ BEGIN_LONG_DOUBLE_ROUNDING ();
-+
-+ if (signbit (arg)) /* arg < 0.0L or negative zero */
-+ {
-+ sign = -1;
-+ arg = -arg;
-+ }
-+
-+ if (sign < 0)
-+ *p++ = '-';
-+ else if (flags & FLAG_SHOWSIGN)
-+ *p++ = '+';
-+ else if (flags & FLAG_SPACE)
-+ *p++ = ' ';
-+
-+ if (arg > 0.0L && arg + arg == arg)
-+ {
-+ if (dp->conversion >= 'A' && dp->conversion <= 'Z')
-+ {
-+ *p++ = 'I'; *p++ = 'N'; *p++ = 'F';
-+ }
-+ else
-+ {
-+ *p++ = 'i'; *p++ = 'n'; *p++ = 'f';
-+ }
-+ }
-+ else
-+ {
-+# if NEED_PRINTF_LONG_DOUBLE
-+ pad_ptr = p;
-+
-+ if (dp->conversion == 'f' || dp->conversion == 'F')
-+ {
-+ char *digits;
-+ size_t ndigits;
-+
-+ digits =
-+ scale10_round_decimal_long_double (arg, precision);
-+ if (digits == NULL)
-+ {
-+ END_LONG_DOUBLE_ROUNDING ();
-+ goto out_of_memory;
-+ }
-+ ndigits = strlen (digits);
-+
-+ if (ndigits > precision)
-+ do
-+ {
-+ --ndigits;
-+ *p++ = digits[ndigits];
-+ }
-+ while (ndigits > precision);
-+ else
-+ *p++ = '0';
-+ /* Here ndigits <= precision. */
-+ if ((flags & FLAG_ALT) || precision > 0)
-+ {
-+ *p++ = decimal_point_char ();
-+ for (; precision > ndigits; precision--)
-+ *p++ = '0';
-+ while (ndigits > 0)
-+ {
-+ --ndigits;
-+ *p++ = digits[ndigits];
-+ }
-+ }
-+
-+ free (digits);
-+ }
-+ else if (dp->conversion == 'e' || dp->conversion == 'E')
-+ {
-+ int exponent;
-+
-+ if (arg == 0.0L)
-+ {
-+ exponent = 0;
-+ *p++ = '0';
-+ if ((flags & FLAG_ALT) || precision > 0)
-+ {
-+ *p++ = decimal_point_char ();
-+ for (; precision > 0; precision--)
-+ *p++ = '0';
-+ }
-+ }
-+ else
-+ {
-+ /* arg > 0.0L. */
-+ int adjusted;
-+ char *digits;
-+ size_t ndigits;
-+
-+ exponent = floorlog10l (arg);
-+ adjusted = 0;
-+ for (;;)
-+ {
-+ digits =
-+ scale10_round_decimal_long_double (arg,
-+ (int)precision - exponent);
-+ if (digits == NULL)
-+ {
-+ END_LONG_DOUBLE_ROUNDING ();
-+ goto out_of_memory;
-+ }
-+ ndigits = strlen (digits);
-+
-+ if (ndigits == precision + 1)
-+ break;
-+ if (ndigits < precision
-+ || ndigits > precision + 2)
-+ /* The exponent was not guessed
-+ precisely enough. */
-+ abort ();
-+ if (adjusted)
-+ /* None of two values of exponent is
-+ the right one. Prevent an endless
-+ loop. */
-+ abort ();
-+ free (digits);
-+ if (ndigits == precision)
-+ exponent -= 1;
-+ else
-+ exponent += 1;
-+ adjusted = 1;
-+ }
-+ /* Here ndigits = precision+1. */
-+ if (is_borderline (digits, precision))
-+ {
-+ /* Maybe the exponent guess was too high
-+ and a smaller exponent can be reached
-+ by turning a 10...0 into 9...9x. */
-+ char *digits2 =
-+ scale10_round_decimal_long_double (arg,
-+ (int)precision - exponent + 1);
-+ if (digits2 == NULL)
-+ {
-+ free (digits);
-+ END_LONG_DOUBLE_ROUNDING ();
-+ goto out_of_memory;
-+ }
-+ if (strlen (digits2) == precision + 1)
-+ {
-+ free (digits);
-+ digits = digits2;
-+ exponent -= 1;
-+ }
-+ else
-+ free (digits2);
-+ }
-+ /* Here ndigits = precision+1. */
-+
-+ *p++ = digits[--ndigits];
-+ if ((flags & FLAG_ALT) || precision > 0)
-+ {
-+ *p++ = decimal_point_char ();
-+ while (ndigits > 0)
-+ {
-+ --ndigits;
-+ *p++ = digits[ndigits];
-+ }
-+ }
-+
-+ free (digits);
-+ }
-+
-+ *p++ = dp->conversion; /* 'e' or 'E' */
-+# if WIDE_CHAR_VERSION
-+ {
-+ static const wchar_t decimal_format[] =
-+ { '%', '+', '.', '2', 'd', '\0' };
-+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
-+ }
-+ while (*p != '\0')
-+ p++;
-+# else
-+ if (sizeof (DCHAR_T) == 1)
-+ {
-+ sprintf ((char *) p, "%+.2d", exponent);
-+ while (*p != '\0')
-+ p++;
-+ }
-+ else
-+ {
-+ char expbuf[6 + 1];
-+ const char *ep;
-+ sprintf (expbuf, "%+.2d", exponent);
-+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
-+ p++;
-+ }
-+# endif
-+ }
-+ else if (dp->conversion == 'g' || dp->conversion == 'G')
-+ {
-+ if (precision == 0)
-+ precision = 1;
-+ /* precision >= 1. */
-+
-+ if (arg == 0.0L)
-+ /* The exponent is 0, >= -4, < precision.
-+ Use fixed-point notation. */
-+ {
-+ size_t ndigits = precision;
-+ /* Number of trailing zeroes that have to be
-+ dropped. */
-+ size_t nzeroes =
-+ (flags & FLAG_ALT ? 0 : precision - 1);
-+
-+ --ndigits;
-+ *p++ = '0';
-+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
-+ {
-+ *p++ = decimal_point_char ();
-+ while (ndigits > nzeroes)
-+ {
-+ --ndigits;
-+ *p++ = '0';
-+ }
-+ }
-+ }
-+ else
-+ {
-+ /* arg > 0.0L. */
-+ int exponent;
-+ int adjusted;
-+ char *digits;
-+ size_t ndigits;
-+ size_t nzeroes;
-+
-+ exponent = floorlog10l (arg);
-+ adjusted = 0;
-+ for (;;)
-+ {
-+ digits =
-+ scale10_round_decimal_long_double (arg,
-+ (int)(precision - 1) - exponent);
-+ if (digits == NULL)
-+ {
-+ END_LONG_DOUBLE_ROUNDING ();
-+ goto out_of_memory;
-+ }
-+ ndigits = strlen (digits);
-+
-+ if (ndigits == precision)
-+ break;
-+ if (ndigits < precision - 1
-+ || ndigits > precision + 1)
-+ /* The exponent was not guessed
-+ precisely enough. */
-+ abort ();
-+ if (adjusted)
-+ /* None of two values of exponent is
-+ the right one. Prevent an endless
-+ loop. */
-+ abort ();
-+ free (digits);
-+ if (ndigits < precision)
-+ exponent -= 1;
-+ else
-+ exponent += 1;
-+ adjusted = 1;
-+ }
-+ /* Here ndigits = precision. */
-+ if (is_borderline (digits, precision - 1))
-+ {
-+ /* Maybe the exponent guess was too high
-+ and a smaller exponent can be reached
-+ by turning a 10...0 into 9...9x. */
-+ char *digits2 =
-+ scale10_round_decimal_long_double (arg,
-+ (int)(precision - 1) - exponent + 1);
-+ if (digits2 == NULL)
-+ {
-+ free (digits);
-+ END_LONG_DOUBLE_ROUNDING ();
-+ goto out_of_memory;
-+ }
-+ if (strlen (digits2) == precision)
-+ {
-+ free (digits);
-+ digits = digits2;
-+ exponent -= 1;
-+ }
-+ else
-+ free (digits2);
-+ }
-+ /* Here ndigits = precision. */
-+
-+ /* Determine the number of trailing zeroes
-+ that have to be dropped. */
-+ nzeroes = 0;
-+ if ((flags & FLAG_ALT) == 0)
-+ while (nzeroes < ndigits
-+ && digits[nzeroes] == '0')
-+ nzeroes++;
-+
-+ /* The exponent is now determined. */
-+ if (exponent >= -4
-+ && exponent < (long)precision)
-+ {
-+ /* Fixed-point notation:
-+ max(exponent,0)+1 digits, then the
-+ decimal point, then the remaining
-+ digits without trailing zeroes. */
-+ if (exponent >= 0)
-+ {
-+ size_t count = exponent + 1;
-+ /* Note: count <= precision = ndigits. */
-+ for (; count > 0; count--)
-+ *p++ = digits[--ndigits];
-+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
-+ {
-+ *p++ = decimal_point_char ();
-+ while (ndigits > nzeroes)
-+ {
-+ --ndigits;
-+ *p++ = digits[ndigits];
-+ }
-+ }
-+ }
-+ else
-+ {
-+ size_t count = -exponent - 1;
-+ *p++ = '0';
-+ *p++ = decimal_point_char ();
-+ for (; count > 0; count--)
-+ *p++ = '0';
-+ while (ndigits > nzeroes)
-+ {
-+ --ndigits;
-+ *p++ = digits[ndigits];
-+ }
-+ }
-+ }
-+ else
-+ {
-+ /* Exponential notation. */
-+ *p++ = digits[--ndigits];
-+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
-+ {
-+ *p++ = decimal_point_char ();
-+ while (ndigits > nzeroes)
-+ {
-+ --ndigits;
-+ *p++ = digits[ndigits];
-+ }
-+ }
-+ *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */
-+# if WIDE_CHAR_VERSION
-+ {
-+ static const wchar_t decimal_format[] =
-+ { '%', '+', '.', '2', 'd', '\0' };
-+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
-+ }
-+ while (*p != '\0')
-+ p++;
-+# else
-+ if (sizeof (DCHAR_T) == 1)
-+ {
-+ sprintf ((char *) p, "%+.2d", exponent);
-+ while (*p != '\0')
-+ p++;
-+ }
-+ else
-+ {
-+ char expbuf[6 + 1];
-+ const char *ep;
-+ sprintf (expbuf, "%+.2d", exponent);
-+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
-+ p++;
-+ }
-+# endif
-+ }
-+
-+ free (digits);
-+ }
-+ }
-+ else
-+ abort ();
-+# else
-+ /* arg is finite. */
-+ if (!(arg == 0.0L))
-+ abort ();
-+
-+ pad_ptr = p;
-+
-+ if (dp->conversion == 'f' || dp->conversion == 'F')
-+ {
-+ *p++ = '0';
-+ if ((flags & FLAG_ALT) || precision > 0)
-+ {
-+ *p++ = decimal_point_char ();
-+ for (; precision > 0; precision--)
-+ *p++ = '0';
-+ }
-+ }
-+ else if (dp->conversion == 'e' || dp->conversion == 'E')
-+ {
-+ *p++ = '0';
-+ if ((flags & FLAG_ALT) || precision > 0)
-+ {
-+ *p++ = decimal_point_char ();
-+ for (; precision > 0; precision--)
-+ *p++ = '0';
-+ }
-+ *p++ = dp->conversion; /* 'e' or 'E' */
-+ *p++ = '+';
-+ *p++ = '0';
-+ *p++ = '0';
-+ }
-+ else if (dp->conversion == 'g' || dp->conversion == 'G')
-+ {
-+ *p++ = '0';
-+ if (flags & FLAG_ALT)
-+ {
-+ size_t ndigits =
-+ (precision > 0 ? precision - 1 : 0);
-+ *p++ = decimal_point_char ();
-+ for (; ndigits > 0; --ndigits)
-+ *p++ = '0';
-+ }
-+ }
-+ else if (dp->conversion == 'a' || dp->conversion == 'A')
-+ {
-+ *p++ = '0';
-+ *p++ = dp->conversion - 'A' + 'X';
-+ pad_ptr = p;
-+ *p++ = '0';
-+ if ((flags & FLAG_ALT) || precision > 0)
-+ {
-+ *p++ = decimal_point_char ();
-+ for (; precision > 0; precision--)
-+ *p++ = '0';
-+ }
-+ *p++ = dp->conversion - 'A' + 'P';
-+ *p++ = '+';
-+ *p++ = '0';
-+ }
-+ else
-+ abort ();
-+# endif
-+ }
-+
-+ END_LONG_DOUBLE_ROUNDING ();
-+ }
-+ }
-+# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
-+ else
-+# endif
-+# endif
-+# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
-+ {
-+ double arg = a.arg[dp->arg_index].a.a_double;
-+
-+ if (isnand (arg))
-+ {
-+ if (dp->conversion >= 'A' && dp->conversion <= 'Z')
-+ {
-+ *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
-+ }
-+ else
-+ {
-+ *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
-+ }
-+ }
-+ else
-+ {
-+ int sign = 0;
-+
-+ if (signbit (arg)) /* arg < 0.0 or negative zero */
-+ {
-+ sign = -1;
-+ arg = -arg;
-+ }
-+
-+ if (sign < 0)
-+ *p++ = '-';
-+ else if (flags & FLAG_SHOWSIGN)
-+ *p++ = '+';
-+ else if (flags & FLAG_SPACE)
-+ *p++ = ' ';
-+
-+ if (arg > 0.0 && arg + arg == arg)
-+ {
-+ if (dp->conversion >= 'A' && dp->conversion <= 'Z')
-+ {
-+ *p++ = 'I'; *p++ = 'N'; *p++ = 'F';
-+ }
-+ else
-+ {
-+ *p++ = 'i'; *p++ = 'n'; *p++ = 'f';
-+ }
-+ }
-+ else
-+ {
-+# if NEED_PRINTF_DOUBLE
-+ pad_ptr = p;
-+
-+ if (dp->conversion == 'f' || dp->conversion == 'F')
-+ {
-+ char *digits;
-+ size_t ndigits;
-+
-+ digits =
-+ scale10_round_decimal_double (arg, precision);
-+ if (digits == NULL)
-+ goto out_of_memory;
-+ ndigits = strlen (digits);
-+
-+ if (ndigits > precision)
-+ do
-+ {
-+ --ndigits;
-+ *p++ = digits[ndigits];
-+ }
-+ while (ndigits > precision);
-+ else
-+ *p++ = '0';
-+ /* Here ndigits <= precision. */
-+ if ((flags & FLAG_ALT) || precision > 0)
-+ {
-+ *p++ = decimal_point_char ();
-+ for (; precision > ndigits; precision--)
-+ *p++ = '0';
-+ while (ndigits > 0)
-+ {
-+ --ndigits;
-+ *p++ = digits[ndigits];
-+ }
-+ }
-+
-+ free (digits);
-+ }
-+ else if (dp->conversion == 'e' || dp->conversion == 'E')
-+ {
-+ int exponent;
-+
-+ if (arg == 0.0)
-+ {
-+ exponent = 0;
-+ *p++ = '0';
-+ if ((flags & FLAG_ALT) || precision > 0)
-+ {
-+ *p++ = decimal_point_char ();
-+ for (; precision > 0; precision--)
-+ *p++ = '0';
-+ }
-+ }
-+ else
-+ {
-+ /* arg > 0.0. */
-+ int adjusted;
-+ char *digits;
-+ size_t ndigits;
-+
-+ exponent = floorlog10 (arg);
-+ adjusted = 0;
-+ for (;;)
-+ {
-+ digits =
-+ scale10_round_decimal_double (arg,
-+ (int)precision - exponent);
-+ if (digits == NULL)
-+ goto out_of_memory;
-+ ndigits = strlen (digits);
-+
-+ if (ndigits == precision + 1)
-+ break;
-+ if (ndigits < precision
-+ || ndigits > precision + 2)
-+ /* The exponent was not guessed
-+ precisely enough. */
-+ abort ();
-+ if (adjusted)
-+ /* None of two values of exponent is
-+ the right one. Prevent an endless
-+ loop. */
-+ abort ();
-+ free (digits);
-+ if (ndigits == precision)
-+ exponent -= 1;
-+ else
-+ exponent += 1;
-+ adjusted = 1;
-+ }
-+ /* Here ndigits = precision+1. */
-+ if (is_borderline (digits, precision))
-+ {
-+ /* Maybe the exponent guess was too high
-+ and a smaller exponent can be reached
-+ by turning a 10...0 into 9...9x. */
-+ char *digits2 =
-+ scale10_round_decimal_double (arg,
-+ (int)precision - exponent + 1);
-+ if (digits2 == NULL)
-+ {
-+ free (digits);
-+ goto out_of_memory;
-+ }
-+ if (strlen (digits2) == precision + 1)
-+ {
-+ free (digits);
-+ digits = digits2;
-+ exponent -= 1;
-+ }
-+ else
-+ free (digits2);
-+ }
-+ /* Here ndigits = precision+1. */
-+
-+ *p++ = digits[--ndigits];
-+ if ((flags & FLAG_ALT) || precision > 0)
-+ {
-+ *p++ = decimal_point_char ();
-+ while (ndigits > 0)
-+ {
-+ --ndigits;
-+ *p++ = digits[ndigits];
-+ }
-+ }
-+
-+ free (digits);
-+ }
-+
-+ *p++ = dp->conversion; /* 'e' or 'E' */
-+# if WIDE_CHAR_VERSION
-+ {
-+ static const wchar_t decimal_format[] =
-+ /* Produce the same number of exponent digits
-+ as the native printf implementation. */
-+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-+ { '%', '+', '.', '3', 'd', '\0' };
-+# else
-+ { '%', '+', '.', '2', 'd', '\0' };
-+# endif
-+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
-+ }
-+ while (*p != '\0')
-+ p++;
-+# else
-+ {
-+ static const char decimal_format[] =
-+ /* Produce the same number of exponent digits
-+ as the native printf implementation. */
-+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-+ "%+.3d";
-+# else
-+ "%+.2d";
-+# endif
-+ if (sizeof (DCHAR_T) == 1)
-+ {
-+ sprintf ((char *) p, decimal_format, exponent);
-+ while (*p != '\0')
-+ p++;
-+ }
-+ else
-+ {
-+ char expbuf[6 + 1];
-+ const char *ep;
-+ sprintf (expbuf, decimal_format, exponent);
-+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
-+ p++;
-+ }
-+ }
-+# endif
-+ }
-+ else if (dp->conversion == 'g' || dp->conversion == 'G')
-+ {
-+ if (precision == 0)
-+ precision = 1;
-+ /* precision >= 1. */
-+
-+ if (arg == 0.0)
-+ /* The exponent is 0, >= -4, < precision.
-+ Use fixed-point notation. */
-+ {
-+ size_t ndigits = precision;
-+ /* Number of trailing zeroes that have to be
-+ dropped. */
-+ size_t nzeroes =
-+ (flags & FLAG_ALT ? 0 : precision - 1);
-+
-+ --ndigits;
-+ *p++ = '0';
-+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
-+ {
-+ *p++ = decimal_point_char ();
-+ while (ndigits > nzeroes)
-+ {
-+ --ndigits;
-+ *p++ = '0';
-+ }
-+ }
-+ }
-+ else
-+ {
-+ /* arg > 0.0. */
-+ int exponent;
-+ int adjusted;
-+ char *digits;
-+ size_t ndigits;
-+ size_t nzeroes;
-+
-+ exponent = floorlog10 (arg);
-+ adjusted = 0;
-+ for (;;)
-+ {
-+ digits =
-+ scale10_round_decimal_double (arg,
-+ (int)(precision - 1) - exponent);
-+ if (digits == NULL)
-+ goto out_of_memory;
-+ ndigits = strlen (digits);
-+
-+ if (ndigits == precision)
-+ break;
-+ if (ndigits < precision - 1
-+ || ndigits > precision + 1)
-+ /* The exponent was not guessed
-+ precisely enough. */
-+ abort ();
-+ if (adjusted)
-+ /* None of two values of exponent is
-+ the right one. Prevent an endless
-+ loop. */
-+ abort ();
-+ free (digits);
-+ if (ndigits < precision)
-+ exponent -= 1;
-+ else
-+ exponent += 1;
-+ adjusted = 1;
-+ }
-+ /* Here ndigits = precision. */
-+ if (is_borderline (digits, precision - 1))
-+ {
-+ /* Maybe the exponent guess was too high
-+ and a smaller exponent can be reached
-+ by turning a 10...0 into 9...9x. */
-+ char *digits2 =
-+ scale10_round_decimal_double (arg,
-+ (int)(precision - 1) - exponent + 1);
-+ if (digits2 == NULL)
-+ {
-+ free (digits);
-+ goto out_of_memory;
-+ }
-+ if (strlen (digits2) == precision)
-+ {
-+ free (digits);
-+ digits = digits2;
-+ exponent -= 1;
-+ }
-+ else
-+ free (digits2);
-+ }
-+ /* Here ndigits = precision. */
-+
-+ /* Determine the number of trailing zeroes
-+ that have to be dropped. */
-+ nzeroes = 0;
-+ if ((flags & FLAG_ALT) == 0)
-+ while (nzeroes < ndigits
-+ && digits[nzeroes] == '0')
-+ nzeroes++;
-+
-+ /* The exponent is now determined. */
-+ if (exponent >= -4
-+ && exponent < (long)precision)
-+ {
-+ /* Fixed-point notation:
-+ max(exponent,0)+1 digits, then the
-+ decimal point, then the remaining
-+ digits without trailing zeroes. */
-+ if (exponent >= 0)
-+ {
-+ size_t count = exponent + 1;
-+ /* Note: count <= precision = ndigits. */
-+ for (; count > 0; count--)
-+ *p++ = digits[--ndigits];
-+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
-+ {
-+ *p++ = decimal_point_char ();
-+ while (ndigits > nzeroes)
-+ {
-+ --ndigits;
-+ *p++ = digits[ndigits];
-+ }
-+ }
-+ }
-+ else
-+ {
-+ size_t count = -exponent - 1;
-+ *p++ = '0';
-+ *p++ = decimal_point_char ();
-+ for (; count > 0; count--)
-+ *p++ = '0';
-+ while (ndigits > nzeroes)
-+ {
-+ --ndigits;
-+ *p++ = digits[ndigits];
-+ }
-+ }
-+ }
-+ else
-+ {
-+ /* Exponential notation. */
-+ *p++ = digits[--ndigits];
-+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
-+ {
-+ *p++ = decimal_point_char ();
-+ while (ndigits > nzeroes)
-+ {
-+ --ndigits;
-+ *p++ = digits[ndigits];
-+ }
-+ }
-+ *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */
-+# if WIDE_CHAR_VERSION
-+ {
-+ static const wchar_t decimal_format[] =
-+ /* Produce the same number of exponent digits
-+ as the native printf implementation. */
-+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-+ { '%', '+', '.', '3', 'd', '\0' };
-+# else
-+ { '%', '+', '.', '2', 'd', '\0' };
-+# endif
-+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
-+ }
-+ while (*p != '\0')
-+ p++;
-+# else
-+ {
-+ static const char decimal_format[] =
-+ /* Produce the same number of exponent digits
-+ as the native printf implementation. */
-+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-+ "%+.3d";
-+# else
-+ "%+.2d";
-+# endif
-+ if (sizeof (DCHAR_T) == 1)
-+ {
-+ sprintf ((char *) p, decimal_format, exponent);
-+ while (*p != '\0')
-+ p++;
-+ }
-+ else
-+ {
-+ char expbuf[6 + 1];
-+ const char *ep;
-+ sprintf (expbuf, decimal_format, exponent);
-+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
-+ p++;
-+ }
-+ }
-+# endif
-+ }
-+
-+ free (digits);
-+ }
-+ }
-+ else
-+ abort ();
-+# else
-+ /* arg is finite. */
-+ if (!(arg == 0.0))
-+ abort ();
-+
-+ pad_ptr = p;
-+
-+ if (dp->conversion == 'f' || dp->conversion == 'F')
-+ {
-+ *p++ = '0';
-+ if ((flags & FLAG_ALT) || precision > 0)
-+ {
-+ *p++ = decimal_point_char ();
-+ for (; precision > 0; precision--)
-+ *p++ = '0';
-+ }
-+ }
-+ else if (dp->conversion == 'e' || dp->conversion == 'E')
-+ {
-+ *p++ = '0';
-+ if ((flags & FLAG_ALT) || precision > 0)
-+ {
-+ *p++ = decimal_point_char ();
-+ for (; precision > 0; precision--)
-+ *p++ = '0';
-+ }
-+ *p++ = dp->conversion; /* 'e' or 'E' */
-+ *p++ = '+';
-+ /* Produce the same number of exponent digits as
-+ the native printf implementation. */
-+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-+ *p++ = '0';
-+# endif
-+ *p++ = '0';
-+ *p++ = '0';
-+ }
-+ else if (dp->conversion == 'g' || dp->conversion == 'G')
-+ {
-+ *p++ = '0';
-+ if (flags & FLAG_ALT)
-+ {
-+ size_t ndigits =
-+ (precision > 0 ? precision - 1 : 0);
-+ *p++ = decimal_point_char ();
-+ for (; ndigits > 0; --ndigits)
-+ *p++ = '0';
-+ }
-+ }
-+ else
-+ abort ();
-+# endif
-+ }
-+ }
-+ }
-+# endif
-+
-+ /* The generated string now extends from tmp to p, with the
-+ zero padding insertion point being at pad_ptr. */
-+ if (has_width && p - tmp < width)
-+ {
-+ size_t pad = width - (p - tmp);
-+ DCHAR_T *end = p + pad;
-+
-+ if (flags & FLAG_LEFT)
-+ {
-+ /* Pad with spaces on the right. */
-+ for (; pad > 0; pad--)
-+ *p++ = ' ';
-+ }
-+ else if ((flags & FLAG_ZERO) && pad_ptr != NULL)
-+ {
-+ /* Pad with zeroes. */
-+ DCHAR_T *q = end;
-+
-+ while (p > pad_ptr)
-+ *--q = *--p;
-+ for (; pad > 0; pad--)
-+ *p++ = '0';
-+ }
-+ else
-+ {
-+ /* Pad with spaces on the left. */
-+ DCHAR_T *q = end;
-+
-+ while (p > tmp)
-+ *--q = *--p;
-+ for (; pad > 0; pad--)
-+ *p++ = ' ';
-+ }
-+
-+ p = end;
-+ }
-+
-+ {
-+ size_t count = p - tmp;
-+
-+ if (count >= tmp_length)
-+ /* tmp_length was incorrectly calculated - fix the
-+ code above! */
-+ abort ();
-+
-+ /* Make room for the result. */
-+ if (count >= allocated - length)
-+ {
-+ size_t n = xsum (length, count);
-+
-+ ENSURE_ALLOCATION (n);
-+ }
-+
-+ /* Append the result. */
-+ memcpy (result + length, tmp, count * sizeof (DCHAR_T));
-+ if (tmp != tmpbuf)
-+ free (tmp);
-+ length += count;
-+ }
-+ }
-+#endif
-+ else
-+ {
-+ arg_type type = a.arg[dp->arg_index].type;
-+ int flags = dp->flags;
-+#if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
-+ int has_width;
-+ size_t width;
-+#endif
-+#if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION
-+ int has_precision;
-+ size_t precision;
-+#endif
-+#if NEED_PRINTF_UNBOUNDED_PRECISION
-+ int prec_ourselves;
-+#else
-+# define prec_ourselves 0
-+#endif
-+#if NEED_PRINTF_FLAG_LEFTADJUST
-+# define pad_ourselves 1
-+#elif !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
-+ int pad_ourselves;
-+#else
-+# define pad_ourselves 0
-+#endif
-+ TCHAR_T *fbp;
-+ unsigned int prefix_count;
-+ int prefixes[2] IF_LINT (= { 0 });
-+#if !USE_SNPRINTF
-+ size_t tmp_length;
-+ TCHAR_T tmpbuf[700];
-+ TCHAR_T *tmp;
-+#endif
-+
-+#if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
-+ has_width = 0;
-+ width = 0;
-+ if (dp->width_start != dp->width_end)
-+ {
-+ if (dp->width_arg_index != ARG_NONE)
-+ {
-+ int arg;
-+
-+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
-+ abort ();
-+ arg = a.arg[dp->width_arg_index].a.a_int;
-+ if (arg < 0)
-+ {
-+ /* "A negative field width is taken as a '-' flag
-+ followed by a positive field width." */
-+ flags |= FLAG_LEFT;
-+ width = (unsigned int) (-arg);
-+ }
-+ else
-+ width = arg;
-+ }
-+ else
-+ {
-+ const FCHAR_T *digitp = dp->width_start;
-+
-+ do
-+ width = xsum (xtimes (width, 10), *digitp++ - '0');
-+ while (digitp != dp->width_end);
-+ }
-+ has_width = 1;
-+ }
-+#endif
-+
-+#if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION
-+ has_precision = 0;
-+ precision = 6;
-+ if (dp->precision_start != dp->precision_end)
-+ {
-+ if (dp->precision_arg_index != ARG_NONE)
-+ {
-+ int arg;
-+
-+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
-+ abort ();
-+ arg = a.arg[dp->precision_arg_index].a.a_int;
-+ /* "A negative precision is taken as if the precision
-+ were omitted." */
-+ if (arg >= 0)
-+ {
-+ precision = arg;
-+ has_precision = 1;
-+ }
-+ }
-+ else
-+ {
-+ const FCHAR_T *digitp = dp->precision_start + 1;
-+
-+ precision = 0;
-+ while (digitp != dp->precision_end)
-+ precision = xsum (xtimes (precision, 10), *digitp++ - '0');
-+ has_precision = 1;
-+ }
-+ }
-+#endif
-+
-+ /* Decide whether to handle the precision ourselves. */
-+#if NEED_PRINTF_UNBOUNDED_PRECISION
-+ switch (dp->conversion)
-+ {
-+ case 'd': case 'i': case 'u':
-+ case 'o':
-+ case 'x': case 'X': case 'p':
-+ prec_ourselves = has_precision && (precision > 0);
-+ break;
-+ default:
-+ prec_ourselves = 0;
-+ break;
-+ }
-+#endif
-+
-+ /* Decide whether to perform the padding ourselves. */
-+#if !NEED_PRINTF_FLAG_LEFTADJUST && (!DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION)
-+ switch (dp->conversion)
-+ {
-+# if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO
-+ /* If we need conversion from TCHAR_T[] to DCHAR_T[], we need
-+ to perform the padding after this conversion. Functions
-+ with unistdio extensions perform the padding based on
-+ character count rather than element count. */
-+ case 'c': case 's':
-+# endif
-+# if NEED_PRINTF_FLAG_ZERO
-+ case 'f': case 'F': case 'e': case 'E': case 'g': case 'G':
-+ case 'a': case 'A':
-+# endif
-+ pad_ourselves = 1;
-+ break;
-+ default:
-+ pad_ourselves = prec_ourselves;
-+ break;
-+ }
-+#endif
-+
-+#if !USE_SNPRINTF
-+ /* Allocate a temporary buffer of sufficient size for calling
-+ sprintf. */
-+ {
-+ switch (dp->conversion)
-+ {
-+
-+ case 'd': case 'i': case 'u':
-+# if HAVE_LONG_LONG_INT
-+ if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
-+ * 0.30103 /* binary -> decimal */
-+ )
-+ + 1; /* turn floor into ceil */
-+ else
-+# endif
-+ if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned long) * CHAR_BIT
-+ * 0.30103 /* binary -> decimal */
-+ )
-+ + 1; /* turn floor into ceil */
-+ else
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned int) * CHAR_BIT
-+ * 0.30103 /* binary -> decimal */
-+ )
-+ + 1; /* turn floor into ceil */
-+ if (tmp_length < precision)
-+ tmp_length = precision;
-+ /* Multiply by 2, as an estimate for FLAG_GROUP. */
-+ tmp_length = xsum (tmp_length, tmp_length);
-+ /* Add 1, to account for a leading sign. */
-+ tmp_length = xsum (tmp_length, 1);
-+ break;
-+
-+ case 'o':
-+# if HAVE_LONG_LONG_INT
-+ if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
-+ * 0.333334 /* binary -> octal */
-+ )
-+ + 1; /* turn floor into ceil */
-+ else
-+# endif
-+ if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned long) * CHAR_BIT
-+ * 0.333334 /* binary -> octal */
-+ )
-+ + 1; /* turn floor into ceil */
-+ else
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned int) * CHAR_BIT
-+ * 0.333334 /* binary -> octal */
-+ )
-+ + 1; /* turn floor into ceil */
-+ if (tmp_length < precision)
-+ tmp_length = precision;
-+ /* Add 1, to account for a leading sign. */
-+ tmp_length = xsum (tmp_length, 1);
-+ break;
-+
-+ case 'x': case 'X':
-+# if HAVE_LONG_LONG_INT
-+ if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
-+ * 0.25 /* binary -> hexadecimal */
-+ )
-+ + 1; /* turn floor into ceil */
-+ else
-+# endif
-+ if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned long) * CHAR_BIT
-+ * 0.25 /* binary -> hexadecimal */
-+ )
-+ + 1; /* turn floor into ceil */
-+ else
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned int) * CHAR_BIT
-+ * 0.25 /* binary -> hexadecimal */
-+ )
-+ + 1; /* turn floor into ceil */
-+ if (tmp_length < precision)
-+ tmp_length = precision;
-+ /* Add 2, to account for a leading sign or alternate form. */
-+ tmp_length = xsum (tmp_length, 2);
-+ break;
-+
-+ case 'f': case 'F':
-+ if (type == TYPE_LONGDOUBLE)
-+ tmp_length =
-+ (unsigned int) (LDBL_MAX_EXP
-+ * 0.30103 /* binary -> decimal */
-+ * 2 /* estimate for FLAG_GROUP */
-+ )
-+ + 1 /* turn floor into ceil */
-+ + 10; /* sign, decimal point etc. */
-+ else
-+ tmp_length =
-+ (unsigned int) (DBL_MAX_EXP
-+ * 0.30103 /* binary -> decimal */
-+ * 2 /* estimate for FLAG_GROUP */
-+ )
-+ + 1 /* turn floor into ceil */
-+ + 10; /* sign, decimal point etc. */
-+ tmp_length = xsum (tmp_length, precision);
-+ break;
-+
-+ case 'e': case 'E': case 'g': case 'G':
-+ tmp_length =
-+ 12; /* sign, decimal point, exponent etc. */
-+ tmp_length = xsum (tmp_length, precision);
-+ break;
-+
-+ case 'a': case 'A':
-+ if (type == TYPE_LONGDOUBLE)
-+ tmp_length =
-+ (unsigned int) (LDBL_DIG
-+ * 0.831 /* decimal -> hexadecimal */
-+ )
-+ + 1; /* turn floor into ceil */
-+ else
-+ tmp_length =
-+ (unsigned int) (DBL_DIG
-+ * 0.831 /* decimal -> hexadecimal */
-+ )
-+ + 1; /* turn floor into ceil */
-+ if (tmp_length < precision)
-+ tmp_length = precision;
-+ /* Account for sign, decimal point etc. */
-+ tmp_length = xsum (tmp_length, 12);
-+ break;
-+
-+ case 'c':
-+# if HAVE_WINT_T && !WIDE_CHAR_VERSION
-+ if (type == TYPE_WIDE_CHAR)
-+ tmp_length = MB_CUR_MAX;
-+ else
-+# endif
-+ tmp_length = 1;
-+ break;
-+
-+ case 's':
-+# if HAVE_WCHAR_T
-+ if (type == TYPE_WIDE_STRING)
-+ {
-+ tmp_length =
-+ local_wcslen (a.arg[dp->arg_index].a.a_wide_string);
-+
-+# if !WIDE_CHAR_VERSION
-+ tmp_length = xtimes (tmp_length, MB_CUR_MAX);
-+# endif
-+ }
-+ else
-+# endif
-+ tmp_length = strlen (a.arg[dp->arg_index].a.a_string);
-+ break;
-+
-+ case 'p':
-+ tmp_length =
-+ (unsigned int) (sizeof (void *) * CHAR_BIT
-+ * 0.25 /* binary -> hexadecimal */
-+ )
-+ + 1 /* turn floor into ceil */
-+ + 2; /* account for leading 0x */
-+ break;
-+
-+ default:
-+ abort ();
-+ }
-+
-+ if (!pad_ourselves)
-+ {
-+# if ENABLE_UNISTDIO
-+ /* Padding considers the number of characters, therefore
-+ the number of elements after padding may be
-+ > max (tmp_length, width)
-+ but is certainly
-+ <= tmp_length + width. */
-+ tmp_length = xsum (tmp_length, width);
-+# else
-+ /* Padding considers the number of elements,
-+ says POSIX. */
-+ if (tmp_length < width)
-+ tmp_length = width;
-+# endif
-+ }
-+
-+ tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
-+ }
-+
-+ if (tmp_length <= sizeof (tmpbuf) / sizeof (TCHAR_T))
-+ tmp = tmpbuf;
-+ else
-+ {
-+ size_t tmp_memsize = xtimes (tmp_length, sizeof (TCHAR_T));
-+
-+ if (size_overflow_p (tmp_memsize))
-+ /* Overflow, would lead to out of memory. */
-+ goto out_of_memory;
-+ tmp = (TCHAR_T *) malloc (tmp_memsize);
-+ if (tmp == NULL)
-+ /* Out of memory. */
-+ goto out_of_memory;
-+ }
-+#endif
-+
-+ /* Construct the format string for calling snprintf or
-+ sprintf. */
-+ fbp = buf;
-+ *fbp++ = '%';
-+#if NEED_PRINTF_FLAG_GROUPING
-+ /* The underlying implementation doesn't support the ' flag.
-+ Produce no grouping characters in this case; this is
-+ acceptable because the grouping is locale dependent. */
-+#else
-+ if (flags & FLAG_GROUP)
-+ *fbp++ = '\'';
-+#endif
-+ if (flags & FLAG_LEFT)
-+ *fbp++ = '-';
-+ if (flags & FLAG_SHOWSIGN)
-+ *fbp++ = '+';
-+ if (flags & FLAG_SPACE)
-+ *fbp++ = ' ';
-+ if (flags & FLAG_ALT)
-+ *fbp++ = '#';
-+ if (!pad_ourselves)
-+ {
-+ if (flags & FLAG_ZERO)
-+ *fbp++ = '0';
-+ if (dp->width_start != dp->width_end)
-+ {
-+ size_t n = dp->width_end - dp->width_start;
-+ /* The width specification is known to consist only
-+ of standard ASCII characters. */
-+ if (sizeof (FCHAR_T) == sizeof (TCHAR_T))
-+ {
-+ memcpy (fbp, dp->width_start, n * sizeof (TCHAR_T));
-+ fbp += n;
-+ }
-+ else
-+ {
-+ const FCHAR_T *mp = dp->width_start;
-+ do
-+ *fbp++ = (unsigned char) *mp++;
-+ while (--n > 0);
-+ }
-+ }
-+ }
-+ if (!prec_ourselves)
-+ {
-+ if (dp->precision_start != dp->precision_end)
-+ {
-+ size_t n = dp->precision_end - dp->precision_start;
-+ /* The precision specification is known to consist only
-+ of standard ASCII characters. */
-+ if (sizeof (FCHAR_T) == sizeof (TCHAR_T))
-+ {
-+ memcpy (fbp, dp->precision_start, n * sizeof (TCHAR_T));
-+ fbp += n;
-+ }
-+ else
-+ {
-+ const FCHAR_T *mp = dp->precision_start;
-+ do
-+ *fbp++ = (unsigned char) *mp++;
-+ while (--n > 0);
-+ }
-+ }
-+ }
-+
-+ switch (type)
-+ {
-+#if HAVE_LONG_LONG_INT
-+ case TYPE_LONGLONGINT:
-+ case TYPE_ULONGLONGINT:
-+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-+ *fbp++ = 'I';
-+ *fbp++ = '6';
-+ *fbp++ = '4';
-+ break;
-+# else
-+ *fbp++ = 'l';
-+ /*FALLTHROUGH*/
-+# endif
-+#endif
-+ case TYPE_LONGINT:
-+ case TYPE_ULONGINT:
-+#if HAVE_WINT_T
-+ case TYPE_WIDE_CHAR:
-+#endif
-+#if HAVE_WCHAR_T
-+ case TYPE_WIDE_STRING:
-+#endif
-+ *fbp++ = 'l';
-+ break;
-+ case TYPE_LONGDOUBLE:
-+ *fbp++ = 'L';
-+ break;
-+ default:
-+ break;
-+ }
-+#if NEED_PRINTF_DIRECTIVE_F
-+ if (dp->conversion == 'F')
-+ *fbp = 'f';
-+ else
-+#endif
-+ *fbp = dp->conversion;
-+#if USE_SNPRINTF
-+# if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
-+ fbp[1] = '%';
-+ fbp[2] = 'n';
-+ fbp[3] = '\0';
-+# else
-+ /* On glibc2 systems from glibc >= 2.3 - probably also older
-+ ones - we know that snprintf's returns value conforms to
-+ ISO C 99: the gl_SNPRINTF_DIRECTIVE_N test passes.
-+ Therefore we can avoid using %n in this situation.
-+ On glibc2 systems from 2004-10-18 or newer, the use of %n
-+ in format strings in writable memory may crash the program
-+ (if compiled with _FORTIFY_SOURCE=2), so we should avoid it
-+ in this situation. */
-+ /* On native Win32 systems (such as mingw), we can avoid using
-+ %n because:
-+ - Although the gl_SNPRINTF_TRUNCATION_C99 test fails,
-+ snprintf does not write more than the specified number
-+ of bytes. (snprintf (buf, 3, "%d %d", 4567, 89) writes
-+ '4', '5', '6' into buf, not '4', '5', '\0'.)
-+ - Although the gl_SNPRINTF_RETVAL_C99 test fails, snprintf
-+ allows us to recognize the case of an insufficient
-+ buffer size: it returns -1 in this case.
-+ On native Win32 systems (such as mingw) where the OS is
-+ Windows Vista, the use of %n in format strings by default
-+ crashes the program. See
-+ <http://gcc.gnu.org/ml/gcc/2007-06/msg00122.html> and
-+ <http://msdn2.microsoft.com/en-us/library/ms175782(VS.80).aspx>
-+ So we should avoid %n in this situation. */
-+ fbp[1] = '\0';
-+# endif
-+#else
-+ fbp[1] = '\0';
-+#endif
-+
-+ /* Construct the arguments for calling snprintf or sprintf. */
-+ prefix_count = 0;
-+ if (!pad_ourselves && dp->width_arg_index != ARG_NONE)
-+ {
-+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
-+ abort ();
-+ prefixes[prefix_count++] = a.arg[dp->width_arg_index].a.a_int;
-+ }
-+ if (!prec_ourselves && dp->precision_arg_index != ARG_NONE)
-+ {
-+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
-+ abort ();
-+ prefixes[prefix_count++] = a.arg[dp->precision_arg_index].a.a_int;
-+ }
-+
-+#if USE_SNPRINTF
-+ /* The SNPRINTF result is appended after result[0..length].
-+ The latter is an array of DCHAR_T; SNPRINTF appends an
-+ array of TCHAR_T to it. This is possible because
-+ sizeof (TCHAR_T) divides sizeof (DCHAR_T) and
-+ alignof (TCHAR_T) <= alignof (DCHAR_T). */
-+# define TCHARS_PER_DCHAR (sizeof (DCHAR_T) / sizeof (TCHAR_T))
-+ /* Ensure that maxlen below will be >= 2. Needed on BeOS,
-+ where an snprintf() with maxlen==1 acts like sprintf(). */
-+ ENSURE_ALLOCATION (xsum (length,
-+ (2 + TCHARS_PER_DCHAR - 1)
-+ / TCHARS_PER_DCHAR));
-+ /* Prepare checking whether snprintf returns the count
-+ via %n. */
-+ *(TCHAR_T *) (result + length) = '\0';
-+#endif
-+
-+ for (;;)
-+ {
-+ int count = -1;
-+
-+#if USE_SNPRINTF
-+ int retcount = 0;
-+ size_t maxlen = allocated - length;
-+ /* SNPRINTF can fail if its second argument is
-+ > INT_MAX. */
-+ if (maxlen > INT_MAX / TCHARS_PER_DCHAR)
-+ maxlen = INT_MAX / TCHARS_PER_DCHAR;
-+ maxlen = maxlen * TCHARS_PER_DCHAR;
-+# define SNPRINTF_BUF(arg) \
-+ switch (prefix_count) \
-+ { \
-+ case 0: \
-+ retcount = SNPRINTF ((TCHAR_T *) (result + length), \
-+ maxlen, buf, \
-+ arg, &count); \
-+ break; \
-+ case 1: \
-+ retcount = SNPRINTF ((TCHAR_T *) (result + length), \
-+ maxlen, buf, \
-+ prefixes[0], arg, &count); \
-+ break; \
-+ case 2: \
-+ retcount = SNPRINTF ((TCHAR_T *) (result + length), \
-+ maxlen, buf, \
-+ prefixes[0], prefixes[1], arg, \
-+ &count); \
-+ break; \
-+ default: \
-+ abort (); \
-+ }
-+#else
-+# define SNPRINTF_BUF(arg) \
-+ switch (prefix_count) \
-+ { \
-+ case 0: \
-+ count = sprintf (tmp, buf, arg); \
-+ break; \
-+ case 1: \
-+ count = sprintf (tmp, buf, prefixes[0], arg); \
-+ break; \
-+ case 2: \
-+ count = sprintf (tmp, buf, prefixes[0], prefixes[1],\
-+ arg); \
-+ break; \
-+ default: \
-+ abort (); \
-+ }
-+#endif
-+
-+ switch (type)
-+ {
-+ case TYPE_SCHAR:
-+ {
-+ int arg = a.arg[dp->arg_index].a.a_schar;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_UCHAR:
-+ {
-+ unsigned int arg = a.arg[dp->arg_index].a.a_uchar;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_SHORT:
-+ {
-+ int arg = a.arg[dp->arg_index].a.a_short;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_USHORT:
-+ {
-+ unsigned int arg = a.arg[dp->arg_index].a.a_ushort;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_INT:
-+ {
-+ int arg = a.arg[dp->arg_index].a.a_int;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_UINT:
-+ {
-+ unsigned int arg = a.arg[dp->arg_index].a.a_uint;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_LONGINT:
-+ {
-+ long int arg = a.arg[dp->arg_index].a.a_longint;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_ULONGINT:
-+ {
-+ unsigned long int arg = a.arg[dp->arg_index].a.a_ulongint;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+#if HAVE_LONG_LONG_INT
-+ case TYPE_LONGLONGINT:
-+ {
-+ long long int arg = a.arg[dp->arg_index].a.a_longlongint;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_ULONGLONGINT:
-+ {
-+ unsigned long long int arg = a.arg[dp->arg_index].a.a_ulonglongint;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+#endif
-+ case TYPE_DOUBLE:
-+ {
-+ double arg = a.arg[dp->arg_index].a.a_double;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_LONGDOUBLE:
-+ {
-+ long double arg = a.arg[dp->arg_index].a.a_longdouble;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_CHAR:
-+ {
-+ int arg = a.arg[dp->arg_index].a.a_char;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+#if HAVE_WINT_T
-+ case TYPE_WIDE_CHAR:
-+ {
-+ wint_t arg = a.arg[dp->arg_index].a.a_wide_char;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+#endif
-+ case TYPE_STRING:
-+ {
-+ const char *arg = a.arg[dp->arg_index].a.a_string;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+#if HAVE_WCHAR_T
-+ case TYPE_WIDE_STRING:
-+ {
-+ const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+#endif
-+ case TYPE_POINTER:
-+ {
-+ void *arg = a.arg[dp->arg_index].a.a_pointer;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ default:
-+ abort ();
-+ }
-+
-+#if USE_SNPRINTF
-+ /* Portability: Not all implementations of snprintf()
-+ are ISO C 99 compliant. Determine the number of
-+ bytes that snprintf() has produced or would have
-+ produced. */
-+ if (count >= 0)
-+ {
-+ /* Verify that snprintf() has NUL-terminated its
-+ result. */
-+ if (count < maxlen
-+ && ((TCHAR_T *) (result + length)) [count] != '\0')
-+ abort ();
-+ /* Portability hack. */
-+ if (retcount > count)
-+ count = retcount;
-+ }
-+ else
-+ {
-+ /* snprintf() doesn't understand the '%n'
-+ directive. */
-+ if (fbp[1] != '\0')
-+ {
-+ /* Don't use the '%n' directive; instead, look
-+ at the snprintf() return value. */
-+ fbp[1] = '\0';
-+ continue;
-+ }
-+ else
-+ {
-+ /* Look at the snprintf() return value. */
-+ if (retcount < 0)
-+ {
-+ /* HP-UX 10.20 snprintf() is doubly deficient:
-+ It doesn't understand the '%n' directive,
-+ *and* it returns -1 (rather than the length
-+ that would have been required) when the
-+ buffer is too small. */
-+ size_t bigger_need =
-+ xsum (xtimes (allocated, 2), 12);
-+ ENSURE_ALLOCATION (bigger_need);
-+ continue;
-+ }
-+ else
-+ count = retcount;
-+ }
-+ }
-+#endif
-+
-+ /* Attempt to handle failure. */
-+ if (count < 0)
-+ {
-+ if (!(result == resultbuf || result == NULL))
-+ free (result);
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ CLEANUP ();
-+ errno = EINVAL;
-+ return NULL;
-+ }
-+
-+#if USE_SNPRINTF
-+ /* Handle overflow of the allocated buffer.
-+ If such an overflow occurs, a C99 compliant snprintf()
-+ returns a count >= maxlen. However, a non-compliant
-+ snprintf() function returns only count = maxlen - 1. To
-+ cover both cases, test whether count >= maxlen - 1. */
-+ if ((unsigned int) count + 1 >= maxlen)
-+ {
-+ /* If maxlen already has attained its allowed maximum,
-+ allocating more memory will not increase maxlen.
-+ Instead of looping, bail out. */
-+ if (maxlen == INT_MAX / TCHARS_PER_DCHAR)
-+ goto overflow;
-+ else
-+ {
-+ /* Need at least (count + 1) * sizeof (TCHAR_T)
-+ bytes. (The +1 is for the trailing NUL.)
-+ But ask for (count + 2) * sizeof (TCHAR_T)
-+ bytes, so that in the next round, we likely get
-+ maxlen > (unsigned int) count + 1
-+ and so we don't get here again.
-+ And allocate proportionally, to avoid looping
-+ eternally if snprintf() reports a too small
-+ count. */
-+ size_t n =
-+ xmax (xsum (length,
-+ ((unsigned int) count + 2
-+ + TCHARS_PER_DCHAR - 1)
-+ / TCHARS_PER_DCHAR),
-+ xtimes (allocated, 2));
-+
-+ ENSURE_ALLOCATION (n);
-+ continue;
-+ }
-+ }
-+#endif
-+
-+#if NEED_PRINTF_UNBOUNDED_PRECISION
-+ if (prec_ourselves)
-+ {
-+ /* Handle the precision. */
-+ TCHAR_T *prec_ptr =
-+# if USE_SNPRINTF
-+ (TCHAR_T *) (result + length);
-+# else
-+ tmp;
-+# endif
-+ size_t prefix_count;
-+ size_t move;
-+
-+ prefix_count = 0;
-+ /* Put the additional zeroes after the sign. */
-+ if (count >= 1
-+ && (*prec_ptr == '-' || *prec_ptr == '+'
-+ || *prec_ptr == ' '))
-+ prefix_count = 1;
-+ /* Put the additional zeroes after the 0x prefix if
-+ (flags & FLAG_ALT) || (dp->conversion == 'p'). */
-+ else if (count >= 2
-+ && prec_ptr[0] == '0'
-+ && (prec_ptr[1] == 'x' || prec_ptr[1] == 'X'))
-+ prefix_count = 2;
-+
-+ move = count - prefix_count;
-+ if (precision > move)
-+ {
-+ /* Insert zeroes. */
-+ size_t insert = precision - move;
-+ TCHAR_T *prec_end;
-+
-+# if USE_SNPRINTF
-+ size_t n =
-+ xsum (length,
-+ (count + insert + TCHARS_PER_DCHAR - 1)
-+ / TCHARS_PER_DCHAR);
-+ length += (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR;
-+ ENSURE_ALLOCATION (n);
-+ length -= (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR;
-+ prec_ptr = (TCHAR_T *) (result + length);
-+# endif
-+
-+ prec_end = prec_ptr + count;
-+ prec_ptr += prefix_count;
-+
-+ while (prec_end > prec_ptr)
-+ {
-+ prec_end--;
-+ prec_end[insert] = prec_end[0];
-+ }
-+
-+ prec_end += insert;
-+ do
-+ *--prec_end = '0';
-+ while (prec_end > prec_ptr);
-+
-+ count += insert;
-+ }
-+ }
-+#endif
-+
-+#if !USE_SNPRINTF
-+ if (count >= tmp_length)
-+ /* tmp_length was incorrectly calculated - fix the
-+ code above! */
-+ abort ();
-+#endif
-+
-+#if !DCHAR_IS_TCHAR
-+ /* Convert from TCHAR_T[] to DCHAR_T[]. */
-+ if (dp->conversion == 'c' || dp->conversion == 's')
-+ {
-+ /* type = TYPE_CHAR or TYPE_WIDE_CHAR or TYPE_STRING
-+ TYPE_WIDE_STRING.
-+ The result string is not certainly ASCII. */
-+ const TCHAR_T *tmpsrc;
-+ DCHAR_T *tmpdst;
-+ size_t tmpdst_len;
-+ /* This code assumes that TCHAR_T is 'char'. */
-+ typedef int TCHAR_T_verify
-+ [2 * (sizeof (TCHAR_T) == 1) - 1];
-+# if USE_SNPRINTF
-+ tmpsrc = (TCHAR_T *) (result + length);
-+# else
-+ tmpsrc = tmp;
-+# endif
-+ tmpdst = NULL;
-+ tmpdst_len = 0;
-+ if (DCHAR_CONV_FROM_ENCODING (locale_charset (),
-+ iconveh_question_mark,
-+ tmpsrc, count,
-+ NULL,
-+ &tmpdst, &tmpdst_len)
-+ < 0)
-+ {
-+ int saved_errno = errno;
-+ if (!(result == resultbuf || result == NULL))
-+ free (result);
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ CLEANUP ();
-+ errno = saved_errno;
-+ return NULL;
-+ }
-+ ENSURE_ALLOCATION (xsum (length, tmpdst_len));
-+ DCHAR_CPY (result + length, tmpdst, tmpdst_len);
-+ free (tmpdst);
-+ count = tmpdst_len;
-+ }
-+ else
-+ {
-+ /* The result string is ASCII.
-+ Simple 1:1 conversion. */
-+# if USE_SNPRINTF
-+ /* If sizeof (DCHAR_T) == sizeof (TCHAR_T), it's a
-+ no-op conversion, in-place on the array starting
-+ at (result + length). */
-+ if (sizeof (DCHAR_T) != sizeof (TCHAR_T))
-+# endif
-+ {
-+ const TCHAR_T *tmpsrc;
-+ DCHAR_T *tmpdst;
-+ size_t n;
-+
-+# if USE_SNPRINTF
-+ if (result == resultbuf)
-+ {
-+ tmpsrc = (TCHAR_T *) (result + length);
-+ /* ENSURE_ALLOCATION will not move tmpsrc
-+ (because it's part of resultbuf). */
-+ ENSURE_ALLOCATION (xsum (length, count));
-+ }
-+ else
-+ {
-+ /* ENSURE_ALLOCATION will move the array
-+ (because it uses realloc(). */
-+ ENSURE_ALLOCATION (xsum (length, count));
-+ tmpsrc = (TCHAR_T *) (result + length);
-+ }
-+# else
-+ tmpsrc = tmp;
-+ ENSURE_ALLOCATION (xsum (length, count));
-+# endif
-+ tmpdst = result + length;
-+ /* Copy backwards, because of overlapping. */
-+ tmpsrc += count;
-+ tmpdst += count;
-+ for (n = count; n > 0; n--)
-+ *--tmpdst = (unsigned char) *--tmpsrc;
-+ }
-+ }
-+#endif
-+
-+#if DCHAR_IS_TCHAR && !USE_SNPRINTF
-+ /* Make room for the result. */
-+ if (count > allocated - length)
-+ {
-+ /* Need at least count elements. But allocate
-+ proportionally. */
-+ size_t n =
-+ xmax (xsum (length, count), xtimes (allocated, 2));
-+
-+ ENSURE_ALLOCATION (n);
-+ }
-+#endif
-+
-+ /* Here count <= allocated - length. */
-+
-+ /* Perform padding. */
-+#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
-+ if (pad_ourselves && has_width)
-+ {
-+ size_t w;
-+# if ENABLE_UNISTDIO
-+ /* Outside POSIX, it's preferrable to compare the width
-+ against the number of _characters_ of the converted
-+ value. */
-+ w = DCHAR_MBSNLEN (result + length, count);
-+# else
-+ /* The width is compared against the number of _bytes_
-+ of the converted value, says POSIX. */
-+ w = count;
-+# endif
-+ if (w < width)
-+ {
-+ size_t pad = width - w;
-+
-+ /* Make room for the result. */
-+ if (xsum (count, pad) > allocated - length)
-+ {
-+ /* Need at least count + pad elements. But
-+ allocate proportionally. */
-+ size_t n =
-+ xmax (xsum3 (length, count, pad),
-+ xtimes (allocated, 2));
-+
-+# if USE_SNPRINTF
-+ length += count;
-+ ENSURE_ALLOCATION (n);
-+ length -= count;
-+# else
-+ ENSURE_ALLOCATION (n);
-+# endif
-+ }
-+ /* Here count + pad <= allocated - length. */
-+
-+ {
-+# if !DCHAR_IS_TCHAR || USE_SNPRINTF
-+ DCHAR_T * const rp = result + length;
-+# else
-+ DCHAR_T * const rp = tmp;
-+# endif
-+ DCHAR_T *p = rp + count;
-+ DCHAR_T *end = p + pad;
-+ DCHAR_T *pad_ptr;
-+# if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO
-+ if (dp->conversion == 'c'
-+ || dp->conversion == 's')
-+ /* No zero-padding for string directives. */
-+ pad_ptr = NULL;
-+ else
-+# endif
-+ {
-+ pad_ptr = (*rp == '-' ? rp + 1 : rp);
-+ /* No zero-padding of "inf" and "nan". */
-+ if ((*pad_ptr >= 'A' && *pad_ptr <= 'Z')
-+ || (*pad_ptr >= 'a' && *pad_ptr <= 'z'))
-+ pad_ptr = NULL;
-+ }
-+ /* The generated string now extends from rp to p,
-+ with the zero padding insertion point being at
-+ pad_ptr. */
-+
-+ count = count + pad; /* = end - rp */
-+
-+ if (flags & FLAG_LEFT)
-+ {
-+ /* Pad with spaces on the right. */
-+ for (; pad > 0; pad--)
-+ *p++ = ' ';
-+ }
-+ else if ((flags & FLAG_ZERO) && pad_ptr != NULL)
-+ {
-+ /* Pad with zeroes. */
-+ DCHAR_T *q = end;
-+
-+ while (p > pad_ptr)
-+ *--q = *--p;
-+ for (; pad > 0; pad--)
-+ *p++ = '0';
-+ }
-+ else
-+ {
-+ /* Pad with spaces on the left. */
-+ DCHAR_T *q = end;
-+
-+ while (p > rp)
-+ *--q = *--p;
-+ for (; pad > 0; pad--)
-+ *p++ = ' ';
-+ }
-+ }
-+ }
-+ }
-+#endif
-+
-+ /* Here still count <= allocated - length. */
-+
-+#if !DCHAR_IS_TCHAR || USE_SNPRINTF
-+ /* The snprintf() result did fit. */
-+#else
-+ /* Append the sprintf() result. */
-+ memcpy (result + length, tmp, count * sizeof (DCHAR_T));
-+#endif
-+#if !USE_SNPRINTF
-+ if (tmp != tmpbuf)
-+ free (tmp);
-+#endif
-+
-+#if NEED_PRINTF_DIRECTIVE_F
-+ if (dp->conversion == 'F')
-+ {
-+ /* Convert the %f result to upper case for %F. */
-+ DCHAR_T *rp = result + length;
-+ size_t rc;
-+ for (rc = count; rc > 0; rc--, rp++)
-+ if (*rp >= 'a' && *rp <= 'z')
-+ *rp = *rp - 'a' + 'A';
-+ }
-+#endif
-+
-+ length += count;
-+ break;
-+ }
-+ }
-+ }
-+ }
-+
-+ /* Add the final NUL. */
-+ ENSURE_ALLOCATION (xsum (length, 1));
-+ result[length] = '\0';
-+
-+ if (result != resultbuf && length + 1 < allocated)
-+ {
-+ /* Shrink the allocated memory if possible. */
-+ DCHAR_T *memory;
-+
-+ memory = (DCHAR_T *) realloc (result, (length + 1) * sizeof (DCHAR_T));
-+ if (memory != NULL)
-+ result = memory;
-+ }
-+
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ CLEANUP ();
-+ *lengthp = length;
-+ /* Note that we can produce a big string of a length > INT_MAX. POSIX
-+ says that snprintf() fails with errno = EOVERFLOW in this case, but
-+ that's only because snprintf() returns an 'int'. This function does
-+ not have this limitation. */
-+ return result;
-+
-+#if USE_SNPRINTF
-+ overflow:
-+ if (!(result == resultbuf || result == NULL))
-+ free (result);
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ CLEANUP ();
-+ errno = EOVERFLOW;
-+ return NULL;
-+#endif
-+
-+ out_of_memory:
-+ if (!(result == resultbuf || result == NULL))
-+ free (result);
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ out_of_memory_1:
-+ CLEANUP ();
-+ errno = ENOMEM;
-+ return NULL;
-+ }
-+}
-+
-+#undef TCHARS_PER_DCHAR
-+#undef SNPRINTF
-+#undef USE_SNPRINTF
-+#undef DCHAR_CPY
-+#undef PRINTF_PARSE
-+#undef DIRECTIVES
-+#undef DIRECTIVE
-+#undef DCHAR_IS_TCHAR
-+#undef TCHAR_T
-+#undef DCHAR_T
-+#undef FCHAR_T
-+#undef VASNPRINTF
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/vasnprintf.h gtk-vnc-0.3.7.gnulib/gnulib/lib/vasnprintf.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/vasnprintf.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/vasnprintf.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,81 @@
-+/* vsprintf with automatic memory allocation.
-+ Copyright (C) 2002-2004, 2007-2008 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License along
-+ with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#ifndef _VASNPRINTF_H
-+#define _VASNPRINTF_H
-+
-+/* Get va_list. */
-+#include <stdarg.h>
-+
-+/* Get size_t. */
-+#include <stddef.h>
-+
-+#ifndef __attribute__
-+/* This feature is available in gcc versions 2.5 and later. */
-+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-+# define __attribute__(Spec) /* empty */
-+# endif
-+/* The __-protected variants of `format' and `printf' attributes
-+ are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
-+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
-+# define __format__ format
-+# define __printf__ printf
-+# endif
-+#endif
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+/* Write formatted output to a string dynamically allocated with malloc().
-+ You can pass a preallocated buffer for the result in RESULTBUF and its
-+ size in *LENGTHP; otherwise you pass RESULTBUF = NULL.
-+ If successful, return the address of the string (this may be = RESULTBUF
-+ if no dynamic memory allocation was necessary) and set *LENGTHP to the
-+ number of resulting bytes, excluding the trailing NUL. Upon error, set
-+ errno and return NULL.
-+
-+ When dynamic memory allocation occurs, the preallocated buffer is left
-+ alone (with possibly modified contents). This makes it possible to use
-+ a statically allocated or stack-allocated buffer, like this:
-+
-+ char buf[100];
-+ size_t len = sizeof (buf);
-+ char *output = vasnprintf (buf, &len, format, args);
-+ if (output == NULL)
-+ ... error handling ...;
-+ else
-+ {
-+ ... use the output string ...;
-+ if (output != buf)
-+ free (output);
-+ }
-+ */
-+#if REPLACE_VASNPRINTF
-+# define asnprintf rpl_asnprintf
-+# define vasnprintf rpl_vasnprintf
-+#endif
-+extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
-+ __attribute__ ((__format__ (__printf__, 3, 4)));
-+extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args)
-+ __attribute__ ((__format__ (__printf__, 3, 0)));
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* _VASNPRINTF_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/wchar.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/wchar.in.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/wchar.in.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/wchar.in.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,99 @@
-+/* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
-+
-+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+/* Written by Eric Blake. */
-+
-+/*
-+ * ISO C 99 <wchar.h> for platforms that have issues.
-+ * <http://www.opengroup.org/susv3xbd/wchar.h.html>
-+ *
-+ * For now, this just ensures proper prerequisite inclusion order and
-+ * the declaration of wcwidth().
-+ */
-+
-+@PRAGMA_SYSTEM_HEADER@
-+
-+#ifdef __need_mbstate_t
-+/* Special invocation convention inside uClibc header files. */
-+
-+#@INCLUDE_NEXT@ @NEXT_WCHAR_H@
-+
-+#else
-+/* Normal invocation convention. */
-+
-+#ifndef _GL_WCHAR_H
-+
-+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-+ <wchar.h>.
-+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-+ included before <wchar.h>. */
-+#include <stddef.h>
-+#include <stdio.h>
-+#include <time.h>
-+
-+/* Include the original <wchar.h> if it exists.
-+ Some builds of uClibc lack it. */
-+/* The include_next requires a split double-inclusion guard. */
-+#if @HAVE_WCHAR_H@
-+# @INCLUDE_NEXT@ @NEXT_WCHAR_H@
-+#endif
-+
-+#ifndef _GL_WCHAR_H
-+#define _GL_WCHAR_H
-+
-+/* The definition of GL_LINK_WARNING is copied here. */
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+
-+/* Define wint_t. (Also done in wctype.in.h.) */
-+#if !@HAVE_WINT_T@ && !defined wint_t
-+# define wint_t int
-+#endif
-+
-+
-+/* Return the number of screen columns needed for WC. */
-+#if @GNULIB_WCWIDTH@
-+# if @REPLACE_WCWIDTH@
-+# undef wcwidth
-+# define wcwidth rpl_wcwidth
-+extern int wcwidth (wchar_t);
-+# else
-+# if !defined wcwidth && !@HAVE_DECL_WCWIDTH@
-+/* wcwidth exists but is not declared. */
-+extern int wcwidth (int /* actually wchar_t */);
-+# endif
-+# endif
-+#elif defined GNULIB_POSIXCHECK
-+# undef wcwidth
-+# define wcwidth(w) \
-+ (GL_LINK_WARNING ("wcwidth is unportable - " \
-+ "use gnulib module wcwidth for portability"), \
-+ wcwidth (w))
-+#endif
-+
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* _GL_WCHAR_H */
-+#endif /* _GL_WCHAR_H */
-+#endif
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/winsock.c gtk-vnc-0.3.7.gnulib/gnulib/lib/winsock.c
---- gtk-vnc-0.3.7.dan3/gnulib/lib/winsock.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/winsock.c 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,308 @@
-+/* winsock.c --- wrappers for Windows socket functions
-+
-+ Copyright (C) 2008 Free Software Foundation, Inc.
-+
-+ This program is free software: you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
-+
-+/* Written by Paolo Bonzini */
-+
-+#include <config.h>
-+#include <stdio.h>
-+#include <string.h>
-+#include <errno.h>
-+#include <fcntl.h>
-+#include <io.h>
-+#include <sys/socket.h>
-+
-+#undef close
-+#undef socket
-+#undef connect
-+#undef accept
-+#undef bind
-+#undef getpeername
-+#undef getsockname
-+#undef getsockopt
-+#undef listen
-+#undef recv
-+#undef send
-+#undef recvfrom
-+#undef sendto
-+#undef setsockopt
-+
-+# define FD_TO_SOCKET(fd) ((SOCKET) _get_osfhandle ((fd)))
-+# define SOCKET_TO_FD(fh) (_open_osfhandle ((long) (fh), O_RDWR | O_BINARY))
-+
-+
-+/* Wrappers for libc functions. */
-+
-+int
-+rpl_close (int fd)
-+{
-+ SOCKET sock = FD_TO_SOCKET (fd);
-+ WSANETWORKEVENTS ev;
-+
-+ ev.lNetworkEvents = 0xDEADBEEF;
-+ WSAEnumNetworkEvents (sock, NULL, &ev);
-+ if (ev.lNetworkEvents != 0xDEADBEEF)
-+ {
-+ /* FIXME: other applications, like squid, use an undocumented
-+ _free_osfhnd free function. Instead, here we just close twice
-+ the file descriptor. I could not get the former to work
-+ (pb, Sep 22 2008). */
-+ int r = closesocket (sock);
-+ _close (fd);
-+ return r;
-+ }
-+ else
-+ return _close (fd);
-+}
-+
-+
-+/* Wrappers for WinSock functions. */
-+
-+static inline void
-+set_winsock_errno (void)
-+{
-+ int err = WSAGetLastError ();
-+ WSASetLastError (0);
-+
-+ /* Map some WSAE* errors to the runtime library's error codes. */
-+ switch (err)
-+ {
-+ case WSA_INVALID_HANDLE:
-+ errno = EBADF;
-+ break;
-+ case WSA_NOT_ENOUGH_MEMORY:
-+ errno = ENOMEM;
-+ break;
-+ case WSA_INVALID_PARAMETER:
-+ errno = EINVAL;
-+ break;
-+ case WSAEWOULDBLOCK:
-+ errno = EWOULDBLOCK;
-+ break;
-+ case WSAENAMETOOLONG:
-+ errno = ENAMETOOLONG;
-+ break;
-+ case WSAENOTEMPTY:
-+ errno = ENOTEMPTY;
-+ break;
-+ default:
-+ errno = (err > 10000 && err < 10025) ? err - 10000 : err;
-+ break;
-+ }
-+}
-+
-+#if GNULIB_SOCKET
-+int
-+rpl_socket (int domain, int type, int protocol)
-+{
-+ /* We have to use WSASocket() to create non-overlapped IO sockets.
-+ Overlapped IO sockets cannot be used with read/write. */
-+ SOCKET fh = WSASocket (domain, type, protocol, NULL, 0, 0);
-+
-+ if (fh == INVALID_SOCKET)
-+ {
-+ set_winsock_errno ();
-+ return -1;
-+ }
-+ else
-+ return SOCKET_TO_FD (fh);
-+}
-+#endif
-+
-+#if GNULIB_CONNECT
-+int
-+rpl_connect (int fd, struct sockaddr *sockaddr, int len)
-+{
-+ SOCKET sock = FD_TO_SOCKET (fd);
-+ int r = connect (sock, sockaddr, len);
-+ if (r < 0)
-+ {
-+ /* EINPROGRESS is not returned by WinSock 2.0; for backwards
-+ compatibility, connect(2) uses EWOULDBLOCK. */
-+ if (WSAGetLastError () == WSAEWOULDBLOCK)
-+ WSASetLastError (WSAEINPROGRESS);
-+
-+ set_winsock_errno ();
-+ }
-+
-+ return r;
-+}
-+#endif
-+
-+#if GNULIB_ACCEPT
-+int
-+rpl_accept (int fd, struct sockaddr *addr, int *addrlen)
-+{
-+ SOCKET fh = accept (FD_TO_SOCKET (fd), addr, addrlen);
-+ if (fh == INVALID_SOCKET)
-+ {
-+ set_winsock_errno ();
-+ return -1;
-+ }
-+ else
-+ return SOCKET_TO_FD (fh);
-+}
-+#endif
-+
-+#if GNULIB_BIND
-+int
-+rpl_bind (int fd, struct sockaddr *sockaddr, int len)
-+{
-+ SOCKET sock = FD_TO_SOCKET (fd);
-+ int r = bind (sock, sockaddr, len);
-+ if (r < 0)
-+ set_winsock_errno ();
-+
-+ return r;
-+}
-+#endif
-+
-+#if GNULIB_GETPEERNAME
-+int
-+rpl_getpeername (int fd, struct sockaddr *addr, int *addrlen)
-+{
-+ SOCKET sock = FD_TO_SOCKET (fd);
-+ int r = getpeername (sock, addr, addrlen);
-+ if (r < 0)
-+ set_winsock_errno ();
-+
-+ return r;
-+}
-+#endif
-+
-+#if GNULIB_GETSOCKNAME
-+int
-+rpl_getsockname (int fd, struct sockaddr *addr, int *addrlen)
-+{
-+ SOCKET sock = FD_TO_SOCKET (fd);
-+ int r = getsockname (sock, addr, addrlen);
-+ if (r < 0)
-+ set_winsock_errno ();
-+
-+ return r;
-+}
-+#endif
-+
-+#if GNULIB_GETSOCKOPT
-+int
-+rpl_getsockopt (int fd, int level, int optname, void *optval, int *optlen)
-+{
-+ SOCKET sock = FD_TO_SOCKET (fd);
-+ int r = getsockopt (sock, level, optname, optval, optlen);
-+ if (r < 0)
-+ set_winsock_errno ();
-+
-+ return r;
-+}
-+#endif
-+
-+#if GNULIB_LISTEN
-+int
-+rpl_listen (int fd, int backlog)
-+{
-+ SOCKET sock = FD_TO_SOCKET (fd);
-+ int r = listen (sock, backlog);
-+ if (r < 0)
-+ set_winsock_errno ();
-+
-+ return r;
-+}
-+#endif
-+
-+int
-+rpl_ioctl (int fd, unsigned long req, char *buf)
-+{
-+ SOCKET sock = FD_TO_SOCKET (fd);
-+ int r = ioctlsocket (sock, req, (void *) buf);
-+ if (r < 0)
-+ set_winsock_errno ();
-+
-+ return r;
-+}
-+
-+#if GNULIB_RECV
-+int
-+rpl_recv (int fd, void *buf, int len, int flags)
-+{
-+ SOCKET sock = FD_TO_SOCKET (fd);
-+ int r = recv (sock, buf, len, flags);
-+ if (r < 0)
-+ set_winsock_errno ();
-+
-+ return r;
-+}
-+#endif
-+
-+#if GNULIB_SEND
-+int
-+rpl_send (int fd, const void *buf, int len, int flags)
-+{
-+ SOCKET sock = FD_TO_SOCKET (fd);
-+ int r = send (sock, buf, len, flags);
-+ if (r < 0)
-+ set_winsock_errno ();
-+
-+ return r;
-+}
-+#endif
-+
-+#if GNULIB_RECVFROM
-+int
-+rpl_recvfrom (int fd, void *buf, int len, int flags, struct sockaddr *from,
-+ int *fromlen)
-+{
-+ int frombufsize = *fromlen;
-+ SOCKET sock = FD_TO_SOCKET (fd);
-+ int r = recvfrom (sock, buf, len, flags, from, fromlen);
-+
-+ if (r < 0)
-+ set_winsock_errno ();
-+
-+ /* Winsock recvfrom() only returns a valid 'from' when the socket is
-+ connectionless. POSIX gives a valid 'from' for all types of sockets. */
-+ else if (*fromlen == frombufsize)
-+ rpl_getpeername (fd, from, fromlen);
-+
-+ return r;
-+}
-+#endif
-+
-+#if GNULIB_SENDTO
-+int
-+rpl_sendto (int fd, const void *buf, int len, int flags,
-+ struct sockaddr *to, int tolen)
-+{
-+ SOCKET sock = FD_TO_SOCKET (fd);
-+ int r = sendto (sock, buf, len, flags, to, tolen);
-+ if (r < 0)
-+ set_winsock_errno ();
-+
-+ return r;
-+}
-+#endif
-+
-+#if GNULIB_SETSOCKOPT
-+int
-+rpl_setsockopt (int fd, int level, int optname, const void *optval, int optlen)
-+{
-+ SOCKET sock = FD_TO_SOCKET (fd);
-+ int r = setsockopt (sock, level, optname, optval, optlen);
-+ if (r < 0)
-+ set_winsock_errno ();
-+
-+ return r;
-+}
-+#endif
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/lib/xsize.h gtk-vnc-0.3.7.gnulib/gnulib/lib/xsize.h
---- gtk-vnc-0.3.7.dan3/gnulib/lib/xsize.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/lib/xsize.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,108 @@
-+/* xsize.h -- Checked size_t computations.
-+
-+ Copyright (C) 2003, 2008 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with this program; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-+
-+#ifndef _XSIZE_H
-+#define _XSIZE_H
-+
-+/* Get size_t. */
-+#include <stddef.h>
-+
-+/* Get SIZE_MAX. */
-+#include <limits.h>
-+#if HAVE_STDINT_H
-+# include <stdint.h>
-+#endif
-+
-+/* The size of memory objects is often computed through expressions of
-+ type size_t. Example:
-+ void* p = malloc (header_size + n * element_size).
-+ These computations can lead to overflow. When this happens, malloc()
-+ returns a piece of memory that is way too small, and the program then
-+ crashes while attempting to fill the memory.
-+ To avoid this, the functions and macros in this file check for overflow.
-+ The convention is that SIZE_MAX represents overflow.
-+ malloc (SIZE_MAX) is not guaranteed to fail -- think of a malloc
-+ implementation that uses mmap --, it's recommended to use size_overflow_p()
-+ or size_in_bounds_p() before invoking malloc().
-+ The example thus becomes:
-+ size_t size = xsum (header_size, xtimes (n, element_size));
-+ void *p = (size_in_bounds_p (size) ? malloc (size) : NULL);
-+*/
-+
-+/* Convert an arbitrary value >= 0 to type size_t. */
-+#define xcast_size_t(N) \
-+ ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX)
-+
-+/* Sum of two sizes, with overflow check. */
-+static inline size_t
-+#if __GNUC__ >= 3
-+__attribute__ ((__pure__))
-+#endif
-+xsum (size_t size1, size_t size2)
-+{
-+ size_t sum = size1 + size2;
-+ return (sum >= size1 ? sum : SIZE_MAX);
-+}
-+
-+/* Sum of three sizes, with overflow check. */
-+static inline size_t
-+#if __GNUC__ >= 3
-+__attribute__ ((__pure__))
-+#endif
-+xsum3 (size_t size1, size_t size2, size_t size3)
-+{
-+ return xsum (xsum (size1, size2), size3);
-+}
-+
-+/* Sum of four sizes, with overflow check. */
-+static inline size_t
-+#if __GNUC__ >= 3
-+__attribute__ ((__pure__))
-+#endif
-+xsum4 (size_t size1, size_t size2, size_t size3, size_t size4)
-+{
-+ return xsum (xsum (xsum (size1, size2), size3), size4);
-+}
-+
-+/* Maximum of two sizes, with overflow check. */
-+static inline size_t
-+#if __GNUC__ >= 3
-+__attribute__ ((__pure__))
-+#endif
-+xmax (size_t size1, size_t size2)
-+{
-+ /* No explicit check is needed here, because for any n:
-+ max (SIZE_MAX, n) == SIZE_MAX and max (n, SIZE_MAX) == SIZE_MAX. */
-+ return (size1 >= size2 ? size1 : size2);
-+}
-+
-+/* Multiplication of a count with an element size, with overflow check.
-+ The count must be >= 0 and the element size must be > 0.
-+ This is a macro, not an inline function, so that it works correctly even
-+ when N is of a wider type and N > SIZE_MAX. */
-+#define xtimes(N, ELSIZE) \
-+ ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX)
-+
-+/* Check for overflow. */
-+#define size_overflow_p(SIZE) \
-+ ((SIZE) == SIZE_MAX)
-+/* Check against overflow. */
-+#define size_in_bounds_p(SIZE) \
-+ ((SIZE) != SIZE_MAX)
-+
-+#endif /* _XSIZE_H */
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/alloca.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/alloca.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/alloca.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/alloca.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,46 @@
-+# alloca.m4 serial 8
-+dnl Copyright (C) 2002-2004, 2006, 2007 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+AC_DEFUN([gl_FUNC_ALLOCA],
-+[
-+ dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
-+ AC_REQUIRE([AC_PROG_CPP])
-+ AC_REQUIRE([AC_PROG_EGREP])
-+
-+ AC_REQUIRE([AC_FUNC_ALLOCA])
-+ if test $ac_cv_func_alloca_works = no; then
-+ gl_PREREQ_ALLOCA
-+ fi
-+
-+ # Define an additional variable used in the Makefile substitution.
-+ if test $ac_cv_working_alloca_h = yes; then
-+ AC_CACHE_CHECK([for alloca as a compiler built-in], [gl_cv_rpl_alloca], [
-+ AC_EGREP_CPP([Need own alloca], [
-+#if defined __GNUC__ || defined _AIX || defined _MSC_VER
-+ Need own alloca
-+#endif
-+ ], [gl_cv_rpl_alloca=yes], [gl_cv_rpl_alloca=no])
-+ ])
-+ if test $gl_cv_rpl_alloca = yes; then
-+ dnl OK, alloca can be implemented through a compiler built-in.
-+ AC_DEFINE([HAVE_ALLOCA], 1,
-+ [Define to 1 if you have 'alloca' after including <alloca.h>,
-+ a header that may be supplied by this distribution.])
-+ ALLOCA_H=alloca.h
-+ else
-+ dnl alloca exists as a library function, i.e. it is slow and probably
-+ dnl a memory leak. Don't define HAVE_ALLOCA in this case.
-+ ALLOCA_H=
-+ fi
-+ else
-+ ALLOCA_H=alloca.h
-+ fi
-+ AC_SUBST([ALLOCA_H])
-+])
-+
-+# Prerequisites of lib/alloca.c.
-+# STACK_DIRECTION is already handled by AC_FUNC_ALLOCA.
-+AC_DEFUN([gl_PREREQ_ALLOCA], [:])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/arpa_inet_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/arpa_inet_h.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/arpa_inet_h.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/arpa_inet_h.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,50 @@
-+# arpa_inet_h.m4 serial 5
-+dnl Copyright (C) 2006, 2008 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl Written by Simon Josefsson and Bruno Haible
-+
-+AC_DEFUN([gl_HEADER_ARPA_INET],
-+[
-+ dnl Use AC_REQUIRE here, so that the default behavior below is expanded
-+ dnl once only, before all statements that occur in other macros.
-+ AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS])
-+
-+ AC_CHECK_HEADERS_ONCE([arpa/inet.h])
-+ if test $ac_cv_header_arpa_inet_h = yes; then
-+ HAVE_ARPA_INET_H=1
-+ else
-+ ARPA_INET_H='arpa/inet.h'
-+ HAVE_ARPA_INET_H=0
-+ fi
-+ AC_SUBST([HAVE_ARPA_INET_H])
-+ dnl Execute this unconditionally, because ARPA_INET_H may be set by other
-+ dnl modules, after this code is executed.
-+ gl_CHECK_NEXT_HEADERS([arpa/inet.h])
-+])
-+
-+dnl Unconditionally enables the replacement of <arpa/inet.h>.
-+AC_DEFUN([gl_REPLACE_ARPA_INET_H],
-+[
-+ AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS])
-+ ARPA_INET_H='arpa/inet.h'
-+])
-+
-+AC_DEFUN([gl_ARPA_INET_MODULE_INDICATOR],
-+[
-+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
-+ AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS])
-+ GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
-+])
-+
-+AC_DEFUN([gl_ARPA_INET_H_DEFAULTS],
-+[
-+ GNULIB_INET_NTOP=0; AC_SUBST([GNULIB_INET_NTOP])
-+ GNULIB_INET_PTON=0; AC_SUBST([GNULIB_INET_PTON])
-+ dnl Assume proper GNU behavior unless another module says otherwise.
-+ HAVE_DECL_INET_NTOP=1; AC_SUBST([HAVE_DECL_INET_NTOP])
-+ HAVE_DECL_INET_PTON=1; AC_SUBST([HAVE_DECL_INET_PTON])
-+ ARPA_INET_H=''; AC_SUBST([ARPA_INET_H])
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/errno_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/errno_h.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/errno_h.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/errno_h.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,113 @@
-+# errno_h.m4 serial 1
-+dnl Copyright (C) 2004, 2006, 2008 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+AC_DEFUN([gl_HEADER_ERRNO_H],
-+[
-+ dnl Use AC_REQUIRE here, so that the default behavior below is expanded
-+ dnl once only, before all statements that occur in other macros.
-+ AC_REQUIRE([gl_HEADER_ERRNO_H_BODY])
-+])
-+
-+AC_DEFUN([gl_HEADER_ERRNO_H_BODY],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_CACHE_CHECK([for complete errno.h], gl_cv_header_errno_h_complete, [
-+ AC_EGREP_CPP(booboo,[
-+#include <errno.h>
-+#if !defined ENOMSG
-+booboo
-+#endif
-+#if !defined EIDRM
-+booboo
-+#endif
-+#if !defined ENOLINK
-+booboo
-+#endif
-+#if !defined EPROTO
-+booboo
-+#endif
-+#if !defined EMULTIHOP
-+booboo
-+#endif
-+#if !defined EBADMSG
-+booboo
-+#endif
-+#if !defined EOVERFLOW
-+booboo
-+#endif
-+#if !defined ENOTSUP
-+booboo
-+#endif
-+#if !defined ECANCELED
-+booboo
-+#endif
-+ ],
-+ [gl_cv_header_errno_h_complete=no],
-+ [gl_cv_header_errno_h_complete=yes])
-+ ])
-+ if test $gl_cv_header_errno_h_complete = yes; then
-+ ERRNO_H=''
-+ else
-+ gl_CHECK_NEXT_HEADERS([errno.h])
-+ ERRNO_H='errno.h'
-+ fi
-+ AC_SUBST([ERRNO_H])
-+ gl_REPLACE_ERRNO_VALUE([EMULTIHOP])
-+ gl_REPLACE_ERRNO_VALUE([ENOLINK])
-+ gl_REPLACE_ERRNO_VALUE([EOVERFLOW])
-+])
-+
-+# Assuming $1 = EOVERFLOW.
-+# The EOVERFLOW errno value ought to be defined in <errno.h>, according to
-+# POSIX. But some systems (like OpenBSD 4.0 or AIX 3) don't define it, and
-+# some systems (like OSF/1) define it when _XOPEN_SOURCE_EXTENDED is defined.
-+# Check for the value of EOVERFLOW.
-+# Set the variables EOVERFLOW_HIDDEN and EOVERFLOW_VALUE.
-+AC_DEFUN([gl_REPLACE_ERRNO_VALUE],
-+[
-+ if test -n "$ERRNO_H"; then
-+ AC_CACHE_CHECK([for ]$1[ value], [gl_cv_header_errno_h_]$1, [
-+ AC_EGREP_CPP(yes,[
-+#include <errno.h>
-+#ifdef ]$1[
-+yes
-+#endif
-+ ],
-+ [gl_cv_header_errno_h_]$1[=yes],
-+ [gl_cv_header_errno_h_]$1[=no])
-+ if test $gl_cv_header_errno_h_]$1[ = no; then
-+ AC_EGREP_CPP(yes,[
-+#define _XOPEN_SOURCE_EXTENDED 1
-+#include <errno.h>
-+#ifdef ]$1[
-+yes
-+#endif
-+ ], [gl_cv_header_errno_h_]$1[=hidden])
-+ if test $gl_cv_header_errno_h_]$1[ = hidden; then
-+ dnl The macro exists but is hidden.
-+ dnl Define it to the same value.
-+ AC_COMPUTE_INT([gl_cv_header_errno_h_]$1, $1, [
-+#define _XOPEN_SOURCE_EXTENDED 1
-+#include <errno.h>
-+/* The following two lines are a workaround against an autoconf-2.52 bug. */
-+#include <stdio.h>
-+#include <stdlib.h>
-+])
-+ fi
-+ fi
-+ ])
-+ case $gl_cv_header_errno_h_]$1[ in
-+ yes | no)
-+ ]$1[_HIDDEN=0; ]$1[_VALUE=
-+ ;;
-+ *)
-+ ]$1[_HIDDEN=1; ]$1[_VALUE="$gl_cv_header_errno_h_]$1["
-+ ;;
-+ esac
-+ AC_SUBST($1[_HIDDEN])
-+ AC_SUBST($1[_VALUE])
-+ fi
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/extensions.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/extensions.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/extensions.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/extensions.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,82 @@
-+# serial 5 -*- Autoconf -*-
-+# Enable extensions on systems that normally disable them.
-+
-+# Copyright (C) 2003, 2006-2008 Free Software Foundation, Inc.
-+# This file is free software; the Free Software Foundation
-+# gives unlimited permission to copy and/or distribute it,
-+# with or without modifications, as long as this notice is preserved.
-+
-+# This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS
-+# Autoconf. Perhaps we can remove this once we can assume Autoconf
-+# 2.62 or later everywhere, but since CVS Autoconf mutates rapidly
-+# enough in this area it's likely we'll need to redefine
-+# AC_USE_SYSTEM_EXTENSIONS for quite some time.
-+
-+# AC_USE_SYSTEM_EXTENSIONS
-+# ------------------------
-+# Enable extensions on systems that normally disable them,
-+# typically due to standards-conformance issues.
-+# Remember that #undef in AH_VERBATIM gets replaced with #define by
-+# AC_DEFINE. The goal here is to define all known feature-enabling
-+# macros, then, if reports of conflicts are made, disable macros that
-+# cause problems on some platforms (such as __EXTENSIONS__).
-+AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
-+[AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
-+AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
-+
-+ AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=])
-+ if test "$MINIX" = yes; then
-+ AC_DEFINE([_POSIX_SOURCE], [1],
-+ [Define to 1 if you need to in order for `stat' and other
-+ things to work.])
-+ AC_DEFINE([_POSIX_1_SOURCE], [2],
-+ [Define to 2 if the system does not provide POSIX.1 features
-+ except with this defined.])
-+ AC_DEFINE([_MINIX], [1],
-+ [Define to 1 if on MINIX.])
-+ fi
-+
-+ AH_VERBATIM([__EXTENSIONS__],
-+[/* Enable extensions on AIX 3, Interix. */
-+#ifndef _ALL_SOURCE
-+# undef _ALL_SOURCE
-+#endif
-+/* Enable GNU extensions on systems that have them. */
-+#ifndef _GNU_SOURCE
-+# undef _GNU_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
-+/* Enable general extensions on Solaris. */
-+#ifndef __EXTENSIONS__
-+# undef __EXTENSIONS__
-+#endif
-+])
-+ AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
-+ [ac_cv_safe_to_define___extensions__],
-+ [AC_COMPILE_IFELSE(
-+ [AC_LANG_PROGRAM([[
-+# define __EXTENSIONS__ 1
-+ ]AC_INCLUDES_DEFAULT])],
-+ [ac_cv_safe_to_define___extensions__=yes],
-+ [ac_cv_safe_to_define___extensions__=no])])
-+ test $ac_cv_safe_to_define___extensions__ = yes &&
-+ AC_DEFINE([__EXTENSIONS__])
-+ AC_DEFINE([_ALL_SOURCE])
-+ AC_DEFINE([_GNU_SOURCE])
-+ AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
-+ AC_DEFINE([_TANDEM_SOURCE])
-+])# AC_USE_SYSTEM_EXTENSIONS
-+
-+# gl_USE_SYSTEM_EXTENSIONS
-+# ------------------------
-+# Enable extensions on systems that normally disable them,
-+# typically due to standards-conformance issues.
-+AC_DEFUN([gl_USE_SYSTEM_EXTENSIONS],
-+ [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/float_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/float_h.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/float_h.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/float_h.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,19 @@
-+# float_h.m4 serial 3
-+dnl Copyright (C) 2007 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+AC_DEFUN([gl_FLOAT_H],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST])
-+ FLOAT_H=
-+ case "$host_os" in
-+ beos* | openbsd*)
-+ FLOAT_H=float.h
-+ gl_CHECK_NEXT_HEADERS([float.h])
-+ ;;
-+ esac
-+ AC_SUBST([FLOAT_H])
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/getaddrinfo.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/getaddrinfo.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/getaddrinfo.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/getaddrinfo.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,130 @@
-+# getaddrinfo.m4 serial 15
-+dnl Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+AC_DEFUN([gl_GETADDRINFO],
-+[
-+ AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H
-+ AC_MSG_NOTICE([checking how to do getaddrinfo, freeaddrinfo and getnameinfo])
-+
-+ AC_CHECK_HEADERS_ONCE(netdb.h)
-+
-+ AC_SEARCH_LIBS(getaddrinfo, [nsl socket])
-+ AC_CACHE_CHECK([for getaddrinfo], [gl_cv_func_getaddrinfo], [
-+ AC_TRY_LINK([
-+#include <sys/types.h>
-+#ifdef HAVE_SYS_SOCKET_H
-+#include <sys/socket.h>
-+#endif
-+#ifdef HAVE_NETDB_H
-+#include <netdb.h>
-+#endif
-+#include <stddef.h>
-+], [getaddrinfo("", "", NULL, NULL);],
-+ [gl_cv_func_getaddrinfo=yes],
-+ [gl_cv_func_getaddrinfo=no])])
-+ if test $gl_cv_func_getaddrinfo = no; then
-+ AC_CACHE_CHECK(for getaddrinfo in ws2tcpip.h and -lws2_32,
-+ gl_cv_w32_getaddrinfo, [
-+ gl_cv_w32_getaddrinfo=no
-+ am_save_LIBS="$LIBS"
-+ LIBS="$LIBS -lws2_32"
-+ AC_TRY_LINK([
-+#ifdef HAVE_WS2TCPIP_H
-+#include <ws2tcpip.h>
-+#endif
-+#include <stddef.h>
-+], [getaddrinfo(NULL, NULL, NULL, NULL);], gl_cv_w32_getaddrinfo=yes)
-+ LIBS="$am_save_LIBS"])
-+ if test "$gl_cv_w32_getaddrinfo" = "yes"; then
-+ LIBS="$LIBS -lws2_32"
-+ else
-+ AC_LIBOBJ(getaddrinfo)
-+ fi
-+ fi
-+
-+ # We can't use AC_REPLACE_FUNCS here because gai_strerror may be an
-+ # inline function declared in ws2tcpip.h, so we need to get that
-+ # header included somehow.
-+ AC_CACHE_CHECK([for gai_strerror (possibly via ws2tcpip.h)],
-+ gl_cv_func_gai_strerror, [
-+ AC_TRY_LINK([
-+#include <sys/types.h>
-+#ifdef HAVE_SYS_SOCKET_H
-+#include <sys/socket.h>
-+#endif
-+#ifdef HAVE_NETDB_H
-+#include <netdb.h>
-+#endif
-+#ifdef HAVE_WS2TCPIP_H
-+#include <ws2tcpip.h>
-+#endif
-+#include <stddef.h>
-+], [gai_strerror (NULL);],
-+ [gl_cv_func_gai_strerror=yes],
-+ [gl_cv_func_gai_strerror=no])])
-+ if test $gl_cv_func_gai_strerror = no; then
-+ AC_LIBOBJ(gai_strerror)
-+ fi
-+
-+ gl_PREREQ_GETADDRINFO
-+])
-+
-+# Prerequisites of lib/getaddrinfo.h and lib/getaddrinfo.c.
-+AC_DEFUN([gl_PREREQ_GETADDRINFO], [
-+ AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H
-+ AC_SEARCH_LIBS(gethostbyname, [inet nsl])
-+ AC_SEARCH_LIBS(getservbyname, [inet nsl socket xnet])
-+ AC_CHECK_FUNCS(gethostbyname,, [
-+ AC_CACHE_CHECK(for gethostbyname in winsock2.h and -lws2_32,
-+ gl_cv_w32_gethostbyname, [
-+ gl_cv_w32_gethostbyname=no
-+ am_save_LIBS="$LIBS"
-+ LIBS="$LIBS -lws2_32"
-+ AC_TRY_LINK([
-+#ifdef HAVE_WINSOCK2_H
-+#include <winsock2.h>
-+#endif
-+#include <stddef.h>
-+], [gethostbyname(NULL);], gl_cv_w32_gethostbyname=yes)
-+ LIBS="$am_save_LIBS"])
-+ if test "$gl_cv_w32_gethostbyname" = "yes"; then
-+ LIBS="$LIBS -lws2_32"
-+ fi
-+ ])
-+ AC_REQUIRE([AC_C_RESTRICT])
-+ AC_REQUIRE([gl_SOCKET_FAMILIES])
-+ AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-+ AC_REQUIRE([AC_C_INLINE])
-+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
-+ AC_CHECK_HEADERS_ONCE(netinet/in.h netdb.h)
-+ AC_CHECK_DECLS([getaddrinfo, freeaddrinfo, gai_strerror, getnameinfo],,,[
-+ /* sys/types.h is not needed according to POSIX, but the
-+ sys/socket.h in i386-unknown-freebsd4.10 and
-+ powerpc-apple-darwin5.5 required it. */
-+#include <sys/types.h>
-+#ifdef HAVE_SYS_SOCKET_H
-+#include <sys/socket.h>
-+#endif
-+#ifdef HAVE_NETDB_H
-+#include <netdb.h>
-+#endif
-+#ifdef HAVE_WS2TCPIP_H
-+#include <ws2tcpip.h>
-+#endif
-+])
-+ AC_CHECK_TYPES([struct addrinfo],,,[
-+#include <sys/types.h>
-+#ifdef HAVE_SYS_SOCKET_H
-+#include <sys/socket.h>
-+#endif
-+#ifdef HAVE_NETDB_H
-+#include <netdb.h>
-+#endif
-+#ifdef HAVE_WS2TCPIP_H
-+#include <ws2tcpip.h>
-+#endif
-+])
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/gnulib-cache.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/gnulib-cache.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/gnulib-cache.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/gnulib-cache.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,43 @@
-+# Copyright (C) 2002-2008 Free Software Foundation, Inc.
-+#
-+# This file is free software, distributed under the terms of the GNU
-+# General Public License. As a special exception to the GNU General
-+# Public License, this file may be distributed as part of a program
-+# that contains a configuration script generated by Autoconf, under
-+# the same distribution terms as the rest of that program.
-+#
-+# Generated by gnulib-tool.
-+#
-+# This file represents the specification of how gnulib-tool is used.
-+# It acts as a cache: It is written and read by gnulib-tool.
-+# In projects using CVS, this file is meant to be stored in CVS,
-+# like the configure.ac and various Makefile.am files.
-+
-+
-+# Specification in the form of a command-line invocation:
-+# gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --doc-base=doc --tests-base=gnulib/tests --aux-dir=. --with-tests --lgpl=2 --libtool --macro-prefix=gl connect getaddrinfo malloc recv send socket vc-list-files
-+
-+# Specification in the form of a few gnulib-tool.m4 macro invocations:
-+gl_LOCAL_DIR([])
-+gl_MODULES([
-+ connect
-+ getaddrinfo
-+ malloc
-+ recv
-+ send
-+ socket
-+ vc-list-files
-+])
-+gl_AVOID([])
-+gl_SOURCE_BASE([gnulib/lib])
-+gl_M4_BASE([gnulib/m4])
-+gl_PO_BASE([])
-+gl_DOC_BASE([doc])
-+gl_TESTS_BASE([gnulib/tests])
-+gl_WITH_TESTS
-+gl_LIB([libgnu])
-+gl_LGPL([2])
-+gl_MAKEFILE_NAME([])
-+gl_LIBTOOL
-+gl_MACRO_PREFIX([gl])
-+gl_PO_DOMAIN([])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/gnulib-common.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/gnulib-common.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/gnulib-common.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/gnulib-common.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,91 @@
-+# gnulib-common.m4 serial 5
-+dnl Copyright (C) 2007-2008 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+# gl_COMMON
-+# is expanded unconditionally through gnulib-tool magic.
-+AC_DEFUN([gl_COMMON], [
-+ dnl Use AC_REQUIRE here, so that the code is expanded once only.
-+ AC_REQUIRE([gl_COMMON_BODY])
-+])
-+AC_DEFUN([gl_COMMON_BODY], [
-+ AH_VERBATIM([isoc99_inline],
-+[/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
-+ the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
-+ earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
-+ __APPLE__ && __MACH__ test for MacOS X.
-+ __APPLE_CC__ tests for the Apple compiler and its version.
-+ __STDC_VERSION__ tests for the C99 mode. */
-+#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
-+# define __GNUC_STDC_INLINE__ 1
-+#endif])
-+])
-+
-+# gl_MODULE_INDICATOR([modulename])
-+# defines a C macro indicating the presence of the given module.
-+AC_DEFUN([gl_MODULE_INDICATOR],
-+[
-+ AC_DEFINE([GNULIB_]translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1],
-+ [Define to 1 when using the gnulib module ]$1[.])
-+])
-+
-+# m4_foreach_w
-+# is a backport of autoconf-2.59c's m4_foreach_w.
-+# Remove this macro when we can assume autoconf >= 2.60.
-+m4_ifndef([m4_foreach_w],
-+ [m4_define([m4_foreach_w],
-+ [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])])
-+
-+# AC_PROG_MKDIR_P
-+# is a backport of autoconf-2.60's AC_PROG_MKDIR_P.
-+# Remove this macro when we can assume autoconf >= 2.60.
-+m4_ifdef([AC_PROG_MKDIR_P], [], [
-+ AC_DEFUN([AC_PROG_MKDIR_P],
-+ [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
-+ MKDIR_P='$(mkdir_p)'
-+ AC_SUBST([MKDIR_P])])])
-+
-+# AC_C_RESTRICT
-+# This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61,
-+# so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++
-+# works.
-+# This definition can be removed once autoconf >= 2.62 can be assumed.
-+AC_DEFUN([AC_C_RESTRICT],
-+[AC_CACHE_CHECK([for C/C++ restrict keyword], ac_cv_c_restrict,
-+ [ac_cv_c_restrict=no
-+ # The order here caters to the fact that C++ does not require restrict.
-+ for ac_kw in __restrict __restrict__ _Restrict restrict; do
-+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-+ [[typedef int * int_ptr;
-+ int foo (int_ptr $ac_kw ip) {
-+ return ip[0];
-+ }]],
-+ [[int s[1];
-+ int * $ac_kw t = s;
-+ t[0] = 0;
-+ return foo(t)]])],
-+ [ac_cv_c_restrict=$ac_kw])
-+ test "$ac_cv_c_restrict" != no && break
-+ done
-+ ])
-+ AH_VERBATIM([restrict],
-+[/* Define to the equivalent of the C99 'restrict' keyword, or to
-+ nothing if this is not supported. Do not define if restrict is
-+ supported directly. */
-+#undef restrict
-+/* Work around a bug in Sun C++: it does not support _Restrict, even
-+ though the corresponding Sun C compiler does, which causes
-+ "#define restrict _Restrict" in the previous line. Perhaps some future
-+ version of Sun C++ will work with _Restrict; if so, it'll probably
-+ define __RESTRICT, just as Sun C does. */
-+#if defined __SUNPRO_CC && !defined __RESTRICT
-+# define _Restrict
-+#endif])
-+ case $ac_cv_c_restrict in
-+ restrict) ;;
-+ no) AC_DEFINE([restrict], []) ;;
-+ *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;;
-+ esac
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/gnulib-comp.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/gnulib-comp.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/gnulib-comp.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/gnulib-comp.m4 2008-10-09 15:24:54.000000000 +0100
-@@ -0,0 +1,314 @@
-+# DO NOT EDIT! GENERATED AUTOMATICALLY!
-+# Copyright (C) 2002-2008 Free Software Foundation, Inc.
-+#
-+# This file is free software, distributed under the terms of the GNU
-+# General Public License. As a special exception to the GNU General
-+# Public License, this file may be distributed as part of a program
-+# that contains a configuration script generated by Autoconf, under
-+# the same distribution terms as the rest of that program.
-+#
-+# Generated by gnulib-tool.
-+#
-+# This file represents the compiled summary of the specification in
-+# gnulib-cache.m4. It lists the computed macro invocations that need
-+# to be invoked from configure.ac.
-+# In projects using CVS, this file can be treated like other built files.
-+
-+
-+# This macro should be invoked from ./configure.ac, in the section
-+# "Checks for programs", right after AC_PROG_CC, and certainly before
-+# any checks for libraries, header files, types and library functions.
-+AC_DEFUN([gl_EARLY],
-+[
-+ m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace
-+ m4_pattern_allow([^gl_ES$])dnl a valid locale name
-+ m4_pattern_allow([^gl_LIBOBJS$])dnl a variable
-+ m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable
-+ AC_REQUIRE([AC_PROG_RANLIB])
-+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-+])
-+
-+# This macro should be invoked from ./configure.ac, in the section
-+# "Check for header files, types and library functions".
-+AC_DEFUN([gl_INIT],
-+[
-+ AM_CONDITIONAL([GL_COND_LIBTOOL], [true])
-+ gl_cond_libtool=true
-+ m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ]))
-+ m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS]))
-+ m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES]))
-+ m4_pushdef([gl_LIBSOURCES_LIST], [])
-+ m4_pushdef([gl_LIBSOURCES_DIR], [])
-+ gl_COMMON
-+ gl_source_base='gnulib/lib'
-+ gl_FUNC_ALLOCA
-+ gl_HEADER_ARPA_INET
-+ AC_PROG_MKDIR_P
-+ AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-+ if test "$ac_cv_header_winsock2_h" = yes; then
-+ AC_LIBOBJ([winsock])
-+ fi
-+ gl_SYS_SOCKET_MODULE_INDICATOR([connect])
-+ gl_HEADER_ERRNO_H
-+ gl_FLOAT_H
-+ gl_GETADDRINFO
-+ AC_SUBST([LIBINTL])
-+ AC_SUBST([LTLIBINTL])
-+ gl_INET_NTOP
-+ gl_ARPA_INET_MODULE_INDICATOR([inet_ntop])
-+ AC_FUNC_MALLOC
-+ AC_DEFINE([GNULIB_MALLOC_GNU], 1, [Define to indicate the 'malloc' module.])
-+ gl_FUNC_MALLOC_POSIX
-+ gl_STDLIB_MODULE_INDICATOR([malloc-posix])
-+ gl_HEADER_NETINET_IN
-+ AC_PROG_MKDIR_P
-+ AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-+ if test "$ac_cv_header_winsock2_h" = yes; then
-+ AC_LIBOBJ([winsock])
-+ fi
-+ gl_SYS_SOCKET_MODULE_INDICATOR([recv])
-+ AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-+ if test "$ac_cv_header_winsock2_h" = yes; then
-+ AC_LIBOBJ([winsock])
-+ fi
-+ gl_SYS_SOCKET_MODULE_INDICATOR([send])
-+ gl_SIZE_MAX
-+ gl_FUNC_SNPRINTF
-+ gl_STDIO_MODULE_INDICATOR([snprintf])
-+ AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-+ if test "$ac_cv_header_winsock2_h" = yes; then
-+ AC_LIBOBJ([winsock])
-+ fi
-+ gl_SYS_SOCKET_MODULE_INDICATOR([socket])
-+ gl_TYPE_SOCKLEN_T
-+ AM_STDBOOL_H
-+ gl_STDINT_H
-+ gl_STDIO_H
-+ gl_STDLIB_H
-+ gl_HEADER_SYS_SOCKET
-+ AC_PROG_MKDIR_P
-+ gl_UNISTD_H
-+ gl_FUNC_VASNPRINTF
-+ gl_WCHAR_H
-+ gl_XSIZE
-+ m4_ifval(gl_LIBSOURCES_LIST, [
-+ m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ ||
-+ for gl_file in ]gl_LIBSOURCES_LIST[ ; do
-+ if test ! -r ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file ; then
-+ echo "missing file ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file" >&2
-+ exit 1
-+ fi
-+ done])dnl
-+ m4_if(m4_sysval, [0], [],
-+ [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])])
-+ ])
-+ m4_popdef([gl_LIBSOURCES_DIR])
-+ m4_popdef([gl_LIBSOURCES_LIST])
-+ m4_popdef([AC_LIBSOURCES])
-+ m4_popdef([AC_REPLACE_FUNCS])
-+ m4_popdef([AC_LIBOBJ])
-+ AC_CONFIG_COMMANDS_PRE([
-+ gl_libobjs=
-+ gl_ltlibobjs=
-+ if test -n "$gl_LIBOBJS"; then
-+ # Remove the extension.
-+ sed_drop_objext='s/\.o$//;s/\.obj$//'
-+ for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do
-+ gl_libobjs="$gl_libobjs $i.$ac_objext"
-+ gl_ltlibobjs="$gl_ltlibobjs $i.lo"
-+ done
-+ fi
-+ AC_SUBST([gl_LIBOBJS], [$gl_libobjs])
-+ AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs])
-+ ])
-+ gltests_libdeps=
-+ gltests_ltlibdeps=
-+ m4_pushdef([AC_LIBOBJ], m4_defn([gltests_LIBOBJ]))
-+ m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gltests_REPLACE_FUNCS]))
-+ m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES]))
-+ m4_pushdef([gltests_LIBSOURCES_LIST], [])
-+ m4_pushdef([gltests_LIBSOURCES_DIR], [])
-+ gl_COMMON
-+ gl_source_base='gnulib/tests'
-+ gt_TYPE_WCHAR_T
-+ gt_TYPE_WINT_T
-+ AC_CHECK_FUNCS([shutdown])
-+ abs_aux_dir=`cd "$ac_aux_dir"; pwd`
-+ AC_SUBST([abs_aux_dir])
-+ m4_ifval(gltests_LIBSOURCES_LIST, [
-+ m4_syscmd([test ! -d ]m4_defn([gltests_LIBSOURCES_DIR])[ ||
-+ for gl_file in ]gltests_LIBSOURCES_LIST[ ; do
-+ if test ! -r ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file ; then
-+ echo "missing file ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file" >&2
-+ exit 1
-+ fi
-+ done])dnl
-+ m4_if(m4_sysval, [0], [],
-+ [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])])
-+ ])
-+ m4_popdef([gltests_LIBSOURCES_DIR])
-+ m4_popdef([gltests_LIBSOURCES_LIST])
-+ m4_popdef([AC_LIBSOURCES])
-+ m4_popdef([AC_REPLACE_FUNCS])
-+ m4_popdef([AC_LIBOBJ])
-+ AC_CONFIG_COMMANDS_PRE([
-+ gltests_libobjs=
-+ gltests_ltlibobjs=
-+ if test -n "$gltests_LIBOBJS"; then
-+ # Remove the extension.
-+ sed_drop_objext='s/\.o$//;s/\.obj$//'
-+ for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do
-+ gltests_libobjs="$gltests_libobjs $i.$ac_objext"
-+ gltests_ltlibobjs="$gltests_ltlibobjs $i.lo"
-+ done
-+ fi
-+ AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs])
-+ AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs])
-+ ])
-+ LIBTESTS_LIBDEPS="$gltests_libdeps"
-+ AC_SUBST([LIBTESTS_LIBDEPS])
-+])
-+
-+# Like AC_LIBOBJ, except that the module name goes
-+# into gl_LIBOBJS instead of into LIBOBJS.
-+AC_DEFUN([gl_LIBOBJ], [
-+ AS_LITERAL_IF([$1], [gl_LIBSOURCES([$1.c])])dnl
-+ gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext"
-+])
-+
-+# Like AC_REPLACE_FUNCS, except that the module name goes
-+# into gl_LIBOBJS instead of into LIBOBJS.
-+AC_DEFUN([gl_REPLACE_FUNCS], [
-+ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl
-+ AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)])
-+])
-+
-+# Like AC_LIBSOURCES, except the directory where the source file is
-+# expected is derived from the gnulib-tool parameterization,
-+# and alloca is special cased (for the alloca-opt module).
-+# We could also entirely rely on EXTRA_lib..._SOURCES.
-+AC_DEFUN([gl_LIBSOURCES], [
-+ m4_foreach([_gl_NAME], [$1], [
-+ m4_if(_gl_NAME, [alloca.c], [], [
-+ m4_define([gl_LIBSOURCES_DIR], [gnulib/lib])
-+ m4_append([gl_LIBSOURCES_LIST], _gl_NAME, [ ])
-+ ])
-+ ])
-+])
-+
-+# Like AC_LIBOBJ, except that the module name goes
-+# into gltests_LIBOBJS instead of into LIBOBJS.
-+AC_DEFUN([gltests_LIBOBJ], [
-+ AS_LITERAL_IF([$1], [gltests_LIBSOURCES([$1.c])])dnl
-+ gltests_LIBOBJS="$gltests_LIBOBJS $1.$ac_objext"
-+])
-+
-+# Like AC_REPLACE_FUNCS, except that the module name goes
-+# into gltests_LIBOBJS instead of into LIBOBJS.
-+AC_DEFUN([gltests_REPLACE_FUNCS], [
-+ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl
-+ AC_CHECK_FUNCS([$1], , [gltests_LIBOBJ($ac_func)])
-+])
-+
-+# Like AC_LIBSOURCES, except the directory where the source file is
-+# expected is derived from the gnulib-tool parameterization,
-+# and alloca is special cased (for the alloca-opt module).
-+# We could also entirely rely on EXTRA_lib..._SOURCES.
-+AC_DEFUN([gltests_LIBSOURCES], [
-+ m4_foreach([_gl_NAME], [$1], [
-+ m4_if(_gl_NAME, [alloca.c], [], [
-+ m4_define([gltests_LIBSOURCES_DIR], [gnulib/tests])
-+ m4_append([gltests_LIBSOURCES_LIST], _gl_NAME, [ ])
-+ ])
-+ ])
-+])
-+
-+# This macro records the list of files which have been installed by
-+# gnulib-tool and may be removed by future gnulib-tool invocations.
-+AC_DEFUN([gl_FILE_LIST], [
-+ build-aux/link-warning.h
-+ build-aux/vc-list-files
-+ lib/alloca.in.h
-+ lib/arpa_inet.in.h
-+ lib/asnprintf.c
-+ lib/dummy.c
-+ lib/errno.in.h
-+ lib/float+.h
-+ lib/float.in.h
-+ lib/gai_strerror.c
-+ lib/getaddrinfo.c
-+ lib/getaddrinfo.h
-+ lib/gettext.h
-+ lib/inet_ntop.c
-+ lib/malloc.c
-+ lib/netinet_in.in.h
-+ lib/printf-args.c
-+ lib/printf-args.h
-+ lib/printf-parse.c
-+ lib/printf-parse.h
-+ lib/size_max.h
-+ lib/snprintf.c
-+ lib/stdbool.in.h
-+ lib/stdint.in.h
-+ lib/stdio-write.c
-+ lib/stdio.in.h
-+ lib/stdlib.in.h
-+ lib/sys_socket.in.h
-+ lib/unistd.in.h
-+ lib/vasnprintf.c
-+ lib/vasnprintf.h
-+ lib/wchar.in.h
-+ lib/winsock.c
-+ lib/xsize.h
-+ m4/alloca.m4
-+ m4/arpa_inet_h.m4
-+ m4/errno_h.m4
-+ m4/extensions.m4
-+ m4/float_h.m4
-+ m4/getaddrinfo.m4
-+ m4/gnulib-common.m4
-+ m4/include_next.m4
-+ m4/inet_ntop.m4
-+ m4/intmax_t.m4
-+ m4/inttypes_h.m4
-+ m4/longlong.m4
-+ m4/malloc.m4
-+ m4/netinet_in_h.m4
-+ m4/onceonly.m4
-+ m4/printf.m4
-+ m4/size_max.m4
-+ m4/snprintf.m4
-+ m4/socklen.m4
-+ m4/sockpfaf.m4
-+ m4/stdbool.m4
-+ m4/stdint.m4
-+ m4/stdint_h.m4
-+ m4/stdio_h.m4
-+ m4/stdlib_h.m4
-+ m4/sys_socket_h.m4
-+ m4/unistd_h.m4
-+ m4/vasnprintf.m4
-+ m4/wchar.m4
-+ m4/wchar_t.m4
-+ m4/wint_t.m4
-+ m4/xsize.m4
-+ tests/test-alloca-opt.c
-+ tests/test-arpa_inet.c
-+ tests/test-errno.c
-+ tests/test-getaddrinfo.c
-+ tests/test-netinet_in.c
-+ tests/test-snprintf.c
-+ tests/test-stdbool.c
-+ tests/test-stdint.c
-+ tests/test-stdio.c
-+ tests/test-stdlib.c
-+ tests/test-sys_socket.c
-+ tests/test-unistd.c
-+ tests/test-vasnprintf.c
-+ tests/test-vc-list-files-cvs.sh
-+ tests/test-vc-list-files-git.sh
-+ tests/test-wchar.c
-+ tests=lib/dummy.c
-+ tests=lib/intprops.h
-+ tests=lib/verify.h
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/gnulib-tool.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/gnulib-tool.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/gnulib-tool.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/gnulib-tool.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,57 @@
-+# gnulib-tool.m4 serial 2
-+dnl Copyright (C) 2004-2005 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl The following macros need not be invoked explicitly.
-+dnl Invoking them does nothing except to declare default arguments
-+dnl for "gnulib-tool --import".
-+
-+dnl Usage: gl_LOCAL_DIR([DIR])
-+AC_DEFUN([gl_LOCAL_DIR], [])
-+
-+dnl Usage: gl_MODULES([module1 module2 ...])
-+AC_DEFUN([gl_MODULES], [])
-+
-+dnl Usage: gl_AVOID([module1 module2 ...])
-+AC_DEFUN([gl_AVOID], [])
-+
-+dnl Usage: gl_SOURCE_BASE([DIR])
-+AC_DEFUN([gl_SOURCE_BASE], [])
-+
-+dnl Usage: gl_M4_BASE([DIR])
-+AC_DEFUN([gl_M4_BASE], [])
-+
-+dnl Usage: gl_PO_BASE([DIR])
-+AC_DEFUN([gl_PO_BASE], [])
-+
-+dnl Usage: gl_DOC_BASE([DIR])
-+AC_DEFUN([gl_DOC_BASE], [])
-+
-+dnl Usage: gl_TESTS_BASE([DIR])
-+AC_DEFUN([gl_TESTS_BASE], [])
-+
-+dnl Usage: gl_WITH_TESTS
-+AC_DEFUN([gl_WITH_TESTS], [])
-+
-+dnl Usage: gl_LIB([LIBNAME])
-+AC_DEFUN([gl_LIB], [])
-+
-+dnl Usage: gl_LGPL or gl_LGPL([VERSION])
-+AC_DEFUN([gl_LGPL], [])
-+
-+dnl Usage: gl_MAKEFILE_NAME([FILENAME])
-+AC_DEFUN([gl_MAKEFILE_NAME], [])
-+
-+dnl Usage: gl_LIBTOOL
-+AC_DEFUN([gl_LIBTOOL], [])
-+
-+dnl Usage: gl_MACRO_PREFIX([PREFIX])
-+AC_DEFUN([gl_MACRO_PREFIX], [])
-+
-+dnl Usage: gl_PO_DOMAIN([DOMAIN])
-+AC_DEFUN([gl_PO_DOMAIN], [])
-+
-+dnl Usage: gl_VC_FILES([BOOLEAN])
-+AC_DEFUN([gl_VC_FILES], [])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/include_next.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/include_next.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/include_next.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/include_next.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,128 @@
-+# include_next.m4 serial 8
-+dnl Copyright (C) 2006-2008 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl From Paul Eggert and Derek Price.
-+
-+dnl Sets INCLUDE_NEXT and PRAGMA_SYSTEM_HEADER.
-+dnl
-+dnl INCLUDE_NEXT expands to 'include_next' if the compiler supports it, or to
-+dnl 'include' otherwise.
-+dnl
-+dnl PRAGMA_SYSTEM_HEADER can be used in files that contain #include_next,
-+dnl so as to avoid GCC warnings when the gcc option -pedantic is used.
-+dnl '#pragma GCC system_header' has the same effect as if the file was found
-+dnl through the include search path specified with '-isystem' options (as
-+dnl opposed to the search path specified with '-I' options). Namely, gcc
-+dnl does not warn about some things, and on some systems (Solaris and Interix)
-+dnl __STDC__ evaluates to 0 instead of to 1. The latter is an undesired side
-+dnl effect; we are therefore careful to use 'defined __STDC__' or '1' instead
-+dnl of plain '__STDC__'.
-+
-+AC_DEFUN([gl_INCLUDE_NEXT],
-+[
-+ AC_LANG_PREPROC_REQUIRE()
-+ AC_CACHE_CHECK([whether the preprocessor supports include_next],
-+ [gl_cv_have_include_next],
-+ [rm -rf conftestd1 conftestd2
-+ mkdir conftestd1 conftestd2
-+ dnl The include of <stdio.h> is because IBM C 9.0 on AIX 6.1 supports
-+ dnl include_next when used as first preprocessor directive in a file,
-+ dnl but not when preceded by another include directive.
-+ cat <<EOF > conftestd1/conftest.h
-+#define DEFINED_IN_CONFTESTD1
-+#include <stdio.h>
-+#include_next <conftest.h>
-+#ifdef DEFINED_IN_CONFTESTD2
-+int foo;
-+#else
-+#error "include_next doesn't work"
-+#endif
-+EOF
-+ cat <<EOF > conftestd2/conftest.h
-+#ifndef DEFINED_IN_CONFTESTD1
-+#error "include_next test doesn't work"
-+#endif
-+#define DEFINED_IN_CONFTESTD2
-+EOF
-+ save_CPPFLAGS="$CPPFLAGS"
-+ CPPFLAGS="$CPPFLAGS -Iconftestd1 -Iconftestd2"
-+ AC_COMPILE_IFELSE([#include <conftest.h>],
-+ [gl_cv_have_include_next=yes],
-+ [gl_cv_have_include_next=no])
-+ CPPFLAGS="$save_CPPFLAGS"
-+ rm -rf conftestd1 conftestd2
-+ ])
-+ PRAGMA_SYSTEM_HEADER=
-+ if test $gl_cv_have_include_next = yes; then
-+ INCLUDE_NEXT=include_next
-+ if test -n "$GCC"; then
-+ PRAGMA_SYSTEM_HEADER='#pragma GCC system_header'
-+ fi
-+ else
-+ INCLUDE_NEXT=include
-+ fi
-+ AC_SUBST([INCLUDE_NEXT])
-+ AC_SUBST([PRAGMA_SYSTEM_HEADER])
-+])
-+
-+# gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...)
-+# ------------------------------------------
-+# For each arg foo.h, if #include_next works, define NEXT_FOO_H to be
-+# '<foo.h>'; otherwise define it to be
-+# '"///usr/include/foo.h"', or whatever other absolute file name is suitable.
-+# That way, a header file with the following line:
-+# #@INCLUDE_NEXT@ @NEXT_FOO_H@
-+# behaves (after sed substitution) as if it contained
-+# #include_next <foo.h>
-+# even if the compiler does not support include_next.
-+# The three "///" are to pacify Sun C 5.8, which otherwise would say
-+# "warning: #include of /usr/include/... may be non-portable".
-+# Use `""', not `<>', so that the /// cannot be confused with a C99 comment.
-+# Note: This macro assumes that the header file is not empty after
-+# preprocessing, i.e. it does not only define preprocessor macros but also
-+# provides some type/enum definitions or function/variable declarations.
-+AC_DEFUN([gl_CHECK_NEXT_HEADERS],
-+[
-+ AC_REQUIRE([gl_INCLUDE_NEXT])
-+ AC_CHECK_HEADERS_ONCE([$1])
-+
-+ m4_foreach_w([gl_HEADER_NAME], [$1],
-+ [AS_VAR_PUSHDEF([gl_next_header],
-+ [gl_cv_next_]m4_quote(m4_defn([gl_HEADER_NAME])))
-+ if test $gl_cv_have_include_next = yes; then
-+ AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
-+ else
-+ AC_CACHE_CHECK(
-+ [absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>],
-+ m4_quote(m4_defn([gl_next_header])),
-+ [AS_VAR_PUSHDEF([gl_header_exists],
-+ [ac_cv_header_]m4_quote(m4_defn([gl_HEADER_NAME])))
-+ if test AS_VAR_GET(gl_header_exists) = yes; then
-+ AC_LANG_CONFTEST(
-+ [AC_LANG_SOURCE(
-+ [[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]]
-+ )])
-+ dnl eval is necessary to expand ac_cpp.
-+ dnl Ultrix and Pyramid sh refuse to redirect output of eval,
-+ dnl so use subshell.
-+ AS_VAR_SET([gl_next_header],
-+ ['"'`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
-+ sed -n '\#/]m4_quote(m4_defn([gl_HEADER_NAME]))[#{
-+ s#.*"\(.*/]m4_quote(m4_defn([gl_HEADER_NAME]))[\)".*#\1#
-+ s#^/[^/]#//&#
-+ p
-+ q
-+ }'`'"'])
-+ else
-+ AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
-+ fi
-+ AS_VAR_POPDEF([gl_header_exists])])
-+ fi
-+ AC_SUBST(
-+ AS_TR_CPP([NEXT_]m4_quote(m4_defn([gl_HEADER_NAME]))),
-+ [AS_VAR_GET([gl_next_header])])
-+ AS_VAR_POPDEF([gl_next_header])])
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/inet_ntop.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/inet_ntop.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/inet_ntop.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/inet_ntop.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,26 @@
-+# inet_ntop.m4 serial 7
-+dnl Copyright (C) 2005, 2006, 2008 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+AC_DEFUN([gl_INET_NTOP],
-+[
-+ dnl Persuade Solaris <arpa/inet.h> to declare inet_ntop.
-+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-+
-+ gl_REPLACE_ARPA_INET_H
-+
-+ AC_REPLACE_FUNCS(inet_ntop)
-+ gl_PREREQ_INET_NTOP
-+])
-+
-+# Prerequisites of lib/inet_ntop.c.
-+AC_DEFUN([gl_PREREQ_INET_NTOP], [
-+ AC_CHECK_DECLS([inet_ntop],,,[#include <arpa/inet.h>])
-+ if test $ac_cv_have_decl_inet_ntop = no; then
-+ HAVE_DECL_INET_NTOP=0
-+ fi
-+ AC_REQUIRE([gl_SOCKET_FAMILIES])
-+ AC_REQUIRE([AC_C_RESTRICT])
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/intmax_t.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/intmax_t.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/intmax_t.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/intmax_t.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,61 @@
-+# intmax_t.m4 serial 6
-+dnl Copyright (C) 1997-2004, 2006-2007 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl From Paul Eggert.
-+
-+AC_PREREQ(2.13)
-+
-+# Define intmax_t to 'long' or 'long long'
-+# if it is not already defined in <stdint.h> or <inttypes.h>.
-+
-+AC_DEFUN([gl_AC_TYPE_INTMAX_T],
-+[
-+ dnl For simplicity, we assume that a header file defines 'intmax_t' if and
-+ dnl only if it defines 'uintmax_t'.
-+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
-+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
-+ if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then
-+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
-+ test $ac_cv_type_long_long_int = yes \
-+ && ac_type='long long' \
-+ || ac_type='long'
-+ AC_DEFINE_UNQUOTED(intmax_t, $ac_type,
-+ [Define to long or long long if <inttypes.h> and <stdint.h> don't define.])
-+ else
-+ AC_DEFINE(HAVE_INTMAX_T, 1,
-+ [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
-+ fi
-+])
-+
-+dnl An alternative would be to explicitly test for 'intmax_t'.
-+
-+AC_DEFUN([gt_AC_TYPE_INTMAX_T],
-+[
-+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
-+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
-+ AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t,
-+ [AC_TRY_COMPILE([
-+#include <stddef.h>
-+#include <stdlib.h>
-+#if HAVE_STDINT_H_WITH_UINTMAX
-+#include <stdint.h>
-+#endif
-+#if HAVE_INTTYPES_H_WITH_UINTMAX
-+#include <inttypes.h>
-+#endif
-+], [intmax_t x = -1; return !x;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)])
-+ if test $gt_cv_c_intmax_t = yes; then
-+ AC_DEFINE(HAVE_INTMAX_T, 1,
-+ [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
-+ else
-+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
-+ test $ac_cv_type_long_long_int = yes \
-+ && ac_type='long long' \
-+ || ac_type='long'
-+ AC_DEFINE_UNQUOTED(intmax_t, $ac_type,
-+ [Define to long or long long if <stdint.h> and <inttypes.h> don't define.])
-+ fi
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/inttypes_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/inttypes_h.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/inttypes_h.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/inttypes_h.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,26 @@
-+# inttypes_h.m4 serial 7
-+dnl Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl From Paul Eggert.
-+
-+# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
-+# doesn't clash with <sys/types.h>, and declares uintmax_t.
-+
-+AC_DEFUN([gl_AC_HEADER_INTTYPES_H],
-+[
-+ AC_CACHE_CHECK([for inttypes.h], gl_cv_header_inttypes_h,
-+ [AC_TRY_COMPILE(
-+ [#include <sys/types.h>
-+#include <inttypes.h>],
-+ [uintmax_t i = (uintmax_t) -1; return !i;],
-+ gl_cv_header_inttypes_h=yes,
-+ gl_cv_header_inttypes_h=no)])
-+ if test $gl_cv_header_inttypes_h = yes; then
-+ AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
-+ [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
-+ and declares uintmax_t. ])
-+ fi
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/longlong.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/longlong.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/longlong.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/longlong.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,106 @@
-+# longlong.m4 serial 13
-+dnl Copyright (C) 1999-2007 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl From Paul Eggert.
-+
-+# Define HAVE_LONG_LONG_INT if 'long long int' works.
-+# This fixes a bug in Autoconf 2.61, but can be removed once we
-+# assume 2.62 everywhere.
-+
-+# Note: If the type 'long long int' exists but is only 32 bits large
-+# (as on some very old compilers), HAVE_LONG_LONG_INT will not be
-+# defined. In this case you can treat 'long long int' like 'long int'.
-+
-+AC_DEFUN([AC_TYPE_LONG_LONG_INT],
-+[
-+ AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
-+ [AC_LINK_IFELSE(
-+ [_AC_TYPE_LONG_LONG_SNIPPET],
-+ [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
-+ dnl If cross compiling, assume the bug isn't important, since
-+ dnl nobody cross compiles for this platform as far as we know.
-+ AC_RUN_IFELSE(
-+ [AC_LANG_PROGRAM(
-+ [[@%:@include <limits.h>
-+ @%:@ifndef LLONG_MAX
-+ @%:@ define HALF \
-+ (1LL << (sizeof (long long int) * CHAR_BIT - 2))
-+ @%:@ define LLONG_MAX (HALF - 1 + HALF)
-+ @%:@endif]],
-+ [[long long int n = 1;
-+ int i;
-+ for (i = 0; ; i++)
-+ {
-+ long long int m = n << i;
-+ if (m >> i != n)
-+ return 1;
-+ if (LLONG_MAX / 2 < m)
-+ break;
-+ }
-+ return 0;]])],
-+ [ac_cv_type_long_long_int=yes],
-+ [ac_cv_type_long_long_int=no],
-+ [ac_cv_type_long_long_int=yes])],
-+ [ac_cv_type_long_long_int=no])])
-+ if test $ac_cv_type_long_long_int = yes; then
-+ AC_DEFINE([HAVE_LONG_LONG_INT], 1,
-+ [Define to 1 if the system has the type `long long int'.])
-+ fi
-+])
-+
-+# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
-+# This fixes a bug in Autoconf 2.61, but can be removed once we
-+# assume 2.62 everywhere.
-+
-+# Note: If the type 'unsigned long long int' exists but is only 32 bits
-+# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
-+# will not be defined. In this case you can treat 'unsigned long long int'
-+# like 'unsigned long int'.
-+
-+AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
-+[
-+ AC_CACHE_CHECK([for unsigned long long int],
-+ [ac_cv_type_unsigned_long_long_int],
-+ [AC_LINK_IFELSE(
-+ [_AC_TYPE_LONG_LONG_SNIPPET],
-+ [ac_cv_type_unsigned_long_long_int=yes],
-+ [ac_cv_type_unsigned_long_long_int=no])])
-+ if test $ac_cv_type_unsigned_long_long_int = yes; then
-+ AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1,
-+ [Define to 1 if the system has the type `unsigned long long int'.])
-+ fi
-+])
-+
-+# Expands to a C program that can be used to test for simultaneous support
-+# of 'long long' and 'unsigned long long'. We don't want to say that
-+# 'long long' is available if 'unsigned long long' is not, or vice versa,
-+# because too many programs rely on the symmetry between signed and unsigned
-+# integer types (excluding 'bool').
-+AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET],
-+[
-+ AC_LANG_PROGRAM(
-+ [[/* For now, do not test the preprocessor; as of 2007 there are too many
-+ implementations with broken preprocessors. Perhaps this can
-+ be revisited in 2012. In the meantime, code should not expect
-+ #if to work with literals wider than 32 bits. */
-+ /* Test literals. */
-+ long long int ll = 9223372036854775807ll;
-+ long long int nll = -9223372036854775807LL;
-+ unsigned long long int ull = 18446744073709551615ULL;
-+ /* Test constant expressions. */
-+ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
-+ ? 1 : -1)];
-+ typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
-+ ? 1 : -1)];
-+ int i = 63;]],
-+ [[/* Test availability of runtime routines for shift and division. */
-+ long long int llmax = 9223372036854775807ll;
-+ unsigned long long int ullmax = 18446744073709551615ull;
-+ return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
-+ | (llmax / ll) | (llmax % ll)
-+ | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
-+ | (ullmax / ull) | (ullmax % ull));]])
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/malloc.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/malloc.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/malloc.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/malloc.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,41 @@
-+# malloc.m4 serial 8
-+dnl Copyright (C) 2007 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+# gl_FUNC_MALLOC_POSIX
-+# --------------------
-+# Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it
-+# fails), and replace malloc if it is not.
-+AC_DEFUN([gl_FUNC_MALLOC_POSIX],
-+[
-+ AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
-+ if test $gl_cv_func_malloc_posix = yes; then
-+ HAVE_MALLOC_POSIX=1
-+ AC_DEFINE([HAVE_MALLOC_POSIX], 1,
-+ [Define if the 'malloc' function is POSIX compliant.])
-+ else
-+ AC_LIBOBJ([malloc])
-+ HAVE_MALLOC_POSIX=0
-+ fi
-+ AC_SUBST([HAVE_MALLOC_POSIX])
-+])
-+
-+# Test whether malloc, realloc, calloc are POSIX compliant,
-+# Set gl_cv_func_malloc_posix to yes or no accordingly.
-+AC_DEFUN([gl_CHECK_MALLOC_POSIX],
-+[
-+ AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant],
-+ [gl_cv_func_malloc_posix],
-+ [
-+ dnl It is too dangerous to try to allocate a large amount of memory:
-+ dnl some systems go to their knees when you do that. So assume that
-+ dnl all Unix implementations of the function are POSIX compliant.
-+ AC_TRY_COMPILE([],
-+ [#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-+ choke me
-+ #endif
-+ ], [gl_cv_func_malloc_posix=yes], [gl_cv_func_malloc_posix=no])
-+ ])
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/netinet_in_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/netinet_in_h.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/netinet_in_h.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/netinet_in_h.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,30 @@
-+# netinet_in_h.m4 serial 4
-+dnl Copyright (C) 2006-2008 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+AC_DEFUN([gl_HEADER_NETINET_IN],
-+[
-+ AC_CACHE_CHECK([whether <netinet/in.h> is self-contained],
-+ [gl_cv_header_netinet_in_h_selfcontained],
-+ [
-+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <netinet/in.h>]], [[]])],
-+ [gl_cv_header_netinet_in_h_selfcontained=yes],
-+ [gl_cv_header_netinet_in_h_selfcontained=no])
-+ ])
-+ if test $gl_cv_header_netinet_in_h_selfcontained = yes; then
-+ NETINET_IN_H=''
-+ else
-+ NETINET_IN_H='netinet/in.h'
-+ AC_CHECK_HEADERS([netinet/in.h])
-+ gl_CHECK_NEXT_HEADERS([netinet/in.h])
-+ if test $ac_cv_header_netinet_in_h = yes; then
-+ HAVE_NETINET_IN_H=1
-+ else
-+ HAVE_NETINET_IN_H=0
-+ fi
-+ AC_SUBST([HAVE_NETINET_IN_H])
-+ fi
-+ AC_SUBST([NETINET_IN_H])
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/onceonly.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/onceonly.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/onceonly.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/onceonly.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,90 @@
-+# onceonly.m4 serial 6
-+dnl Copyright (C) 2002-2003, 2005-2006, 2008 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl This file defines some "once only" variants of standard autoconf macros.
-+dnl AC_CHECK_HEADERS_ONCE like AC_CHECK_HEADERS
-+dnl AC_CHECK_FUNCS_ONCE like AC_CHECK_FUNCS
-+dnl AC_CHECK_DECLS_ONCE like AC_CHECK_DECLS
-+dnl AC_REQUIRE([AC_FUNC_STRCOLL]) like AC_FUNC_STRCOLL
-+dnl The advantage is that the check for each of the headers/functions/decls
-+dnl will be put only once into the 'configure' file. It keeps the size of
-+dnl the 'configure' file down, and avoids redundant output when 'configure'
-+dnl is run.
-+dnl The drawback is that the checks cannot be conditionalized. If you write
-+dnl if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi
-+dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to
-+dnl empty, and the check will be inserted before the body of the AC_DEFUNed
-+dnl function.
-+
-+dnl The original code implemented AC_CHECK_HEADERS_ONCE and AC_CHECK_FUNCS_ONCE
-+dnl in terms of AC_DEFUN and AC_REQUIRE. This implementation uses diversions to
-+dnl named sections DEFAULTS and INIT_PREPARE in order to check all requested
-+dnl headers at once, thus reducing the size of 'configure'. It is known to work
-+dnl with autoconf 2.57..2.62 at least . The size reduction is ca. 9%.
-+
-+dnl Autoconf version 2.59 plus gnulib is required; this file is not needed
-+dnl with Autoconf 2.60 or greater. But note that autoconf's implementation of
-+dnl AC_CHECK_DECLS_ONCE expects a comma-separated list of symbols as first
-+dnl argument!
-+AC_PREREQ([2.59])
-+
-+# AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of
-+# AC_CHECK_HEADERS(HEADER1 HEADER2 ...).
-+AC_DEFUN([AC_CHECK_HEADERS_ONCE], [
-+ :
-+ m4_foreach_w([gl_HEADER_NAME], [$1], [
-+ AC_DEFUN([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME,
-+ [./-], [___])), [
-+ m4_divert_text([INIT_PREPARE],
-+ [gl_header_list="$gl_header_list gl_HEADER_NAME"])
-+ gl_HEADERS_EXPANSION
-+ AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_HEADER_NAME])),
-+ [Define to 1 if you have the <]m4_defn([gl_HEADER_NAME])[> header file.])
-+ ])
-+ AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME,
-+ [./-], [___])))
-+ ])
-+])
-+m4_define([gl_HEADERS_EXPANSION], [
-+ m4_divert_text([DEFAULTS], [gl_header_list=])
-+ AC_CHECK_HEADERS([$gl_header_list])
-+ m4_define([gl_HEADERS_EXPANSION], [])
-+])
-+
-+# AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of
-+# AC_CHECK_FUNCS(FUNC1 FUNC2 ...).
-+AC_DEFUN([AC_CHECK_FUNCS_ONCE], [
-+ :
-+ m4_foreach_w([gl_FUNC_NAME], [$1], [
-+ AC_DEFUN([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]), [
-+ m4_divert_text([INIT_PREPARE],
-+ [gl_func_list="$gl_func_list gl_FUNC_NAME"])
-+ gl_FUNCS_EXPANSION
-+ AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_FUNC_NAME])),
-+ [Define to 1 if you have the `]m4_defn([gl_FUNC_NAME])[' function.])
-+ ])
-+ AC_REQUIRE([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]))
-+ ])
-+])
-+m4_define([gl_FUNCS_EXPANSION], [
-+ m4_divert_text([DEFAULTS], [gl_func_list=])
-+ AC_CHECK_FUNCS([$gl_func_list])
-+ m4_define([gl_FUNCS_EXPANSION], [])
-+])
-+
-+# AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of
-+# AC_CHECK_DECLS(DECL1, DECL2, ...).
-+AC_DEFUN([AC_CHECK_DECLS_ONCE], [
-+ :
-+ m4_foreach_w([gl_DECL_NAME], [$1], [
-+ AC_DEFUN([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]), [
-+ AC_CHECK_DECLS(m4_defn([gl_DECL_NAME]))
-+ ])
-+ AC_REQUIRE([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]))
-+ ])
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/printf.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/printf.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/printf.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/printf.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,1309 @@
-+# printf.m4 serial 23
-+dnl Copyright (C) 2003, 2007-2008 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl Test whether the *printf family of functions supports the 'j', 'z', 't',
-+dnl 'L' size specifiers. (ISO C99, POSIX:2001)
-+dnl Result is gl_cv_func_printf_sizes_c99.
-+
-+AC_DEFUN([gl_PRINTF_SIZES_C99],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
-+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether printf supports size specifiers as in C99],
-+ [gl_cv_func_printf_sizes_c99],
-+ [
-+ AC_TRY_RUN([
-+#include <stddef.h>
-+#include <stdio.h>
-+#include <string.h>
-+#include <sys/types.h>
-+#if HAVE_STDINT_H_WITH_UINTMAX
-+# include <stdint.h>
-+#endif
-+#if HAVE_INTTYPES_H_WITH_UINTMAX
-+# include <inttypes.h>
-+#endif
-+static char buf[100];
-+int main ()
-+{
-+#if HAVE_STDINT_H_WITH_UINTMAX || HAVE_INTTYPES_H_WITH_UINTMAX
-+ buf[0] = '\0';
-+ if (sprintf (buf, "%ju %d", (uintmax_t) 12345671, 33, 44, 55) < 0
-+ || strcmp (buf, "12345671 33") != 0)
-+ return 1;
-+#endif
-+ buf[0] = '\0';
-+ if (sprintf (buf, "%zu %d", (size_t) 12345672, 33, 44, 55) < 0
-+ || strcmp (buf, "12345672 33") != 0)
-+ return 1;
-+ buf[0] = '\0';
-+ if (sprintf (buf, "%tu %d", (ptrdiff_t) 12345673, 33, 44, 55) < 0
-+ || strcmp (buf, "12345673 33") != 0)
-+ return 1;
-+ buf[0] = '\0';
-+ if (sprintf (buf, "%Lg %d", (long double) 1.5, 33, 44, 55) < 0
-+ || strcmp (buf, "1.5 33") != 0)
-+ return 1;
-+ return 0;
-+}], [gl_cv_func_printf_sizes_c99=yes], [gl_cv_func_printf_sizes_c99=no],
-+ [
-+changequote(,)dnl
-+ case "$host_os" in
-+ # Guess yes on glibc systems.
-+ *-gnu*) gl_cv_func_printf_sizes_c99="guessing yes";;
-+ # Guess yes on FreeBSD >= 5.
-+ freebsd[1-4]*) gl_cv_func_printf_sizes_c99="guessing no";;
-+ freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
-+ # Guess yes on MacOS X >= 10.3.
-+ darwin[1-6].*) gl_cv_func_printf_sizes_c99="guessing no";;
-+ darwin*) gl_cv_func_printf_sizes_c99="guessing yes";;
-+ # Guess yes on OpenBSD >= 3.9.
-+ openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
-+ gl_cv_func_printf_sizes_c99="guessing no";;
-+ openbsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
-+ # Guess yes on Solaris >= 2.10.
-+ solaris2.[0-9]*) gl_cv_func_printf_sizes_c99="guessing no";;
-+ solaris*) gl_cv_func_printf_sizes_c99="guessing yes";;
-+ # Guess yes on NetBSD >= 3.
-+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-+ gl_cv_func_printf_sizes_c99="guessing no";;
-+ netbsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
-+ # If we don't know, assume the worst.
-+ *) gl_cv_func_printf_sizes_c99="guessing no";;
-+ esac
-+changequote([,])dnl
-+ ])
-+ ])
-+])
-+
-+dnl Test whether the *printf family of functions supports 'long double'
-+dnl arguments together with the 'L' size specifier. (ISO C99, POSIX:2001)
-+dnl Result is gl_cv_func_printf_long_double.
-+
-+AC_DEFUN([gl_PRINTF_LONG_DOUBLE],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether printf supports 'long double' arguments],
-+ [gl_cv_func_printf_long_double],
-+ [
-+ AC_TRY_RUN([
-+#include <stdio.h>
-+#include <string.h>
-+static char buf[10000];
-+int main ()
-+{
-+ buf[0] = '\0';
-+ if (sprintf (buf, "%Lf %d", 1.75L, 33, 44, 55) < 0
-+ || strcmp (buf, "1.750000 33") != 0)
-+ return 1;
-+ buf[0] = '\0';
-+ if (sprintf (buf, "%Le %d", 1.75L, 33, 44, 55) < 0
-+ || strcmp (buf, "1.750000e+00 33") != 0)
-+ return 1;
-+ buf[0] = '\0';
-+ if (sprintf (buf, "%Lg %d", 1.75L, 33, 44, 55) < 0
-+ || strcmp (buf, "1.75 33") != 0)
-+ return 1;
-+ return 0;
-+}], [gl_cv_func_printf_long_double=yes], [gl_cv_func_printf_long_double=no],
-+ [
-+changequote(,)dnl
-+ case "$host_os" in
-+ beos*) gl_cv_func_printf_long_double="guessing no";;
-+ mingw* | pw*) gl_cv_func_printf_long_double="guessing no";;
-+ *) gl_cv_func_printf_long_double="guessing yes";;
-+ esac
-+changequote([,])dnl
-+ ])
-+ ])
-+])
-+
-+dnl Test whether the *printf family of functions supports infinite and NaN
-+dnl 'double' arguments in the %f, %e, %g directives. (ISO C99, POSIX:2001)
-+dnl Result is gl_cv_func_printf_infinite.
-+
-+AC_DEFUN([gl_PRINTF_INFINITE],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether printf supports infinite 'double' arguments],
-+ [gl_cv_func_printf_infinite],
-+ [
-+ AC_TRY_RUN([
-+#include <stdio.h>
-+#include <string.h>
-+static int
-+strisnan (const char *string, size_t start_index, size_t end_index)
-+{
-+ if (start_index < end_index)
-+ {
-+ if (string[start_index] == '-')
-+ start_index++;
-+ if (start_index + 3 <= end_index
-+ && memcmp (string + start_index, "nan", 3) == 0)
-+ {
-+ start_index += 3;
-+ if (start_index == end_index
-+ || (string[start_index] == '(' && string[end_index - 1] == ')'))
-+ return 1;
-+ }
-+ }
-+ return 0;
-+}
-+static char buf[10000];
-+static double zero = 0.0;
-+int main ()
-+{
-+ if (sprintf (buf, "%f", 1.0 / 0.0) < 0
-+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-+ return 1;
-+ if (sprintf (buf, "%f", -1.0 / 0.0) < 0
-+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-+ return 1;
-+ if (sprintf (buf, "%f", zero / zero) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%e", 1.0 / 0.0) < 0
-+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-+ return 1;
-+ if (sprintf (buf, "%e", -1.0 / 0.0) < 0
-+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-+ return 1;
-+ if (sprintf (buf, "%e", zero / zero) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%g", 1.0 / 0.0) < 0
-+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-+ return 1;
-+ if (sprintf (buf, "%g", -1.0 / 0.0) < 0
-+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-+ return 1;
-+ if (sprintf (buf, "%g", zero / zero) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ return 0;
-+}], [gl_cv_func_printf_infinite=yes], [gl_cv_func_printf_infinite=no],
-+ [
-+changequote(,)dnl
-+ case "$host_os" in
-+ # Guess yes on glibc systems.
-+ *-gnu*) gl_cv_func_printf_infinite="guessing yes";;
-+ # Guess yes on FreeBSD >= 6.
-+ freebsd[1-5]*) gl_cv_func_printf_infinite="guessing no";;
-+ freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
-+ # Guess yes on MacOS X >= 10.3.
-+ darwin[1-6].*) gl_cv_func_printf_infinite="guessing no";;
-+ darwin*) gl_cv_func_printf_infinite="guessing yes";;
-+ # Guess yes on HP-UX >= 11.
-+ hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite="guessing no";;
-+ hpux*) gl_cv_func_printf_infinite="guessing yes";;
-+ # Guess yes on NetBSD >= 3.
-+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-+ gl_cv_func_printf_infinite="guessing no";;
-+ netbsd*) gl_cv_func_printf_infinite="guessing yes";;
-+ # Guess yes on BeOS.
-+ beos*) gl_cv_func_printf_infinite="guessing yes";;
-+ # If we don't know, assume the worst.
-+ *) gl_cv_func_printf_infinite="guessing no";;
-+ esac
-+changequote([,])dnl
-+ ])
-+ ])
-+])
-+
-+dnl Test whether the *printf family of functions supports infinite and NaN
-+dnl 'long double' arguments in the %f, %e, %g directives. (ISO C99, POSIX:2001)
-+dnl Result is gl_cv_func_printf_infinite_long_double.
-+
-+AC_DEFUN([gl_PRINTF_INFINITE_LONG_DOUBLE],
-+[
-+ AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_C_BIGENDIAN])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ dnl The user can set or unset the variable gl_printf_safe to indicate
-+ dnl that he wishes a safe handling of non-IEEE-754 'long double' values.
-+ if test -n "$gl_printf_safe"; then
-+ AC_DEFINE([CHECK_PRINTF_SAFE], 1,
-+ [Define if you wish *printf() functions that have a safe handling of
-+ non-IEEE-754 'long double' values.])
-+ fi
-+ case "$gl_cv_func_printf_long_double" in
-+ *yes)
-+ AC_CACHE_CHECK([whether printf supports infinite 'long double' arguments],
-+ [gl_cv_func_printf_infinite_long_double],
-+ [
-+ AC_TRY_RUN([
-+]GL_NOCRASH[
-+#include <float.h>
-+#include <stdio.h>
-+#include <string.h>
-+static int
-+strisnan (const char *string, size_t start_index, size_t end_index)
-+{
-+ if (start_index < end_index)
-+ {
-+ if (string[start_index] == '-')
-+ start_index++;
-+ if (start_index + 3 <= end_index
-+ && memcmp (string + start_index, "nan", 3) == 0)
-+ {
-+ start_index += 3;
-+ if (start_index == end_index
-+ || (string[start_index] == '(' && string[end_index - 1] == ')'))
-+ return 1;
-+ }
-+ }
-+ return 0;
-+}
-+static char buf[10000];
-+static long double zeroL = 0.0L;
-+int main ()
-+{
-+ nocrash_init();
-+ if (sprintf (buf, "%Lf", 1.0L / 0.0L) < 0
-+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-+ return 1;
-+ if (sprintf (buf, "%Lf", -1.0L / 0.0L) < 0
-+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-+ return 1;
-+ if (sprintf (buf, "%Lf", zeroL / zeroL) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Le", 1.0L / 0.0L) < 0
-+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-+ return 1;
-+ if (sprintf (buf, "%Le", -1.0L / 0.0L) < 0
-+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-+ return 1;
-+ if (sprintf (buf, "%Le", zeroL / zeroL) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Lg", 1.0L / 0.0L) < 0
-+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-+ return 1;
-+ if (sprintf (buf, "%Lg", -1.0L / 0.0L) < 0
-+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-+ return 1;
-+ if (sprintf (buf, "%Lg", zeroL / zeroL) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+#if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
-+/* Representation of an 80-bit 'long double' as an initializer for a sequence
-+ of 'unsigned int' words. */
-+# ifdef WORDS_BIGENDIAN
-+# define LDBL80_WORDS(exponent,manthi,mantlo) \
-+ { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \
-+ ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16), \
-+ (unsigned int) (mantlo) << 16 \
-+ }
-+# else
-+# define LDBL80_WORDS(exponent,manthi,mantlo) \
-+ { mantlo, manthi, exponent }
-+# endif
-+ { /* Quiet NaN. */
-+ static union { unsigned int word[4]; long double value; } x =
-+ { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) };
-+ if (sprintf (buf, "%Lf", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Le", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Lg", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ }
-+ {
-+ /* Signalling NaN. */
-+ static union { unsigned int word[4]; long double value; } x =
-+ { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) };
-+ if (sprintf (buf, "%Lf", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Le", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Lg", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ }
-+ { /* Pseudo-NaN. */
-+ static union { unsigned int word[4]; long double value; } x =
-+ { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
-+ if (sprintf (buf, "%Lf", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Le", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Lg", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ }
-+ { /* Pseudo-Infinity. */
-+ static union { unsigned int word[4]; long double value; } x =
-+ { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) };
-+ if (sprintf (buf, "%Lf", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Le", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Lg", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ }
-+ { /* Pseudo-Zero. */
-+ static union { unsigned int word[4]; long double value; } x =
-+ { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) };
-+ if (sprintf (buf, "%Lf", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Le", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Lg", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ }
-+ { /* Unnormalized number. */
-+ static union { unsigned int word[4]; long double value; } x =
-+ { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) };
-+ if (sprintf (buf, "%Lf", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Le", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Lg", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ }
-+ { /* Pseudo-Denormal. */
-+ static union { unsigned int word[4]; long double value; } x =
-+ { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) };
-+ if (sprintf (buf, "%Lf", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Le", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ if (sprintf (buf, "%Lg", x.value) < 0
-+ || !strisnan (buf, 0, strlen (buf)))
-+ return 1;
-+ }
-+#endif
-+ return 0;
-+}],
-+ [gl_cv_func_printf_infinite_long_double=yes],
-+ [gl_cv_func_printf_infinite_long_double=no],
-+ [
-+changequote(,)dnl
-+ case "$host_cpu" in
-+ # Guess no on ia64, x86_64, i386.
-+ ia64 | x86_64 | i*86) gl_cv_func_printf_infinite_long_double="guessing no";;
-+ *)
-+ case "$host_os" in
-+ # Guess yes on glibc systems.
-+ *-gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";;
-+ # Guess yes on FreeBSD >= 6.
-+ freebsd[1-5]*) gl_cv_func_printf_infinite_long_double="guessing no";;
-+ freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
-+ # Guess yes on MacOS X >= 10.3.
-+ darwin[1-6].*) gl_cv_func_printf_infinite_long_double="guessing no";;
-+ darwin*) gl_cv_func_printf_infinite_long_double="guessing yes";;
-+ # Guess yes on HP-UX >= 11.
-+ hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";;
-+ hpux*) gl_cv_func_printf_infinite_long_double="guessing yes";;
-+ # Guess yes on NetBSD >= 3.
-+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-+ gl_cv_func_printf_infinite_long_double="guessing no";;
-+ netbsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
-+ # If we don't know, assume the worst.
-+ *) gl_cv_func_printf_infinite_long_double="guessing no";;
-+ esac
-+ ;;
-+ esac
-+changequote([,])dnl
-+ ])
-+ ])
-+ ;;
-+ *)
-+ gl_cv_func_printf_infinite_long_double="irrelevant"
-+ ;;
-+ esac
-+])
-+
-+dnl Test whether the *printf family of functions supports the 'a' and 'A'
-+dnl conversion specifier for hexadecimal output of floating-point numbers.
-+dnl (ISO C99, POSIX:2001)
-+dnl Result is gl_cv_func_printf_directive_a.
-+
-+AC_DEFUN([gl_PRINTF_DIRECTIVE_A],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether printf supports the 'a' and 'A' directives],
-+ [gl_cv_func_printf_directive_a],
-+ [
-+ AC_TRY_RUN([
-+#include <stdio.h>
-+#include <string.h>
-+static char buf[100];
-+int main ()
-+{
-+ if (sprintf (buf, "%a %d", 3.1416015625, 33, 44, 55) < 0
-+ || (strcmp (buf, "0x1.922p+1 33") != 0
-+ && strcmp (buf, "0x3.244p+0 33") != 0
-+ && strcmp (buf, "0x6.488p-1 33") != 0
-+ && strcmp (buf, "0xc.91p-2 33") != 0))
-+ return 1;
-+ if (sprintf (buf, "%A %d", -3.1416015625, 33, 44, 55) < 0
-+ || (strcmp (buf, "-0X1.922P+1 33") != 0
-+ && strcmp (buf, "-0X3.244P+0 33") != 0
-+ && strcmp (buf, "-0X6.488P-1 33") != 0
-+ && strcmp (buf, "-0XC.91P-2 33") != 0))
-+ return 1;
-+ /* This catches a FreeBSD 6.1 bug: it doesn't round. */
-+ if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0
-+ || (strcmp (buf, "0x1.83p+0 33") != 0
-+ && strcmp (buf, "0x3.05p-1 33") != 0
-+ && strcmp (buf, "0x6.0ap-2 33") != 0
-+ && strcmp (buf, "0xc.14p-3 33") != 0))
-+ return 1;
-+ /* This catches a FreeBSD 6.1 bug. See
-+ <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
-+ if (sprintf (buf, "%010a %d", 1.0 / 0.0, 33, 44, 55) < 0
-+ || buf[0] == '0')
-+ return 1;
-+ /* This catches a MacOS X 10.3.9 (Darwin 7.9) bug. */
-+ if (sprintf (buf, "%.1a", 1.999) < 0
-+ || (strcmp (buf, "0x1.0p+1") != 0
-+ && strcmp (buf, "0x2.0p+0") != 0
-+ && strcmp (buf, "0x4.0p-1") != 0
-+ && strcmp (buf, "0x8.0p-2") != 0))
-+ return 1;
-+ /* This catches the same MacOS X 10.3.9 (Darwin 7.9) bug and also a
-+ glibc 2.4 bug <http://sourceware.org/bugzilla/show_bug.cgi?id=2908>. */
-+ if (sprintf (buf, "%.1La", 1.999L) < 0
-+ || (strcmp (buf, "0x1.0p+1") != 0
-+ && strcmp (buf, "0x2.0p+0") != 0
-+ && strcmp (buf, "0x4.0p-1") != 0
-+ && strcmp (buf, "0x8.0p-2") != 0))
-+ return 1;
-+ return 0;
-+}], [gl_cv_func_printf_directive_a=yes], [gl_cv_func_printf_directive_a=no],
-+ [
-+ case "$host_os" in
-+ # Guess yes on glibc >= 2.5 systems.
-+ *-gnu*)
-+ AC_EGREP_CPP([BZ2908], [
-+ #include <features.h>
-+ #ifdef __GNU_LIBRARY__
-+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 5) || (__GLIBC__ > 2)
-+ BZ2908
-+ #endif
-+ #endif
-+ ],
-+ [gl_cv_func_printf_directive_a="guessing yes"],
-+ [gl_cv_func_printf_directive_a="guessing no"])
-+ ;;
-+ # If we don't know, assume the worst.
-+ *) gl_cv_func_printf_directive_a="guessing no";;
-+ esac
-+ ])
-+ ])
-+])
-+
-+dnl Test whether the *printf family of functions supports the %F format
-+dnl directive. (ISO C99, POSIX:2001)
-+dnl Result is gl_cv_func_printf_directive_f.
-+
-+AC_DEFUN([gl_PRINTF_DIRECTIVE_F],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether printf supports the 'F' directive],
-+ [gl_cv_func_printf_directive_f],
-+ [
-+ AC_TRY_RUN([
-+#include <stdio.h>
-+#include <string.h>
-+static char buf[100];
-+int main ()
-+{
-+ if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0
-+ || strcmp (buf, "1234567.000000 33") != 0)
-+ return 1;
-+ if (sprintf (buf, "%F", 1.0 / 0.0) < 0
-+ || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0))
-+ return 1;
-+ /* This catches a Cygwin 2007 bug. */
-+ if (sprintf (buf, "%.F", 1234.0) < 0
-+ || strcmp (buf, "1234") != 0)
-+ return 1;
-+ return 0;
-+}], [gl_cv_func_printf_directive_f=yes], [gl_cv_func_printf_directive_f=no],
-+ [
-+changequote(,)dnl
-+ case "$host_os" in
-+ # Guess yes on glibc systems.
-+ *-gnu*) gl_cv_func_printf_directive_f="guessing yes";;
-+ # Guess yes on FreeBSD >= 6.
-+ freebsd[1-5]*) gl_cv_func_printf_directive_f="guessing no";;
-+ freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
-+ # Guess yes on MacOS X >= 10.3.
-+ darwin[1-6].*) gl_cv_func_printf_directive_f="guessing no";;
-+ darwin*) gl_cv_func_printf_directive_f="guessing yes";;
-+ # Guess yes on Solaris >= 2.10.
-+ solaris2.[0-9]*) gl_cv_func_printf_directive_f="guessing no";;
-+ solaris*) gl_cv_func_printf_directive_f="guessing yes";;
-+ # If we don't know, assume the worst.
-+ *) gl_cv_func_printf_directive_f="guessing no";;
-+ esac
-+changequote([,])dnl
-+ ])
-+ ])
-+])
-+
-+dnl Test whether the *printf family of functions supports the %n format
-+dnl directive. (ISO C99, POSIX:2001)
-+dnl Result is gl_cv_func_printf_directive_n.
-+
-+AC_DEFUN([gl_PRINTF_DIRECTIVE_N],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether printf supports the 'n' directive],
-+ [gl_cv_func_printf_directive_n],
-+ [
-+ AC_TRY_RUN([
-+#include <stdio.h>
-+#include <string.h>
-+static char fmtstring[10];
-+static char buf[100];
-+int main ()
-+{
-+ int count = -1;
-+ /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2)
-+ support %n in format strings in read-only memory but not in writable
-+ memory. */
-+ strcpy (fmtstring, "%d %n");
-+ if (sprintf (buf, fmtstring, 123, &count, 33, 44, 55) < 0
-+ || strcmp (buf, "123 ") != 0
-+ || count != 4)
-+ return 1;
-+ return 0;
-+}], [gl_cv_func_printf_directive_n=yes], [gl_cv_func_printf_directive_n=no],
-+ [
-+changequote(,)dnl
-+ case "$host_os" in
-+ *) gl_cv_func_printf_directive_n="guessing yes";;
-+ esac
-+changequote([,])dnl
-+ ])
-+ ])
-+])
-+
-+dnl Test whether the *printf family of functions supports POSIX/XSI format
-+dnl strings with positions. (POSIX:2001)
-+dnl Result is gl_cv_func_printf_positions.
-+
-+AC_DEFUN([gl_PRINTF_POSITIONS],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether printf supports POSIX/XSI format strings with positions],
-+ [gl_cv_func_printf_positions],
-+ [
-+ AC_TRY_RUN([
-+#include <stdio.h>
-+#include <string.h>
-+/* The string "%2$d %1$d", with dollar characters protected from the shell's
-+ dollar expansion (possibly an autoconf bug). */
-+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
-+static char buf[100];
-+int main ()
-+{
-+ sprintf (buf, format, 33, 55);
-+ return (strcmp (buf, "55 33") != 0);
-+}], [gl_cv_func_printf_positions=yes], [gl_cv_func_printf_positions=no],
-+ [
-+changequote(,)dnl
-+ case "$host_os" in
-+ netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
-+ gl_cv_func_printf_positions="guessing no";;
-+ beos*) gl_cv_func_printf_positions="guessing no";;
-+ mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
-+ *) gl_cv_func_printf_positions="guessing yes";;
-+ esac
-+changequote([,])dnl
-+ ])
-+ ])
-+])
-+
-+dnl Test whether the *printf family of functions supports POSIX/XSI format
-+dnl strings with the ' flag for grouping of decimal digits. (POSIX:2001)
-+dnl Result is gl_cv_func_printf_flag_grouping.
-+
-+AC_DEFUN([gl_PRINTF_FLAG_GROUPING],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether printf supports the grouping flag],
-+ [gl_cv_func_printf_flag_grouping],
-+ [
-+ AC_TRY_RUN([
-+#include <stdio.h>
-+#include <string.h>
-+static char buf[100];
-+int main ()
-+{
-+ if (sprintf (buf, "%'d %d", 1234567, 99) < 0
-+ || buf[strlen (buf) - 1] != '9')
-+ return 1;
-+ return 0;
-+}], [gl_cv_func_printf_flag_grouping=yes], [gl_cv_func_printf_flag_grouping=no],
-+ [
-+changequote(,)dnl
-+ case "$host_os" in
-+ cygwin*) gl_cv_func_printf_flag_grouping="guessing no";;
-+ netbsd*) gl_cv_func_printf_flag_grouping="guessing no";;
-+ mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
-+ *) gl_cv_func_printf_flag_grouping="guessing yes";;
-+ esac
-+changequote([,])dnl
-+ ])
-+ ])
-+])
-+
-+dnl Test whether the *printf family of functions supports the - flag correctly.
-+dnl (ISO C99.) See
-+dnl <http://lists.gnu.org/archive/html/bug-coreutils/2008-02/msg00035.html>
-+dnl Result is gl_cv_func_printf_flag_leftadjust.
-+
-+AC_DEFUN([gl_PRINTF_FLAG_LEFTADJUST],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether printf supports the left-adjust flag correctly],
-+ [gl_cv_func_printf_flag_leftadjust],
-+ [
-+ AC_TRY_RUN([
-+#include <stdio.h>
-+#include <string.h>
-+static char buf[100];
-+int main ()
-+{
-+ /* Check that a '-' flag is not annihilated by a negative width. */
-+ if (sprintf (buf, "a%-*sc", -3, "b") < 0
-+ || strcmp (buf, "ab c") != 0)
-+ return 1;
-+ return 0;
-+}],
-+ [gl_cv_func_printf_flag_leftadjust=yes],
-+ [gl_cv_func_printf_flag_leftadjust=no],
-+ [
-+changequote(,)dnl
-+ case "$host_os" in
-+ # Guess yes on HP-UX 11.
-+ hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
-+ # Guess no on HP-UX 10 and older.
-+ hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";;
-+ # Guess yes otherwise.
-+ *) gl_cv_func_printf_flag_leftadjust="guessing yes";;
-+ esac
-+changequote([,])dnl
-+ ])
-+ ])
-+])
-+
-+dnl Test whether the *printf family of functions supports padding of non-finite
-+dnl values with the 0 flag correctly. (ISO C99 + TC1 + TC2.) See
-+dnl <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html>
-+dnl Result is gl_cv_func_printf_flag_zero.
-+
-+AC_DEFUN([gl_PRINTF_FLAG_ZERO],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether printf supports the zero flag correctly],
-+ [gl_cv_func_printf_flag_zero],
-+ [
-+ AC_TRY_RUN([
-+#include <stdio.h>
-+#include <string.h>
-+static char buf[100];
-+int main ()
-+{
-+ if (sprintf (buf, "%010f", 1.0 / 0.0, 33, 44, 55) < 0
-+ || (strcmp (buf, " inf") != 0
-+ && strcmp (buf, " infinity") != 0))
-+ return 1;
-+ return 0;
-+}], [gl_cv_func_printf_flag_zero=yes], [gl_cv_func_printf_flag_zero=no],
-+ [
-+changequote(,)dnl
-+ case "$host_os" in
-+ # Guess yes on glibc systems.
-+ *-gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
-+ # Guess yes on BeOS.
-+ beos*) gl_cv_func_printf_flag_zero="guessing yes";;
-+ # If we don't know, assume the worst.
-+ *) gl_cv_func_printf_flag_zero="guessing no";;
-+ esac
-+changequote([,])dnl
-+ ])
-+ ])
-+])
-+
-+dnl Test whether the *printf family of functions supports large precisions.
-+dnl On mingw, precisions larger than 512 are treated like 512, in integer,
-+dnl floating-point or pointer output. On BeOS, precisions larger than 1044
-+dnl crash the program.
-+dnl Result is gl_cv_func_printf_precision.
-+
-+AC_DEFUN([gl_PRINTF_PRECISION],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether printf supports large precisions],
-+ [gl_cv_func_printf_precision],
-+ [
-+ AC_TRY_RUN([
-+#include <stdio.h>
-+#include <string.h>
-+static char buf[5000];
-+int main ()
-+{
-+#ifdef __BEOS__
-+ /* On BeOS, this would crash and show a dialog box. Avoid the crash. */
-+ return 1;
-+#endif
-+ if (sprintf (buf, "%.4000d %d", 1, 33, 44) < 4000 + 3)
-+ return 1;
-+ return 0;
-+}], [gl_cv_func_printf_precision=yes], [gl_cv_func_printf_precision=no],
-+ [
-+changequote(,)dnl
-+ case "$host_os" in
-+ # Guess no only on native Win32 and BeOS systems.
-+ mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
-+ beos*) gl_cv_func_printf_precision="guessing no" ;;
-+ *) gl_cv_func_printf_precision="guessing yes" ;;
-+ esac
-+changequote([,])dnl
-+ ])
-+ ])
-+])
-+
-+dnl Test whether the *printf family of functions recovers gracefully in case
-+dnl of an out-of-memory condition, or whether it crashes the entire program.
-+dnl Result is gl_cv_func_printf_enomem.
-+
-+AC_DEFUN([gl_PRINTF_ENOMEM],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether printf survives out-of-memory conditions],
-+ [gl_cv_func_printf_enomem],
-+ [
-+ if test "$cross_compiling" = no; then
-+ AC_LANG_CONFTEST([AC_LANG_SOURCE([
-+]GL_NOCRASH[
-+changequote(,)dnl
-+#include <stdio.h>
-+#include <sys/types.h>
-+#include <sys/time.h>
-+#include <sys/resource.h>
-+#include <errno.h>
-+int main()
-+{
-+ struct rlimit limit;
-+ int ret;
-+ nocrash_init ();
-+ /* Some printf implementations allocate temporary space with malloc. */
-+ /* On BSD systems, malloc() is limited by RLIMIT_DATA. */
-+#ifdef RLIMIT_DATA
-+ if (getrlimit (RLIMIT_DATA, &limit) < 0)
-+ return 77;
-+ if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000)
-+ limit.rlim_max = 5000000;
-+ limit.rlim_cur = limit.rlim_max;
-+ if (setrlimit (RLIMIT_DATA, &limit) < 0)
-+ return 77;
-+#endif
-+ /* On Linux systems, malloc() is limited by RLIMIT_AS. */
-+#ifdef RLIMIT_AS
-+ if (getrlimit (RLIMIT_AS, &limit) < 0)
-+ return 77;
-+ if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000)
-+ limit.rlim_max = 5000000;
-+ limit.rlim_cur = limit.rlim_max;
-+ if (setrlimit (RLIMIT_AS, &limit) < 0)
-+ return 77;
-+#endif
-+ /* Some printf implementations allocate temporary space on the stack. */
-+#ifdef RLIMIT_STACK
-+ if (getrlimit (RLIMIT_STACK, &limit) < 0)
-+ return 77;
-+ if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000)
-+ limit.rlim_max = 5000000;
-+ limit.rlim_cur = limit.rlim_max;
-+ if (setrlimit (RLIMIT_STACK, &limit) < 0)
-+ return 77;
-+#endif
-+ ret = printf ("%.5000000f", 1.0);
-+ return !(ret == 5000002 || (ret < 0 && errno == ENOMEM));
-+}
-+changequote([,])dnl
-+ ])])
-+ if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
-+ (./conftest
-+ result=$?
-+ if test $result != 0 && test $result != 77; then result=1; fi
-+ exit $result
-+ ) >/dev/null 2>/dev/null
-+ case $? in
-+ 0) gl_cv_func_printf_enomem="yes" ;;
-+ 77) gl_cv_func_printf_enomem="guessing no" ;;
-+ *) gl_cv_func_printf_enomem="no" ;;
-+ esac
-+ else
-+ gl_cv_func_printf_enomem="guessing no"
-+ fi
-+ rm -fr conftest*
-+ else
-+changequote(,)dnl
-+ case "$host_os" in
-+ # Guess yes on glibc systems.
-+ *-gnu*) gl_cv_func_printf_enomem="guessing yes";;
-+ # Guess yes on Solaris.
-+ solaris*) gl_cv_func_printf_enomem="guessing yes";;
-+ # Guess yes on AIX.
-+ aix*) gl_cv_func_printf_enomem="guessing yes";;
-+ # Guess yes on HP-UX/hppa.
-+ hpux*) case "$host_cpu" in
-+ hppa*) gl_cv_func_printf_enomem="guessing yes";;
-+ *) gl_cv_func_printf_enomem="guessing no";;
-+ esac
-+ ;;
-+ # Guess yes on IRIX.
-+ irix*) gl_cv_func_printf_enomem="guessing yes";;
-+ # Guess yes on OSF/1.
-+ osf*) gl_cv_func_printf_enomem="guessing yes";;
-+ # Guess yes on BeOS.
-+ beos*) gl_cv_func_printf_enomem="guessing yes";;
-+ # If we don't know, assume the worst.
-+ *) gl_cv_func_printf_enomem="guessing no";;
-+ esac
-+changequote([,])dnl
-+ fi
-+ ])
-+])
-+
-+dnl Test whether the snprintf function exists. (ISO C99, POSIX:2001)
-+dnl Result is ac_cv_func_snprintf.
-+
-+AC_DEFUN([gl_SNPRINTF_PRESENCE],
-+[
-+ AC_CHECK_FUNCS_ONCE([snprintf])
-+])
-+
-+dnl Test whether the string produced by the snprintf function is always NUL
-+dnl terminated. (ISO C99, POSIX:2001)
-+dnl Result is gl_cv_func_snprintf_truncation_c99.
-+
-+AC_DEFUN([gl_SNPRINTF_TRUNCATION_C99],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether snprintf truncates the result as in C99],
-+ [gl_cv_func_snprintf_truncation_c99],
-+ [
-+ AC_TRY_RUN([
-+#include <stdio.h>
-+#include <string.h>
-+static char buf[100];
-+int main ()
-+{
-+ strcpy (buf, "ABCDEF");
-+ snprintf (buf, 3, "%d %d", 4567, 89);
-+ if (memcmp (buf, "45\0DEF", 6) != 0)
-+ return 1;
-+ return 0;
-+}], [gl_cv_func_snprintf_truncation_c99=yes], [gl_cv_func_snprintf_truncation_c99=no],
-+ [
-+changequote(,)dnl
-+ case "$host_os" in
-+ # Guess yes on glibc systems.
-+ *-gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
-+ # Guess yes on FreeBSD >= 5.
-+ freebsd[1-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";;
-+ freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
-+ # Guess yes on MacOS X >= 10.3.
-+ darwin[1-6].*) gl_cv_func_snprintf_truncation_c99="guessing no";;
-+ darwin*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
-+ # Guess yes on OpenBSD >= 3.9.
-+ openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
-+ gl_cv_func_snprintf_truncation_c99="guessing no";;
-+ openbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
-+ # Guess yes on Solaris >= 2.6.
-+ solaris2.[0-5]*) gl_cv_func_snprintf_truncation_c99="guessing no";;
-+ solaris*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
-+ # Guess yes on AIX >= 4.
-+ aix[1-3]*) gl_cv_func_snprintf_truncation_c99="guessing no";;
-+ aix*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
-+ # Guess yes on HP-UX >= 11.
-+ hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";;
-+ hpux*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
-+ # Guess yes on IRIX >= 6.5.
-+ irix6.5) gl_cv_func_snprintf_truncation_c99="guessing yes";;
-+ # Guess yes on OSF/1 >= 5.
-+ osf[3-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";;
-+ osf*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
-+ # Guess yes on NetBSD >= 3.
-+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-+ gl_cv_func_snprintf_truncation_c99="guessing no";;
-+ netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
-+ # Guess yes on BeOS.
-+ beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
-+ # If we don't know, assume the worst.
-+ *) gl_cv_func_snprintf_truncation_c99="guessing no";;
-+ esac
-+changequote([,])dnl
-+ ])
-+ ])
-+])
-+
-+dnl Test whether the return value of the snprintf function is the number
-+dnl of bytes (excluding the terminating NUL) that would have been produced
-+dnl if the buffer had been large enough. (ISO C99, POSIX:2001)
-+dnl For example, this test program fails on IRIX 6.5:
-+dnl ---------------------------------------------------------------------
-+dnl #include <stdio.h>
-+dnl int main()
-+dnl {
-+dnl static char buf[8];
-+dnl int retval = snprintf (buf, 3, "%d", 12345);
-+dnl return retval >= 0 && retval < 3;
-+dnl }
-+dnl ---------------------------------------------------------------------
-+dnl Result is gl_cv_func_snprintf_retval_c99.
-+
-+AC_DEFUN([gl_SNPRINTF_RETVAL_C99],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether snprintf returns a byte count as in C99],
-+ [gl_cv_func_snprintf_retval_c99],
-+ [
-+ AC_TRY_RUN([
-+#include <stdio.h>
-+#include <string.h>
-+static char buf[100];
-+int main ()
-+{
-+ strcpy (buf, "ABCDEF");
-+ if (snprintf (buf, 3, "%d %d", 4567, 89) != 7)
-+ return 1;
-+ return 0;
-+}], [gl_cv_func_snprintf_retval_c99=yes], [gl_cv_func_snprintf_retval_c99=no],
-+ [
-+changequote(,)dnl
-+ case "$host_os" in
-+ # Guess yes on glibc systems.
-+ *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
-+ # Guess yes on FreeBSD >= 5.
-+ freebsd[1-4]*) gl_cv_func_snprintf_retval_c99="guessing no";;
-+ freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
-+ # Guess yes on MacOS X >= 10.3.
-+ darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";;
-+ darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";;
-+ # Guess yes on OpenBSD >= 3.9.
-+ openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
-+ gl_cv_func_snprintf_retval_c99="guessing no";;
-+ openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
-+ # Guess yes on Solaris >= 2.6.
-+ solaris2.[0-5]*) gl_cv_func_snprintf_retval_c99="guessing no";;
-+ solaris*) gl_cv_func_snprintf_retval_c99="guessing yes";;
-+ # Guess yes on AIX >= 4.
-+ aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";;
-+ aix*) gl_cv_func_snprintf_retval_c99="guessing yes";;
-+ # Guess yes on NetBSD >= 3.
-+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-+ gl_cv_func_snprintf_retval_c99="guessing no";;
-+ netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
-+ # Guess yes on BeOS.
-+ beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
-+ # If we don't know, assume the worst.
-+ *) gl_cv_func_snprintf_retval_c99="guessing no";;
-+ esac
-+changequote([,])dnl
-+ ])
-+ ])
-+])
-+
-+dnl Test whether the snprintf function supports the %n format directive
-+dnl also in truncated portions of the format string. (ISO C99, POSIX:2001)
-+dnl Result is gl_cv_func_snprintf_directive_n.
-+
-+AC_DEFUN([gl_SNPRINTF_DIRECTIVE_N],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether snprintf fully supports the 'n' directive],
-+ [gl_cv_func_snprintf_directive_n],
-+ [
-+ AC_TRY_RUN([
-+#include <stdio.h>
-+#include <string.h>
-+static char fmtstring[10];
-+static char buf[100];
-+int main ()
-+{
-+ int count = -1;
-+ /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2)
-+ support %n in format strings in read-only memory but not in writable
-+ memory. */
-+ strcpy (fmtstring, "%d %n");
-+ snprintf (buf, 4, fmtstring, 12345, &count, 33, 44, 55);
-+ if (count != 6)
-+ return 1;
-+ return 0;
-+}], [gl_cv_func_snprintf_directive_n=yes], [gl_cv_func_snprintf_directive_n=no],
-+ [
-+changequote(,)dnl
-+ case "$host_os" in
-+ # Guess yes on glibc systems.
-+ *-gnu*) gl_cv_func_snprintf_directive_n="guessing yes";;
-+ # Guess yes on FreeBSD >= 5.
-+ freebsd[1-4]*) gl_cv_func_snprintf_directive_n="guessing no";;
-+ freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
-+ # Guess yes on MacOS X >= 10.3.
-+ darwin[1-6].*) gl_cv_func_snprintf_directive_n="guessing no";;
-+ darwin*) gl_cv_func_snprintf_directive_n="guessing yes";;
-+ # Guess yes on Solaris >= 2.6.
-+ solaris2.[0-5]*) gl_cv_func_snprintf_directive_n="guessing no";;
-+ solaris*) gl_cv_func_snprintf_directive_n="guessing yes";;
-+ # Guess yes on AIX >= 4.
-+ aix[1-3]*) gl_cv_func_snprintf_directive_n="guessing no";;
-+ aix*) gl_cv_func_snprintf_directive_n="guessing yes";;
-+ # Guess yes on IRIX >= 6.5.
-+ irix6.5) gl_cv_func_snprintf_directive_n="guessing yes";;
-+ # Guess yes on OSF/1 >= 5.
-+ osf[3-4]*) gl_cv_func_snprintf_directive_n="guessing no";;
-+ osf*) gl_cv_func_snprintf_directive_n="guessing yes";;
-+ # Guess yes on NetBSD >= 3.
-+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-+ gl_cv_func_snprintf_directive_n="guessing no";;
-+ netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
-+ # Guess yes on BeOS.
-+ beos*) gl_cv_func_snprintf_directive_n="guessing yes";;
-+ # If we don't know, assume the worst.
-+ *) gl_cv_func_snprintf_directive_n="guessing no";;
-+ esac
-+changequote([,])dnl
-+ ])
-+ ])
-+])
-+
-+dnl Test whether the snprintf function, when passed a size = 1, writes any
-+dnl output without bounds in this case, behaving like sprintf. This is the
-+dnl case on Linux libc5.
-+dnl Result is gl_cv_func_snprintf_size1.
-+
-+AC_DEFUN([gl_SNPRINTF_SIZE1],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_CACHE_CHECK([whether snprintf respects a size of 1],
-+ [gl_cv_func_snprintf_size1],
-+ [
-+ AC_TRY_RUN([
-+#include <stdio.h>
-+int main()
-+{
-+ static char buf[8] = "DEADBEEF";
-+ snprintf (buf, 1, "%d", 12345);
-+ return buf[1] != 'E';
-+}],
-+ [gl_cv_func_snprintf_size1=yes],
-+ [gl_cv_func_snprintf_size1=no],
-+ [gl_cv_func_snprintf_size1="guessing yes"])
-+ ])
-+])
-+
-+dnl Test whether the vsnprintf function, when passed a zero size, produces no
-+dnl output. (ISO C99, POSIX:2001)
-+dnl For example, snprintf nevertheless writes a NUL byte in this case
-+dnl on OSF/1 5.1:
-+dnl ---------------------------------------------------------------------
-+dnl #include <stdio.h>
-+dnl int main()
-+dnl {
-+dnl static char buf[8] = "DEADBEEF";
-+dnl snprintf (buf, 0, "%d", 12345);
-+dnl return buf[0] != 'D';
-+dnl }
-+dnl ---------------------------------------------------------------------
-+dnl And vsnprintf writes any output without bounds in this case, behaving like
-+dnl vsprintf, on HP-UX 11 and OSF/1 5.1:
-+dnl ---------------------------------------------------------------------
-+dnl #include <stdarg.h>
-+dnl #include <stdio.h>
-+dnl static int my_snprintf (char *buf, int size, const char *format, ...)
-+dnl {
-+dnl va_list args;
-+dnl int ret;
-+dnl va_start (args, format);
-+dnl ret = vsnprintf (buf, size, format, args);
-+dnl va_end (args);
-+dnl return ret;
-+dnl }
-+dnl int main()
-+dnl {
-+dnl static char buf[8] = "DEADBEEF";
-+dnl my_snprintf (buf, 0, "%d", 12345);
-+dnl return buf[0] != 'D';
-+dnl }
-+dnl ---------------------------------------------------------------------
-+dnl Result is gl_cv_func_vsnprintf_zerosize_c99.
-+
-+AC_DEFUN([gl_VSNPRINTF_ZEROSIZE_C99],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-+ AC_CACHE_CHECK([whether vsnprintf respects a zero size as in C99],
-+ [gl_cv_func_vsnprintf_zerosize_c99],
-+ [
-+ AC_TRY_RUN([
-+#include <stdarg.h>
-+#include <stdio.h>
-+static int my_snprintf (char *buf, int size, const char *format, ...)
-+{
-+ va_list args;
-+ int ret;
-+ va_start (args, format);
-+ ret = vsnprintf (buf, size, format, args);
-+ va_end (args);
-+ return ret;
-+}
-+int main()
-+{
-+ static char buf[8] = "DEADBEEF";
-+ my_snprintf (buf, 0, "%d", 12345);
-+ return buf[0] != 'D';
-+}],
-+ [gl_cv_func_vsnprintf_zerosize_c99=yes],
-+ [gl_cv_func_vsnprintf_zerosize_c99=no],
-+ [
-+changequote(,)dnl
-+ case "$host_os" in
-+ # Guess yes on glibc systems.
-+ *-gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-+ # Guess yes on FreeBSD >= 5.
-+ freebsd[1-4]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
-+ freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-+ # Guess yes on MacOS X >= 10.3.
-+ darwin[1-6].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
-+ darwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-+ # Guess yes on Cygwin.
-+ cygwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-+ # Guess yes on Solaris >= 2.6.
-+ solaris2.[0-5]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
-+ solaris*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-+ # Guess yes on AIX >= 4.
-+ aix[1-3]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
-+ aix*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-+ # Guess yes on IRIX >= 6.5.
-+ irix6.5) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-+ # Guess yes on NetBSD >= 3.
-+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-+ gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
-+ netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-+ # Guess yes on BeOS.
-+ beos*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-+ # Guess yes on mingw.
-+ mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-+ # If we don't know, assume the worst.
-+ *) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
-+ esac
-+changequote([,])dnl
-+ ])
-+ ])
-+])
-+
-+dnl The results of these tests on various platforms are:
-+dnl
-+dnl 1 = gl_PRINTF_SIZES_C99
-+dnl 2 = gl_PRINTF_LONG_DOUBLE
-+dnl 3 = gl_PRINTF_INFINITE
-+dnl 4 = gl_PRINTF_INFINITE_LONG_DOUBLE
-+dnl 5 = gl_PRINTF_DIRECTIVE_A
-+dnl 6 = gl_PRINTF_DIRECTIVE_F
-+dnl 7 = gl_PRINTF_DIRECTIVE_N
-+dnl 8 = gl_PRINTF_POSITIONS
-+dnl 9 = gl_PRINTF_FLAG_GROUPING
-+dnl 10 = gl_PRINTF_FLAG_LEFTADJUST
-+dnl 11 = gl_PRINTF_FLAG_ZERO
-+dnl 12 = gl_PRINTF_PRECISION
-+dnl 13 = gl_PRINTF_ENOMEM
-+dnl 14 = gl_SNPRINTF_PRESENCE
-+dnl 15 = gl_SNPRINTF_TRUNCATION_C99
-+dnl 16 = gl_SNPRINTF_RETVAL_C99
-+dnl 17 = gl_SNPRINTF_DIRECTIVE_N
-+dnl 18 = gl_SNPRINTF_SIZE1
-+dnl 19 = gl_VSNPRINTF_ZEROSIZE_C99
-+dnl
-+dnl 1 = checking whether printf supports size specifiers as in C99...
-+dnl 2 = checking whether printf supports 'long double' arguments...
-+dnl 3 = checking whether printf supports infinite 'double' arguments...
-+dnl 4 = checking whether printf supports infinite 'long double' arguments...
-+dnl 5 = checking whether printf supports the 'a' and 'A' directives...
-+dnl 6 = checking whether printf supports the 'F' directive...
-+dnl 7 = checking whether printf supports the 'n' directive...
-+dnl 8 = checking whether printf supports POSIX/XSI format strings with positions...
-+dnl 9 = checking whether printf supports the grouping flag...
-+dnl 10 = checking whether printf supports the left-adjust flag correctly...
-+dnl 11 = checking whether printf supports the zero flag correctly...
-+dnl 12 = checking whether printf supports large precisions...
-+dnl 13 = checking whether printf survives out-of-memory conditions...
-+dnl 14 = checking for snprintf...
-+dnl 15 = checking whether snprintf truncates the result as in C99...
-+dnl 16 = checking whether snprintf returns a byte count as in C99...
-+dnl 17 = checking whether snprintf fully supports the 'n' directive...
-+dnl 18 = checking whether snprintf respects a size of 1...
-+dnl 19 = checking whether vsnprintf respects a zero size as in C99...
-+dnl
-+dnl . = yes, # = no.
-+dnl
-+dnl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
-+dnl glibc 2.5 . . . . . . . . . . . . . . . . . . .
-+dnl glibc 2.3.6 . . . . # . . . . . . . . . . . . . .
-+dnl FreeBSD 5.4, 6.1 . . . . # . . . . . # . # . . . . . .
-+dnl MacOS X 10.3.9 . . . . # . . . . . # . # . . . . . .
-+dnl OpenBSD 3.9, 4.0 . . # # # # . . # . # . # . . . . . .
-+dnl Cygwin 2007 (= Cygwin 1.5.24) . . . . # # . . . ? # ? ? . . . . . .
-+dnl Cygwin 2006 (= Cygwin 1.5.19) # . . . # # . . # ? # ? ? . . . . . .
-+dnl Solaris 10 . . # # # . . . . . # . . . . . . . .
-+dnl Solaris 2.6 ... 9 # . # # # # . . . . # . . . . . . . .
-+dnl Solaris 2.5.1 # . # # # # . . . . # . . # # # # # #
-+dnl AIX 5.2 . . # # # . . . . . # . . . . . . . .
-+dnl AIX 4.3.2, 5.1 # . # # # # . . . . # . . . . . . . .
-+dnl HP-UX 11.31 . . . . # . . . . . # . . . . # # . .
-+dnl HP-UX 11.{00,11,23} # . . . # # . . . . # . . . . # # . #
-+dnl HP-UX 10.20 # . . . # # . . . # # . . . . # # ? #
-+dnl IRIX 6.5 # . # # # # . . . . # . . . . # . . .
-+dnl OSF/1 5.1 # . # # # # . . . . # . . . . # . . #
-+dnl OSF/1 4.0d # . # # # # . . . . # . . # # # # # #
-+dnl NetBSD 4.0 . ? ? ? ? ? . . ? ? ? ? ? . . . ? ? ?
-+dnl NetBSD 3.0 . . . . # # . # # ? # . # . . . . . .
-+dnl BeOS # # . # # # . # . ? . # ? . . . . . .
-+dnl mingw # # # # # # . # # . # # ? . # # # . .
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/size_max.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/size_max.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/size_max.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/size_max.m4 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,68 @@
-+# size_max.m4 serial 6
-+dnl Copyright (C) 2003, 2005-2006 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl From Bruno Haible.
-+
-+AC_DEFUN([gl_SIZE_MAX],
-+[
-+ AC_CHECK_HEADERS(stdint.h)
-+ dnl First test whether the system already has SIZE_MAX.
-+ AC_MSG_CHECKING([for SIZE_MAX])
-+ AC_CACHE_VAL([gl_cv_size_max], [
-+ gl_cv_size_max=
-+ AC_EGREP_CPP([Found it], [
-+#include <limits.h>
-+#if HAVE_STDINT_H
-+#include <stdint.h>
-+#endif
-+#ifdef SIZE_MAX
-+Found it
-+#endif
-+], gl_cv_size_max=yes)
-+ if test -z "$gl_cv_size_max"; then
-+ dnl Define it ourselves. Here we assume that the type 'size_t' is not wider
-+ dnl than the type 'unsigned long'. Try hard to find a definition that can
-+ dnl be used in a preprocessor #if, i.e. doesn't contain a cast.
-+ AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1],
-+ [#include <stddef.h>
-+#include <limits.h>], size_t_bits_minus_1=)
-+ AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)],
-+ [#include <stddef.h>], fits_in_uint=)
-+ if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
-+ if test $fits_in_uint = 1; then
-+ dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
-+ dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
-+ AC_TRY_COMPILE([#include <stddef.h>
-+ extern size_t foo;
-+ extern unsigned long foo;
-+ ], [], fits_in_uint=0)
-+ fi
-+ dnl We cannot use 'expr' to simplify this expression, because 'expr'
-+ dnl works only with 'long' integers in the host environment, while we
-+ dnl might be cross-compiling from a 32-bit platform to a 64-bit platform.
-+ if test $fits_in_uint = 1; then
-+ gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
-+ else
-+ gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
-+ fi
-+ else
-+ dnl Shouldn't happen, but who knows...
-+ gl_cv_size_max='((size_t)~(size_t)0)'
-+ fi
-+ fi
-+ ])
-+ AC_MSG_RESULT([$gl_cv_size_max])
-+ if test "$gl_cv_size_max" != yes; then
-+ AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max],
-+ [Define as the maximum value of type 'size_t', if the system doesn't define it.])
-+ fi
-+])
-+
-+dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
-+dnl Remove this when we can assume autoconf >= 2.61.
-+m4_ifdef([AC_COMPUTE_INT], [], [
-+ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/snprintf.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/snprintf.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/snprintf.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/snprintf.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,40 @@
-+# snprintf.m4 serial 5
-+dnl Copyright (C) 2002-2004, 2007-2008 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+AC_DEFUN([gl_FUNC_SNPRINTF],
-+[
-+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
-+ gl_cv_func_snprintf_usable=no
-+ AC_CHECK_FUNCS([snprintf])
-+ if test $ac_cv_func_snprintf = yes; then
-+ gl_SNPRINTF_SIZE1
-+ case "$gl_cv_func_snprintf_size1" in
-+ *yes)
-+ gl_cv_func_snprintf_usable=yes
-+ ;;
-+ esac
-+ fi
-+ if test $gl_cv_func_snprintf_usable = no; then
-+ gl_REPLACE_SNPRINTF
-+ fi
-+ AC_CHECK_DECLS_ONCE([snprintf])
-+ if test $ac_cv_have_decl_snprintf = no; then
-+ HAVE_DECL_SNPRINTF=0
-+ fi
-+])
-+
-+AC_DEFUN([gl_REPLACE_SNPRINTF],
-+[
-+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
-+ AC_LIBOBJ([snprintf])
-+ if test $ac_cv_func_snprintf = yes; then
-+ REPLACE_SNPRINTF=1
-+ fi
-+ gl_PREREQ_SNPRINTF
-+])
-+
-+# Prerequisites of lib/snprintf.c.
-+AC_DEFUN([gl_PREREQ_SNPRINTF], [:])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/socklen.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/socklen.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/socklen.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/socklen.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,52 @@
-+# socklen.m4 serial 6
-+dnl Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl From Albert Chin, Windows fixes from Simon Josefsson.
-+
-+dnl Check for socklen_t: historically on BSD it is an int, and in
-+dnl POSIX 1g it is a type of its own, but some platforms use different
-+dnl types for the argument to getsockopt, getpeername, etc. So we
-+dnl have to test to find something that will work.
-+
-+dnl On mingw32, socklen_t is in ws2tcpip.h ('int'), so we try to find
-+dnl it there first. That file is included by gnulib's sys_socket.in.h, which
-+dnl all users of this module should include. Cygwin must not include
-+dnl ws2tcpip.h.
-+AC_DEFUN([gl_TYPE_SOCKLEN_T],
-+ [AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl
-+ AC_CHECK_TYPE([socklen_t], ,
-+ [AC_MSG_CHECKING([for socklen_t equivalent])
-+ AC_CACHE_VAL([gl_cv_socklen_t_equiv],
-+ [# Systems have either "struct sockaddr *" or
-+ # "void *" as the second argument to getpeername
-+ gl_cv_socklen_t_equiv=
-+ for arg2 in "struct sockaddr" void; do
-+ for t in int size_t "unsigned int" "long int" "unsigned long int"; do
-+ AC_TRY_COMPILE(
-+ [#include <sys/types.h>
-+ #include <sys/socket.h>
-+
-+ int getpeername (int, $arg2 *, $t *);],
-+ [$t len;
-+ getpeername (0, 0, &len);],
-+ [gl_cv_socklen_t_equiv="$t"])
-+ test "$gl_cv_socklen_t_equiv" != "" && break
-+ done
-+ test "$gl_cv_socklen_t_equiv" != "" && break
-+ done
-+ ])
-+ if test "$gl_cv_socklen_t_equiv" = ""; then
-+ AC_MSG_ERROR([Cannot find a type to use in place of socklen_t])
-+ fi
-+ AC_MSG_RESULT([$gl_cv_socklen_t_equiv])
-+ AC_DEFINE_UNQUOTED([socklen_t], [$gl_cv_socklen_t_equiv],
-+ [type to use in place of socklen_t if not defined])],
-+ [#include <sys/types.h>
-+ #if HAVE_SYS_SOCKET_H
-+ # include <sys/socket.h>
-+ #elif HAVE_WS2TCPIP_H
-+ # include <ws2tcpip.h>
-+ #endif])])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/sockpfaf.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/sockpfaf.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/sockpfaf.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/sockpfaf.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,58 @@
-+# sockpfaf.m4 serial 5
-+dnl Copyright (C) 2004, 2006 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl Test for some common socket protocol families (PF_INET, PF_INET6, ...)
-+dnl and some common address families (AF_INET, AF_INET6, ...).
-+dnl This test assumes that a system supports an address family if and only if
-+dnl it supports the corresponding protocol family.
-+
-+dnl From Bruno Haible.
-+
-+AC_DEFUN([gl_SOCKET_FAMILIES],
-+[
-+ AC_REQUIRE([gl_HEADER_SYS_SOCKET])
-+ AC_CHECK_HEADERS_ONCE([netinet/in.h])
-+
-+ AC_MSG_CHECKING(for IPv4 sockets)
-+ AC_CACHE_VAL(gl_cv_socket_ipv4,
-+ [AC_TRY_COMPILE([#include <sys/types.h>
-+#ifdef HAVE_SYS_SOCKET_H
-+#include <sys/socket.h>
-+#endif
-+#ifdef HAVE_NETINET_IN_H
-+#include <netinet/in.h>
-+#endif
-+#ifdef HAVE_WINSOCK2_H
-+#include <winsock2.h>
-+#endif],
-+[int x = AF_INET; struct in_addr y; struct sockaddr_in z;
-+ if (&x && &y && &z) return 0;],
-+ gl_cv_socket_ipv4=yes, gl_cv_socket_ipv4=no)])
-+ AC_MSG_RESULT($gl_cv_socket_ipv4)
-+ if test $gl_cv_socket_ipv4 = yes; then
-+ AC_DEFINE(HAVE_IPV4, 1, [Define to 1 if <sys/socket.h> defines AF_INET.])
-+ fi
-+
-+ AC_MSG_CHECKING(for IPv6 sockets)
-+ AC_CACHE_VAL(gl_cv_socket_ipv6,
-+ [AC_TRY_COMPILE([#include <sys/types.h>
-+#ifdef HAVE_SYS_SOCKET_H
-+#include <sys/socket.h>
-+#endif
-+#ifdef HAVE_NETINET_IN_H
-+#include <netinet/in.h>
-+#endif
-+#ifdef HAVE_WINSOCK2_H
-+#include <winsock2.h>
-+#endif],
-+[int x = AF_INET6; struct in6_addr y; struct sockaddr_in6 z;
-+ if (&x && &y && &z) return 0;],
-+ gl_cv_socket_ipv6=yes, gl_cv_socket_ipv6=no)])
-+ AC_MSG_RESULT($gl_cv_socket_ipv6)
-+ if test $gl_cv_socket_ipv6 = yes; then
-+ AC_DEFINE(HAVE_IPV6, 1, [Define to 1 if <sys/socket.h> defines AF_INET6.])
-+ fi
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/stdbool.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/stdbool.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/stdbool.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/stdbool.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,115 @@
-+# Check for stdbool.h that conforms to C99.
-+
-+dnl Copyright (C) 2002-2006 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+# Prepare for substituting <stdbool.h> if it is not supported.
-+
-+AC_DEFUN([AM_STDBOOL_H],
-+[
-+ AC_REQUIRE([AC_HEADER_STDBOOL])
-+
-+ # Define two additional variables used in the Makefile substitution.
-+
-+ if test "$ac_cv_header_stdbool_h" = yes; then
-+ STDBOOL_H=''
-+ else
-+ STDBOOL_H='stdbool.h'
-+ fi
-+ AC_SUBST([STDBOOL_H])
-+
-+ if test "$ac_cv_type__Bool" = yes; then
-+ HAVE__BOOL=1
-+ else
-+ HAVE__BOOL=0
-+ fi
-+ AC_SUBST([HAVE__BOOL])
-+])
-+
-+# AM_STDBOOL_H will be renamed to gl_STDBOOL_H in the future.
-+AC_DEFUN([gl_STDBOOL_H], [AM_STDBOOL_H])
-+
-+# This macro is only needed in autoconf <= 2.59. Newer versions of autoconf
-+# have this macro built-in.
-+
-+AC_DEFUN([AC_HEADER_STDBOOL],
-+ [AC_CACHE_CHECK([for stdbool.h that conforms to C99],
-+ [ac_cv_header_stdbool_h],
-+ [AC_TRY_COMPILE(
-+ [
-+ #include <stdbool.h>
-+ #ifndef bool
-+ "error: bool is not defined"
-+ #endif
-+ #ifndef false
-+ "error: false is not defined"
-+ #endif
-+ #if false
-+ "error: false is not 0"
-+ #endif
-+ #ifndef true
-+ "error: true is not defined"
-+ #endif
-+ #if true != 1
-+ "error: true is not 1"
-+ #endif
-+ #ifndef __bool_true_false_are_defined
-+ "error: __bool_true_false_are_defined is not defined"
-+ #endif
-+
-+ struct s { _Bool s: 1; _Bool t; } s;
-+
-+ char a[true == 1 ? 1 : -1];
-+ char b[false == 0 ? 1 : -1];
-+ char c[__bool_true_false_are_defined == 1 ? 1 : -1];
-+ char d[(bool) 0.5 == true ? 1 : -1];
-+ bool e = &s;
-+ char f[(_Bool) 0.0 == false ? 1 : -1];
-+ char g[true];
-+ char h[sizeof (_Bool)];
-+ char i[sizeof s.t];
-+ enum { j = false, k = true, l = false * true, m = true * 256 };
-+ _Bool n[m];
-+ char o[sizeof n == m * sizeof n[0] ? 1 : -1];
-+ char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
-+ #if defined __xlc__ || defined __GNUC__
-+ /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
-+ reported by James Lemley on 2005-10-05; see
-+ http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
-+ This test is not quite right, since xlc is allowed to
-+ reject this program, as the initializer for xlcbug is
-+ not one of the forms that C requires support for.
-+ However, doing the test right would require a run-time
-+ test, and that would make cross-compilation harder.
-+ Let us hope that IBM fixes the xlc bug, and also adds
-+ support for this kind of constant expression. In the
-+ meantime, this test will reject xlc, which is OK, since
-+ our stdbool.h substitute should suffice. We also test
-+ this with GCC, where it should work, to detect more
-+ quickly whether someone messes up the test in the
-+ future. */
-+ char digs[] = "0123456789";
-+ int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1);
-+ #endif
-+ /* Catch a bug in an HP-UX C compiler. See
-+ http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-+ http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
-+ */
-+ _Bool q = true;
-+ _Bool *pq = &q;
-+ ],
-+ [
-+ *pq |= q;
-+ *pq |= ! q;
-+ /* Refer to every declared value, to avoid compiler optimizations. */
-+ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
-+ + !m + !n + !o + !p + !q + !pq);
-+ ],
-+ [ac_cv_header_stdbool_h=yes],
-+ [ac_cv_header_stdbool_h=no])])
-+ AC_CHECK_TYPES([_Bool])
-+ if test $ac_cv_header_stdbool_h = yes; then
-+ AC_DEFINE(HAVE_STDBOOL_H, 1, [Define to 1 if stdbool.h conforms to C99.])
-+ fi])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/stdint_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/stdint_h.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/stdint_h.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/stdint_h.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,26 @@
-+# stdint_h.m4 serial 6
-+dnl Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl From Paul Eggert.
-+
-+# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
-+# doesn't clash with <sys/types.h>, and declares uintmax_t.
-+
-+AC_DEFUN([gl_AC_HEADER_STDINT_H],
-+[
-+ AC_CACHE_CHECK([for stdint.h], gl_cv_header_stdint_h,
-+ [AC_TRY_COMPILE(
-+ [#include <sys/types.h>
-+#include <stdint.h>],
-+ [uintmax_t i = (uintmax_t) -1; return !i;],
-+ gl_cv_header_stdint_h=yes,
-+ gl_cv_header_stdint_h=no)])
-+ if test $gl_cv_header_stdint_h = yes; then
-+ AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
-+ [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
-+ and declares uintmax_t. ])
-+ fi
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/stdint.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/stdint.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/stdint.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/stdint.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,395 @@
-+# stdint.m4 serial 31
-+dnl Copyright (C) 2001-2008 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl From Paul Eggert and Bruno Haible.
-+dnl Test whether <stdint.h> is supported or must be substituted.
-+
-+AC_DEFUN([gl_STDINT_H],
-+[
-+ AC_PREREQ(2.59)dnl
-+
-+ dnl Check for long long int and unsigned long long int.
-+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
-+ if test $ac_cv_type_long_long_int = yes; then
-+ HAVE_LONG_LONG_INT=1
-+ else
-+ HAVE_LONG_LONG_INT=0
-+ fi
-+ AC_SUBST([HAVE_LONG_LONG_INT])
-+ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
-+ if test $ac_cv_type_unsigned_long_long_int = yes; then
-+ HAVE_UNSIGNED_LONG_LONG_INT=1
-+ else
-+ HAVE_UNSIGNED_LONG_LONG_INT=0
-+ fi
-+ AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT])
-+
-+ dnl Check for <inttypes.h>.
-+ dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h.
-+ if test $ac_cv_header_inttypes_h = yes; then
-+ HAVE_INTTYPES_H=1
-+ else
-+ HAVE_INTTYPES_H=0
-+ fi
-+ AC_SUBST([HAVE_INTTYPES_H])
-+
-+ dnl Check for <sys/types.h>.
-+ dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_sys_types_h.
-+ if test $ac_cv_header_sys_types_h = yes; then
-+ HAVE_SYS_TYPES_H=1
-+ else
-+ HAVE_SYS_TYPES_H=0
-+ fi
-+ AC_SUBST([HAVE_SYS_TYPES_H])
-+
-+ gl_CHECK_NEXT_HEADERS([stdint.h])
-+ if test $ac_cv_header_stdint_h = yes; then
-+ HAVE_STDINT_H=1
-+ else
-+ HAVE_STDINT_H=0
-+ fi
-+ AC_SUBST([HAVE_STDINT_H])
-+
-+ dnl Now see whether we need a substitute <stdint.h>.
-+ if test $ac_cv_header_stdint_h = yes; then
-+ AC_CACHE_CHECK([whether stdint.h conforms to C99],
-+ [gl_cv_header_working_stdint_h],
-+ [gl_cv_header_working_stdint_h=no
-+ AC_COMPILE_IFELSE([
-+ AC_LANG_PROGRAM([[
-+#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
-+#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
-+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
-+#include <stdint.h>
-+/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>. */
-+#if !(defined WCHAR_MIN && defined WCHAR_MAX)
-+#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
-+#endif
-+]
-+gl_STDINT_INCLUDES
-+[
-+#ifdef INT8_MAX
-+int8_t a1 = INT8_MAX;
-+int8_t a1min = INT8_MIN;
-+#endif
-+#ifdef INT16_MAX
-+int16_t a2 = INT16_MAX;
-+int16_t a2min = INT16_MIN;
-+#endif
-+#ifdef INT32_MAX
-+int32_t a3 = INT32_MAX;
-+int32_t a3min = INT32_MIN;
-+#endif
-+#ifdef INT64_MAX
-+int64_t a4 = INT64_MAX;
-+int64_t a4min = INT64_MIN;
-+#endif
-+#ifdef UINT8_MAX
-+uint8_t b1 = UINT8_MAX;
-+#else
-+typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
-+#endif
-+#ifdef UINT16_MAX
-+uint16_t b2 = UINT16_MAX;
-+#endif
-+#ifdef UINT32_MAX
-+uint32_t b3 = UINT32_MAX;
-+#endif
-+#ifdef UINT64_MAX
-+uint64_t b4 = UINT64_MAX;
-+#endif
-+int_least8_t c1 = INT8_C (0x7f);
-+int_least8_t c1max = INT_LEAST8_MAX;
-+int_least8_t c1min = INT_LEAST8_MIN;
-+int_least16_t c2 = INT16_C (0x7fff);
-+int_least16_t c2max = INT_LEAST16_MAX;
-+int_least16_t c2min = INT_LEAST16_MIN;
-+int_least32_t c3 = INT32_C (0x7fffffff);
-+int_least32_t c3max = INT_LEAST32_MAX;
-+int_least32_t c3min = INT_LEAST32_MIN;
-+int_least64_t c4 = INT64_C (0x7fffffffffffffff);
-+int_least64_t c4max = INT_LEAST64_MAX;
-+int_least64_t c4min = INT_LEAST64_MIN;
-+uint_least8_t d1 = UINT8_C (0xff);
-+uint_least8_t d1max = UINT_LEAST8_MAX;
-+uint_least16_t d2 = UINT16_C (0xffff);
-+uint_least16_t d2max = UINT_LEAST16_MAX;
-+uint_least32_t d3 = UINT32_C (0xffffffff);
-+uint_least32_t d3max = UINT_LEAST32_MAX;
-+uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
-+uint_least64_t d4max = UINT_LEAST64_MAX;
-+int_fast8_t e1 = INT_FAST8_MAX;
-+int_fast8_t e1min = INT_FAST8_MIN;
-+int_fast16_t e2 = INT_FAST16_MAX;
-+int_fast16_t e2min = INT_FAST16_MIN;
-+int_fast32_t e3 = INT_FAST32_MAX;
-+int_fast32_t e3min = INT_FAST32_MIN;
-+int_fast64_t e4 = INT_FAST64_MAX;
-+int_fast64_t e4min = INT_FAST64_MIN;
-+uint_fast8_t f1 = UINT_FAST8_MAX;
-+uint_fast16_t f2 = UINT_FAST16_MAX;
-+uint_fast32_t f3 = UINT_FAST32_MAX;
-+uint_fast64_t f4 = UINT_FAST64_MAX;
-+#ifdef INTPTR_MAX
-+intptr_t g = INTPTR_MAX;
-+intptr_t gmin = INTPTR_MIN;
-+#endif
-+#ifdef UINTPTR_MAX
-+uintptr_t h = UINTPTR_MAX;
-+#endif
-+intmax_t i = INTMAX_MAX;
-+uintmax_t j = UINTMAX_MAX;
-+
-+#include <limits.h> /* for CHAR_BIT */
-+#define TYPE_MINIMUM(t) \
-+ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
-+#define TYPE_MAXIMUM(t) \
-+ ((t) ((t) 0 < (t) -1 ? (t) -1 : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
-+struct s {
-+ int check_PTRDIFF:
-+ PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
-+ && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
-+ ? 1 : -1;
-+ /* Detect bug in FreeBSD 6.0 / ia64. */
-+ int check_SIG_ATOMIC:
-+ SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
-+ && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
-+ ? 1 : -1;
-+ int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
-+ int check_WCHAR:
-+ WCHAR_MIN == TYPE_MINIMUM (wchar_t)
-+ && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
-+ ? 1 : -1;
-+ /* Detect bug in mingw. */
-+ int check_WINT:
-+ WINT_MIN == TYPE_MINIMUM (wint_t)
-+ && WINT_MAX == TYPE_MAXIMUM (wint_t)
-+ ? 1 : -1;
-+
-+ /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */
-+ int check_UINT8_C:
-+ (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
-+ int check_UINT16_C:
-+ (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
-+
-+ /* Detect bugs in OpenBSD 3.9 stdint.h. */
-+#ifdef UINT8_MAX
-+ int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
-+#endif
-+#ifdef UINT16_MAX
-+ int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
-+#endif
-+#ifdef UINT32_MAX
-+ int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
-+#endif
-+#ifdef UINT64_MAX
-+ int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
-+#endif
-+ int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
-+ int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
-+ int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
-+ int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
-+ int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
-+ int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
-+ int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
-+ int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
-+ int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
-+ int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
-+ int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
-+};
-+ ]])],
-+ [gl_cv_header_working_stdint_h=yes])])
-+ fi
-+ if test "$gl_cv_header_working_stdint_h" = yes; then
-+ STDINT_H=
-+ else
-+ dnl Check for <sys/inttypes.h>, and for
-+ dnl <sys/bitypes.h> (used in Linux libc4 >= 4.6.7 and libc5).
-+ AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h])
-+ if test $ac_cv_header_sys_inttypes_h = yes; then
-+ HAVE_SYS_INTTYPES_H=1
-+ else
-+ HAVE_SYS_INTTYPES_H=0
-+ fi
-+ AC_SUBST([HAVE_SYS_INTTYPES_H])
-+ if test $ac_cv_header_sys_bitypes_h = yes; then
-+ HAVE_SYS_BITYPES_H=1
-+ else
-+ HAVE_SYS_BITYPES_H=0
-+ fi
-+ AC_SUBST([HAVE_SYS_BITYPES_H])
-+
-+ dnl Check for <wchar.h> (missing in Linux uClibc when built without wide
-+ dnl character support).
-+ AC_CHECK_HEADERS_ONCE([wchar.h])
-+
-+ gl_STDINT_TYPE_PROPERTIES
-+ STDINT_H=stdint.h
-+ fi
-+ AC_SUBST(STDINT_H)
-+])
-+
-+dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES)
-+dnl Determine the size of each of the given types in bits.
-+AC_DEFUN([gl_STDINT_BITSIZEOF],
-+[
-+ dnl Use a shell loop, to avoid bloating configure, and
-+ dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
-+ dnl config.h.in,
-+ dnl - extra AC_SUBST calls, so that the right substitutions are made.
-+ m4_foreach_w([gltype], [$1],
-+ [AH_TEMPLATE([BITSIZEOF_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
-+ [Define to the number of bits in type ']gltype['.])])
-+ for gltype in $1 ; do
-+ AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}],
-+ [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT],
-+ [$2
-+#include <limits.h>], [result=unknown])
-+ eval gl_cv_bitsizeof_${gltype}=\$result
-+ ])
-+ eval result=\$gl_cv_bitsizeof_${gltype}
-+ if test $result = unknown; then
-+ dnl Use a nonempty default, because some compilers, such as IRIX 5 cc,
-+ dnl do a syntax check even on unused #if conditions and give an error
-+ dnl on valid C code like this:
-+ dnl #if 0
-+ dnl # if > 32
-+ dnl # endif
-+ dnl #endif
-+ result=0
-+ fi
-+ GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-+ AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result])
-+ eval BITSIZEOF_${GLTYPE}=\$result
-+ done
-+ m4_foreach_w([gltype], [$1],
-+ [AC_SUBST([BITSIZEOF_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
-+])
-+
-+dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES)
-+dnl Determine the signedness of each of the given types.
-+dnl Define HAVE_SIGNED_TYPE if type is signed.
-+AC_DEFUN([gl_CHECK_TYPES_SIGNED],
-+[
-+ dnl Use a shell loop, to avoid bloating configure, and
-+ dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
-+ dnl config.h.in,
-+ dnl - extra AC_SUBST calls, so that the right substitutions are made.
-+ m4_foreach_w([gltype], [$1],
-+ [AH_TEMPLATE([HAVE_SIGNED_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
-+ [Define to 1 if ']gltype[' is a signed integer type.])])
-+ for gltype in $1 ; do
-+ AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed],
-+ [AC_COMPILE_IFELSE(
-+ [AC_LANG_PROGRAM([$2[
-+ int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])],
-+ result=yes, result=no)
-+ eval gl_cv_type_${gltype}_signed=\$result
-+ ])
-+ eval result=\$gl_cv_type_${gltype}_signed
-+ GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-+ if test "$result" = yes; then
-+ AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], 1)
-+ eval HAVE_SIGNED_${GLTYPE}=1
-+ else
-+ eval HAVE_SIGNED_${GLTYPE}=0
-+ fi
-+ done
-+ m4_foreach_w([gltype], [$1],
-+ [AC_SUBST([HAVE_SIGNED_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
-+])
-+
-+dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES)
-+dnl Determine the suffix to use for integer constants of the given types.
-+dnl Define t_SUFFIX for each such type.
-+AC_DEFUN([gl_INTEGER_TYPE_SUFFIX],
-+[
-+ dnl Use a shell loop, to avoid bloating configure, and
-+ dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
-+ dnl config.h.in,
-+ dnl - extra AC_SUBST calls, so that the right substitutions are made.
-+ m4_foreach_w([gltype], [$1],
-+ [AH_TEMPLATE(translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX],
-+ [Define to l, ll, u, ul, ull, etc., as suitable for
-+ constants of type ']gltype['.])])
-+ for gltype in $1 ; do
-+ AC_CACHE_CHECK([for $gltype integer literal suffix],
-+ [gl_cv_type_${gltype}_suffix],
-+ [eval gl_cv_type_${gltype}_suffix=no
-+ eval result=\$gl_cv_type_${gltype}_signed
-+ if test "$result" = yes; then
-+ glsufu=
-+ else
-+ glsufu=u
-+ fi
-+ for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
-+ case $glsuf in
-+ '') gltype1='int';;
-+ l) gltype1='long int';;
-+ ll) gltype1='long long int';;
-+ i64) gltype1='__int64';;
-+ u) gltype1='unsigned int';;
-+ ul) gltype1='unsigned long int';;
-+ ull) gltype1='unsigned long long int';;
-+ ui64)gltype1='unsigned __int64';;
-+ esac
-+ AC_COMPILE_IFELSE(
-+ [AC_LANG_PROGRAM([$2[
-+ extern $gltype foo;
-+ extern $gltype1 foo;]])],
-+ [eval gl_cv_type_${gltype}_suffix=\$glsuf])
-+ eval result=\$gl_cv_type_${gltype}_suffix
-+ test "$result" != no && break
-+ done])
-+ GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-+ eval result=\$gl_cv_type_${gltype}_suffix
-+ test "$result" = no && result=
-+ eval ${GLTYPE}_SUFFIX=\$result
-+ AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], $result)
-+ done
-+ m4_foreach_w([gltype], [$1],
-+ [AC_SUBST(translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])])
-+])
-+
-+dnl gl_STDINT_INCLUDES
-+AC_DEFUN([gl_STDINT_INCLUDES],
-+[[
-+ /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-+ included before <wchar.h>. */
-+ #include <stddef.h>
-+ #include <signal.h>
-+ #if HAVE_WCHAR_H
-+ # include <stdio.h>
-+ # include <time.h>
-+ # include <wchar.h>
-+ #endif
-+]])
-+
-+dnl gl_STDINT_TYPE_PROPERTIES
-+dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t
-+dnl of interest to stdint.in.h.
-+AC_DEFUN([gl_STDINT_TYPE_PROPERTIES],
-+[
-+ gl_STDINT_BITSIZEOF([ptrdiff_t sig_atomic_t size_t wchar_t wint_t],
-+ [gl_STDINT_INCLUDES])
-+ gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t],
-+ [gl_STDINT_INCLUDES])
-+ gl_cv_type_ptrdiff_t_signed=yes
-+ gl_cv_type_size_t_signed=no
-+ gl_INTEGER_TYPE_SUFFIX([ptrdiff_t sig_atomic_t size_t wchar_t wint_t],
-+ [gl_STDINT_INCLUDES])
-+])
-+
-+dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
-+dnl Remove this when we can assume autoconf >= 2.61.
-+m4_ifdef([AC_COMPUTE_INT], [], [
-+ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
-+])
-+
-+# Hey Emacs!
-+# Local Variables:
-+# indent-tabs-mode: nil
-+# End:
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/stdio_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/stdio_h.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/stdio_h.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/stdio_h.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,125 @@
-+# stdio_h.m4 serial 13
-+dnl Copyright (C) 2007-2008 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+AC_DEFUN([gl_STDIO_H],
-+[
-+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
-+ gl_CHECK_NEXT_HEADERS([stdio.h])
-+ dnl No need to create extra modules for these functions. Everyone who uses
-+ dnl <stdio.h> likely needs them.
-+ GNULIB_FPRINTF=1
-+ GNULIB_PRINTF=1
-+ GNULIB_VFPRINTF=1
-+ GNULIB_VPRINTF=1
-+ GNULIB_FPUTC=1
-+ GNULIB_PUTC=1
-+ GNULIB_PUTCHAR=1
-+ GNULIB_FPUTS=1
-+ GNULIB_PUTS=1
-+ GNULIB_FWRITE=1
-+ dnl This ifdef is just an optimization, to avoid performing a configure
-+ dnl check whose result is not used. It does not make the test of
-+ dnl GNULIB_STDIO_H_SIGPIPE or GNULIB_SIGPIPE redundant.
-+ m4_ifdef([gl_SIGNAL_SIGPIPE], [
-+ gl_SIGNAL_SIGPIPE
-+ if test $gl_cv_header_signal_h_SIGPIPE != yes; then
-+ REPLACE_STDIO_WRITE_FUNCS=1
-+ AC_LIBOBJ([stdio-write])
-+ fi
-+ ])
-+])
-+
-+AC_DEFUN([gl_STDIO_MODULE_INDICATOR],
-+[
-+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
-+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
-+ GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
-+])
-+
-+AC_DEFUN([gl_STDIO_H_DEFAULTS],
-+[
-+ GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF])
-+ GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX])
-+ GNULIB_PRINTF=0; AC_SUBST([GNULIB_PRINTF])
-+ GNULIB_PRINTF_POSIX=0; AC_SUBST([GNULIB_PRINTF_POSIX])
-+ GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF])
-+ GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX])
-+ GNULIB_VFPRINTF=0; AC_SUBST([GNULIB_VFPRINTF])
-+ GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX])
-+ GNULIB_VPRINTF=0; AC_SUBST([GNULIB_VPRINTF])
-+ GNULIB_VPRINTF_POSIX=0; AC_SUBST([GNULIB_VPRINTF_POSIX])
-+ GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF])
-+ GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX])
-+ GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF])
-+ GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF])
-+ GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
-+ GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN])
-+ GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN])
-+ GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK])
-+ GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO])
-+ GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL])
-+ GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO])
-+ GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH])
-+ GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC])
-+ GNULIB_PUTC=0; AC_SUBST([GNULIB_PUTC])
-+ GNULIB_PUTCHAR=0; AC_SUBST([GNULIB_PUTCHAR])
-+ GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS])
-+ GNULIB_PUTS=0; AC_SUBST([GNULIB_PUTS])
-+ GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE])
-+ GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM])
-+ GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE])
-+ GNULIB_PERROR=0; AC_SUBST([GNULIB_PERROR])
-+ GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE])
-+ dnl Assume proper GNU behavior unless another module says otherwise.
-+ REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
-+ REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF])
-+ REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF])
-+ REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF])
-+ REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF])
-+ REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF])
-+ HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF])
-+ REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF])
-+ HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF])
-+ REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF])
-+ REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF])
-+ HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF])
-+ REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF])
-+ HAVE_DECL_OBSTACK_PRINTF=1; AC_SUBST([HAVE_DECL_OBSTACK_PRINTF])
-+ REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF])
-+ REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN])
-+ REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN])
-+ HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO])
-+ REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO])
-+ REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK])
-+ HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO])
-+ REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO])
-+ REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL])
-+ REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH])
-+ HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM])
-+ HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE])
-+ REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE])
-+ REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR])
-+])
-+
-+dnl Code shared by fseeko and ftello. Determine if large files are supported,
-+dnl but stdin does not start as a large file by default.
-+AC_DEFUN([gl_STDIN_LARGE_OFFSET],
-+ [
-+ AC_CACHE_CHECK([whether stdin defaults to large file offsets],
-+ [gl_cv_var_stdin_large_offset],
-+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]],
-+[[#if defined __SL64 && defined __SCLE /* cygwin */
-+ /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making
-+ fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and
-+ it is easier to do a version check than building a runtime test. */
-+# include <cygwin/version.h>
-+# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25)
-+ choke me
-+# endif
-+#endif]])],
-+ [gl_cv_var_stdin_large_offset=yes],
-+ [gl_cv_var_stdin_large_offset=no])])
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/stdlib_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/stdlib_h.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/stdlib_h.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/stdlib_h.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,47 @@
-+# stdlib_h.m4 serial 7
-+dnl Copyright (C) 2007, 2008 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+AC_DEFUN([gl_STDLIB_H],
-+[
-+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
-+ gl_CHECK_NEXT_HEADERS([stdlib.h])
-+])
-+
-+AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
-+[
-+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
-+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
-+ GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
-+])
-+
-+AC_DEFUN([gl_STDLIB_H_DEFAULTS],
-+[
-+ GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX])
-+ GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX])
-+ GNULIB_CALLOC_POSIX=0; AC_SUBST([GNULIB_CALLOC_POSIX])
-+ GNULIB_GETSUBOPT=0; AC_SUBST([GNULIB_GETSUBOPT])
-+ GNULIB_MKDTEMP=0; AC_SUBST([GNULIB_MKDTEMP])
-+ GNULIB_MKSTEMP=0; AC_SUBST([GNULIB_MKSTEMP])
-+ GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV])
-+ GNULIB_RPMATCH=0; AC_SUBST([GNULIB_RPMATCH])
-+ GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV])
-+ GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD])
-+ GNULIB_UNSETENV=0; AC_SUBST([GNULIB_UNSETENV])
-+ dnl Assume proper GNU behavior unless another module says otherwise.
-+ HAVE_CALLOC_POSIX=1; AC_SUBST([HAVE_CALLOC_POSIX])
-+ HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT])
-+ HAVE_MALLOC_POSIX=1; AC_SUBST([HAVE_MALLOC_POSIX])
-+ HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP])
-+ HAVE_REALLOC_POSIX=1; AC_SUBST([HAVE_REALLOC_POSIX])
-+ HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH])
-+ HAVE_SETENV=1; AC_SUBST([HAVE_SETENV])
-+ HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD])
-+ HAVE_UNSETENV=1; AC_SUBST([HAVE_UNSETENV])
-+ REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP])
-+ REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV])
-+ REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD])
-+ VOID_UNSETENV=0; AC_SUBST([VOID_UNSETENV])
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/sys_socket_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/sys_socket_h.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/sys_socket_h.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/sys_socket_h.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,113 @@
-+# sys_socket_h.m4 serial 8
-+dnl Copyright (C) 2005-2008 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl From Simon Josefsson.
-+
-+AC_DEFUN([gl_HEADER_SYS_SOCKET],
-+[
-+ AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS])
-+ AC_REQUIRE([AC_C_INLINE])
-+
-+ AC_CACHE_CHECK([whether <sys/socket.h> is self-contained],
-+ [gl_cv_header_sys_socket_h_selfcontained],
-+ [
-+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[]])],
-+ [gl_cv_header_sys_socket_h_selfcontained=yes],
-+ [gl_cv_header_sys_socket_h_selfcontained=no])
-+ ])
-+ if test $gl_cv_header_sys_socket_h_selfcontained = yes; then
-+ SYS_SOCKET_H=''
-+ dnl If the shutdown function exists, <sys/socket.h> should define
-+ dnl SHUT_RD, SHUT_WR, SHUT_RDWR.
-+ AC_CHECK_FUNCS([shutdown])
-+ if test $ac_cv_func_shutdown = yes; then
-+ AC_CACHE_CHECK([whether <sys/socket.h> defines the SHUT_* macros],
-+ [gl_cv_header_sys_socket_h_shut],
-+ [
-+ AC_COMPILE_IFELSE(
-+ [AC_LANG_PROGRAM([[#include <sys/socket.h>]],
-+ [[int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };]])],
-+ [gl_cv_header_sys_socket_h_shut=yes],
-+ [gl_cv_header_sys_socket_h_shut=no])
-+ ])
-+ if test $gl_cv_header_sys_socket_h_shut = no; then
-+ SYS_SOCKET_H='sys/socket.h'
-+ fi
-+ fi
-+ else
-+ SYS_SOCKET_H='sys/socket.h'
-+ fi
-+ if test -n "$SYS_SOCKET_H"; then
-+ dnl Check prerequisites of the <sys/socket.h> replacement.
-+ gl_CHECK_NEXT_HEADERS([sys/socket.h])
-+ if test $ac_cv_header_sys_socket_h = yes; then
-+ HAVE_SYS_SOCKET_H=1
-+ HAVE_WS2TCPIP_H=0
-+ else
-+ HAVE_SYS_SOCKET_H=0
-+ dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make
-+ dnl the check for those headers unconditional; yet cygwin reports
-+ dnl that the headers are present but cannot be compiled (since on
-+ dnl cygwin, all socket information should come from sys/socket.h).
-+ AC_CHECK_HEADERS([ws2tcpip.h])
-+ if test $ac_cv_header_ws2tcpip_h = yes; then
-+ HAVE_WS2TCPIP_H=1
-+ else
-+ HAVE_WS2TCPIP_H=0
-+ fi
-+ fi
-+ gl_PREREQ_SYS_H_WINSOCK2
-+ AC_SUBST([HAVE_SYS_SOCKET_H])
-+ AC_SUBST([HAVE_WS2TCPIP_H])
-+ fi
-+ AC_SUBST([SYS_SOCKET_H])
-+])
-+
-+# Common prerequisites of of the <sys/socket.h> replacement and of the
-+# <sys/select.h> replacement.
-+# Sets and substitutes HAVE_WINSOCK2_H.
-+AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2],
-+[
-+ AC_CHECK_HEADERS_ONCE([sys/socket.h])
-+ if test $ac_cv_header_sys_socket_h != yes; then
-+ dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make
-+ dnl the check for those headers unconditional; yet cygwin reports
-+ dnl that the headers are present but cannot be compiled (since on
-+ dnl cygwin, all socket information should come from sys/socket.h).
-+ AC_CHECK_HEADERS([winsock2.h])
-+ fi
-+ if test "$ac_cv_header_winsock2_h" = yes; then
-+ HAVE_WINSOCK2_H=1
-+ else
-+ HAVE_WINSOCK2_H=0
-+ fi
-+ AC_SUBST([HAVE_WINSOCK2_H])
-+])
-+
-+AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR],
-+[
-+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
-+ AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS])
-+ GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
-+ gl_MODULE_INDICATOR([$1])
-+])
-+
-+AC_DEFUN([gl_SYS_SOCKET_H_DEFAULTS],
-+[
-+ GNULIB_SOCKET=0; AC_SUBST([GNULIB_SOCKET])
-+ GNULIB_CONNECT=0; AC_SUBST([GNULIB_CONNECT])
-+ GNULIB_ACCEPT=0; AC_SUBST([GNULIB_ACCEPT])
-+ GNULIB_BIND=0; AC_SUBST([GNULIB_BIND])
-+ GNULIB_GETPEERNAME=0; AC_SUBST([GNULIB_GETPEERNAME])
-+ GNULIB_GETSOCKNAME=0; AC_SUBST([GNULIB_GETSOCKNAME])
-+ GNULIB_GETSOCKOPT=0; AC_SUBST([GNULIB_GETSOCKOPT])
-+ GNULIB_LISTEN=0; AC_SUBST([GNULIB_LISTEN])
-+ GNULIB_RECV=0; AC_SUBST([GNULIB_RECV])
-+ GNULIB_SEND=0; AC_SUBST([GNULIB_SEND])
-+ GNULIB_RECVFROM=0; AC_SUBST([GNULIB_RECVFROM])
-+ GNULIB_SENDTO=0; AC_SUBST([GNULIB_SENDTO])
-+ GNULIB_SETSOCKOPT=0; AC_SUBST([GNULIB_SETSOCKOPT])
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/unistd_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/unistd_h.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/unistd_h.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/unistd_h.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,70 @@
-+# unistd_h.m4 serial 13
-+dnl Copyright (C) 2006-2008 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl Written by Simon Josefsson, Bruno Haible.
-+
-+AC_DEFUN([gl_UNISTD_H],
-+[
-+ dnl Use AC_REQUIRE here, so that the default behavior below is expanded
-+ dnl once only, before all statements that occur in other macros.
-+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-+
-+ gl_CHECK_NEXT_HEADERS([unistd.h])
-+
-+ AC_CHECK_HEADERS_ONCE([unistd.h])
-+ if test $ac_cv_header_unistd_h = yes; then
-+ HAVE_UNISTD_H=1
-+ else
-+ HAVE_UNISTD_H=0
-+ fi
-+ AC_SUBST([HAVE_UNISTD_H])
-+])
-+
-+AC_DEFUN([gl_UNISTD_MODULE_INDICATOR],
-+[
-+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
-+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-+ GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
-+])
-+
-+AC_DEFUN([gl_UNISTD_H_DEFAULTS],
-+[
-+ GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN])
-+ GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2])
-+ GNULIB_ENVIRON=0; AC_SUBST([GNULIB_ENVIRON])
-+ GNULIB_FCHDIR=0; AC_SUBST([GNULIB_FCHDIR])
-+ GNULIB_FSYNC=0; AC_SUBST([GNULIB_FSYNC])
-+ GNULIB_FTRUNCATE=0; AC_SUBST([GNULIB_FTRUNCATE])
-+ GNULIB_GETCWD=0; AC_SUBST([GNULIB_GETCWD])
-+ GNULIB_GETDTABLESIZE=0; AC_SUBST([GNULIB_GETDTABLESIZE])
-+ GNULIB_GETLOGIN_R=0; AC_SUBST([GNULIB_GETLOGIN_R])
-+ GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE])
-+ GNULIB_LCHOWN=0; AC_SUBST([GNULIB_LCHOWN])
-+ GNULIB_LSEEK=0; AC_SUBST([GNULIB_LSEEK])
-+ GNULIB_READLINK=0; AC_SUBST([GNULIB_READLINK])
-+ GNULIB_SLEEP=0; AC_SUBST([GNULIB_SLEEP])
-+ GNULIB_UNISTD_H_SIGPIPE=0; AC_SUBST([GNULIB_UNISTD_H_SIGPIPE])
-+ GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE])
-+ dnl Assume proper GNU behavior unless another module says otherwise.
-+ HAVE_DUP2=1; AC_SUBST([HAVE_DUP2])
-+ HAVE_FSYNC=1; AC_SUBST([HAVE_FSYNC])
-+ HAVE_FTRUNCATE=1; AC_SUBST([HAVE_FTRUNCATE])
-+ HAVE_GETDTABLESIZE=1; AC_SUBST([HAVE_GETDTABLESIZE])
-+ HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE])
-+ HAVE_READLINK=1; AC_SUBST([HAVE_READLINK])
-+ HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP])
-+ HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON])
-+ HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R])
-+ HAVE_OS_H=0; AC_SUBST([HAVE_OS_H])
-+ HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H])
-+ REPLACE_CHOWN=0; AC_SUBST([REPLACE_CHOWN])
-+ REPLACE_FCHDIR=0; AC_SUBST([REPLACE_FCHDIR])
-+ REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD])
-+ REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE])
-+ REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN])
-+ REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK])
-+ REPLACE_WRITE=0; AC_SUBST([REPLACE_WRITE])
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/vasnprintf.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/vasnprintf.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/vasnprintf.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/vasnprintf.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,260 @@
-+# vasnprintf.m4 serial 25
-+dnl Copyright (C) 2002-2004, 2006-2008 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+AC_DEFUN([gl_FUNC_VASNPRINTF],
-+[
-+ AC_CHECK_FUNCS_ONCE([vasnprintf])
-+ if test $ac_cv_func_vasnprintf = no; then
-+ gl_REPLACE_VASNPRINTF
-+ fi
-+])
-+
-+AC_DEFUN([gl_REPLACE_VASNPRINTF],
-+[
-+ AC_CHECK_FUNCS_ONCE([vasnprintf])
-+ AC_LIBOBJ([vasnprintf])
-+ AC_LIBOBJ([printf-args])
-+ AC_LIBOBJ([printf-parse])
-+ AC_LIBOBJ([asnprintf])
-+ if test $ac_cv_func_vasnprintf = yes; then
-+ AC_DEFINE([REPLACE_VASNPRINTF], 1,
-+ [Define if vasnprintf exists but is overridden by gnulib.])
-+ fi
-+ gl_PREREQ_PRINTF_ARGS
-+ gl_PREREQ_PRINTF_PARSE
-+ gl_PREREQ_VASNPRINTF
-+ gl_PREREQ_ASNPRINTF
-+])
-+
-+# Prequisites of lib/printf-args.h, lib/printf-args.c.
-+AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
-+[
-+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
-+ AC_REQUIRE([gt_TYPE_WCHAR_T])
-+ AC_REQUIRE([gt_TYPE_WINT_T])
-+])
-+
-+# Prequisites of lib/printf-parse.h, lib/printf-parse.c.
-+AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
-+[
-+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
-+ AC_REQUIRE([gt_TYPE_WCHAR_T])
-+ AC_REQUIRE([gt_TYPE_WINT_T])
-+ AC_REQUIRE([AC_TYPE_SIZE_T])
-+ AC_CHECK_TYPE([ptrdiff_t], ,
-+ [AC_DEFINE([ptrdiff_t], [long],
-+ [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
-+ ])
-+ AC_REQUIRE([gt_AC_TYPE_INTMAX_T])
-+])
-+
-+# Prerequisites of lib/vasnprintf.c.
-+AC_DEFUN([gl_PREREQ_VASNPRINTF],
-+[
-+ AC_REQUIRE([AC_FUNC_ALLOCA])
-+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
-+ AC_REQUIRE([gt_TYPE_WCHAR_T])
-+ AC_REQUIRE([gt_TYPE_WINT_T])
-+ AC_CHECK_FUNCS(snprintf wcslen)
-+ dnl Use the _snprintf function only if it is declared (because on NetBSD it
-+ dnl is defined as a weak alias of snprintf; we prefer to use the latter).
-+ AC_CHECK_DECLS([_snprintf], , , [#include <stdio.h>])
-+])
-+
-+# Extra prerequisites of lib/vasnprintf.c for supporting 'long double'
-+# arguments.
-+AC_DEFUN([gl_PREREQ_VASNPRINTF_LONG_DOUBLE],
-+[
-+ AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
-+ case "$gl_cv_func_printf_long_double" in
-+ *yes)
-+ ;;
-+ *)
-+ AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], 1,
-+ [Define if the vasnprintf implementation needs special code for
-+ 'long double' arguments.])
-+ ;;
-+ esac
-+])
-+
-+# Extra prerequisites of lib/vasnprintf.c for supporting infinite 'double'
-+# arguments.
-+AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE],
-+[
-+ AC_REQUIRE([gl_PRINTF_INFINITE])
-+ case "$gl_cv_func_printf_infinite" in
-+ *yes)
-+ ;;
-+ *)
-+ AC_DEFINE([NEED_PRINTF_INFINITE_DOUBLE], 1,
-+ [Define if the vasnprintf implementation needs special code for
-+ infinite 'double' arguments.])
-+ ;;
-+ esac
-+])
-+
-+# Extra prerequisites of lib/vasnprintf.c for supporting infinite 'long double'
-+# arguments.
-+AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE],
-+[
-+ AC_REQUIRE([gl_PRINTF_INFINITE_LONG_DOUBLE])
-+ dnl There is no need to set NEED_PRINTF_INFINITE_LONG_DOUBLE if
-+ dnl NEED_PRINTF_LONG_DOUBLE is already set.
-+ AC_REQUIRE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE])
-+ case "$gl_cv_func_printf_long_double" in
-+ *yes)
-+ case "$gl_cv_func_printf_infinite_long_double" in
-+ *yes)
-+ ;;
-+ *)
-+ AC_DEFINE([NEED_PRINTF_INFINITE_LONG_DOUBLE], 1,
-+ [Define if the vasnprintf implementation needs special code for
-+ infinite 'long double' arguments.])
-+ ;;
-+ esac
-+ ;;
-+ esac
-+])
-+
-+# Extra prerequisites of lib/vasnprintf.c for supporting the 'a' directive.
-+AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_A],
-+[
-+ AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
-+ case "$gl_cv_func_printf_directive_a" in
-+ *yes)
-+ ;;
-+ *)
-+ AC_DEFINE([NEED_PRINTF_DIRECTIVE_A], 1,
-+ [Define if the vasnprintf implementation needs special code for
-+ the 'a' and 'A' directives.])
-+ AC_CHECK_FUNCS([nl_langinfo])
-+ ;;
-+ esac
-+])
-+
-+# Extra prerequisites of lib/vasnprintf.c for supporting the 'F' directive.
-+AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_F],
-+[
-+ AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
-+ case "$gl_cv_func_printf_directive_f" in
-+ *yes)
-+ ;;
-+ *)
-+ AC_DEFINE([NEED_PRINTF_DIRECTIVE_F], 1,
-+ [Define if the vasnprintf implementation needs special code for
-+ the 'F' directive.])
-+ ;;
-+ esac
-+])
-+
-+# Extra prerequisites of lib/vasnprintf.c for supporting the ' flag.
-+AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_GROUPING],
-+[
-+ AC_REQUIRE([gl_PRINTF_FLAG_GROUPING])
-+ case "$gl_cv_func_printf_flag_grouping" in
-+ *yes)
-+ ;;
-+ *)
-+ AC_DEFINE([NEED_PRINTF_FLAG_GROUPING], 1,
-+ [Define if the vasnprintf implementation needs special code for the
-+ ' flag.])
-+ ;;
-+ esac
-+])
-+
-+# Extra prerequisites of lib/vasnprintf.c for supporting the '-' flag.
-+AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST],
-+[
-+ AC_REQUIRE([gl_PRINTF_FLAG_LEFTADJUST])
-+ case "$gl_cv_func_printf_flag_leftadjust" in
-+ *yes)
-+ ;;
-+ *)
-+ AC_DEFINE([NEED_PRINTF_FLAG_LEFTADJUST], 1,
-+ [Define if the vasnprintf implementation needs special code for the
-+ '-' flag.])
-+ ;;
-+ esac
-+])
-+
-+# Extra prerequisites of lib/vasnprintf.c for supporting the 0 flag.
-+AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_ZERO],
-+[
-+ AC_REQUIRE([gl_PRINTF_FLAG_ZERO])
-+ case "$gl_cv_func_printf_flag_zero" in
-+ *yes)
-+ ;;
-+ *)
-+ AC_DEFINE([NEED_PRINTF_FLAG_ZERO], 1,
-+ [Define if the vasnprintf implementation needs special code for the
-+ 0 flag.])
-+ ;;
-+ esac
-+])
-+
-+# Extra prerequisites of lib/vasnprintf.c for supporting large precisions.
-+AC_DEFUN([gl_PREREQ_VASNPRINTF_PRECISION],
-+[
-+ AC_REQUIRE([gl_PRINTF_PRECISION])
-+ case "$gl_cv_func_printf_precision" in
-+ *yes)
-+ ;;
-+ *)
-+ AC_DEFINE([NEED_PRINTF_UNBOUNDED_PRECISION], 1,
-+ [Define if the vasnprintf implementation needs special code for
-+ supporting large precisions without arbitrary bounds.])
-+ AC_DEFINE([NEED_PRINTF_DOUBLE], 1,
-+ [Define if the vasnprintf implementation needs special code for
-+ 'double' arguments.])
-+ AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], 1,
-+ [Define if the vasnprintf implementation needs special code for
-+ 'long double' arguments.])
-+ ;;
-+ esac
-+])
-+
-+# Extra prerequisites of lib/vasnprintf.c for surviving out-of-memory
-+# conditions.
-+AC_DEFUN([gl_PREREQ_VASNPRINTF_ENOMEM],
-+[
-+ AC_REQUIRE([gl_PRINTF_ENOMEM])
-+ case "$gl_cv_func_printf_enomem" in
-+ *yes)
-+ ;;
-+ *)
-+ AC_DEFINE([NEED_PRINTF_ENOMEM], 1,
-+ [Define if the vasnprintf implementation needs special code for
-+ surviving out-of-memory conditions.])
-+ AC_DEFINE([NEED_PRINTF_DOUBLE], 1,
-+ [Define if the vasnprintf implementation needs special code for
-+ 'double' arguments.])
-+ AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], 1,
-+ [Define if the vasnprintf implementation needs special code for
-+ 'long double' arguments.])
-+ ;;
-+ esac
-+])
-+
-+# Prerequisites of lib/vasnprintf.c including all extras for POSIX compliance.
-+AC_DEFUN([gl_PREREQ_VASNPRINTF_WITH_EXTRAS],
-+[
-+ AC_REQUIRE([gl_PREREQ_VASNPRINTF])
-+ gl_PREREQ_VASNPRINTF_LONG_DOUBLE
-+ gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE
-+ gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE
-+ gl_PREREQ_VASNPRINTF_DIRECTIVE_A
-+ gl_PREREQ_VASNPRINTF_DIRECTIVE_F
-+ gl_PREREQ_VASNPRINTF_FLAG_GROUPING
-+ gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST
-+ gl_PREREQ_VASNPRINTF_FLAG_ZERO
-+ gl_PREREQ_VASNPRINTF_PRECISION
-+ gl_PREREQ_VASNPRINTF_ENOMEM
-+])
-+
-+# Prerequisites of lib/asnprintf.c.
-+AC_DEFUN([gl_PREREQ_ASNPRINTF],
-+[
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/wchar.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/wchar.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/wchar.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/wchar.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,69 @@
-+dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
-+
-+dnl Copyright (C) 2007-2008 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl Written by Eric Blake.
-+
-+# wchar.m4 serial 6
-+
-+AC_DEFUN([gl_WCHAR_H],
-+[
-+ AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
-+ AC_CACHE_CHECK([whether <wchar.h> is standalone],
-+ [gl_cv_header_wchar_h_standalone],
-+ [AC_COMPILE_IFELSE([[#include <wchar.h>
-+wchar_t w;]],
-+ [gl_cv_header_wchar_h_standalone=yes],
-+ [gl_cv_header_wchar_h_standalone=no])])
-+
-+ AC_REQUIRE([gt_TYPE_WINT_T])
-+ if test $gt_cv_c_wint_t = yes; then
-+ HAVE_WINT_T=1
-+ else
-+ HAVE_WINT_T=0
-+ fi
-+ AC_SUBST([HAVE_WINT_T])
-+
-+ if test $gl_cv_header_wchar_h_standalone != yes || test $gt_cv_c_wint_t != yes; then
-+ WCHAR_H=wchar.h
-+ fi
-+
-+ dnl Prepare for creating substitute <wchar.h>.
-+ dnl Do it always: WCHAR_H may be empty here but can be set later.
-+ dnl Check for <wchar.h> (missing in Linux uClibc when built without wide
-+ dnl character support).
-+ AC_CHECK_HEADERS_ONCE([wchar.h])
-+ if test $ac_cv_header_wchar_h = yes; then
-+ HAVE_WCHAR_H=1
-+ else
-+ HAVE_WCHAR_H=0
-+ fi
-+ AC_SUBST([HAVE_WCHAR_H])
-+ gl_CHECK_NEXT_HEADERS([wchar.h])
-+])
-+
-+dnl Unconditionally enables the replacement of <wchar.h>.
-+AC_DEFUN([gl_REPLACE_WCHAR_H],
-+[
-+ AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
-+ WCHAR_H=wchar.h
-+])
-+
-+AC_DEFUN([gl_WCHAR_MODULE_INDICATOR],
-+[
-+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
-+ AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
-+ GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
-+])
-+
-+AC_DEFUN([gl_WCHAR_H_DEFAULTS],
-+[
-+ GNULIB_WCWIDTH=0; AC_SUBST([GNULIB_WCWIDTH])
-+ dnl Assume proper GNU behavior unless another module says otherwise.
-+ HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH])
-+ REPLACE_WCWIDTH=0; AC_SUBST([REPLACE_WCWIDTH])
-+ WCHAR_H=''; AC_SUBST([WCHAR_H])
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/wchar_t.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/wchar_t.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/wchar_t.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/wchar_t.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,20 @@
-+# wchar_t.m4 serial 1 (gettext-0.12)
-+dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl From Bruno Haible.
-+dnl Test whether <stddef.h> has the 'wchar_t' type.
-+dnl Prerequisite: AC_PROG_CC
-+
-+AC_DEFUN([gt_TYPE_WCHAR_T],
-+[
-+ AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t,
-+ [AC_TRY_COMPILE([#include <stddef.h>
-+ wchar_t foo = (wchar_t)'\0';], ,
-+ gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)])
-+ if test $gt_cv_c_wchar_t = yes; then
-+ AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.])
-+ fi
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/wint_t.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/wint_t.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/wint_t.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/wint_t.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,28 @@
-+# wint_t.m4 serial 2 (gettext-0.17)
-+dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl From Bruno Haible.
-+dnl Test whether <wchar.h> has the 'wint_t' type.
-+dnl Prerequisite: AC_PROG_CC
-+
-+AC_DEFUN([gt_TYPE_WINT_T],
-+[
-+ AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t,
-+ [AC_TRY_COMPILE([
-+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-+ <wchar.h>.
-+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
-+ before <wchar.h>. */
-+#include <stddef.h>
-+#include <stdio.h>
-+#include <time.h>
-+#include <wchar.h>
-+ wint_t foo = (wchar_t)'\0';], ,
-+ gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)])
-+ if test $gt_cv_c_wint_t = yes; then
-+ AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.])
-+ fi
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/m4/xsize.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/xsize.m4
---- gtk-vnc-0.3.7.dan3/gnulib/m4/xsize.m4 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/m4/xsize.m4 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,13 @@
-+# xsize.m4 serial 3
-+dnl Copyright (C) 2003-2004 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+AC_DEFUN([gl_XSIZE],
-+[
-+ dnl Prerequisites of lib/xsize.h.
-+ AC_REQUIRE([gl_SIZE_MAX])
-+ AC_REQUIRE([AC_C_INLINE])
-+ AC_CHECK_HEADERS(stdint.h)
-+])
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/dummy.c gtk-vnc-0.3.7.gnulib/gnulib/tests/dummy.c
---- gtk-vnc-0.3.7.dan3/gnulib/tests/dummy.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/dummy.c 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,42 @@
-+/* A dummy file, to prevent empty libraries from breaking builds.
-+ Copyright (C) 2004, 2007 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Some systems, reportedly OpenBSD and Mac OS X, refuse to create
-+ libraries without any object files. You might get an error like:
-+
-+ > ar cru .libs/libgl.a
-+ > ar: no archive members specified
-+
-+ Compiling this file, and adding its object file to the library, will
-+ prevent the library from being empty. */
-+
-+/* Some systems, such as Solaris with cc 5.0, refuse to work with libraries
-+ that don't export any symbol. You might get an error like:
-+
-+ > cc ... libgnu.a
-+ > ild: (bad file) garbled symbol table in archive ../gllib/libgnu.a
-+
-+ Compiling this file, and adding its object file to the library, will
-+ prevent the library from exporting no symbols. */
-+
-+#ifdef __sun
-+/* This declaration ensures that the library will export at least 1 symbol. */
-+int gl_dummy_symbol;
-+#else
-+/* This declaration is solely to ensure that after preprocessing
-+ this file is never empty. */
-+typedef int dummy;
-+#endif
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/intprops.h gtk-vnc-0.3.7.gnulib/gnulib/tests/intprops.h
---- gtk-vnc-0.3.7.dan3/gnulib/tests/intprops.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/intprops.h 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,77 @@
-+/* intprops.h -- properties of integer types
-+
-+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Paul Eggert. */
-+
-+#include <limits.h>
-+
-+/* The extra casts in the following macros work around compiler bugs,
-+ e.g., in Cray C 5.0.3.0. */
-+
-+/* True if the arithmetic type T is an integer type. bool counts as
-+ an integer. */
-+#define TYPE_IS_INTEGER(t) ((t) 1.5 == 1)
-+
-+/* True if negative values of the signed integer type T use two's
-+ complement, ones' complement, or signed magnitude representation,
-+ respectively. Much GNU code assumes two's complement, but some
-+ people like to be portable to all possible C hosts. */
-+#define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1)
-+#define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0)
-+#define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1)
-+
-+/* True if the arithmetic type T is signed. */
-+#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
-+
-+/* The maximum and minimum values for the integer type T. These
-+ macros have undefined behavior if T is signed and has padding bits.
-+ If this is a problem for you, please let us know how to fix it for
-+ your host. */
-+#define TYPE_MINIMUM(t) \
-+ ((t) (! TYPE_SIGNED (t) \
-+ ? (t) 0 \
-+ : TYPE_SIGNED_MAGNITUDE (t) \
-+ ? ~ (t) 0 \
-+ : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
-+#define TYPE_MAXIMUM(t) \
-+ ((t) (! TYPE_SIGNED (t) \
-+ ? (t) -1 \
-+ : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
-+
-+/* Return zero if T can be determined to be an unsigned type.
-+ Otherwise, return 1.
-+ When compiling with GCC, INT_STRLEN_BOUND uses this macro to obtain a
-+ tighter bound. Otherwise, it overestimates the true bound by one byte
-+ when applied to unsigned types of size 2, 4, 16, ... bytes.
-+ The symbol signed_type_or_expr__ is private to this header file. */
-+#if __GNUC__ >= 2
-+# define signed_type_or_expr__(t) TYPE_SIGNED (__typeof__ (t))
-+#else
-+# define signed_type_or_expr__(t) 1
-+#endif
-+
-+/* Bound on length of the string representing an integer type or expression T.
-+ Subtract 1 for the sign bit if T is signed; log10 (2.0) < 146/485;
-+ add 1 for integer division truncation; add 1 more for a minus sign
-+ if needed. */
-+#define INT_STRLEN_BOUND(t) \
-+ ((sizeof (t) * CHAR_BIT - signed_type_or_expr__ (t)) * 146 / 485 \
-+ + signed_type_or_expr__ (t) + 1)
-+
-+/* Bound on buffer size needed to represent an integer type or expression T,
-+ including the terminating null. */
-+#define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1)
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/Makefile.am gtk-vnc-0.3.7.gnulib/gnulib/tests/Makefile.am
---- gtk-vnc-0.3.7.dan3/gnulib/tests/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/Makefile.am 2008-10-09 15:24:54.000000000 +0100
-@@ -0,0 +1,210 @@
-+## DO NOT EDIT! GENERATED AUTOMATICALLY!
-+## Process this file with automake to produce Makefile.in.
-+# Copyright (C) 2002-2008 Free Software Foundation, Inc.
-+#
-+# This file is free software, distributed under the terms of the GNU
-+# General Public License. As a special exception to the GNU General
-+# Public License, this file may be distributed as part of a program
-+# that contains a configuration script generated by Autoconf, under
-+# the same distribution terms as the rest of that program.
-+#
-+# Generated by gnulib-tool.
-+
-+AUTOMAKE_OPTIONS = 1.5 foreign
-+
-+SUBDIRS =
-+TESTS =
-+TESTS_ENVIRONMENT =
-+noinst_PROGRAMS =
-+check_PROGRAMS =
-+noinst_HEADERS =
-+noinst_LIBRARIES =
-+check_LIBRARIES = libtests.a
-+EXTRA_DIST =
-+BUILT_SOURCES =
-+SUFFIXES =
-+MOSTLYCLEANFILES = core *.stackdump
-+MOSTLYCLEANDIRS =
-+CLEANFILES =
-+DISTCLEANFILES =
-+MAINTAINERCLEANFILES =
-+
-+AM_CPPFLAGS = \
-+ -I. -I$(srcdir) \
-+ -I../.. -I$(srcdir)/../.. \
-+ -I../../gnulib/lib -I$(srcdir)/../../gnulib/lib
-+
-+LDADD = libtests.a ../../gnulib/lib/libgnu.la libtests.a $(LIBTESTS_LIBDEPS)
-+
-+libtests_a_SOURCES =
-+libtests_a_LIBADD = $(gltests_LIBOBJS)
-+libtests_a_DEPENDENCIES = $(gltests_LIBOBJS)
-+EXTRA_libtests_a_SOURCES =
-+AM_LIBTOOLFLAGS = --preserve-dup-deps
-+
-+## begin gnulib module alloca-opt-tests
-+
-+TESTS += test-alloca-opt
-+check_PROGRAMS += test-alloca-opt
-+
-+EXTRA_DIST += test-alloca-opt.c
-+
-+## end gnulib module alloca-opt-tests
-+
-+## begin gnulib module arpa_inet-tests
-+
-+TESTS += test-arpa_inet
-+check_PROGRAMS += test-arpa_inet
-+
-+EXTRA_DIST += test-arpa_inet.c
-+
-+## end gnulib module arpa_inet-tests
-+
-+## begin gnulib module errno-tests
-+
-+TESTS += test-errno
-+check_PROGRAMS += test-errno
-+
-+EXTRA_DIST += test-errno.c
-+
-+## end gnulib module errno-tests
-+
-+## begin gnulib module getaddrinfo-tests
-+
-+TESTS += test-getaddrinfo
-+check_PROGRAMS += test-getaddrinfo
-+test_getaddrinfo_LDADD = $(LDADD) @LIBINTL@
-+
-+EXTRA_DIST += test-getaddrinfo.c
-+
-+## end gnulib module getaddrinfo-tests
-+
-+## begin gnulib module intprops
-+
-+
-+EXTRA_DIST += intprops.h
-+
-+## end gnulib module intprops
-+
-+## begin gnulib module netinet_in-tests
-+
-+TESTS += test-netinet_in
-+check_PROGRAMS += test-netinet_in
-+
-+EXTRA_DIST += test-netinet_in.c
-+
-+## end gnulib module netinet_in-tests
-+
-+## begin gnulib module snprintf-tests
-+
-+TESTS += test-snprintf
-+check_PROGRAMS += test-snprintf
-+
-+EXTRA_DIST += test-snprintf.c
-+
-+## end gnulib module snprintf-tests
-+
-+## begin gnulib module stdbool-tests
-+
-+TESTS += test-stdbool
-+check_PROGRAMS += test-stdbool
-+
-+EXTRA_DIST += test-stdbool.c
-+
-+## end gnulib module stdbool-tests
-+
-+## begin gnulib module stdint-tests
-+
-+TESTS += test-stdint
-+check_PROGRAMS += test-stdint
-+
-+EXTRA_DIST += test-stdint.c
-+
-+## end gnulib module stdint-tests
-+
-+## begin gnulib module stdio-tests
-+
-+TESTS += test-stdio
-+check_PROGRAMS += test-stdio
-+
-+EXTRA_DIST += test-stdio.c
-+
-+## end gnulib module stdio-tests
-+
-+## begin gnulib module stdlib-tests
-+
-+TESTS += test-stdlib
-+check_PROGRAMS += test-stdlib
-+
-+EXTRA_DIST += test-stdlib.c
-+
-+## end gnulib module stdlib-tests
-+
-+## begin gnulib module sys_socket-tests
-+
-+TESTS += test-sys_socket
-+check_PROGRAMS += test-sys_socket
-+
-+EXTRA_DIST += test-sys_socket.c
-+
-+## end gnulib module sys_socket-tests
-+
-+## begin gnulib module unistd-tests
-+
-+TESTS += test-unistd
-+check_PROGRAMS += test-unistd
-+
-+EXTRA_DIST += test-unistd.c
-+
-+## end gnulib module unistd-tests
-+
-+## begin gnulib module vasnprintf-tests
-+
-+TESTS += test-vasnprintf
-+check_PROGRAMS += test-vasnprintf
-+
-+EXTRA_DIST += test-vasnprintf.c
-+
-+## end gnulib module vasnprintf-tests
-+
-+## begin gnulib module vc-list-files-tests
-+
-+TESTS += test-vc-list-files-git.sh
-+TESTS += test-vc-list-files-cvs.sh
-+TESTS_ENVIRONMENT += PATH='$(abs_aux_dir)':"$$PATH"
-+EXTRA_DIST += test-vc-list-files-git.sh test-vc-list-files-cvs.sh
-+
-+## end gnulib module vc-list-files-tests
-+
-+## begin gnulib module verify
-+
-+libtests_a_SOURCES += verify.h
-+
-+## end gnulib module verify
-+
-+## begin gnulib module wchar-tests
-+
-+TESTS += test-wchar
-+check_PROGRAMS += test-wchar
-+
-+EXTRA_DIST += test-wchar.c
-+
-+## end gnulib module wchar-tests
-+
-+## begin gnulib module dummy
-+
-+libtests_a_SOURCES += dummy.c
-+
-+## end gnulib module dummy
-+
-+# Clean up after Solaris cc.
-+clean-local:
-+ rm -rf SunWS_cache
-+
-+mostlyclean-local: mostlyclean-generic
-+ @for dir in '' $(MOSTLYCLEANDIRS); do \
-+ if test -n "$$dir" && test -d $$dir; then \
-+ echo "rmdir $$dir"; rmdir $$dir; \
-+ fi; \
-+ done; \
-+ :
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-alloca-opt.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-alloca-opt.c
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-alloca-opt.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-alloca-opt.c 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,62 @@
-+/* Test of optional automatic memory allocation.
-+ Copyright (C) 2005, 2007 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
-+
-+#include <config.h>
-+
-+#include <alloca.h>
-+
-+#if HAVE_ALLOCA
-+
-+static void
-+do_allocation (int n)
-+{
-+ void *ptr = alloca (n);
-+ (void) ptr;
-+}
-+
-+void (*func) (int) = do_allocation;
-+
-+#endif
-+
-+int
-+main ()
-+{
-+#if HAVE_ALLOCA
-+ int i;
-+
-+ /* Repeat a lot of times, to make sure there's no memory leak. */
-+ for (i = 0; i < 100000; i++)
-+ {
-+ /* Try various values.
-+ n = 0 gave a crash on Alpha with gcc-2.5.8.
-+ Some versions of MacOS X have a stack size limit of 512 KB. */
-+ func (34);
-+ func (134);
-+ func (399);
-+ func (510823);
-+ func (129321);
-+ func (0);
-+ func (4070);
-+ func (4095);
-+ func (1);
-+ func (16582);
-+ }
-+#endif
-+
-+ return 0;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-arpa_inet.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-arpa_inet.c
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-arpa_inet.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-arpa_inet.c 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,27 @@
-+/* Test of <arpa/inet.h> substitute.
-+ Copyright (C) 2007 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
-+
-+#include <config.h>
-+
-+#include <arpa/inet.h>
-+
-+int
-+main ()
-+{
-+ return 0;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-errno.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-errno.c
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-errno.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-errno.c 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,117 @@
-+/* Test of <errno.h> substitute.
-+ Copyright (C) 2008 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
-+
-+#include <config.h>
-+
-+#include <errno.h>
-+
-+/* Verify that the POSIX mandated errno values exist and can be used as
-+ initializers outside of a function.
-+ The variable names happen to match the Linux/x86 error numbers. */
-+int e1 = EPERM;
-+int e2 = ENOENT;
-+int e3 = ESRCH;
-+int e4 = EINTR;
-+int e5 = EIO;
-+int e6 = ENXIO;
-+int e7 = E2BIG;
-+int e8 = ENOEXEC;
-+int e9 = EBADF;
-+int e10 = ECHILD;
-+int e11 = EAGAIN;
-+int e11a = EWOULDBLOCK;
-+int e12 = ENOMEM;
-+int e13 = EACCES;
-+int e14 = EFAULT;
-+int e16 = EBUSY;
-+int e17 = EEXIST;
-+int e18 = EXDEV;
-+int e19 = ENODEV;
-+int e20 = ENOTDIR;
-+int e21 = EISDIR;
-+int e22 = EINVAL;
-+int e23 = ENFILE;
-+int e24 = EMFILE;
-+int e25 = ENOTTY;
-+int e26 = ETXTBSY;
-+int e27 = EFBIG;
-+int e28 = ENOSPC;
-+int e29 = ESPIPE;
-+int e30 = EROFS;
-+int e31 = EMLINK;
-+int e32 = EPIPE;
-+int e33 = EDOM;
-+int e34 = ERANGE;
-+int e35 = EDEADLK;
-+int e36 = ENAMETOOLONG;
-+int e37 = ENOLCK;
-+int e38 = ENOSYS;
-+int e39 = ENOTEMPTY;
-+int e40 = ELOOP;
-+int e42 = ENOMSG;
-+int e43 = EIDRM;
-+int e67 = ENOLINK;
-+int e71 = EPROTO;
-+int e72 = EMULTIHOP;
-+int e74 = EBADMSG;
-+int e75 = EOVERFLOW;
-+int e84 = EILSEQ;
-+int e88 = ENOTSOCK;
-+int e89 = EDESTADDRREQ;
-+int e90 = EMSGSIZE;
-+int e91 = EPROTOTYPE;
-+int e92 = ENOPROTOOPT;
-+int e93 = EPROTONOSUPPORT;
-+int e95 = EOPNOTSUPP;
-+int e95a = ENOTSUP;
-+int e97 = EAFNOSUPPORT;
-+int e98 = EADDRINUSE;
-+int e99 = EADDRNOTAVAIL;
-+int e100 = ENETDOWN;
-+int e101 = ENETUNREACH;
-+int e102 = ENETRESET;
-+int e103 = ECONNABORTED;
-+int e104 = ECONNRESET;
-+int e105 = ENOBUFS;
-+int e106 = EISCONN;
-+int e107 = ENOTCONN;
-+int e110 = ETIMEDOUT;
-+int e111 = ECONNREFUSED;
-+int e113 = EHOSTUNREACH;
-+int e114 = EALREADY;
-+int e115 = EINPROGRESS;
-+int e116 = ESTALE;
-+int e122 = EDQUOT;
-+int e125 = ECANCELED;
-+
-+/* Don't verify that these errno values are all different, except for possibly
-+ EWOULDBLOCK == EAGAIN. Even Linux/x86 does not pass this check: it has
-+ ENOTSUP == EOPNOTSUPP. */
-+
-+int
-+main ()
-+{
-+ /* Verify that errno can be assigned. */
-+ errno = EOVERFLOW;
-+
-+ /* snprintf() callers want to distinguish EINVAL and EOVERFLOW. */
-+ if (errno == EINVAL)
-+ return 1;
-+
-+ return 0;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-getaddrinfo.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-getaddrinfo.c
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-getaddrinfo.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-getaddrinfo.c 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,155 @@
-+/* Test the getaddrinfo module.
-+
-+ Copyright (C) 2006-2008 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Simon Josefsson. */
-+
-+#include <config.h>
-+#include "getaddrinfo.h"
-+#include <arpa/inet.h>
-+#include <netinet/in.h>
-+#include <stdio.h>
-+#include <string.h>
-+
-+/* Whether to print debugging messages. */
-+#define ENABLE_DEBUGGING 0
-+
-+#if ENABLE_DEBUGGING
-+# define dbgprintf printf
-+#else
-+# define dbgprintf if (0) printf
-+#endif
-+
-+/* BeOS does not have AF_UNSPEC. */
-+#ifndef AF_UNSPEC
-+# define AF_UNSPEC 0
-+#endif
-+
-+#ifndef EAI_SERVICE
-+# define EAI_SERVICE 0
-+#endif
-+
-+int simple (char *host, char *service)
-+{
-+ char buf[BUFSIZ];
-+ struct addrinfo hints;
-+ struct addrinfo *ai0, *ai;
-+ int res;
-+
-+ dbgprintf ("Finding %s service %s...\n", host, service);
-+
-+ /* This initializes "hints" but does not use it. Is there a reason
-+ for this? If so, please fix this comment. */
-+ memset (&hints, 0, sizeof (hints));
-+ hints.ai_flags = AI_CANONNAME;
-+ hints.ai_family = AF_UNSPEC;
-+ hints.ai_socktype = SOCK_STREAM;
-+
-+ res = getaddrinfo (host, service, 0, &ai0);
-+
-+ dbgprintf ("res %d: %s\n", res, gai_strerror (res));
-+
-+ if (res != 0)
-+ {
-+ /* IRIX reports EAI_NONAME for "https". Don't fail the test
-+ merely because of this. */
-+ if (res == EAI_NONAME)
-+ return 0;
-+ /* Solaris reports EAI_SERVICE for "http" and "https". Don't
-+ fail the test merely because of this. */
-+ if (res == EAI_SERVICE)
-+ return 0;
-+ /* AIX reports EAI_NODATA for "https". Don't fail the test
-+ merely because of this. */
-+ if (res == EAI_NODATA)
-+ return 0;
-+
-+ return 1;
-+ }
-+
-+ for (ai = ai0; ai; ai = ai->ai_next)
-+ {
-+ dbgprintf ("\tflags %x\n", ai->ai_flags);
-+ dbgprintf ("\tfamily %x\n", ai->ai_family);
-+ dbgprintf ("\tsocktype %x\n", ai->ai_socktype);
-+ dbgprintf ("\tprotocol %x\n", ai->ai_protocol);
-+ dbgprintf ("\taddrlen %ld: ", (unsigned long) ai->ai_addrlen);
-+ dbgprintf ("\tFound %s\n",
-+ inet_ntop (ai->ai_family,
-+ &((struct sockaddr_in *)
-+ ai->ai_addr)->sin_addr,
-+ buf, sizeof (buf) - 1));
-+ if (ai->ai_canonname)
-+ dbgprintf ("\tFound %s...\n", ai->ai_canonname);
-+
-+ {
-+ char ipbuf[BUFSIZ];
-+ char portbuf[BUFSIZ];
-+
-+ res = getnameinfo (ai->ai_addr, ai->ai_addrlen,
-+ ipbuf, sizeof (ipbuf) - 1,
-+ portbuf, sizeof (portbuf) - 1,
-+ NI_NUMERICHOST|NI_NUMERICSERV);
-+ dbgprintf ("\t\tgetnameinfo %d: %s\n", res, gai_strerror (res));
-+ if (res == 0)
-+ {
-+ dbgprintf ("\t\tip %s\n", ipbuf);
-+ dbgprintf ("\t\tport %s\n", portbuf);
-+ }
-+ }
-+
-+ }
-+
-+ freeaddrinfo (ai0);
-+
-+ return 0;
-+}
-+
-+#define HOST1 "www.gnu.org"
-+#define SERV1 "http"
-+#define HOST2 "www.ibm.com"
-+#define SERV2 "https"
-+#define HOST3 "microsoft.com"
-+#define SERV3 "http"
-+#define HOST4 "google.org"
-+#define SERV4 "ldap"
-+
-+int main (void)
-+{
-+#if _WIN32
-+ {
-+ WORD requested;
-+ WSADATA data;
-+ int err;
-+
-+ requested = MAKEWORD (1, 1);
-+ err = WSAStartup (requested, &data);
-+ if (err != 0)
-+ return 1;
-+
-+ if (data.wVersion < requested)
-+ {
-+ WSACleanup ();
-+ return 2;
-+ }
-+ }
-+#endif
-+
-+ return simple (HOST1, SERV1)
-+ + simple (HOST2, SERV2)
-+ + simple (HOST3, SERV3)
-+ + simple (HOST4, SERV4);
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-netinet_in.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-netinet_in.c
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-netinet_in.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-netinet_in.c 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,27 @@
-+/* Test of <netinet/in.h> substitute.
-+ Copyright (C) 2007 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
-+
-+#include <config.h>
-+
-+#include <netinet/in.h>
-+
-+int
-+main ()
-+{
-+ return 0;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-snprintf.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-snprintf.c
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-snprintf.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-snprintf.c 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,72 @@
-+/* Test of snprintf() function.
-+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
-+
-+#include <config.h>
-+
-+#include <stdio.h>
-+
-+#include <stdlib.h>
-+#include <string.h>
-+
-+#define ASSERT(expr) \
-+ do \
-+ { \
-+ if (!(expr)) \
-+ { \
-+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
-+ fflush (stderr); \
-+ abort (); \
-+ } \
-+ } \
-+ while (0)
-+
-+int
-+main (int argc, char *argv[])
-+{
-+ char buf[8];
-+ int size;
-+ int retval;
-+
-+ for (size = 0; size <= 8; size++)
-+ {
-+ memcpy (buf, "DEADBEEF", 8);
-+ retval = snprintf (buf, size, "%d", 12345);
-+ if (size < 6)
-+ {
-+#if CHECK_SNPRINTF_POSIX
-+ ASSERT (retval < 0 || retval >= size);
-+#endif
-+ if (size > 0)
-+ {
-+ ASSERT (memcmp (buf, "12345", size - 1) == 0);
-+ ASSERT (buf[size - 1] == '\0' || buf[size - 1] == '0' + size);
-+ }
-+#if !CHECK_SNPRINTF_POSIX
-+ if (size > 0)
-+#endif
-+ ASSERT (memcmp (buf + size, "DEADBEEF" + size, 8 - size) == 0);
-+ }
-+ else
-+ {
-+ ASSERT (retval == 5);
-+ ASSERT (memcmp (buf, "12345\0EF", 8) == 0);
-+ }
-+ }
-+
-+ return 0;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-stdbool.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-stdbool.c
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-stdbool.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-stdbool.c 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,95 @@
-+/* Test of <stdbool.h> substitute.
-+ Copyright (C) 2002-2007 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
-+
-+#include <config.h>
-+
-+#include <stdbool.h>
-+
-+#ifndef bool
-+ "error: bool is not defined"
-+#endif
-+#ifndef false
-+ "error: false is not defined"
-+#endif
-+#if false
-+ "error: false is not 0"
-+#endif
-+#ifndef true
-+ "error: true is not defined"
-+#endif
-+#if true != 1
-+ "error: true is not 1"
-+#endif
-+#ifndef __bool_true_false_are_defined
-+ "error: __bool_true_false_are_defined is not defined"
-+#endif
-+
-+#if 0 /* Cannot be guaranteed with gnulib's <stdbool.h>. */
-+struct s { _Bool s: 1; _Bool t; } s;
-+#endif
-+
-+char a[true == 1 ? 1 : -1];
-+char b[false == 0 ? 1 : -1];
-+char c[__bool_true_false_are_defined == 1 ? 1 : -1];
-+#if 0 /* Cannot be guaranteed with gnulib's <stdbool.h>. */
-+char d[(bool) 0.5 == true ? 1 : -1];
-+bool e = &s;
-+#endif
-+char f[(_Bool) 0.0 == false ? 1 : -1];
-+char g[true];
-+char h[sizeof (_Bool)];
-+#if 0 /* See above. */
-+char i[sizeof s.t];
-+#endif
-+enum { j = false, k = true, l = false * true, m = true * 256 };
-+_Bool n[m];
-+char o[sizeof n == m * sizeof n[0] ? 1 : -1];
-+char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
-+#if 0 /* Cannot be guaranteed with gnulib's <stdbool.h>. */
-+#if defined __xlc__ || defined __GNUC__
-+ /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
-+ reported by James Lemley on 2005-10-05; see
-+ http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
-+ This test is not quite right, since xlc is allowed to
-+ reject this program, as the initializer for xlcbug is
-+ not one of the forms that C requires support for.
-+ However, doing the test right would require a run-time
-+ test, and that would make cross-compilation harder.
-+ Let us hope that IBM fixes the xlc bug, and also adds
-+ support for this kind of constant expression. In the
-+ meantime, this test will reject xlc, which is OK, since
-+ our stdbool.h substitute should suffice. We also test
-+ this with GCC, where it should work, to detect more
-+ quickly whether someone messes up the test in the
-+ future. */
-+ char digs[] = "0123456789";
-+ int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1);
-+#endif
-+#endif
-+/* Catch a bug in an HP-UX C compiler. See
-+ http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-+ http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
-+ */
-+_Bool q = true;
-+_Bool *pq = &q;
-+
-+int
-+main ()
-+{
-+ return 0;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-stdint.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-stdint.c
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-stdint.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-stdint.c 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,360 @@
-+/* Test of <stdint.h> substitute.
-+ Copyright (C) 2006-2008 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>, 2006. */
-+
-+#include <config.h>
-+
-+/* Whether to enable pedantic checks. */
-+#define DO_PEDANTIC 0
-+
-+#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
-+#include <stdint.h>
-+
-+#include "verify.h"
-+#include "intprops.h"
-+
-+#if __GNUC__ >= 2 && DO_PEDANTIC
-+# define verify_same_types(expr1,expr2) \
-+ extern void _verify_func(__LINE__) (__typeof__ (expr1) *); \
-+ extern void _verify_func(__LINE__) (__typeof__ (expr2) *);
-+# define _verify_func(line) _verify_func2(line)
-+# define _verify_func2(line) verify_func_ ## line
-+#else
-+# define verify_same_types(expr1,expr2) extern void verify_func (int)
-+#endif
-+
-+/* 7.18.1.1. Exact-width integer types */
-+/* 7.18.2.1. Limits of exact-width integer types */
-+
-+int8_t a1[3] = { INT8_C (17), INT8_MIN, INT8_MAX };
-+verify (TYPE_MINIMUM (int8_t) == INT8_MIN);
-+verify (TYPE_MAXIMUM (int8_t) == INT8_MAX);
-+verify_same_types (INT8_MIN, (int8_t) 0 + 0);
-+verify_same_types (INT8_MAX, (int8_t) 0 + 0);
-+
-+int16_t a2[3] = { INT16_C (17), INT16_MIN, INT16_MAX };
-+verify (TYPE_MINIMUM (int16_t) == INT16_MIN);
-+verify (TYPE_MAXIMUM (int16_t) == INT16_MAX);
-+verify_same_types (INT16_MIN, (int16_t) 0 + 0);
-+verify_same_types (INT16_MAX, (int16_t) 0 + 0);
-+
-+int32_t a3[3] = { INT32_C (17), INT32_MIN, INT32_MAX };
-+verify (TYPE_MINIMUM (int32_t) == INT32_MIN);
-+verify (TYPE_MAXIMUM (int32_t) == INT32_MAX);
-+verify_same_types (INT32_MIN, (int32_t) 0 + 0);
-+verify_same_types (INT32_MAX, (int32_t) 0 + 0);
-+
-+#ifdef INT64_MAX
-+int64_t a4[3] = { INT64_C (17), INT64_MIN, INT64_MAX };
-+verify (TYPE_MINIMUM (int64_t) == INT64_MIN);
-+verify (TYPE_MAXIMUM (int64_t) == INT64_MAX);
-+verify_same_types (INT64_MIN, (int64_t) 0 + 0);
-+verify_same_types (INT64_MAX, (int64_t) 0 + 0);
-+#endif
-+
-+uint8_t b1[2] = { UINT8_C (17), UINT8_MAX };
-+verify (TYPE_MAXIMUM (uint8_t) == UINT8_MAX);
-+verify_same_types (UINT8_MAX, (uint8_t) 0 + 0);
-+
-+uint16_t b2[2] = { UINT16_C (17), UINT16_MAX };
-+verify (TYPE_MAXIMUM (uint16_t) == UINT16_MAX);
-+verify_same_types (UINT16_MAX, (uint16_t) 0 + 0);
-+
-+uint32_t b3[2] = { UINT32_C (17), UINT32_MAX };
-+verify (TYPE_MAXIMUM (uint32_t) == UINT32_MAX);
-+verify_same_types (UINT32_MAX, (uint32_t) 0 + 0);
-+
-+#ifdef UINT64_MAX
-+uint64_t b4[2] = { UINT64_C (17), UINT64_MAX };
-+verify (TYPE_MAXIMUM (uint64_t) == UINT64_MAX);
-+verify_same_types (UINT64_MAX, (uint64_t) 0 + 0);
-+#endif
-+
-+#if INT8_MIN && INT8_MAX && INT16_MIN && INT16_MAX && INT32_MIN && INT32_MAX
-+/* ok */
-+#else
-+err or;
-+#endif
-+
-+#if UINT8_MAX && UINT16_MAX && UINT32_MAX
-+/* ok */
-+#else
-+err or;
-+#endif
-+
-+/* 7.18.1.2. Minimum-width integer types */
-+/* 7.18.2.2. Limits of minimum-width integer types */
-+
-+int_least8_t c1[3] = { 17, INT_LEAST8_MIN, INT_LEAST8_MAX };
-+verify (TYPE_MINIMUM (int_least8_t) == INT_LEAST8_MIN);
-+verify (TYPE_MAXIMUM (int_least8_t) == INT_LEAST8_MAX);
-+verify_same_types (INT_LEAST8_MIN, (int_least8_t) 0 + 0);
-+verify_same_types (INT_LEAST8_MAX, (int_least8_t) 0 + 0);
-+
-+int_least16_t c2[3] = { 17, INT_LEAST16_MIN, INT_LEAST16_MAX };
-+verify (TYPE_MINIMUM (int_least16_t) == INT_LEAST16_MIN);
-+verify (TYPE_MAXIMUM (int_least16_t) == INT_LEAST16_MAX);
-+verify_same_types (INT_LEAST16_MIN, (int_least16_t) 0 + 0);
-+verify_same_types (INT_LEAST16_MAX, (int_least16_t) 0 + 0);
-+
-+int_least32_t c3[3] = { 17, INT_LEAST32_MIN, INT_LEAST32_MAX };
-+verify (TYPE_MINIMUM (int_least32_t) == INT_LEAST32_MIN);
-+verify (TYPE_MAXIMUM (int_least32_t) == INT_LEAST32_MAX);
-+verify_same_types (INT_LEAST32_MIN, (int_least32_t) 0 + 0);
-+verify_same_types (INT_LEAST32_MAX, (int_least32_t) 0 + 0);
-+
-+#ifdef INT_LEAST64_MAX
-+int_least64_t c4[3] = { 17, INT_LEAST64_MIN, INT_LEAST64_MAX };
-+verify (TYPE_MINIMUM (int_least64_t) == INT_LEAST64_MIN);
-+verify (TYPE_MAXIMUM (int_least64_t) == INT_LEAST64_MAX);
-+verify_same_types (INT_LEAST64_MIN, (int_least64_t) 0 + 0);
-+verify_same_types (INT_LEAST64_MAX, (int_least64_t) 0 + 0);
-+#endif
-+
-+uint_least8_t d1[2] = { 17, UINT_LEAST8_MAX };
-+verify (TYPE_MAXIMUM (uint_least8_t) == UINT_LEAST8_MAX);
-+verify_same_types (UINT_LEAST8_MAX, (uint_least8_t) 0 + 0);
-+
-+uint_least16_t d2[2] = { 17, UINT_LEAST16_MAX };
-+verify (TYPE_MAXIMUM (uint_least16_t) == UINT_LEAST16_MAX);
-+verify_same_types (UINT_LEAST16_MAX, (uint_least16_t) 0 + 0);
-+
-+uint_least32_t d3[2] = { 17, UINT_LEAST32_MAX };
-+verify (TYPE_MAXIMUM (uint_least32_t) == UINT_LEAST32_MAX);
-+verify_same_types (UINT_LEAST32_MAX, (uint_least32_t) 0 + 0);
-+
-+#ifdef UINT_LEAST64_MAX
-+uint_least64_t d4[2] = { 17, UINT_LEAST64_MAX };
-+verify (TYPE_MAXIMUM (uint_least64_t) == UINT_LEAST64_MAX);
-+verify_same_types (UINT_LEAST64_MAX, (uint_least64_t) 0 + 0);
-+#endif
-+
-+#if INT_LEAST8_MIN && INT_LEAST8_MAX && INT_LEAST16_MIN && INT_LEAST16_MAX && INT_LEAST32_MIN && INT_LEAST32_MAX
-+/* ok */
-+#else
-+err or;
-+#endif
-+
-+#if UINT_LEAST8_MAX && UINT_LEAST16_MAX && UINT_LEAST32_MAX
-+/* ok */
-+#else
-+err or;
-+#endif
-+
-+/* 7.18.1.3. Fastest minimum-width integer types */
-+/* 7.18.2.3. Limits of fastest minimum-width integer types */
-+
-+int_fast8_t e1[3] = { 17, INT_FAST8_MIN, INT_FAST8_MAX };
-+verify (TYPE_MINIMUM (int_fast8_t) == INT_FAST8_MIN);
-+verify (TYPE_MAXIMUM (int_fast8_t) == INT_FAST8_MAX);
-+verify_same_types (INT_FAST8_MIN, (int_fast8_t) 0 + 0);
-+verify_same_types (INT_FAST8_MAX, (int_fast8_t) 0 + 0);
-+
-+int_fast16_t e2[3] = { 17, INT_FAST16_MIN, INT_FAST16_MAX };
-+verify (TYPE_MINIMUM (int_fast16_t) == INT_FAST16_MIN);
-+verify (TYPE_MAXIMUM (int_fast16_t) == INT_FAST16_MAX);
-+verify_same_types (INT_FAST16_MIN, (int_fast16_t) 0 + 0);
-+verify_same_types (INT_FAST16_MAX, (int_fast16_t) 0 + 0);
-+
-+int_fast32_t e3[3] = { 17, INT_FAST32_MIN, INT_FAST32_MAX };
-+verify (TYPE_MINIMUM (int_fast32_t) == INT_FAST32_MIN);
-+verify (TYPE_MAXIMUM (int_fast32_t) == INT_FAST32_MAX);
-+verify_same_types (INT_FAST32_MIN, (int_fast32_t) 0 + 0);
-+verify_same_types (INT_FAST32_MAX, (int_fast32_t) 0 + 0);
-+
-+#ifdef INT_FAST64_MAX
-+int_fast64_t e4[3] = { 17, INT_FAST64_MIN, INT_FAST64_MAX };
-+verify (TYPE_MINIMUM (int_fast64_t) == INT_FAST64_MIN);
-+verify (TYPE_MAXIMUM (int_fast64_t) == INT_FAST64_MAX);
-+verify_same_types (INT_FAST64_MIN, (int_fast64_t) 0 + 0);
-+verify_same_types (INT_FAST64_MAX, (int_fast64_t) 0 + 0);
-+#endif
-+
-+uint_fast8_t f1[2] = { 17, UINT_FAST8_MAX };
-+verify (TYPE_MAXIMUM (uint_fast8_t) == UINT_FAST8_MAX);
-+verify_same_types (UINT_FAST8_MAX, (uint_fast8_t) 0 + 0);
-+
-+uint_fast16_t f2[2] = { 17, UINT_FAST16_MAX };
-+verify (TYPE_MAXIMUM (uint_fast16_t) == UINT_FAST16_MAX);
-+verify_same_types (UINT_FAST16_MAX, (uint_fast16_t) 0 + 0);
-+
-+uint_fast32_t f3[2] = { 17, UINT_FAST32_MAX };
-+verify (TYPE_MAXIMUM (uint_fast32_t) == UINT_FAST32_MAX);
-+verify_same_types (UINT_FAST32_MAX, (uint_fast32_t) 0 + 0);
-+
-+#ifdef UINT_FAST64_MAX
-+uint_fast64_t f4[2] = { 17, UINT_FAST64_MAX };
-+verify (TYPE_MAXIMUM (uint_fast64_t) == UINT_FAST64_MAX);
-+verify_same_types (UINT_FAST64_MAX, (uint_fast64_t) 0 + 0);
-+#endif
-+
-+#if INT_FAST8_MIN && INT_FAST8_MAX && INT_FAST16_MIN && INT_FAST16_MAX && INT_FAST32_MIN && INT_FAST32_MAX
-+/* ok */
-+#else
-+err or;
-+#endif
-+
-+#if UINT_FAST8_MAX && UINT_FAST16_MAX && UINT_FAST32_MAX
-+/* ok */
-+#else
-+err or;
-+#endif
-+
-+/* 7.18.1.4. Integer types capable of holding object pointers */
-+/* 7.18.2.4. Limits of integer types capable of holding object pointers */
-+
-+intptr_t g[3] = { 17, INTPTR_MIN, INTPTR_MAX };
-+verify (TYPE_MINIMUM (intptr_t) == INTPTR_MIN);
-+verify (TYPE_MAXIMUM (intptr_t) == INTPTR_MAX);
-+verify_same_types (INTPTR_MIN, (intptr_t) 0 + 0);
-+verify_same_types (INTPTR_MAX, (intptr_t) 0 + 0);
-+
-+uintptr_t h[2] = { 17, UINTPTR_MAX };
-+verify (TYPE_MAXIMUM (uintptr_t) == UINTPTR_MAX);
-+verify_same_types (UINTPTR_MAX, (uintptr_t) 0 + 0);
-+
-+#if INTPTR_MIN && INTPTR_MAX && UINTPTR_MAX
-+/* ok */
-+#else
-+err or;
-+#endif
-+
-+/* 7.18.1.5. Greatest-width integer types */
-+/* 7.18.2.5. Limits of greatest-width integer types */
-+
-+intmax_t i[3] = { INTMAX_C (17), INTMAX_MIN, INTMAX_MAX };
-+verify (TYPE_MINIMUM (intmax_t) == INTMAX_MIN);
-+verify (TYPE_MAXIMUM (intmax_t) == INTMAX_MAX);
-+verify_same_types (INTMAX_MIN, (intmax_t) 0 + 0);
-+verify_same_types (INTMAX_MAX, (intmax_t) 0 + 0);
-+
-+uintmax_t j[2] = { UINTMAX_C (17), UINTMAX_MAX };
-+verify (TYPE_MAXIMUM (uintmax_t) == UINTMAX_MAX);
-+verify_same_types (UINTMAX_MAX, (uintmax_t) 0 + 0);
-+
-+/* As of 2007, Sun C and HP-UX 10.20 cc don't support 'long long' constants in
-+ the preprocessor. */
-+#if !(defined __SUNPRO_C || (defined __hpux && !defined __GNUC__))
-+#if INTMAX_MIN && INTMAX_MAX && UINTMAX_MAX
-+/* ok */
-+#else
-+err or;
-+#endif
-+#endif
-+
-+/* 7.18.3. Limits of other integer types */
-+
-+#include <stddef.h>
-+
-+verify (TYPE_MINIMUM (ptrdiff_t) == PTRDIFF_MIN);
-+verify (TYPE_MAXIMUM (ptrdiff_t) == PTRDIFF_MAX);
-+verify_same_types (PTRDIFF_MIN, (ptrdiff_t) 0 + 0);
-+verify_same_types (PTRDIFF_MAX, (ptrdiff_t) 0 + 0);
-+
-+#if PTRDIFF_MIN && PTRDIFF_MAX
-+/* ok */
-+#else
-+err or;
-+#endif
-+
-+#include <signal.h>
-+
-+verify (TYPE_MINIMUM (sig_atomic_t) == SIG_ATOMIC_MIN);
-+verify (TYPE_MAXIMUM (sig_atomic_t) == SIG_ATOMIC_MAX);
-+verify_same_types (SIG_ATOMIC_MIN, (sig_atomic_t) 0 + 0);
-+verify_same_types (SIG_ATOMIC_MAX, (sig_atomic_t) 0 + 0);
-+
-+#if SIG_ATOMIC_MIN != 17 && SIG_ATOMIC_MAX
-+/* ok */
-+#else
-+err or;
-+#endif
-+
-+verify (TYPE_MAXIMUM (size_t) == SIZE_MAX);
-+verify_same_types (SIZE_MAX, (size_t) 0 + 0);
-+
-+#if SIZE_MAX
-+/* ok */
-+#else
-+err or;
-+#endif
-+
-+#if HAVE_WCHAR_T
-+verify (TYPE_MINIMUM (wchar_t) == WCHAR_MIN);
-+verify (TYPE_MAXIMUM (wchar_t) == WCHAR_MAX);
-+verify_same_types (WCHAR_MIN, (wchar_t) 0 + 0);
-+verify_same_types (WCHAR_MAX, (wchar_t) 0 + 0);
-+
-+# if WCHAR_MIN != 17 && WCHAR_MAX
-+/* ok */
-+# else
-+err or;
-+# endif
-+#endif
-+
-+#if HAVE_WINT_T
-+# include <wchar.h>
-+
-+verify (TYPE_MINIMUM (wint_t) == WINT_MIN);
-+verify (TYPE_MAXIMUM (wint_t) == WINT_MAX);
-+verify_same_types (WINT_MIN, (wint_t) 0 + 0);
-+verify_same_types (WINT_MAX, (wint_t) 0 + 0);
-+
-+# if WINT_MIN != 17 && WINT_MAX
-+/* ok */
-+# else
-+err or;
-+# endif
-+#endif
-+
-+/* 7.18.4. Macros for integer constants */
-+
-+verify (INT8_C (17) == 17);
-+verify_same_types (INT8_C (17), (int_least8_t)0 + 0);
-+verify (UINT8_C (17) == 17);
-+verify_same_types (UINT8_C (17), (uint_least8_t)0 + 0);
-+
-+verify (INT16_C (17) == 17);
-+verify_same_types (INT16_C (17), (int_least16_t)0 + 0);
-+verify (UINT16_C (17) == 17);
-+verify_same_types (UINT16_C (17), (uint_least16_t)0 + 0);
-+
-+verify (INT32_C (17) == 17);
-+verify_same_types (INT32_C (17), (int_least32_t)0 + 0);
-+verify (UINT32_C (17) == 17);
-+verify_same_types (UINT32_C (17), (uint_least32_t)0 + 0);
-+
-+#ifdef INT64_C
-+verify (INT64_C (17) == 17);
-+verify_same_types (INT64_C (17), (int_least64_t)0 + 0);
-+#endif
-+#ifdef UINT64_C
-+verify (UINT64_C (17) == 17);
-+verify_same_types (UINT64_C (17), (uint_least64_t)0 + 0);
-+#endif
-+
-+verify (INTMAX_C (17) == 17);
-+verify_same_types (INTMAX_C (17), (intmax_t)0 + 0);
-+verify (UINTMAX_C (17) == 17);
-+verify_same_types (UINTMAX_C (17), (uintmax_t)0 + 0);
-+
-+
-+int
-+main ()
-+{
-+ return 0;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-stdio.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-stdio.c
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-stdio.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-stdio.c 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,30 @@
-+/* Test of <stdio.h> substitute.
-+ Copyright (C) 2007 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
-+
-+#include <config.h>
-+
-+#include <stdio.h>
-+
-+/* Check that the various SEEK_* macros are defined. */
-+int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET };
-+
-+int
-+main ()
-+{
-+ return 0;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-stdlib.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-stdlib.c
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-stdlib.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-stdlib.c 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,37 @@
-+/* Test of <stdlib.h> substitute.
-+ Copyright (C) 2007 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
-+
-+#include <config.h>
-+
-+#include <stdlib.h>
-+
-+int exitcode;
-+
-+int
-+main ()
-+{
-+ /* Check that some macros are defined and different integer constants. */
-+ switch (exitcode)
-+ {
-+ case EXIT_SUCCESS:
-+ case EXIT_FAILURE:
-+ break;
-+ }
-+
-+ return 0;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-sys_socket.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-sys_socket.c
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-sys_socket.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-sys_socket.c 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,47 @@
-+/* Test of <sys/socket.h> substitute.
-+ Copyright (C) 2007 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
-+
-+#include <config.h>
-+
-+#include <sys/socket.h>
-+
-+#include <errno.h>
-+
-+#if HAVE_SHUTDOWN
-+/* Check some integer constant expressions. */
-+int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };
-+#endif
-+
-+int
-+main ()
-+{
-+ /* Check some errno values. */
-+ switch (0)
-+ {
-+ case ENOTSOCK:
-+ case EADDRINUSE:
-+ case ENETRESET:
-+ case ECONNABORTED:
-+ case ECONNRESET:
-+ case ENOTCONN:
-+ case ESHUTDOWN:
-+ break;
-+ }
-+
-+ return 0;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-unistd.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-unistd.c
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-unistd.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-unistd.c 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,44 @@
-+/* Test of <unistd.h> substitute.
-+ Copyright (C) 2007 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
-+
-+#include <config.h>
-+
-+#include <unistd.h>
-+
-+/* Check that the various SEEK_* macros are defined. */
-+int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET };
-+
-+/* Check that the types are all defined. */
-+size_t t1;
-+ssize_t t2;
-+#ifdef TODO /* Not implemented in gnulib yet */
-+uid_t t3;
-+gid_t t4;
-+#endif
-+off_t t5;
-+pid_t t6;
-+#ifdef TODO
-+useconds_t t7;
-+intptr_t t8;
-+#endif
-+
-+int
-+main ()
-+{
-+ return 0;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-vasnprintf.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-vasnprintf.c
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-vasnprintf.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-vasnprintf.c 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,128 @@
-+/* Test of vasnprintf() and asnprintf() functions.
-+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
-+
-+#include <config.h>
-+
-+#include "vasnprintf.h"
-+
-+#include <stdarg.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+#define ASSERT(expr) \
-+ do \
-+ { \
-+ if (!(expr)) \
-+ { \
-+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
-+ fflush (stderr); \
-+ abort (); \
-+ } \
-+ } \
-+ while (0)
-+
-+static char *
-+my_asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
-+{
-+ va_list args;
-+ char *ret;
-+
-+ va_start (args, format);
-+ ret = vasnprintf (resultbuf, lengthp, format, args);
-+ va_end (args);
-+ return ret;
-+}
-+
-+static void
-+test_vasnprintf ()
-+{
-+ char buf[8];
-+ int size;
-+
-+ for (size = 0; size <= 8; size++)
-+ {
-+ size_t length = size;
-+ char *result = my_asnprintf (NULL, &length, "%d", 12345);
-+ ASSERT (result != NULL);
-+ ASSERT (strcmp (result, "12345") == 0);
-+ ASSERT (length == 5);
-+ free (result);
-+ }
-+
-+ for (size = 0; size <= 8; size++)
-+ {
-+ size_t length;
-+ char *result;
-+
-+ memcpy (buf, "DEADBEEF", 8);
-+ length = size;
-+ result = my_asnprintf (buf, &length, "%d", 12345);
-+ ASSERT (result != NULL);
-+ ASSERT (strcmp (result, "12345") == 0);
-+ ASSERT (length == 5);
-+ if (size < 6)
-+ ASSERT (result != buf);
-+ ASSERT (memcmp (buf + size, "DEADBEEF" + size, 8 - size) == 0);
-+ if (result != buf)
-+ free (result);
-+ }
-+}
-+
-+static void
-+test_asnprintf ()
-+{
-+ char buf[8];
-+ int size;
-+
-+ for (size = 0; size <= 8; size++)
-+ {
-+ size_t length = size;
-+ char *result = asnprintf (NULL, &length, "%d", 12345);
-+ ASSERT (result != NULL);
-+ ASSERT (strcmp (result, "12345") == 0);
-+ ASSERT (length == 5);
-+ free (result);
-+ }
-+
-+ for (size = 0; size <= 8; size++)
-+ {
-+ size_t length;
-+ char *result;
-+
-+ memcpy (buf, "DEADBEEF", 8);
-+ length = size;
-+ result = asnprintf (buf, &length, "%d", 12345);
-+ ASSERT (result != NULL);
-+ ASSERT (strcmp (result, "12345") == 0);
-+ ASSERT (length == 5);
-+ if (size < 6)
-+ ASSERT (result != buf);
-+ ASSERT (memcmp (buf + size, "DEADBEEF" + size, 8 - size) == 0);
-+ if (result != buf)
-+ free (result);
-+ }
-+}
-+
-+int
-+main (int argc, char *argv[])
-+{
-+ test_vasnprintf ();
-+ test_asnprintf ();
-+ return 0;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-vc-list-files-cvs.sh gtk-vnc-0.3.7.gnulib/gnulib/tests/test-vc-list-files-cvs.sh
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-vc-list-files-cvs.sh 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-vc-list-files-cvs.sh 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,62 @@
-+#!/bin/sh
-+# Unit tests for vc-list-files
-+# Copyright (C) 2008 Free Software Foundation, Inc.
-+# This file is part of the GNUlib Library.
-+#
-+# 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 3 of the License, 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/>. */
-+
-+tmpdir=vc-cvs-$$
-+trap 'st=$?; cd '"`pwd`"' && rm -rf $tmpdir; exit $st' 0
-+trap '(exit $?); exit $?' 1 2 13 15
-+
-+if ( diff --version < /dev/null 2>&1 | grep GNU ) 2>&1 > /dev/null; then
-+ compare() { diff -u "$@"; }
-+elif ( cmp --version < /dev/null 2>&1 | grep GNU ) 2>&1 > /dev/null; then
-+ compare() { cmp -s "$@"; }
-+else
-+ compare() { cmp "$@"; }
-+fi
-+
-+repo=`pwd`/$tmpdir/repo
-+
-+fail=0
-+for i in with-cvsu without; do
-+ # On the first iteration, test using cvsu, if it's in your path.
-+ # On the second iteration, ensure that cvsu fails, so we'll
-+ # exercise the awk-using code.
-+ if test $i = without; then
-+ printf '%s\n' '#!/bin/sh' 'exit 1' > cvsu
-+ chmod a+x cvsu
-+ PATH=`pwd`:$PATH
-+ export PATH
-+ fi
-+ ok=0
-+ mkdir $tmpdir && cd $tmpdir &&
-+ # without cvs, skip the test
-+ # The double use of 'exit' is needed for the reference to $? inside the trap.
-+ { ( cvs -Q -d "$repo" init ) > /dev/null 2>&1 \
-+ || { echo "Skipping test: cvs not found in PATH"; (exit 77); exit 77; }; } &&
-+ mkdir w && cd w &&
-+ mkdir d &&
-+ touch d/a b c &&
-+ cvs -Q -d "$repo" import -m imp m M M0 &&
-+ cvs -Q -d "$repo" co m && cd m &&
-+ printf '%s\n' b c d/a > expected &&
-+ vc-list-files | sort > actual &&
-+ compare expected actual &&
-+ ok=1
-+ test $ok = 0 && fail=1
-+done
-+
-+(exit $fail); exit $fail
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-vc-list-files-git.sh gtk-vnc-0.3.7.gnulib/gnulib/tests/test-vc-list-files-git.sh
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-vc-list-files-git.sh 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-vc-list-files-git.sh 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,46 @@
-+#!/bin/sh
-+# Unit tests for vc-list-files
-+# Copyright (C) 2008 Free Software Foundation, Inc.
-+# This file is part of the GNUlib Library.
-+#
-+# 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 3 of the License, 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/>. */
-+
-+if ( diff --version < /dev/null 2>&1 | grep GNU ) 2>&1 > /dev/null; then
-+ compare() { diff -u "$@"; }
-+elif ( cmp --version < /dev/null 2>&1 | grep GNU ) 2>&1 > /dev/null; then
-+ compare() { cmp -s "$@"; }
-+else
-+ compare() { cmp "$@"; }
-+fi
-+
-+tmpdir=vc-git-$$
-+trap 'st=$?; cd '"`pwd`"' && rm -rf $tmpdir; exit $st' 0
-+trap '(exit $?); exit $?' 1 2 13 15
-+
-+fail=1
-+mkdir $tmpdir && cd $tmpdir &&
-+ # without git, skip the test
-+ # The double use of 'exit' is needed for the reference to $? inside the trap.
-+ { ( git init -q ) > /dev/null 2>&1 \
-+ || { echo "Skipping test: git not found in PATH"; (exit 77); exit 77; }; } &&
-+ mkdir d &&
-+ touch d/a b c &&
-+ git add . > /dev/null &&
-+ git commit -q -a -m log &&
-+ printf '%s\n' b c d/a > expected &&
-+ vc-list-files > actual &&
-+ compare expected actual &&
-+ fail=0
-+
-+(exit $fail); exit $fail
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/test-wchar.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-wchar.c
---- gtk-vnc-0.3.7.dan3/gnulib/tests/test-wchar.c 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/test-wchar.c 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,31 @@
-+/* Test of <wchar.h> substitute.
-+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
-+
-+#include <config.h>
-+
-+#include <wchar.h>
-+
-+/* Check that the types wchar_t and wint_t are defined. */
-+wchar_t a = 'c';
-+wint_t b = 'x';
-+
-+int
-+main ()
-+{
-+ return 0;
-+}
-diff -urN gtk-vnc-0.3.7.dan3/gnulib/tests/verify.h gtk-vnc-0.3.7.gnulib/gnulib/tests/verify.h
---- gtk-vnc-0.3.7.dan3/gnulib/tests/verify.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/gnulib/tests/verify.h 2008-10-09 15:24:53.000000000 +0100
-@@ -0,0 +1,140 @@
-+/* Compile-time assert-like macros.
-+
-+ Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-+
-+ 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 3 of the License, 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/>. */
-+
-+/* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */
-+
-+#ifndef VERIFY_H
-+# define VERIFY_H 1
-+
-+/* Each of these macros verifies that its argument R is nonzero. To
-+ be portable, R should be an integer constant expression. Unlike
-+ assert (R), there is no run-time overhead.
-+
-+ There are two macros, since no single macro can be used in all
-+ contexts in C. verify_true (R) is for scalar contexts, including
-+ integer constant expression contexts. verify (R) is for declaration
-+ contexts, e.g., the top level.
-+
-+ Symbols ending in "__" are private to this header.
-+
-+ The code below uses several ideas.
-+
-+ * The first step is ((R) ? 1 : -1). Given an expression R, of
-+ integral or boolean or floating-point type, this yields an
-+ expression of integral type, whose value is later verified to be
-+ constant and nonnegative.
-+
-+ * Next this expression W is wrapped in a type
-+ struct verify_type__ { unsigned int verify_error_if_negative_size__: W; }.
-+ If W is negative, this yields a compile-time error. No compiler can
-+ deal with a bit-field of negative size.
-+
-+ One might think that an array size check would have the same
-+ effect, that is, that the type struct { unsigned int dummy[W]; }
-+ would work as well. However, inside a function, some compilers
-+ (such as C++ compilers and GNU C) allow local parameters and
-+ variables inside array size expressions. With these compilers,
-+ an array size check would not properly diagnose this misuse of
-+ the verify macro:
-+
-+ void function (int n) { verify (n < 0); }
-+
-+ * For the verify macro, the struct verify_type__ will need to
-+ somehow be embedded into a declaration. To be portable, this
-+ declaration must declare an object, a constant, a function, or a
-+ typedef name. If the declared entity uses the type directly,
-+ such as in
-+
-+ struct dummy {...};
-+ typedef struct {...} dummy;
-+ extern struct {...} *dummy;
-+ extern void dummy (struct {...} *);
-+ extern struct {...} *dummy (void);
-+
-+ two uses of the verify macro would yield colliding declarations
-+ if the entity names are not disambiguated. A workaround is to
-+ attach the current line number to the entity name:
-+
-+ #define GL_CONCAT0(x, y) x##y
-+ #define GL_CONCAT(x, y) GL_CONCAT0 (x, y)
-+ extern struct {...} * GL_CONCAT(dummy,__LINE__);
-+
-+ But this has the problem that two invocations of verify from
-+ within the same macro would collide, since the __LINE__ value
-+ would be the same for both invocations.
-+
-+ A solution is to use the sizeof operator. It yields a number,
-+ getting rid of the identity of the type. Declarations like
-+
-+ extern int dummy [sizeof (struct {...})];
-+ extern void dummy (int [sizeof (struct {...})]);
-+ extern int (*dummy (void)) [sizeof (struct {...})];
-+
-+ can be repeated.
-+
-+ * Should the implementation use a named struct or an unnamed struct?
-+ Which of the following alternatives can be used?
-+
-+ extern int dummy [sizeof (struct {...})];
-+ extern int dummy [sizeof (struct verify_type__ {...})];
-+ extern void dummy (int [sizeof (struct {...})]);
-+ extern void dummy (int [sizeof (struct verify_type__ {...})]);
-+ extern int (*dummy (void)) [sizeof (struct {...})];
-+ extern int (*dummy (void)) [sizeof (struct verify_type__ {...})];
-+
-+ In the second and sixth case, the struct type is exported to the
-+ outer scope; two such declarations therefore collide. GCC warns
-+ about the first, third, and fourth cases. So the only remaining
-+ possibility is the fifth case:
-+
-+ extern int (*dummy (void)) [sizeof (struct {...})];
-+
-+ * This implementation exploits the fact that GCC does not warn about
-+ the last declaration mentioned above. If a future version of GCC
-+ introduces a warning for this, the problem could be worked around
-+ by using code specialized to GCC, e.g.,:
-+
-+ #if 4 <= __GNUC__
-+ # define verify(R) \
-+ extern int (* verify_function__ (void)) \
-+ [__builtin_constant_p (R) && (R) ? 1 : -1]
-+ #endif
-+
-+ * In C++, any struct definition inside sizeof is invalid.
-+ Use a template type to work around the problem. */
-+
-+
-+/* Verify requirement R at compile-time, as an integer constant expression.
-+ Return 1. */
-+
-+# ifdef __cplusplus
-+template <int w>
-+ struct verify_type__ { unsigned int verify_error_if_negative_size__: w; };
-+# define verify_true(R) \
-+ (!!sizeof (verify_type__<(R) ? 1 : -1>))
-+# else
-+# define verify_true(R) \
-+ (!!sizeof \
-+ (struct { unsigned int verify_error_if_negative_size__: (R) ? 1 : -1; }))
-+# endif
-+
-+/* Verify requirement R at compile-time, as a declaration without a
-+ trailing ';'. */
-+
-+# define verify(R) extern int (* verify_function__ (void)) [verify_true (R)]
-+
-+#endif
-diff -urN gtk-vnc-0.3.7.dan3/link-warning.h gtk-vnc-0.3.7.gnulib/link-warning.h
---- gtk-vnc-0.3.7.dan3/link-warning.h 1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.gnulib/link-warning.h 2008-10-09 15:24:52.000000000 +0100
-@@ -0,0 +1,28 @@
-+/* GL_LINK_WARNING("literal string") arranges to emit the literal string as
-+ a linker warning on most glibc systems.
-+ We use a linker warning rather than a preprocessor warning, because
-+ #warning cannot be used inside macros. */
-+#ifndef GL_LINK_WARNING
-+ /* This works on platforms with GNU ld and ELF object format.
-+ Testing __GLIBC__ is sufficient for asserting that GNU ld is in use.
-+ Testing __ELF__ guarantees the ELF object format.
-+ Testing __GNUC__ is necessary for the compound expression syntax. */
-+# if defined __GLIBC__ && defined __ELF__ && defined __GNUC__
-+# define GL_LINK_WARNING(message) \
-+ GL_LINK_WARNING1 (__FILE__, __LINE__, message)
-+# define GL_LINK_WARNING1(file, line, message) \
-+ GL_LINK_WARNING2 (file, line, message) /* macroexpand file and line */
-+# define GL_LINK_WARNING2(file, line, message) \
-+ GL_LINK_WARNING3 (file ":" #line ": warning: " message)
-+# define GL_LINK_WARNING3(message) \
-+ ({ static const char warning[sizeof (message)] \
-+ __attribute__ ((__unused__, \
-+ __section__ (".gnu.warning"), \
-+ __aligned__ (1))) \
-+ = message "\n"; \
-+ (void)0; \
-+ })
-+# else
-+# define GL_LINK_WARNING(message) ((void) 0)
-+# endif
-+#endif