- Needs mingw32-filesystem with the pkg-config library path fix.
authorRichard W.M. Jones <rjones@redhat.com>
Fri, 6 Feb 2009 14:41:31 +0000 (14:41 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Fri, 6 Feb 2009 14:41:31 +0000 (14:41 +0000)
- Added optional BRs suggested by auto-buildrequires.
- Include the license file.

- Update to 0.3.8

12 files changed:
.hgignore
gtk-vnc/gtk-vnc-0.3.7-abs-ungrab.patch [deleted file]
gtk-vnc/gtk-vnc-0.3.7-mingw32-dan3.patch [deleted file]
gtk-vnc/gtk-vnc-0.3.7-mingw32-gnulib-files.patch [deleted file]
gtk-vnc/gtk-vnc-00-win32.patch [deleted file]
gtk-vnc/gtk-vnc-01-recv.patch [deleted file]
gtk-vnc/gtk-vnc-02-ioctl.patch [deleted file]
gtk-vnc/gtk-vnc-03-wsastartup.patch [deleted file]
gtk-vnc/gtk-vnc-dan-fd-fix.patch [deleted file]
gtk-vnc/gtk-vnc-hgignore.patch [deleted file]
gtk-vnc/gtk-vnc-ldflags-confusion.patch [deleted file]
gtk-vnc/mingw32-gtk-vnc.spec

index aface7f..ef9abdb 100644 (file)
--- a/.hgignore
+++ b/.hgignore
@@ -56,6 +56,7 @@ gtk2/test3
 gtkmm24/gtkmm-2.14.1.tar.bz2
 gtk-vnc/gtk-vnc-0.3.7.tar.gz
 gtk-vnc/gtk-vnc-0.3.8-20081030.tar.gz
+gtk-vnc/gtk-vnc-0.3.8.tar.gz
 iconv/libiconv-1.12.tar.gz
 inkscape/inkscape-20081027.tar.gz
 jasper/jasper-1.900.1.zip
diff --git a/gtk-vnc/gtk-vnc-0.3.7-abs-ungrab.patch b/gtk-vnc/gtk-vnc-0.3.7-abs-ungrab.patch
deleted file mode 100644 (file)
index 4be1452..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -r cf0e849385e0 src/vncdisplay.c
---- a/src/vncdisplay.c Thu Sep 11 17:07:42 2008 +0100
-+++ b/src/vncdisplay.c Thu Sep 25 12:57:31 2008 +0100
-@@ -703,13 +703,12 @@
-               }
-       }
--      if ((!priv->grab_keyboard || !priv->absolute) &&
--          key->type == GDK_KEY_PRESS &&
-+      if (key->type == GDK_KEY_PRESS &&
-           ((keyval == GDK_Control_L && (key->state & GDK_MOD1_MASK)) ||
-            (keyval == GDK_Alt_L && (key->state & GDK_CONTROL_MASK)))) {
-               if (priv->in_pointer_grab)
-                       do_pointer_ungrab(VNC_DISPLAY(widget), FALSE);
--              else
-+              else if (!priv->grab_keyboard || !priv->absolute)
-                       do_pointer_grab(VNC_DISPLAY(widget), FALSE);
-       }
diff --git a/gtk-vnc/gtk-vnc-0.3.7-mingw32-dan3.patch b/gtk-vnc/gtk-vnc-0.3.7-mingw32-dan3.patch
deleted file mode 100644 (file)
index f81db38..0000000
+++ /dev/null
@@ -1,702 +0,0 @@
-diff -urN gtk-vnc-0.3.7.abs/bootstrap gtk-vnc-0.3.7.dan3/bootstrap
---- gtk-vnc-0.3.7.abs/bootstrap        1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.dan3/bootstrap       2008-10-09 15:23:00.000000000 +0100
-@@ -0,0 +1,89 @@
-+#!/bin/sh
-+# Run this after autogen.sh, to pull in all of the gnulib-related bits.
-+# It's important to run *after* autogen.sh, since it updates some of
-+# the same files autogen.sh does, yet those from gnulib are newer,
-+# and match the tests.  So if a gnulib bug has been fixed since the
-+# snapshot taken for whatever gettext release you're using, yet you
-+# run "make check" against the wrong version, the corresponding unit
-+# test in gl-tests/ may well fail.
-+
-+usage() {
-+  echo >&2 "\
-+Usage: $0 [OPTION]...
-+Bootstrap this package from the checked-out sources.
-+
-+Options:
-+ --gnulib-srcdir=DIRNAME  Specify the local directory where gnulib
-+                          sources reside.  Use this if you already
-+                          have gnulib sources on your machine, and
-+                          do not want to waste your bandwidth downloading
-+                          them again.
-+
-+If the file bootstrap.conf exists in the current working directory, its
-+contents are read as shell variables to configure the bootstrap.
-+
-+Running without arguments will suffice in most cases.
-+"
-+}
-+
-+for option
-+do
-+  case $option in
-+  --help)
-+    usage
-+    exit;;
-+  --gnulib-srcdir=*)
-+    GNULIB_SRCDIR=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;;
-+  *)
-+    echo >&2 "$0: $option: unknown option"
-+    exit 1;;
-+  esac
-+done
-+
-+cleanup_gnulib() {
-+  st=$?
-+  rm -fr .gnulib
-+  exit $st
-+}
-+
-+case ${GNULIB_SRCDIR--} in
-+-)
-+  if [ ! -d .gnulib ]; then
-+    echo "$0: getting gnulib files..."
-+
-+    trap cleanup_gnulib 1 2 13 15
-+
-+    git clone --depth 1 git://git.sv.gnu.org/gnulib .gnulib ||
-+      cleanup_gnulib
-+
-+    trap - 1 2 13 15
-+  fi
-+  GNULIB_SRCDIR=.gnulib
-+esac
-+
-+gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
-+<$gnulib_tool || exit
-+
-+modules='
-+getaddrinfo
-+socket
-+recv
-+send
-+connect
-+malloc
-+vc-list-files
-+'
-+
-+# Tell gnulib to:
-+#   require LGPLv2+
-+#   put *.m4 files in new gnulib/m4/ dir
-+#   put *.[ch] files in new gnulib/lib/ dir.
-+
-+$gnulib_tool                  \
-+  --lgpl=2                    \
-+  --with-tests                        \
-+  --m4-base=gnulib/m4         \
-+  --source-base=gnulib/lib    \
-+  --tests-base=gnulib/tests   \
-+  --import $modules
-+
-diff -urN gtk-vnc-0.3.7.abs/configure.ac gtk-vnc-0.3.7.dan3/configure.ac
---- gtk-vnc-0.3.7.abs/configure.ac     2008-09-05 13:32:15.000000000 +0100
-+++ gtk-vnc-0.3.7.dan3/configure.ac    2008-10-09 15:23:00.000000000 +0100
-@@ -23,15 +23,29 @@
- AC_CONFIG_HEADERS([config.h:config.hin])
--
- AC_CANONICAL_TARGET
- AM_INIT_AUTOMAKE(gtk-vnc, 0.3.7)
-+
-+dnl gl_INIT uses m4_foreach_w, yet that is not defined in autoconf-2.59.
-+dnl In order to accommodate developers with such old tools, here's a
-+dnl replacement definition.
-+m4_ifndef([m4_foreach_w],
-+  [m4_define([m4_foreach_w],
-+    [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])])
-+
-+gl_EARLY
-+gl_INIT
-+
- AC_PROG_CC_STDC
- AM_PROG_CC_C_O
-+AC_LIBTOOL_WIN32_DLL
-+
- AC_PROG_LIBTOOL
-+AC_CHECK_HEADERS([pwd.h winsock2.h])
-+
- AC_ARG_WITH(python,
- [  --with-python           build python bindings],
- [case "${withval}" in
-@@ -234,6 +248,8 @@
- AC_CONFIG_FILES(
-   Makefile
-+  gnulib/lib/Makefile
-+  gnulib/tests/Makefile
-   src/Makefile
-   examples/Makefile
-   plugin/Makefile
-diff -urN gtk-vnc-0.3.7.abs/Makefile.am gtk-vnc-0.3.7.dan3/Makefile.am
---- gtk-vnc-0.3.7.abs/Makefile.am      2008-09-05 13:32:15.000000000 +0100
-+++ gtk-vnc-0.3.7.dan3/Makefile.am     2008-10-09 15:22:57.000000000 +0100
-@@ -1,5 +1,9 @@
--SUBDIRS = src examples plugin
-+SUBDIRS = gnulib/lib src examples plugin gnulib/tests
-+
-+ACLOCAL_AMFLAGS = -I gnulib/m4
-+
-+
- pkgconfig_DATA = @PACKAGE@-1.0.pc
- pkgconfigdir = $(libdir)/pkgconfig
-diff -urN gtk-vnc-0.3.7.abs/src/continuation.c gtk-vnc-0.3.7.dan3/src/continuation.c
---- gtk-vnc-0.3.7.abs/src/continuation.c       2008-09-05 13:32:16.000000000 +0100
-+++ gtk-vnc-0.3.7.dan3/src/continuation.c      2008-10-09 15:23:00.000000000 +0100
-@@ -8,6 +8,8 @@
-  *  GTK VNC Widget
-  */
-+#include <config.h>
-+
- #include "continuation.h"
- /*
-diff -urN gtk-vnc-0.3.7.abs/src/coroutine_gthread.c gtk-vnc-0.3.7.dan3/src/coroutine_gthread.c
---- gtk-vnc-0.3.7.abs/src/coroutine_gthread.c  2008-09-05 13:32:16.000000000 +0100
-+++ gtk-vnc-0.3.7.dan3/src/coroutine_gthread.c 2008-10-09 15:23:00.000000000 +0100
-@@ -8,6 +8,8 @@
-  *  GTK VNC Widget
-  */
-+#include <config.h>
-+
- #include "coroutine.h"
- #include <stdio.h>
- #include <stdlib.h>
-@@ -17,13 +19,24 @@
- static struct coroutine *current;
- static struct coroutine leader;
-+#if 0
-+#define CO_DEBUG(OP) fprintf(stderr, "%s %p %s %d\n", OP, g_thread_self(), __FUNCTION__, __LINE__)
-+#else
-+#define CO_DEBUG(OP)
-+#endif
-+
- static void coroutine_system_init(void)
- {
--      if (!g_thread_supported())
-+      if (!g_thread_supported()) {
-+              CO_DEBUG("INIT");
-               g_thread_init(NULL);
-+      }
-+
-       run_cond = g_cond_new();
-       run_lock = g_mutex_new();
-+      CO_DEBUG("LOCK");
-+      g_mutex_lock(run_lock);
-       /* The thread that creates the first coroutine is the system coroutine
-        * so let's fill out a structure for it */
-@@ -42,17 +55,22 @@
- static gpointer coroutine_thread(gpointer opaque)
- {
-       struct coroutine *co = opaque;
--
-+      CO_DEBUG("LOCK");
-       g_mutex_lock(run_lock);
--      while (!co->runnable)
-+      while (!co->runnable) {
-+              CO_DEBUG("WAIT");
-               g_cond_wait(run_cond, run_lock);
-+      }
-+      CO_DEBUG("RUNNABLE");
-       current = co;
-       co->data = co->entry(co->data);
-       co->exited = 1;
-       co->caller->runnable = TRUE;
-+      CO_DEBUG("BROADCAST");
-       g_cond_broadcast(run_cond);
-+      CO_DEBUG("UNLOCK");
-       g_mutex_unlock(run_lock);
-       return NULL;
-@@ -62,7 +80,8 @@
- {
-       if (run_cond == NULL)
-               coroutine_system_init();
--      
-+
-+      CO_DEBUG("NEW");
-       co->thread = g_thread_create_full(coroutine_thread, co, co->stack_size,
-                                         FALSE, TRUE,
-                                         G_THREAD_PRIORITY_NORMAL,
-@@ -88,15 +107,19 @@
-       to->runnable = TRUE;
-       to->data = arg;
-       to->caller = from;
-+      CO_DEBUG("BROADCAST");
-       g_cond_broadcast(run_cond);
-+      CO_DEBUG("UNLOCK");
-       g_mutex_unlock(run_lock);
--
-+      CO_DEBUG("LOCK");
-       g_mutex_lock(run_lock);
--      while (!from->runnable)
-+      while (!from->runnable) {
-+              CO_DEBUG("WAIT");
-               g_cond_wait(run_cond, run_lock);
--
-+      }
-       current = from;
-+      CO_DEBUG("SWAPPED");
-       return from->data;
- }
-@@ -111,6 +134,7 @@
-               fprintf(stderr, "Co-routine is re-entering itself\n");
-               abort();
-       }
-+      CO_DEBUG("SWAP");
-       return coroutine_swap(coroutine_self(), to, arg);
- }
-@@ -121,6 +145,8 @@
-               fprintf(stderr, "Co-routine is yielding to no one\n");
-               abort();
-       }
-+
-+      CO_DEBUG("SWAP");
-       coroutine_self()->caller = NULL;
-       return coroutine_swap(coroutine_self(), to, arg);
- }
-diff -urN gtk-vnc-0.3.7.abs/src/coroutine_ucontext.c gtk-vnc-0.3.7.dan3/src/coroutine_ucontext.c
---- gtk-vnc-0.3.7.abs/src/coroutine_ucontext.c 2008-09-05 13:32:16.000000000 +0100
-+++ gtk-vnc-0.3.7.dan3/src/coroutine_ucontext.c        2008-10-09 15:23:00.000000000 +0100
-@@ -8,6 +8,8 @@
-  *  GTK VNC Widget
-  */
-+#include <config.h>
-+
- #include <sys/types.h>
- #include <sys/mman.h>
- #include <stdio.h>
-diff -urN gtk-vnc-0.3.7.abs/src/gvnc.c gtk-vnc-0.3.7.dan3/src/gvnc.c
---- gtk-vnc-0.3.7.abs/src/gvnc.c       2008-09-05 13:32:16.000000000 +0100
-+++ gtk-vnc-0.3.7.dan3/src/gvnc.c      2008-10-09 15:23:00.000000000 +0100
-@@ -8,13 +8,14 @@
-  *  GTK VNC Widget
-  */
-+#include <config.h>
-+
- #include "gvnc.h"
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
--#include <netdb.h>
- #include <string.h>
- #include <unistd.h>
- #include <stdio.h>
-@@ -40,6 +41,14 @@
- #include <gdk/gdkkeysyms.h>
- #include "vnc_keycodes.h"
-+#include "getaddrinfo.h"
-+
-+/* AI_ADDRCONFIG is missing on some systems and gnulib won't provide it
-+   even if its emulated getaddrinfo() for us . */
-+#ifndef AI_ADDRCONFIG
-+# define AI_ADDRCONFIG 0
-+#endif
-+
- struct wait_queue
- {
-@@ -185,7 +194,6 @@
-       g_io_add_watch(channel, cond | G_IO_HUP | G_IO_ERR | G_IO_NVAL, g_io_wait_helper, coroutine_self());
-       ret = coroutine_yield(NULL);
--
-       return *ret;
- }
-@@ -344,7 +352,7 @@
-       size_t offset = 0;
-       if (gvnc->has_error) return -EINVAL;
--      
-+
-       while (offset < len) {
-               size_t tmp;
-@@ -376,7 +384,7 @@
-                       if (ret == -1) {
-                               switch (errno) {
--                              case EAGAIN:
-+                              case EWOULDBLOCK:
-                                       if (gvnc->wait_interruptable) {
-                                               if (!g_io_wait_interruptable(&gvnc->wait,
-                                                                            gvnc->channel, G_IO_IN))
-@@ -386,7 +394,7 @@
-                               case EINTR:
-                                       continue;
-                               default:
--                                      GVNC_DEBUG("Closing the connection: gvnc_read() - ret=-1\n");
-+                                      GVNC_DEBUG("Closing the connection: gvnc_read() - errno=%d\n", errno);
-                                       gvnc->has_error = TRUE;
-                                       return -errno;
-                               }
-@@ -436,12 +444,12 @@
-                                   gvnc->write_offset-offset);
-               if (ret == -1) {
-                       switch (errno) {
--                      case EAGAIN:
-+                      case EWOULDBLOCK:
-                               g_io_wait(gvnc->channel, G_IO_OUT);
-                       case EINTR:
-                               continue;
-                       default:
--                              GVNC_DEBUG("Closing the connection: gvnc_flush\n");
-+                              GVNC_DEBUG("Closing the connection: gvnc_flush %d\n", errno);
-                               gvnc->has_error = TRUE;
-                               return;
-                       }
-@@ -1341,12 +1349,12 @@
- static int gvnc_read_zrle_rl(struct gvnc *gvnc)
- {
-       int rl = 1;
--      uint8_t byte;
-+      uint8_t b;
-       do {
--              byte = gvnc_read_u8(gvnc);
--              rl += byte;
--      } while (!gvnc_has_error(gvnc) && byte == 255);
-+              b = gvnc_read_u8(gvnc);
-+              rl += b;
-+      } while (!gvnc_has_error(gvnc) && b == 255);
-       return rl;
- }
-@@ -2802,12 +2810,12 @@
-       if (gvnc_has_error(gvnc))
-               return FALSE;
--      if (!gvnc->fmt.true_color_flag && gvnc->ops.get_preferred_pixel_format)
-+      if (!gvnc->fmt.true_color_flag && gvnc->ops.get_preferred_pixel_format) {
-               if (gvnc->ops.get_preferred_pixel_format(gvnc->ops_data, &gvnc->fmt))
-                       gvnc_set_pixel_format(gvnc, &gvnc->fmt);
-               else
-                       goto fail;
--
-+      }
-       memset(&gvnc->strm, 0, sizeof(gvnc->strm));
-       /* FIXME what level? */
-       for (i = 0; i < 5; i++)
-@@ -2822,15 +2830,16 @@
-       return !gvnc_has_error(gvnc);
- }
--gboolean gvnc_open_fd(struct gvnc *gvnc, int fd)
-+static gboolean gvnc_set_nonblock(int fd)
- {
--      int flags;
--      if (gvnc_is_open(gvnc)) {
--              GVNC_DEBUG ("Error: already connected?\n");
-+#ifdef __MINGW32__
-+      unsigned long flags = 1;
-+      if (ioctlsocket(fd, FIONBIO, &flags) < 0) {
-+              GVNC_DEBUG ("Failed to set nonblocking flag\n");
-               return FALSE;
-       }
--
--      GVNC_DEBUG("Connecting to FD %d\n", fd);
-+#else
-+      int flags;
-       if ((flags = fcntl(fd, F_GETFL)) < 0) {
-               GVNC_DEBUG ("Failed to fcntl()\n");
-               return FALSE;
-@@ -2840,6 +2849,21 @@
-               GVNC_DEBUG ("Failed to fcntl()\n");
-               return FALSE;
-       }
-+#endif
-+      return TRUE;
-+}
-+
-+gboolean gvnc_open_fd(struct gvnc *gvnc, int fd)
-+{
-+      if (gvnc_is_open(gvnc)) {
-+              GVNC_DEBUG ("Error: already connected?\n");
-+              return FALSE;
-+      }
-+
-+      GVNC_DEBUG("Connecting to FD %d\n", fd);
-+
-+      if (!gvnc_set_nonblock(fd))
-+              return FALSE;
-       if (!(gvnc->channel = g_io_channel_unix_new(fd))) {
-               GVNC_DEBUG ("Failed to g_io_channel_unix_new()\n");
-@@ -2873,7 +2897,7 @@
-         runp = ai;
-         while (runp != NULL) {
--                int flags, fd;
-+                int fd;
-                 GIOChannel *chan;
-               if ((fd = socket(runp->ai_family, runp->ai_socktype,
-@@ -2883,17 +2907,8 @@
-               }
-                 GVNC_DEBUG("Trying socket %d\n", fd);
--                if ((flags = fcntl(fd, F_GETFL)) < 0) {
--                        close(fd);
--                        GVNC_DEBUG ("Failed to fcntl()\n");
--                        break;
--                }
--                flags |= O_NONBLOCK;
--                if (fcntl(fd, F_SETFL, flags) < 0) {
--                        close(fd);
--                        GVNC_DEBUG ("Failed to fcntl()\n");
--                        break;
--                }
-+              if (!gvnc_set_nonblock(fd))
-+                      break;
-                 if (!(chan = g_io_channel_unix_new(fd))) {
-                         close(fd);
-@@ -2904,14 +2919,15 @@
-         reconnect:
-                 /* FIXME: Better handle EINPROGRESS/EISCONN return values,
-                    as explained in connect(2) man page */
--                if ( (connect(fd, runp->ai_addr, runp->ai_addrlen) == 0) || errno == EISCONN) {
-+                if ((connect(fd, runp->ai_addr, runp->ai_addrlen) == 0) ||
-+                  errno == EISCONN) {
-                         gvnc->channel = chan;
-                         gvnc->fd = fd;
-                         freeaddrinfo(ai);
-                         return !gvnc_has_error(gvnc);
-                 }
--
--                if (errno == EINPROGRESS) {
-+                if (errno == EINPROGRESS ||
-+                    errno == EWOULDBLOCK) {
-                         g_io_wait(chan, G_IO_OUT|G_IO_ERR|G_IO_HUP);
-                         goto reconnect;
-                 } else if (errno != ECONNREFUSED &&
-diff -urN gtk-vnc-0.3.7.abs/src/Makefile.am gtk-vnc-0.3.7.dan3/src/Makefile.am
---- gtk-vnc-0.3.7.abs/src/Makefile.am  2008-09-05 13:32:15.000000000 +0100
-+++ gtk-vnc-0.3.7.dan3/src/Makefile.am 2008-10-09 15:23:00.000000000 +0100
-@@ -4,13 +4,15 @@
- lib_LTLIBRARIES = libgtk-vnc-1.0.la
- libgtk_vnc_1_0_la_LIBADD = @GTK_LIBS@ @GTKGLEXT_LIBS@ @GNUTLS_LIBS@ \
--                         @GTHREAD_LIBS@
-+                         @GTHREAD_LIBS@ \
-+                           ../gnulib/lib/libgnu.la
- libgtk_vnc_1_0_la_CFLAGS = @GTK_CFLAGS@ @GTKGLEXT_CFLAGS@ @GNUTLS_CFLAGS@ \
-                          @GTHREAD_CFLAGS@ @WARNING_CFLAGS@ \
-                          -DSYSCONFDIR=\""$(sysconfdir)"\" \
--                           -DG_LOG_DOMAIN=\"gtk-vnc\"
-+                           -DG_LOG_DOMAIN=\"gtk-vnc\" \
-+                           -I$(top_srcdir)gnulib/lib -I../gnulib/lib
- libgtk_vnc_1_0_la_LDFLAGS = -Wl, @LD_VERSION_SCRIPT_SUPPORT@ \
--                            -version-info 0:1:0
-+                            -version-info 0:1:0 -no-undefined
- gtk_vnc_includedir = $(includedir)/gtk-vnc-1.0/
- gtk_vnc_include_HEADERS = vncdisplay.h
-diff -urN gtk-vnc-0.3.7.abs/src/vncdisplay.c gtk-vnc-0.3.7.dan3/src/vncdisplay.c
---- gtk-vnc-0.3.7.abs/src/vncdisplay.c 2008-10-09 15:21:21.000000000 +0100
-+++ gtk-vnc-0.3.7.dan3/src/vncdisplay.c        2008-10-09 15:23:00.000000000 +0100
-@@ -8,6 +8,8 @@
-  *  GTK VNC Widget
-  */
-+#include <config.h>
-+
- #include "vncdisplay.h"
- #include "coroutine.h"
- #include "gvnc.h"
-@@ -24,7 +26,9 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
-+#ifdef HAVE_PWD_H
- #include <pwd.h>
-+#endif
- #if WITH_GTKGLEXT
- #include <gtk/gtkgl.h>
-@@ -2191,33 +2195,44 @@
- static int vnc_display_set_x509_credential(VncDisplay *obj, const char *name)
- {
--      char sysdir[PATH_MAX], userdir[PATH_MAX];
--      struct passwd *pw;
-       char file[PATH_MAX];
-+      char sysdir[PATH_MAX];
-+#ifndef __MINGW32__
-+      char userdir[PATH_MAX];
-+      struct passwd *pw;
-       char *dirs[] = { sysdir, userdir };
-+#else
-+      char *dirs[] = { sysdir };
-+#endif
-       strncpy(sysdir, SYSCONFDIR "/pki", PATH_MAX-1);
-       sysdir[PATH_MAX-1] = '\0';
-+#ifndef __MINGW32__
-       if (!(pw = getpwuid(getuid())))
-               return TRUE;
-       snprintf(userdir, PATH_MAX-1, "%s/.pki", pw->pw_dir);
-       userdir[PATH_MAX-1] = '\0';
-+#endif
--      if (vnc_display_best_path(file, PATH_MAX, "CA", "cacert.pem", dirs, 2) < 0)
-+      if (vnc_display_best_path(file, PATH_MAX, "CA", "cacert.pem",
-+                                dirs, sizeof(dirs)/sizeof(dirs[0])) < 0)
-               return TRUE;
-       gvnc_set_credential_x509_cacert(obj->priv->gvnc, file);
-       /* Don't mind failures of CRL */
--      if (vnc_display_best_path(file, PATH_MAX, "CA", "cacrl.pem", dirs, 2) == 0)
-+      if (vnc_display_best_path(file, PATH_MAX, "CA", "cacrl.pem",
-+                                dirs, sizeof(dirs)/sizeof(dirs[0])) == 0)
-               gvnc_set_credential_x509_cacert(obj->priv->gvnc, file);
-       /* Set client key & cert if we have them. Server will reject auth
-        * if it decides it requires them*/
--      if (vnc_display_best_path(file, PATH_MAX, name, "private/clientkey.pem", dirs, 2) == 0)
-+      if (vnc_display_best_path(file, PATH_MAX, name, "private/clientkey.pem",
-+                                dirs, sizeof(dirs)/sizeof(dirs[0])) == 0)
-               gvnc_set_credential_x509_key(obj->priv->gvnc, file);
--      if (vnc_display_best_path(file, PATH_MAX, name, "clientcert.pem", dirs, 2) == 0)
-+      if (vnc_display_best_path(file, PATH_MAX, name, "clientcert.pem",
-+                                dirs, sizeof(dirs)/sizeof(dirs[0])) == 0)
-               gvnc_set_credential_x509_cert(obj->priv->gvnc, file);
-       return FALSE;
-diff -urN gtk-vnc-0.3.7.abs/vc-list-files gtk-vnc-0.3.7.dan3/vc-list-files
---- gtk-vnc-0.3.7.abs/vc-list-files    1970-01-01 01:00:00.000000000 +0100
-+++ gtk-vnc-0.3.7.dan3/vc-list-files   2008-10-09 15:23:00.000000000 +0100
-@@ -0,0 +1,107 @@
-+#!/bin/sh
-+# List version-controlled file names.
-+
-+# Print a version string.
-+scriptversion=2008-07-11.19
-+
-+# 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/>.
-+
-+
-+# List the specified version-controlled files.
-+# With no argument, list them all.  With a single DIRECTORY argument,
-+# list the version-controlled files in that directory.
-+
-+# If there's an argument, it must be a single, "."-relative directory name.
-+# cvsu is part of the cvsutils package: http://www.red-bean.com/cvsutils/
-+
-+postprocess=
-+case $1 in
-+  --help) cat <<EOF
-+Usage: $0 [-C SRCDIR] [DIR]
-+
-+Output a list of version-controlled files in DIR (default .), relative to
-+SRCDIR (default .).  SRCDIR must be the top directory of a checkout.
-+
-+Options:
-+  --help     print this help, then exit
-+  --version  print version number, then exit
-+  -C SRCDIR  change directory to SRCDIR before generating list
-+
-+Report bugs and patches to <bug-gnulib@gnu.org>.
-+EOF
-+    exit ;;
-+
-+  --version)
-+    year=`echo "$scriptversion" | sed 's/[^0-9].*//'`
-+    cat <<EOF
-+vc-list-files $scriptversion
-+Copyright (C) $year Free Software Foundation, Inc,
-+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
-+This is free software: you are free to change and redistribute it.
-+There is NO WARRANTY, to the extent permitted by law.
-+EOF
-+    exit ;;
-+
-+  -C)
-+    test "$2" = . || postprocess="| sed 's|^|$2/|'"
-+    cd "$2" || exit 1
-+    shift; shift ;;
-+esac
-+
-+dir=
-+case $# in
-+  0) ;;
-+  1) dir=$1 ;;
-+  *) echo "$0: too many arguments" 1>&2
-+     echo "Usage: $0 [-C srcdir] [DIR]" 1>&2; exit 1;;
-+esac
-+
-+test "x$dir" = x && dir=.
-+
-+if test -d .git; then
-+  eval exec git ls-files '"$dir"' $postprocess
-+elif test -d .hg; then
-+  eval exec hg locate '"$dir/*"' $postprocess
-+elif test -d .bzr; then
-+  test "$postprocess" = '' && postprocess="| sed 's|^\./||'"
-+  eval exec bzr ls --versioned '"$dir"' $postprocess
-+elif test -d CVS; then
-+  test "$postprocess" = '' && postprocess="| sed 's|^\./||'"
-+  if test -x build-aux/cvsu; then
-+    eval build-aux/cvsu --find --types=AFGM '"$dir"' $postprocess
-+  elif (cvsu --help) >/dev/null 2>&1; then
-+    eval cvsu --find --types=AFGM '"$dir"' $postprocess
-+  else
-+    eval awk -F/ \''{                 \
-+      if (!$1 && $3 !~ /^-/) {        \
-+        f=FILENAME;                   \
-+        if (f ~ /CVS\/Entries$/)      \
-+          f = substr(f, 0, length(f)-11); \
-+        print f $2;                   \
-+      }}'\''                          \
-+      `find "$dir" -name Entries -print` /dev/null' $postprocess
-+  fi
-+else
-+  echo "$0: Failed to determine type of version control used in `pwd`" 1>&2
-+  exit 1
-+fi
-+
-+# Local variables:
-+# eval: (add-hook 'write-file-hooks 'time-stamp)
-+# time-stamp-start: "scriptversion="
-+# time-stamp-format: "%:y-%02m-%02d.%02H"
-+# time-stamp-end: "$"
-+# End:
diff --git a/gtk-vnc/gtk-vnc-0.3.7-mingw32-gnulib-files.patch b/gtk-vnc/gtk-vnc-0.3.7-mingw32-gnulib-files.patch
deleted file mode 100644 (file)
index 1dc1b1f..0000000
+++ /dev/null
@@ -1,17917 +0,0 @@
-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
diff --git a/gtk-vnc/gtk-vnc-00-win32.patch b/gtk-vnc/gtk-vnc-00-win32.patch
deleted file mode 100644 (file)
index 5cc1af3..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -r 47135c91cd9c src/vncdisplay.c
---- a/src/vncdisplay.c Thu Oct 09 11:23:09 2008 -0400
-+++ b/src/vncdisplay.c Wed Oct 29 14:52:28 2008 +0000
-@@ -1892,7 +1903,7 @@
- {
-       char file[PATH_MAX];
-       char sysdir[PATH_MAX];
--#ifndef __MINGW32__
-+#ifndef WIN32
-       char userdir[PATH_MAX];
-       struct passwd *pw;
-       char *dirs[] = { sysdir, userdir };
-@@ -1903,7 +1914,7 @@
-       strncpy(sysdir, SYSCONFDIR "/pki", PATH_MAX-1);
-       sysdir[PATH_MAX-1] = '\0';
--#ifndef __MINGW32__
-+#ifndef WIN32
-       if (!(pw = getpwuid(getuid())))
-               return TRUE;
diff --git a/gtk-vnc/gtk-vnc-01-recv.patch b/gtk-vnc/gtk-vnc-01-recv.patch
deleted file mode 100644 (file)
index a7068cd..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -r 47135c91cd9c src/gvnc.c
---- a/src/gvnc.c       Thu Oct 09 11:23:09 2008 -0400
-+++ b/src/gvnc.c       Wed Oct 29 14:51:17 2008 +0000
-@@ -380,7 +380,7 @@
-                                       ret = -1;
-                               }
-                       } else
--                              ret = read(fd, gvnc->read_buffer, 4096);
-+                              ret = recv (fd, gvnc->read_buffer, 4096, 0);
-                       if (ret == -1) {
-                               switch (errno) {
-@@ -439,9 +439,9 @@
-                               ret = -1;
-                       }
-               } else
--                      ret = write(fd,
-+                      ret = send (fd,
-                                   gvnc->write_buffer+offset,
--                                  gvnc->write_offset-offset);
-+                                  gvnc->write_offset-offset, 0);
-               if (ret == -1) {
-                       switch (errno) {
-                       case EWOULDBLOCK:
diff --git a/gtk-vnc/gtk-vnc-02-ioctl.patch b/gtk-vnc/gtk-vnc-02-ioctl.patch
deleted file mode 100644 (file)
index 77c73e8..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-diff -r 47135c91cd9c src/gvnc.c
---- a/src/gvnc.c       Thu Oct 09 11:23:09 2008 -0400
-+++ b/src/gvnc.c       Wed Oct 29 14:51:26 2008 +0000
-@@ -2832,13 +2832,7 @@
- static gboolean gvnc_set_nonblock(int fd)
- {
--#ifdef __MINGW32__
--      unsigned long flags = 1;
--      if (ioctlsocket(fd, FIONBIO, &flags) < 0) {
--              GVNC_DEBUG ("Failed to set nonblocking flag\n");
--              return FALSE;
--      }
--#else
-+#ifndef WIN32
-       int flags;
-       if ((flags = fcntl(fd, F_GETFL)) < 0) {
-               GVNC_DEBUG ("Failed to fcntl()\n");
-@@ -2849,7 +2843,20 @@
-               GVNC_DEBUG ("Failed to fcntl()\n");
-               return FALSE;
-       }
--#endif
-+
-+#else /* WIN32 */
-+      unsigned long flag = 1;
-+
-+      /* This is actually Gnulib's replacement rpl_ioctl function.
-+       * We can't call ioctlsocket directly in any case.
-+       */
-+      if (ioctl (fd, FIONBIO, (void *) &flag) == -1) {
-+              GVNC_DEBUG ("Failed to set nonblocking flag, winsock error = %d",
-+                          WSAGetLastError ());
-+              return FALSE;
-+      }
-+#endif /* WIN32 */
-+
-       return TRUE;
- }
diff --git a/gtk-vnc/gtk-vnc-03-wsastartup.patch b/gtk-vnc/gtk-vnc-03-wsastartup.patch
deleted file mode 100644 (file)
index 61076ab..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-diff -r 47135c91cd9c src/vncdisplay.c
---- a/src/vncdisplay.c Thu Oct 09 11:23:09 2008 -0400
-+++ b/src/vncdisplay.c Wed Oct 29 14:52:36 2008 +0000
-@@ -29,6 +29,13 @@
- #ifdef HAVE_PWD_H
- #include <pwd.h>
- #endif
-+
-+#ifdef HAVE_WINSOCK2_H
-+#include <winsock2.h>
-+#endif
-+
-+static void winsock_startup (void);
-+static void winsock_cleanup (void);
- #define VNC_DISPLAY_GET_PRIVATE(obj) \
-       (G_TYPE_INSTANCE_GET_PRIVATE((obj), VNC_TYPE_DISPLAY, VncDisplayPrivate))
-@@ -243,6 +250,7 @@
- GtkWidget *vnc_display_new(void)
- {
-+      winsock_startup ();
-       return GTK_WIDGET(g_object_new(VNC_TYPE_DISPLAY, NULL));
- }
-@@ -1255,6 +1263,9 @@
-       }
-       g_object_unref(G_OBJECT(data));
-+
-+      winsock_cleanup ();
-+
-       return FALSE;
- }
-@@ -2188,6 +2199,49 @@
-   return group;
- }
-+#ifdef WIN32
-+
-+/* On Windows, we must call WSAStartup before using any sockets and we
-+ * must call WSACleanup afterwards.  And we have to balance any calls
-+ * to WSAStartup with a corresponding call to WSACleanup.
-+ *
-+ * Note that Wine lets you do socket calls anyway, but real Windows
-+ * doesn't. (http://bugs.winehq.org/show_bug.cgi?id=11965)
-+ */
-+
-+static void
-+winsock_startup (void)
-+{
-+      WORD winsock_version, err;
-+      WSADATA winsock_data;
-+
-+      /* http://msdn2.microsoft.com/en-us/library/ms742213.aspx */
-+      winsock_version = MAKEWORD (2, 2);
-+      err = WSAStartup (winsock_version, &winsock_data);
-+      if (err != 0)
-+              GVNC_DEBUG ("ignored error %d from WSAStartup", err);
-+}
-+
-+static void
-+winsock_cleanup (void)
-+{
-+      WSACleanup ();
-+}
-+
-+#else /* !WIN32 */
-+
-+static void
-+winsock_startup (void)
-+{
-+}
-+
-+static void
-+winsock_cleanup (void)
-+{
-+}
-+
-+#endif /* !WIN32 */
-+
- /*
-  * Local variables:
-  *  c-indent-level: 8
diff --git a/gtk-vnc/gtk-vnc-dan-fd-fix.patch b/gtk-vnc/gtk-vnc-dan-fd-fix.patch
deleted file mode 100644 (file)
index 86b2b1a..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-I managed to reproduce the problem you saw with gtk-vnc and windows
-hanging. With the glib IO debug turned up high I can see it is treating
-the FD as a file handle, rather than a socket - which is to be expected
-because gnulib is wrapping winsock to give back real FDs.
-
-Unfortunately glib is on crack, and for file handles it implements
-IO waits by having a background thread for each file handle that sits
-in a read/write call forever, and sets flags. To quote the docs
-
-  "If you have created a GIOChannel for a file descriptor and started 
-   watching (polling) it, you shouldn't call read() on the file descriptor.
-   This is because adding polling for a file descriptor is implemented in 
-   GLib on Windows by starting a thread that sits blocked in a read() from
-   the file descriptor most of the time. All reads from the file descriptor 
-   should be done by this internal GLib thread. Your code should call only 
-   g_io_channel_read(). "
-
-This is just epic fail when combined with what we want todo. Making gtk-vnc
-use g_io_channel_read() instead didn't work either. I think the glib thread
-concept simply doesn't work for FDs which are aliases for sockets.
-
-So I've tried a atch which creates an IO channel using 
-
-  g_io_channel_win32_new_socket(_get_osfhandle(fd))
-
-to explicitly make glib treat it as a socket, and avoid the thread insanity.
-Slightly nasty because we're reversing gnulibs magic by translating the
-FD back into a socket, but empirically it seems to work better for me. I've
-not yet got it  to hang with this patch.
-
-I also needed to make our read/write functions use the 'fd' in the gvnc
-struct, instead of fetching it from the IOChannel object.
-
-Let me know if this patch works for you too....
-
-Daniel
-
-diff --git a/src/gvnc.c b/src/gvnc.c
---- a/src/gvnc.c
-+++ b/src/gvnc.c
-@@ -347,7 +347,6 @@ static int gvnc_zread(struct gvnc *gvnc,
- static int gvnc_read(struct gvnc *gvnc, void *data, size_t len)
- {
--      int fd = g_io_channel_unix_get_fd(gvnc->channel);
-       char *ptr = data;
-       size_t offset = 0;
-@@ -380,7 +379,7 @@ static int gvnc_read(struct gvnc *gvnc, 
-                                       ret = -1;
-                               }
-                       } else
--                              ret = recv (fd, gvnc->read_buffer, 4096, 0);
-+                              ret = recv (gvnc->fd, gvnc->read_buffer, 4096, 0);
-                       if (ret == -1) {
-                               switch (errno) {
-@@ -422,7 +421,6 @@ static int gvnc_read(struct gvnc *gvnc, 
- static void gvnc_flush(struct gvnc *gvnc)
- {
--      int fd = g_io_channel_unix_get_fd(gvnc->channel);
-       size_t offset = 0;
-       while (offset < gvnc->write_offset) {
-               int ret;
-@@ -439,7 +437,7 @@ static void gvnc_flush(struct gvnc *gvnc
-                               ret = -1;
-                       }
-               } else
--                      ret = send (fd,
-+                      ret = send (gvnc->fd,
-                                   gvnc->write_buffer+offset,
-                                   gvnc->write_offset-offset, 0);
-               if (ret == -1) {
-@@ -490,11 +488,10 @@ static ssize_t gvnc_tls_push(gnutls_tran
-                             const void *data,
-                             size_t len) {
-       struct gvnc *gvnc = (struct gvnc *)transport;
--      int fd = g_io_channel_unix_get_fd(gvnc->channel);
-       int ret;
-  retry:
--      ret = write(fd, data, len);
-+      ret = write(gvnc->fd, data, len);
-       if (ret < 0) {
-               if (errno == EINTR)
-                       goto retry;
-@@ -508,11 +505,10 @@ static ssize_t gvnc_tls_pull(gnutls_tran
-                            void *data,
-                            size_t len) {
-       struct gvnc *gvnc = (struct gvnc *)transport;
--      int fd = g_io_channel_unix_get_fd(gvnc->channel);
-       int ret;
-  retry:
--      ret = read(fd, data, len);
-+      ret = read(gvnc->fd, data, len);
-       if (ret < 0) {
-               if (errno == EINTR)
-                       goto retry;
-@@ -2872,7 +2868,13 @@ gboolean gvnc_open_fd(struct gvnc *gvnc,
-       if (!gvnc_set_nonblock(fd))
-               return FALSE;
--      if (!(gvnc->channel = g_io_channel_unix_new(fd))) {
-+      if (!(gvnc->channel =
-+#ifdef WIN32
-+            g_io_channel_win32_new_socket(_get_osfhandle(fd))
-+#else
-+            g_io_channel_unix_new(fd)
-+#endif
-+            )) {
-               GVNC_DEBUG ("Failed to g_io_channel_unix_new()\n");
-               return FALSE;
-       }
-@@ -2917,7 +2919,13 @@ gboolean gvnc_open_host(struct gvnc *gvn
-               if (!gvnc_set_nonblock(fd))
-                       break;
--                if (!(chan = g_io_channel_unix_new(fd))) {
-+                if (!(chan =
-+#ifdef WIN32
-+                    g_io_channel_win32_new_socket(_get_osfhandle(fd))
-+#else
-+                    g_io_channel_unix_new(fd)
-+#endif
-+                    )) {
-                         close(fd);
-                         GVNC_DEBUG ("Failed to g_io_channel_unix_new()\n");
-                         break;
-
--- 
-|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
-|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
-|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
-|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
diff --git a/gtk-vnc/gtk-vnc-hgignore.patch b/gtk-vnc/gtk-vnc-hgignore.patch
deleted file mode 100644 (file)
index 048a7a2..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -r 47135c91cd9c .hgignore
---- a/.hgignore        Thu Oct 09 11:23:09 2008 -0400
-+++ b/.hgignore        Wed Oct 29 17:35:32 2008 +0000
-@@ -42,3 +42,17 @@
- src/.*\.orig
- .*\.spec
- .*\.tar\.gz$
-+^gnulib/lib/\.deps/
-+^gnulib/lib/\.libs/
-+^gnulib/tests/\.deps/
-+^gnulib/lib/.*\.o$
-+^gnulib/lib/.*\.lo$
-+^gnulib/lib/.*\.la$
-+^gnulib/lib/alloca\.h$
-+^gnulib/lib/arpa/inet\.h$
-+^gnulib/lib/errno\.h$
-+^gnulib/lib/netinet/in\.h$
-+^gnulib/lib/stdio\.h$
-+^gnulib/lib/stdlib\.h$
-+^gnulib/lib/sys/socket\.h$
-+^gnulib/lib/unistd\.h$
diff --git a/gtk-vnc/gtk-vnc-ldflags-confusion.patch b/gtk-vnc/gtk-vnc-ldflags-confusion.patch
deleted file mode 100644 (file)
index abfe4fe..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -r 47135c91cd9c configure.ac
---- a/configure.ac     Thu Oct 09 11:23:09 2008 -0400
-+++ b/configure.ac     Wed Oct 29 17:35:22 2008 +0000
-@@ -116,11 +116,14 @@
- save_CFLAGS="$CFLAGS"
- save_LDFLAGS="$LDFLAGS"
-+save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $GTK_CFLAGS"
--LDFLAGS="$LDFLAGS $GTK_LIBS"
-+LDFLAGS="$LDFLAGS $GTK_LDFLAGS"
-+LIBS="$LIBS $GTK_LIBS"
- AC_CHECK_FUNC([gdk_cairo_create], [WITH_GTK_CAIRO=1], [WITH_GTK_CAIRO=0])
- CFLAGS="$save_CFLAGS"
- LDFLAGS="$save_LDFLAGS"
-+LIBS="$save_LIBS"
- AC_DEFINE_UNQUOTED(WITH_GTK_CAIRO, [$WITH_GTK_CAIRO], [Whether to use cairo for GTK rendering])
index 83369e2..360de6f 100644 (file)
@@ -8,34 +8,27 @@
 
 Name:           mingw32-gtk-vnc
 Version:        0.3.8
-Release:        0.4.20081030hg%{?dist}
+Release:        2%{?dist}
 Summary:        MinGW Windows port of VNC client GTK widget
 
 License:        LGPLv2+
 Group:          Development/Libraries
-URL:            http://gtk-vnc.sf.net/
-Source0:        gtk-vnc-0.3.8-20081030.tar.gz
+URL:            http://sourceforge.net/projects/gtk-vnc
+Source0:        http://downloads.sourceforge.net/gtk-vnc/gtk-vnc-%{version}.tar.gz
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
-# Patches submitted upstream 2008-10-28/29/30:
-Patch100:       gtk-vnc-00-win32.patch
-Patch101:       gtk-vnc-01-recv.patch
-Patch102:       gtk-vnc-02-ioctl.patch
-Patch103:       gtk-vnc-03-wsastartup.patch
-#Patch104:       gtk-vnc-hgignore.patch
-Patch105:       gtk-vnc-ldflags-confusion.patch
-Patch106:       gtk-vnc-dan-fd-fix.patch
-
 BuildArch:      noarch
 
-BuildRequires:  mingw32-filesystem >= 30
+BuildRequires:  mingw32-filesystem >= 46
 BuildRequires:  mingw32-gcc
 BuildRequires:  mingw32-binutils
-BuildRequires:  mingw32-gtk2
+
+BuildRequires:  mingw32-cairo
+BuildRequires:  mingw32-dlfcn
+BuildRequires:  mingw32-gettext
+BuildRequires:  mingw32-iconv
 BuildRequires:  mingw32-gnutls
-BuildRequires:  autoconf
-BuildRequires:  automake
-BuildRequires:  libtool
+BuildRequires:  mingw32-gtk2
 BuildRequires:  pkgconfig
 
 Requires:       pkgconfig
@@ -47,18 +40,7 @@ allowing it to be completely asynchronous while remaining single threaded.
 
 
 %prep
-%setup -q -n gtk-vnc-0.3.7
-
-%patch100 -p1
-%patch101 -p1
-%patch102 -p1
-%patch103 -p1
-#%patch104 -p1
-%patch105 -p1
-%patch106 -p1
-
-libtoolize --force --copy
-autoreconf
+%setup -q -n gtk-vnc-%{version}
 
 
 %build
@@ -81,6 +63,7 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(-,root,root)
+%doc COPYING.LIB
 %{_mingw32_bindir}/gvncviewer.exe
 %{_mingw32_bindir}/libgtk-vnc-1.0-0.dll
 %{_mingw32_libdir}/libgtk-vnc-1.0.dll.a
@@ -90,6 +73,14 @@ rm -rf $RPM_BUILD_ROOT
 
 
 %changelog
+* Fri Feb  6 2009 Richard W.M. Jones <rjones@redhat.com> - 0.3.8-2
+- Needs mingw32-filesystem with the pkg-config library path fix.
+- Added optional BRs suggested by auto-buildrequires.
+- Include the license file.
+
+* Tue Feb  3 2009 Michel Salim <salimma@fedoraproject.org> - 0.3.8-1
+- Update to 0.3.8
+
 * Fri Jan 30 2009 Richard W.M. Jones <rjones@redhat.com> - 0.3.8-0.4.20081030hg
 - Requires pkgconfig.