From 1f5f4a02650d8b5d55d5dffd09485ffae9da7d55 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 1 Jan 1970 00:00:00 +0000 Subject: [PATCH] Replace with third version of Dan's patch, and up to date Gnulib. --- gtk-vnc/gtk-vnc-0.3.7-mingw32-dan2.patch | 3351 ---------------------- gtk-vnc/gtk-vnc-0.3.7-mingw32-dan3.patch | 702 +++++ gtk-vnc/gtk-vnc-0.3.7-mingw32-gnulib-files.patch | 2754 ++++++++++-------- gtk-vnc/mingw32-gtk-vnc.spec | 10 +- 4 files changed, 2242 insertions(+), 4575 deletions(-) delete mode 100644 gtk-vnc/gtk-vnc-0.3.7-mingw32-dan2.patch create mode 100644 gtk-vnc/gtk-vnc-0.3.7-mingw32-dan3.patch diff --git a/gtk-vnc/gtk-vnc-0.3.7-mingw32-dan2.patch b/gtk-vnc/gtk-vnc-0.3.7-mingw32-dan2.patch deleted file mode 100644 index 3383fe9..0000000 --- a/gtk-vnc/gtk-vnc-0.3.7-mingw32-dan2.patch +++ /dev/null @@ -1,3351 +0,0 @@ -diff -urN gtk-vnc-0.3.7/bootstrap gtk-vnc-0.3.7.mingw/bootstrap ---- gtk-vnc-0.3.7/bootstrap 1970-01-01 01:00:00.000000000 +0100 -+++ gtk-vnc-0.3.7.mingw/bootstrap 2008-10-09 12:19:03.000000000 +0100 -@@ -0,0 +1,84 @@ -+#!/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 -+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/configure.ac gtk-vnc-0.3.7.mingw/configure.ac ---- gtk-vnc-0.3.7/configure.ac 2008-09-05 13:32:15.000000000 +0100 -+++ gtk-vnc-0.3.7.mingw/configure.ac 2008-10-09 12:19:03.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/Makefile.am gtk-vnc-0.3.7.mingw/Makefile.am ---- gtk-vnc-0.3.7/Makefile.am 2008-09-05 13:32:15.000000000 +0100 -+++ gtk-vnc-0.3.7.mingw/Makefile.am 2008-10-09 12:19:01.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/src/continuation.c gtk-vnc-0.3.7.mingw/src/continuation.c ---- gtk-vnc-0.3.7/src/continuation.c 2008-09-05 13:32:16.000000000 +0100 -+++ gtk-vnc-0.3.7.mingw/src/continuation.c 2008-10-09 12:19:03.000000000 +0100 -@@ -8,6 +8,8 @@ - * GTK VNC Widget - */ - -+#include -+ - #include "continuation.h" - - /* -diff -urN gtk-vnc-0.3.7/src/coroutine_gthread.c gtk-vnc-0.3.7.mingw/src/coroutine_gthread.c ---- gtk-vnc-0.3.7/src/coroutine_gthread.c 2008-09-05 13:32:16.000000000 +0100 -+++ gtk-vnc-0.3.7.mingw/src/coroutine_gthread.c 2008-10-09 12:19:03.000000000 +0100 -@@ -8,6 +8,8 @@ - * GTK VNC Widget - */ - -+#include -+ - #include "coroutine.h" - #include - #include -@@ -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/src/coroutine_ucontext.c gtk-vnc-0.3.7.mingw/src/coroutine_ucontext.c ---- gtk-vnc-0.3.7/src/coroutine_ucontext.c 2008-09-05 13:32:16.000000000 +0100 -+++ gtk-vnc-0.3.7.mingw/src/coroutine_ucontext.c 2008-10-09 12:19:03.000000000 +0100 -@@ -8,6 +8,8 @@ - * GTK VNC Widget - */ - -+#include -+ - #include - #include - #include -diff -urN gtk-vnc-0.3.7/src/gvnc.c gtk-vnc-0.3.7.mingw/src/gvnc.c ---- gtk-vnc-0.3.7/src/gvnc.c 2008-09-05 13:32:16.000000000 +0100 -+++ gtk-vnc-0.3.7.mingw/src/gvnc.c 2008-10-09 12:19:03.000000000 +0100 -@@ -8,13 +8,10 @@ - * GTK VNC Widget - */ - --#include "gvnc.h" -+#include - --#include --#include --#include -+#include "gvnc.h" - --#include - #include - #include - #include -@@ -40,6 +37,15 @@ - #include - - #include "vnc_keycodes.h" -+#include "socketcompat.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 +191,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; - } - -@@ -321,10 +326,8 @@ - - /* inflate as much as possible */ - err = inflate(gvnc->strm, Z_SYNC_FLUSH); -- if (err != Z_OK) { -- errno = EIO; -- return -1; -- } -+ if (err != Z_OK) -+ return -EIO; - - gvnc->uncompressed_length = (uint8_t *)gvnc->strm->next_out - gvnc->uncompressed_buffer; - gvnc->compressed_length -= (uint8_t *)gvnc->strm->next_in - gvnc->compressed_buffer; -@@ -344,7 +347,7 @@ - size_t offset = 0; - - if (gvnc->has_error) return -EINVAL; -- -+ - while (offset < len) { - size_t tmp; - -@@ -352,10 +355,10 @@ - * so we must by-pass it */ - if (gvnc_use_compression(gvnc)) { - int ret = gvnc_zread(gvnc, data + offset, len); -- if (ret == -1) { -+ if (ret < 0) { - GVNC_DEBUG("Closing the connection: gvnc_read() - gvnc_zread() failed\n"); - gvnc->has_error = TRUE; -- return -errno; -+ return ret; - } - offset += ret; - continue; -@@ -366,17 +369,19 @@ - ret = gnutls_read(gvnc->tls_session, gvnc->read_buffer, 4096); - if (ret < 0) { - if (ret == GNUTLS_E_AGAIN) -- errno = EAGAIN; -+ ret = -EAGAIN; - else -- errno = EIO; -- ret = -1; -+ ret = -EIO; - } -- } else -- ret = read(fd, gvnc->read_buffer, 4096); -+ } else { -+ ret = recv(fd, gvnc->read_buffer, 4096, 0); -+ if (ret < 0) -+ ret = socket_errno() * -1; -+ } - -- if (ret == -1) { -- switch (errno) { -- case EAGAIN: -+ if (ret < 0) { -+ switch (ret * -1) { -+ case EWOULDBLOCK: - if (gvnc->wait_interruptable) { - if (!g_io_wait_interruptable(&gvnc->wait, - gvnc->channel, G_IO_IN)) -@@ -386,9 +391,9 @@ - case EINTR: - continue; - default: -- GVNC_DEBUG("Closing the connection: gvnc_read() - ret=-1\n"); -+ GVNC_DEBUG("Closing the connection: gvnc_read() - ret=%d\n", ret); - gvnc->has_error = TRUE; -- return -errno; -+ return ret; - } - } - if (ret == 0) { -@@ -425,23 +430,25 @@ - gvnc->write_offset-offset); - if (ret < 0) { - if (ret == GNUTLS_E_AGAIN) -- errno = EAGAIN; -+ ret = -EAGAIN; - else -- errno = EIO; -- ret = -1; -+ ret = -EIO; - } -- } else -- ret = write(fd, -- gvnc->write_buffer+offset, -- gvnc->write_offset-offset); -- if (ret == -1) { -- switch (errno) { -- case EAGAIN: -+ } else { -+ ret = send(fd, -+ gvnc->write_buffer+offset, -+ gvnc->write_offset-offset, 0); -+ if (ret < 0) -+ ret = socket_errno() * -1; -+ } -+ if (ret < 0) { -+ switch (ret * -1) { -+ 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", ret); - gvnc->has_error = TRUE; - return; - } -@@ -488,7 +495,7 @@ - retry: - ret = write(fd, data, len); - if (ret < 0) { -- if (errno == EINTR) -+ if (socket_errno() == EINTR) - goto retry; - return -1; - } -@@ -506,7 +513,7 @@ - retry: - ret = read(fd, data, len); - if (ret < 0) { -- if (errno == EINTR) -+ if (socket_errno() == EINTR) - goto retry; - return -1; - } -@@ -2802,12 +2809,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 +2829,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 +2848,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 +2896,7 @@ - - runp = ai; - while (runp != NULL) { -- int flags, fd; -+ int fd; - GIOChannel *chan; - - if ((fd = socket(runp->ai_family, runp->ai_socktype, -@@ -2883,17 +2906,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,21 +2918,22 @@ - 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) || -+ socket_errno() == EISCONN) { - gvnc->channel = chan; - gvnc->fd = fd; - freeaddrinfo(ai); - return !gvnc_has_error(gvnc); - } -- -- if (errno == EINPROGRESS) { -+ if (socket_errno() == EINPROGRESS || -+ socket_errno() == EWOULDBLOCK) { - g_io_wait(chan, G_IO_OUT|G_IO_ERR|G_IO_HUP); - goto reconnect; -- } else if (errno != ECONNREFUSED && -- errno != EHOSTUNREACH) { -+ } else if (socket_errno() != ECONNREFUSED && -+ socket_errno() != EHOSTUNREACH) { - g_io_channel_unref(chan); - close(fd); -- GVNC_DEBUG ("Failed with errno = %d\n", errno); -+ GVNC_DEBUG ("Failed with errno = %d\n", socket_errno()); - break; - } - close(fd); -diff -urN gtk-vnc-0.3.7/src/Makefile.am gtk-vnc-0.3.7.mingw/src/Makefile.am ---- gtk-vnc-0.3.7/src/Makefile.am 2008-09-05 13:32:15.000000000 +0100 -+++ gtk-vnc-0.3.7.mingw/src/Makefile.am 2008-10-09 12:19:03.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 -@@ -22,7 +24,7 @@ - vncdisplay.h vncdisplay.c \ - vncmarshal.h vncmarshal.c \ - x_keymap.h x_keymap.c vnc_keycodes.h \ -- utils.h -+ utils.h socketcompat.h - - if WITH_UCONTEXT - libgtk_vnc_1_0_la_SOURCES += continuation.h continuation.c coroutine_ucontext.c -diff -urN gtk-vnc-0.3.7/src/socketcompat.h gtk-vnc-0.3.7.mingw/src/socketcompat.h ---- gtk-vnc-0.3.7/src/socketcompat.h 1970-01-01 01:00:00.000000000 +0100 -+++ gtk-vnc-0.3.7.mingw/src/socketcompat.h 2008-10-09 12:19:03.000000000 +0100 -@@ -0,0 +1,64 @@ -+/* -+ * socketcompat.h: Socket compatibility for Windows, making it slightly -+ * less painful to use. -+ * -+ * Use this header under the following circumstances: -+ * (a) Instead of including any of: , , -+ * , , , AND -+ * (b) The file will be part of what is built on Windows (basically -+ * just remote client stuff). -+ * -+ * You need to use socket_errno() instead of errno to get socket -+ * errors. -+ * -+ * Copyright (C) 2008 Red Hat, Inc. -+ * -+ * See COPYING.LIB for the License of this software -+ * -+ * Richard W.M. Jones -+ */ -+ -+#ifndef __SOCKETCOMPAT_H__ -+#define __SOCKETCOMPAT_H__ -+ -+#include -+ -+#include -+ -+#ifndef HAVE_WINSOCK2_H /* Unix & Cygwin. */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+static inline int -+socket_errno (void) -+{ -+ return errno; -+} -+ -+#else /* MinGW & Win32 */ -+ -+#include -+ -+/* Socket functions in Windows don't set errno. Instead of using errno -+ * to test for socket errors, call this function to get the errno. -+ */ -+static inline int -+socket_errno (void) -+{ -+ return WSAGetLastError (); -+} -+ -+/* Compatibility. */ -+#define EWOULDBLOCK WSAEWOULDBLOCK -+#define ECONNREFUSED WSAECONNREFUSED -+#define EINPROGRESS WSAEINPROGRESS -+#define EHOSTUNREACH WSAEHOSTUNREACH -+#define EISCONN WSAEISCONN -+ -+#endif /* HAVE_WINSOCK2_H */ -+ -+#endif /* __WINSOCKWRAPPER_H__ */ -diff -urN gtk-vnc-0.3.7/src/vncdisplay.c gtk-vnc-0.3.7.mingw/src/vncdisplay.c ---- gtk-vnc-0.3.7/src/vncdisplay.c 2008-10-09 12:16:42.000000000 +0100 -+++ gtk-vnc-0.3.7.mingw/src/vncdisplay.c 2008-10-09 12:19:03.000000000 +0100 -@@ -8,6 +8,8 @@ - * GTK VNC Widget - */ - -+#include -+ - #include "vncdisplay.h" - #include "coroutine.h" - #include "gvnc.h" -@@ -24,7 +26,9 @@ - #include - #include - #include -+#ifdef HAVE_PWD_H - #include -+#endif - - #if WITH_GTKGLEXT - #include -@@ -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/src/vncdisplay.c.orig gtk-vnc-0.3.7.mingw/src/vncdisplay.c.orig ---- gtk-vnc-0.3.7/src/vncdisplay.c.orig 2008-09-05 13:32:16.000000000 +0100 -+++ gtk-vnc-0.3.7.mingw/src/vncdisplay.c.orig 1970-01-01 01:00:00.000000000 +0100 -@@ -1,2491 +0,0 @@ --/* -- * Copyright (C) 2006 Anthony Liguori -- * -- * This program is free software; you can redistribute it and/or modify -- * it under the terms of the GNU Lesser General Public License version 2 or -- * later as published by the Free Software Foundation. -- * -- * GTK VNC Widget -- */ -- --#include "vncdisplay.h" --#include "coroutine.h" --#include "gvnc.h" --#include "utils.h" --#include "vncmarshal.h" --#include "config.h" --#include "x_keymap.h" -- --#include --#include --#include --#include --#include --#include --#include --#include --#include -- --#if WITH_GTKGLEXT --#include --#include --#endif -- --#define VNC_DISPLAY_GET_PRIVATE(obj) \ -- (G_TYPE_INSTANCE_GET_PRIVATE((obj), VNC_TYPE_DISPLAY, VncDisplayPrivate)) -- --struct _VncDisplayPrivate --{ -- int fd; -- char *host; -- char *port; -- GdkGC *gc; -- GdkImage *image; -- GdkCursor *null_cursor; -- GdkCursor *remote_cursor; -- --#if WITH_GTKGLEXT -- int gl_enabled; -- GdkGLConfig *gl_config; -- GdkGLDrawable *gl_drawable; -- GdkGLContext *gl_context; -- uint8_t *gl_tex_data; -- int gl_texture_width; -- int gl_texture_height; -- int gl_width; -- int gl_height; -- GLuint gl_tex; --#endif -- -- struct gvnc_framebuffer fb; -- struct coroutine coroutine; -- struct gvnc *gvnc; -- -- guint open_id; -- -- gboolean in_pointer_grab; -- gboolean in_keyboard_grab; -- -- guint down_keyval[16]; -- guint down_scancode[16]; -- -- int button_mask; -- int last_x; -- int last_y; -- -- gboolean absolute; -- -- gboolean grab_pointer; -- gboolean grab_keyboard; -- gboolean local_pointer; -- gboolean read_only; -- gboolean allow_lossy; -- gboolean allow_scaling; -- gboolean shared_flag; -- gboolean force_size; -- -- GSList *preferable_auths; --}; -- --/* Delayed signal emission. -- * -- * We want signals to be delivered in the system coroutine. This helps avoid -- * confusing applications. This is particularly important when using -- * GThread based coroutines since GTK gets very upset if a signal handler is -- * run in a different thread from the main loop if that signal handler isn't -- * written to use explicit locking. -- */ --struct signal_data --{ -- VncDisplay *obj; -- struct coroutine *caller; -- -- int signum; -- GValueArray *cred_list; -- int width; -- int height; -- const char *msg; -- unsigned int auth_type; -- GString *str; --}; -- --G_DEFINE_TYPE(VncDisplay, vnc_display, GTK_TYPE_DRAWING_AREA) -- --/* Properties */ --enum --{ -- PROP_0, -- PROP_POINTER_LOCAL, -- PROP_POINTER_GRAB, -- PROP_KEYBOARD_GRAB, -- PROP_READ_ONLY, -- PROP_WIDTH, -- PROP_HEIGHT, -- PROP_NAME, -- PROP_LOSSY_ENCODING, -- PROP_SCALING, -- PROP_SHARED_FLAG, -- PROP_FORCE_SIZE --}; -- --/* Signals */ --typedef enum --{ -- VNC_POINTER_GRAB, -- VNC_POINTER_UNGRAB, -- VNC_KEYBOARD_GRAB, -- VNC_KEYBOARD_UNGRAB, -- -- VNC_CONNECTED, -- VNC_INITIALIZED, -- VNC_DISCONNECTED, -- VNC_AUTH_CREDENTIAL, -- -- VNC_DESKTOP_RESIZE, -- -- VNC_AUTH_FAILURE, -- VNC_AUTH_UNSUPPORTED, -- -- VNC_SERVER_CUT_TEXT, -- VNC_BELL, -- -- LAST_SIGNAL --} vnc_display_signals; -- --static guint signals[LAST_SIGNAL] = { 0, 0, 0, 0, -- 0, 0, 0, 0, -- 0, 0, 0, 0, 0,}; --static GParamSpec *signalCredParam; --gboolean debug_enabled = FALSE; -- --static const GOptionEntry gtk_vnc_args[] = --{ -- { "gtk-vnc-debug", 0, 0, G_OPTION_ARG_NONE, &debug_enabled, "Enables debug output", 0 }, -- { NULL, 0, 0, G_OPTION_ARG_NONE, NULL, NULL, 0 } --}; -- -- --static void --vnc_display_get_property (GObject *object, -- guint prop_id, -- GValue *value, -- GParamSpec *pspec) --{ -- VncDisplay *vnc = VNC_DISPLAY (object); -- -- switch (prop_id) -- { -- case PROP_POINTER_LOCAL: -- g_value_set_boolean (value, vnc->priv->local_pointer); -- break; -- case PROP_POINTER_GRAB: -- g_value_set_boolean (value, vnc->priv->grab_pointer); -- break; -- case PROP_KEYBOARD_GRAB: -- g_value_set_boolean (value, vnc->priv->grab_keyboard); -- break; -- case PROP_READ_ONLY: -- g_value_set_boolean (value, vnc->priv->read_only); -- break; -- case PROP_WIDTH: -- g_value_set_int (value, vnc_display_get_width (vnc)); -- break; -- case PROP_HEIGHT: -- g_value_set_int (value, vnc_display_get_height (vnc)); -- break; -- case PROP_NAME: -- g_value_set_string (value, vnc_display_get_name (vnc)); -- break; -- case PROP_LOSSY_ENCODING: -- g_value_set_boolean (value, vnc->priv->allow_lossy); -- break; -- case PROP_SCALING: -- g_value_set_boolean (value, vnc->priv->allow_scaling); -- break; -- case PROP_SHARED_FLAG: -- g_value_set_boolean (value, vnc->priv->shared_flag); -- break; -- case PROP_FORCE_SIZE: -- g_value_set_boolean (value, vnc->priv->force_size); -- break; -- default: -- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); -- break; -- } --} -- --static void --vnc_display_set_property (GObject *object, -- guint prop_id, -- const GValue *value, -- GParamSpec *pspec) --{ -- VncDisplay *vnc = VNC_DISPLAY (object); -- -- switch (prop_id) -- { -- case PROP_POINTER_LOCAL: -- vnc_display_set_pointer_local (vnc, g_value_get_boolean (value)); -- break; -- case PROP_POINTER_GRAB: -- vnc_display_set_pointer_grab (vnc, g_value_get_boolean (value)); -- break; -- case PROP_KEYBOARD_GRAB: -- vnc_display_set_keyboard_grab (vnc, g_value_get_boolean (value)); -- break; -- case PROP_READ_ONLY: -- vnc_display_set_read_only (vnc, g_value_get_boolean (value)); -- break; -- case PROP_LOSSY_ENCODING: -- vnc_display_set_lossy_encoding (vnc, g_value_get_boolean (value)); -- break; -- case PROP_SCALING: -- vnc_display_set_scaling (vnc, g_value_get_boolean (value)); -- break; -- case PROP_SHARED_FLAG: -- vnc_display_set_shared_flag (vnc, g_value_get_boolean (value)); -- break; -- case PROP_FORCE_SIZE: -- vnc_display_set_force_size (vnc, g_value_get_boolean (value)); -- break; -- default: -- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); -- break; -- } --} -- --GtkWidget *vnc_display_new(void) --{ -- return GTK_WIDGET(g_object_new(VNC_TYPE_DISPLAY, NULL)); --} -- --static GdkCursor *create_null_cursor(void) --{ -- GdkBitmap *image; -- gchar data[4] = {0}; -- GdkColor fg = { 0, 0, 0, 0 }; -- GdkCursor *cursor; -- -- image = gdk_bitmap_create_from_data(NULL, data, 1, 1); -- -- cursor = gdk_cursor_new_from_pixmap(GDK_PIXMAP(image), -- GDK_PIXMAP(image), -- &fg, &fg, 0, 0); -- gdk_bitmap_unref(image); -- -- return cursor; --} -- --static gboolean expose_event(GtkWidget *widget, GdkEventExpose *expose) --{ -- VncDisplay *obj = VNC_DISPLAY(widget); -- VncDisplayPrivate *priv = obj->priv; -- int x, y, w, h; -- GdkRectangle drawn; -- GdkRegion *clear, *copy; -- -- GVNC_DEBUG("Expose %dx%d @ %d,%d\n", -- expose->area.x, -- expose->area.y, -- expose->area.width, -- expose->area.height); -- -- if (priv->image == NULL) { --#if WITH_GTKGLEXT -- if (priv->gl_tex_data == NULL) --#endif -- { -- GdkGC *gc = gdk_gc_new(widget->window); -- gdk_draw_rectangle(widget->window, gc, TRUE, -- expose->area.x, expose->area.y, -- expose->area.width, -- expose->area.height); -- g_object_unref(gc); -- return TRUE; -- } -- } -- --#if WITH_GTKGLEXT -- if (priv->gl_enabled) { -- float rx, ry; -- int wx = 0, wy = 0; -- int ww = priv->gl_width, wh = priv->gl_height; -- double scale_x, scale_y; -- -- scale_x = (double)priv->gl_width / priv->fb.width; -- scale_y = (double)priv->gl_height / priv->fb.height; -- -- x = expose->area.x / scale_x; -- y = expose->area.y / scale_y; -- w = expose->area.width / scale_x; -- h = expose->area.height / scale_y; -- -- y -= 5; -- h += 10; -- if (y < 0) -- y = 0; -- -- x -= 5; -- w += 10; -- if (x < 0) -- x = 0; -- -- x = MIN(x, priv->fb.width); -- y = MIN(y, priv->fb.height); -- w = MIN(x + w, priv->fb.width); -- h = MIN(y + h, priv->fb.height); -- w -= x; -- h -= y; -- -- gdk_gl_drawable_gl_begin(priv->gl_drawable, priv->gl_context); -- glBindTexture(GL_TEXTURE_2D, priv->gl_tex); -- glPixelStorei(GL_UNPACK_ROW_LENGTH, priv->fb.width); -- glTexSubImage2D(GL_TEXTURE_2D, 0, -- x, y, w, h, -- GL_BGRA_EXT, -- GL_UNSIGNED_BYTE, -- priv->gl_tex_data + -- y * 4 * priv->fb.width + -- x * 4); -- rx = (float)priv->fb.width / priv->gl_texture_width; -- ry = (float)priv->fb.height / priv->gl_texture_height; -- -- glEnable(GL_TEXTURE_2D); -- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL); -- glBegin(GL_QUADS); -- glTexCoord2f(0,ry); glVertex3f(wx, wy, 0); -- glTexCoord2f(0,0); glVertex3f(wx, wy+wh, 0); -- glTexCoord2f(rx,0); glVertex3f(wx+ww, wy+wh, 0); -- glTexCoord2f(rx,ry); glVertex3f(wx+ww, wy, 0); -- glEnd(); -- glDisable(GL_TEXTURE_2D); -- glFlush(); -- gdk_gl_drawable_gl_end(priv->gl_drawable); -- } else --#endif -- { -- int mx = 0, my = 0; -- int ww, wh; -- -- gdk_drawable_get_size(widget->window, &ww, &wh); -- if (ww > priv->fb.width) -- mx = (ww - priv->fb.width) / 2; -- if (wh > priv->fb.height) -- my = (wh - priv->fb.height) / 2; -- -- x = MIN(expose->area.x - mx, priv->fb.width); -- y = MIN(expose->area.y - my, priv->fb.height); -- w = MIN(expose->area.x + expose->area.width - mx, priv->fb.width); -- h = MIN(expose->area.y + expose->area.height - my, priv->fb.height); -- x = MAX(0, x); -- y = MAX(0, y); -- w = MAX(0, w); -- h = MAX(0, h); -- -- w -= x; -- h -= y; -- -- drawn.x = x + mx; -- drawn.y = y + my; -- drawn.width = w; -- drawn.height = h; -- -- clear = gdk_region_rectangle(&expose->area); -- copy = gdk_region_rectangle(&drawn); -- gdk_region_subtract(clear, copy); -- -- gdk_gc_set_clip_region(priv->gc, copy); -- gdk_draw_image(widget->window, priv->gc, priv->image, -- x, y, x + mx, y + my, w, h); -- -- gdk_gc_set_clip_region(priv->gc, clear); -- gdk_draw_rectangle(widget->window, priv->gc, TRUE, expose->area.x, expose->area.y, -- expose->area.width, expose->area.height); -- -- gdk_region_destroy(clear); -- gdk_region_destroy(copy); -- } -- -- return TRUE; --} -- --static void do_keyboard_grab(VncDisplay *obj, gboolean quiet) --{ -- VncDisplayPrivate *priv = obj->priv; -- -- gdk_keyboard_grab(GTK_WIDGET(obj)->window, -- FALSE, -- GDK_CURRENT_TIME); -- priv->in_keyboard_grab = TRUE; -- if (!quiet) -- g_signal_emit(obj, signals[VNC_KEYBOARD_GRAB], 0); --} -- -- --static void do_keyboard_ungrab(VncDisplay *obj, gboolean quiet) --{ -- VncDisplayPrivate *priv = obj->priv; -- -- gdk_keyboard_ungrab(GDK_CURRENT_TIME); -- priv->in_keyboard_grab = FALSE; -- if (!quiet) -- g_signal_emit(obj, signals[VNC_KEYBOARD_UNGRAB], 0); --} -- --static void do_pointer_hide(VncDisplay *obj) --{ -- VncDisplayPrivate *priv = obj->priv; -- gdk_window_set_cursor(GTK_WIDGET(obj)->window, -- priv->remote_cursor ? priv->remote_cursor : priv->null_cursor); --} -- --static void do_pointer_show(VncDisplay *obj) --{ -- VncDisplayPrivate *priv = obj->priv; -- gdk_window_set_cursor(GTK_WIDGET(obj)->window, -- priv->remote_cursor); --} -- --static void do_pointer_grab(VncDisplay *obj, gboolean quiet) --{ -- VncDisplayPrivate *priv = obj->priv; -- -- /* If we're not already grabbing keyboard, grab it now */ -- if (!priv->grab_keyboard) -- do_keyboard_grab(obj, quiet); -- -- gdk_pointer_grab(GTK_WIDGET(obj)->window, -- TRUE, -- GDK_POINTER_MOTION_MASK | -- GDK_BUTTON_PRESS_MASK | -- GDK_BUTTON_RELEASE_MASK | -- GDK_BUTTON_MOTION_MASK | -- GDK_SCROLL_MASK, -- GTK_WIDGET(obj)->window, -- priv->remote_cursor ? priv->remote_cursor : priv->null_cursor, -- GDK_CURRENT_TIME); -- priv->in_pointer_grab = TRUE; -- if (!quiet) -- g_signal_emit(obj, signals[VNC_POINTER_GRAB], 0); --} -- --static void do_pointer_ungrab(VncDisplay *obj, gboolean quiet) --{ -- VncDisplayPrivate *priv = obj->priv; -- -- /* If we grabbed keyboard upon pointer grab, then ungrab it now */ -- if (!priv->grab_keyboard) -- do_keyboard_ungrab(obj, quiet); -- -- gdk_pointer_ungrab(GDK_CURRENT_TIME); -- priv->in_pointer_grab = FALSE; -- -- if (priv->absolute) -- do_pointer_hide(obj); -- -- if (!quiet) -- g_signal_emit(obj, signals[VNC_POINTER_UNGRAB], 0); --} -- --void vnc_display_force_grab(VncDisplay *obj, gboolean enable) --{ -- if (enable) -- do_pointer_grab(obj, FALSE); -- else -- do_pointer_ungrab(obj, FALSE); --} -- --static gboolean button_event(GtkWidget *widget, GdkEventButton *button) --{ -- VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; -- int n; -- -- if (priv->gvnc == NULL || !gvnc_is_initialized(priv->gvnc)) -- return FALSE; -- -- if (priv->read_only) -- return FALSE; -- -- gtk_widget_grab_focus (widget); -- -- if (priv->grab_pointer && !priv->absolute && !priv->in_pointer_grab && -- button->button == 1 && button->type == GDK_BUTTON_PRESS) -- do_pointer_grab(VNC_DISPLAY(widget), FALSE); -- -- n = 1 << (button->button - 1); -- if (button->type == GDK_BUTTON_PRESS) -- priv->button_mask |= n; -- else if (button->type == GDK_BUTTON_RELEASE) -- priv->button_mask &= ~n; -- -- if (priv->absolute) { -- gvnc_pointer_event(priv->gvnc, priv->button_mask, -- priv->last_x, priv->last_y); -- } else { -- gvnc_pointer_event(priv->gvnc, priv->button_mask, -- 0x7FFF, 0x7FFF); -- } -- -- return TRUE; --} -- --static gboolean scroll_event(GtkWidget *widget, GdkEventScroll *scroll) --{ -- VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; -- int mask; -- -- if (priv->gvnc == NULL || !gvnc_is_initialized(priv->gvnc)) -- return FALSE; -- -- if (priv->read_only) -- return FALSE; -- -- if (scroll->direction == GDK_SCROLL_UP) -- mask = (1 << 3); -- else if (scroll->direction == GDK_SCROLL_DOWN) -- mask = (1 << 4); -- else if (scroll->direction == GDK_SCROLL_LEFT) -- mask = (1 << 5); -- else if (scroll->direction == GDK_SCROLL_RIGHT) -- mask = (1 << 6); -- else -- return FALSE; -- -- if (priv->absolute) { -- gvnc_pointer_event(priv->gvnc, priv->button_mask | mask, -- priv->last_x, priv->last_y); -- gvnc_pointer_event(priv->gvnc, priv->button_mask, -- priv->last_x, priv->last_y); -- } else { -- gvnc_pointer_event(priv->gvnc, priv->button_mask | mask, -- 0x7FFF, 0x7FFF); -- gvnc_pointer_event(priv->gvnc, priv->button_mask, -- 0x7FFF, 0x7FFF); -- } -- -- return TRUE; --} -- --static gboolean motion_event(GtkWidget *widget, GdkEventMotion *motion) --{ -- VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; -- int dx, dy; -- -- if (priv->gvnc == NULL || !gvnc_is_initialized(priv->gvnc)) -- return FALSE; -- -- if (!priv->absolute && !priv->in_pointer_grab) -- return FALSE; -- -- if (priv->read_only) -- return FALSE; -- --#if WITH_GTKGLEXT -- if (priv->gl_enabled) { -- motion->x *= priv->fb.width; -- motion->x /= priv->gl_width; -- motion->y *= priv->fb.height; -- motion->y /= priv->gl_height; -- } else --#endif -- { -- int ww, wh; -- int mw = 0, mh = 0; -- -- gdk_drawable_get_size(widget->window, &ww, &wh); -- if (ww > priv->fb.width) -- mw = (ww - priv->fb.width) / 2; -- if (wh > priv->fb.height) -- mh = (wh - priv->fb.height) / 2; -- -- motion->x -= mw; -- motion->y -= mh; -- -- if (motion->x < 0 || motion->x >= priv->fb.width || -- motion->y < 0 || motion->y >= priv->fb.height) -- return FALSE; -- } -- -- if (!priv->absolute && priv->in_pointer_grab) { -- GdkDrawable *drawable = GDK_DRAWABLE(widget->window); -- GdkDisplay *display = gdk_drawable_get_display(drawable); -- GdkScreen *screen = gdk_drawable_get_screen(drawable); -- int x = (int)motion->x_root; -- int y = (int)motion->y_root; -- -- if (x == 0) x += 200; -- if (y == 0) y += 200; -- if (x == (gdk_screen_get_width(screen) - 1)) x -= 200; -- if (y == (gdk_screen_get_height(screen) - 1)) y -= 200; -- -- if (x != (int)motion->x_root || y != (int)motion->y_root) { -- gdk_display_warp_pointer(display, screen, x, y); -- priv->last_x = -1; -- priv->last_y = -1; -- return FALSE; -- } -- } -- -- if (priv->last_x != -1) { -- if (priv->absolute) { -- dx = (int)motion->x; -- dy = (int)motion->y; -- } else { -- dx = (int)motion->x + 0x7FFF - priv->last_x; -- dy = (int)motion->y + 0x7FFF - priv->last_y; -- } -- -- gvnc_pointer_event(priv->gvnc, priv->button_mask, dx, dy); -- } -- -- priv->last_x = (int)motion->x; -- priv->last_y = (int)motion->y; -- -- return TRUE; --} -- --static gboolean key_event(GtkWidget *widget, GdkEventKey *key) --{ -- VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; -- guint keyval; -- gint group, level; -- GdkModifierType consumed; -- -- if (priv->gvnc == NULL || !gvnc_is_initialized(priv->gvnc)) -- return FALSE; -- -- if (priv->read_only) -- return FALSE; -- -- /* -- * Key handling in VNC is screwy. The event.keyval from GTK is -- * interpreted relative to modifier state. This really messes -- * up with VNC which has no concept of modifiers - it just sees -- * key up & down events - the remote end interprets modifiers -- * itself. So if we interpret at the client end you can end up -- * with 'Alt' key press generating Alt_L, and key release generating -- * ISO_Prev_Group. This really really confuses the VNC server -- * with 'Alt' getting stuck on. -- * -- * So we have to redo GTK's keycode -> keyval translation -- * using only the SHIFT modifier which the RFB explicitly -- * requires to be interpreted at client end. -- * -- * Arggggh. -- */ -- gdk_keymap_translate_keyboard_state(gdk_keymap_get_default(), -- key->hardware_keycode, -- key->state & (GDK_SHIFT_MASK | GDK_LOCK_MASK), -- key->group, -- &keyval, -- &group, -- &level, -- &consumed); -- -- keyval = x_keymap_get_keyval_from_keycode(key->hardware_keycode, keyval); -- -- /* -- * More VNC suckiness with key state & modifiers in particular -- * -- * Because VNC has no concept of modifiers, we have to track what keys are -- * pressed and when the widget looses focus send fake key up events for all -- * keys current held down. This is because upon gaining focus any keys held -- * down are no longer likely to be down. This would thus result in keys -- * being 'stuck on' in the remote server. eg upon Alt-Tab to switch window -- * focus you'd never see key up for the Alt or Tab keys without this :-( -- * -- * This is mostly a problem with modifier keys, but its best to just track -- * all key presses regardless. There's a limit to how many keys a user can -- * press at once due to a max of 10 fingers (normally :-), so down_key_vals -- * is only storing upto 16 for now. Should be plenty... -- * -- * Arggggh. -- */ -- if (key->type == GDK_KEY_PRESS) { -- int i; -- for (i = 0 ; i < (int)(sizeof(priv->down_keyval)/sizeof(priv->down_keyval[0])) ; i++) { -- if (priv->down_scancode[i] == 0) { -- priv->down_keyval[i] = keyval; -- priv->down_scancode[i] = key->hardware_keycode; -- /* Send the actual key event we're dealing with */ -- gvnc_key_event(priv->gvnc, 1, keyval, key->hardware_keycode); -- break; -- } else if (priv->down_scancode[i] == key->hardware_keycode) { -- /* Got an press when we're already pressed ! Why ... ? -- * -- * Well, GTK merges sequential press+release pairs of the same -- * key so instead of press+release,press+release,press+release -- * we only get press+press+press+press+press+release. This -- * really annoys some VNC servers, so we have to un-merge -- * them into a sensible stream of press+release pairs -- */ -- /* Fake an up event for the previous down event */ -- gvnc_key_event(priv->gvnc, 0, keyval, key->hardware_keycode); -- /* Now send our actual ldown event */ -- gvnc_key_event(priv->gvnc, 1, keyval, key->hardware_keycode); -- break; -- } -- } -- } else { -- int i; -- for (i = 0 ; i < (int)(sizeof(priv->down_keyval)/sizeof(priv->down_keyval[0])) ; i++) { -- /* We were pressed, and now we're released, so... */ -- if (priv->down_scancode[i] == key->hardware_keycode) { -- priv->down_keyval[i] = 0; -- priv->down_scancode[i] = 0; -- /* ..send the key release event we're dealing with */ -- gvnc_key_event(priv->gvnc, 0, keyval, key->hardware_keycode); -- break; -- } -- } -- } -- -- if ((!priv->grab_keyboard || !priv->absolute) && -- 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 -- do_pointer_grab(VNC_DISPLAY(widget), FALSE); -- } -- -- return TRUE; --} -- --static gboolean enter_event(GtkWidget *widget, GdkEventCrossing *crossing) --{ -- VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; -- -- if (priv->gvnc == NULL || !gvnc_is_initialized(priv->gvnc)) -- return FALSE; -- -- if (crossing->mode != GDK_CROSSING_NORMAL) -- return FALSE; -- -- if (priv->grab_keyboard) -- do_keyboard_grab(VNC_DISPLAY(widget), FALSE); -- -- return TRUE; --} -- --static gboolean leave_event(GtkWidget *widget, GdkEventCrossing *crossing) --{ -- VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; -- -- if (priv->gvnc == NULL || !gvnc_is_initialized(priv->gvnc)) -- return FALSE; -- -- if (crossing->mode != GDK_CROSSING_NORMAL) -- return FALSE; -- -- if (priv->grab_keyboard) -- do_keyboard_ungrab(VNC_DISPLAY(widget), FALSE); -- -- if (priv->grab_pointer) -- do_pointer_ungrab(VNC_DISPLAY(widget), FALSE); -- -- return TRUE; --} -- -- --static gboolean focus_event(GtkWidget *widget, GdkEventFocus *focus G_GNUC_UNUSED) --{ -- VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; -- int i; -- -- if (priv->gvnc == NULL || !gvnc_is_initialized(priv->gvnc)) -- return FALSE; -- -- for (i = 0 ; i < (int)(sizeof(priv->down_keyval)/sizeof(priv->down_keyval[0])) ; i++) { -- /* We are currently pressed so... */ -- if (priv->down_scancode[i] != 0) { -- /* ..send the fake key release event to match */ -- gvnc_key_event(priv->gvnc, 0, -- priv->down_keyval[i], priv->down_scancode[i]); -- priv->down_keyval[i] = 0; -- priv->down_scancode[i] = 0; -- } -- } -- -- return TRUE; --} -- --#if WITH_GTKGLEXT --static void realize_event(GtkWidget *widget) --{ -- VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; -- -- GTK_WIDGET_CLASS (vnc_display_parent_class)->realize(widget); -- -- if (priv->gl_config == NULL) -- return; -- -- priv->gl_drawable = gtk_widget_get_gl_drawable(widget); -- priv->gl_context = gtk_widget_get_gl_context(widget); --} --#endif -- --static gboolean on_update(void *opaque, int x, int y, int w, int h) --{ -- GtkWidget *widget = GTK_WIDGET(opaque); -- VncDisplay *obj = VNC_DISPLAY(widget); -- VncDisplayPrivate *priv = obj->priv; -- --#if WITH_GTKGLEXT -- if (priv->gl_enabled) { -- double scale_x, scale_y; -- -- scale_x = (double)priv->gl_width / priv->fb.width; -- scale_y = (double)priv->gl_height / priv->fb.height; -- -- x *= scale_x; -- y *= scale_y; -- w *= scale_x; -- h *= scale_y; -- } else --#endif -- { -- int ww, wh; -- int mw = 0, mh = 0; -- -- gdk_drawable_get_size(widget->window, &ww, &wh); -- if (ww > priv->fb.width) -- mw = (ww - priv->fb.width) / 2; -- if (wh > priv->fb.height) -- mh = (wh - priv->fb.height) / 2; -- -- x += mw; -- y += mh; -- } -- -- gtk_widget_queue_draw_area(widget, x, y, w, h); -- -- return TRUE; --} -- --static void setup_gdk_image(VncDisplay *obj, gint width, gint height) --{ -- VncDisplayPrivate *priv = obj->priv; -- GdkVisual *visual; -- -- visual = gdk_drawable_get_visual(GTK_WIDGET(obj)->window); -- -- priv->image = gdk_image_new(GDK_IMAGE_FASTEST, visual, width, height); -- GVNC_DEBUG("Visual mask: %3d %3d %3d\n shift: %3d %3d %3d\n", -- visual->red_mask, -- visual->green_mask, -- visual->blue_mask, -- visual->red_shift, -- visual->green_shift, -- visual->blue_shift); -- -- priv->fb.red_mask = visual->red_mask >> visual->red_shift; -- priv->fb.green_mask = visual->green_mask >> visual->green_shift; -- priv->fb.blue_mask = visual->blue_mask >> visual->blue_shift; -- priv->fb.red_shift = visual->red_shift; -- priv->fb.green_shift = visual->green_shift; -- priv->fb.blue_shift = visual->blue_shift; -- priv->fb.depth = priv->image->depth; -- priv->fb.bpp = priv->image->bpp; -- priv->fb.width = priv->image->width; -- priv->fb.height = priv->image->height; -- priv->fb.linesize = priv->image->bpl; -- priv->fb.data = (uint8_t *)priv->image->mem; -- priv->fb.byte_order = priv->image->byte_order == GDK_LSB_FIRST ? G_LITTLE_ENDIAN : G_BIG_ENDIAN; -- -- if (priv->force_size) -- gtk_widget_set_size_request(GTK_WIDGET(obj), width, height); --} -- --#if WITH_GTKGLEXT --static int pow_of_2(int value) --{ -- int i; -- for (i = 0; value >= (1 << i); i++); -- return (1 << i); --} -- --static void setup_gl_image(VncDisplay *obj, gint width, gint height) --{ -- VncDisplayPrivate *priv = VNC_DISPLAY(obj)->priv; -- void *dummy; -- -- priv->gl_texture_width = pow_of_2(width); -- priv->gl_texture_height = pow_of_2(height); -- -- gdk_gl_drawable_gl_begin(priv->gl_drawable, priv->gl_context); -- -- glGenTextures(1, &priv->gl_tex); -- glBindTexture(GL_TEXTURE_2D, priv->gl_tex); -- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); -- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); -- -- dummy = g_malloc(priv->gl_texture_width*priv->gl_texture_height*4); -- memset(dummy, 0, priv->gl_texture_width*priv->gl_texture_height*4); -- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, -- priv->gl_texture_width, priv->gl_texture_height, 0, -- GL_RGB, GL_UNSIGNED_BYTE, -- dummy); -- g_free(dummy); -- -- gdk_gl_drawable_gl_end(priv->gl_drawable); -- -- priv->gl_tex_data = g_malloc(width * height * 4); -- -- priv->fb.red_mask = 0xFF; -- priv->fb.green_mask = 0xFF; -- priv->fb.blue_mask = 0xFF; -- priv->fb.red_shift = 16; -- priv->fb.green_shift = 8; -- priv->fb.blue_shift = 0; -- priv->fb.depth = 32; -- priv->fb.bpp = 4; -- priv->fb.width = width; -- priv->fb.height = height; -- priv->fb.linesize = priv->fb.width * priv->fb.bpp; -- priv->fb.data = (uint8_t *)priv->gl_tex_data; --} --#endif -- --static gboolean emit_signal_auth_cred(gpointer opaque) --{ -- struct signal_data *s = opaque; -- -- switch (s->signum) { -- case VNC_AUTH_CREDENTIAL: -- g_signal_emit(G_OBJECT(s->obj), -- signals[VNC_AUTH_CREDENTIAL], -- 0, -- s->cred_list); -- break; -- case VNC_DESKTOP_RESIZE: -- g_signal_emit(G_OBJECT(s->obj), -- signals[VNC_DESKTOP_RESIZE], -- 0, -- s->width, s->height); -- break; -- case VNC_AUTH_FAILURE: -- g_signal_emit(G_OBJECT(s->obj), -- signals[VNC_AUTH_FAILURE], -- 0, -- s->msg); -- break; -- case VNC_AUTH_UNSUPPORTED: -- g_signal_emit(G_OBJECT(s->obj), -- signals[VNC_AUTH_UNSUPPORTED], -- 0, -- s->auth_type); -- break; -- case VNC_SERVER_CUT_TEXT: -- g_signal_emit(G_OBJECT(s->obj), -- signals[VNC_SERVER_CUT_TEXT], -- 0, -- s->str->str); -- break; -- case VNC_BELL: -- case VNC_CONNECTED: -- case VNC_INITIALIZED: -- case VNC_DISCONNECTED: -- g_signal_emit(G_OBJECT(s->obj), -- signals[s->signum], -- 0); -- break; -- } -- -- coroutine_yieldto(s->caller, NULL); -- -- return FALSE; --} -- --/* This function should be used to emit signals from gvnc callbacks */ --static void emit_signal_delayed(VncDisplay *obj, int signum, -- struct signal_data *data) --{ -- data->obj = obj; -- data->caller = coroutine_self(); -- data->signum = signum; -- g_idle_add(emit_signal_auth_cred, data); -- coroutine_yield(NULL); --} -- --static gboolean do_resize(void *opaque, int width, int height, gboolean quiet) --{ -- VncDisplay *obj = VNC_DISPLAY(opaque); -- VncDisplayPrivate *priv = obj->priv; -- struct signal_data s; -- -- if (priv->gvnc == NULL || !gvnc_is_initialized(priv->gvnc)) -- return TRUE; -- -- if (priv->image) { -- g_object_unref(priv->image); -- priv->image = NULL; -- } -- --#if WITH_GTKGLEXT -- if (priv->gl_tex_data) { -- gdk_gl_drawable_gl_begin(priv->gl_drawable, -- priv->gl_context); -- glDeleteTextures(1, &priv->gl_tex); -- gdk_gl_drawable_gl_end(priv->gl_drawable); -- g_free(priv->gl_tex_data); -- priv->gl_tex_data = NULL; -- } --#endif -- -- if (priv->gc == NULL) { -- priv->null_cursor = create_null_cursor(); -- if (priv->local_pointer) -- do_pointer_show(obj); -- else if (priv->in_pointer_grab || priv->absolute) -- do_pointer_hide(obj); -- priv->gc = gdk_gc_new(GTK_WIDGET(obj)->window); -- } -- --#if WITH_GTKGLEXT -- if (priv->gl_enabled) -- setup_gl_image(obj, width, height); -- else --#endif -- setup_gdk_image(obj, width, height); -- -- gvnc_set_local(priv->gvnc, &priv->fb); -- -- if (!quiet) { -- s.width = width; -- s.height = height; -- emit_signal_delayed(obj, VNC_DESKTOP_RESIZE, &s); -- } -- -- return TRUE; --} -- --static gboolean on_resize(void *opaque, int width, int height) --{ -- return do_resize(opaque, width, height, FALSE); --} -- --static gboolean on_pixel_format(void *opaque, -- struct gvnc_pixel_format *fmt G_GNUC_UNUSED) --{ -- VncDisplay *obj = VNC_DISPLAY(opaque); -- VncDisplayPrivate *priv = obj->priv; -- -- return do_resize(opaque, priv->fb.width, priv->fb.height, TRUE); --} -- --static gboolean on_get_preferred_pixel_format(void *opaque, -- struct gvnc_pixel_format *fmt) --{ -- VncDisplay *obj = VNC_DISPLAY(opaque); -- GdkVisual *v = gdk_drawable_get_visual(GTK_WIDGET(obj)->window); -- -- GVNC_DEBUG("Setting pixel format to true color\n"); -- -- fmt->true_color_flag = 1; -- fmt->depth = v->depth; -- fmt->bits_per_pixel = v->depth > 16 ? 32 : v->depth; -- fmt->red_max = v->red_mask >> v->red_shift; -- fmt->green_max = v->green_mask >> v->green_shift; -- fmt->blue_max = v->blue_mask >> v->blue_shift; -- fmt->red_shift = v->red_shift; -- fmt->green_shift = v->green_shift; -- fmt->blue_shift = v->blue_shift; -- fmt->byte_order = v->byte_order == GDK_LSB_FIRST ? G_BIG_ENDIAN : G_LITTLE_ENDIAN; -- -- return TRUE; --} -- --#if WITH_GTKGLEXT --static void build_gl_image_from_gdk(uint32_t *data, GdkImage *image) --{ -- GdkVisual *visual; -- int i, j; -- uint8_t *row; -- -- visual = image->visual; -- row = image->mem; -- for (j = 0; j < image->height; j++) { -- uint8_t *src = row; -- for (i = 0; i < image->width; i++) { -- uint32_t pixel = 0; -- switch (image->bpp) { -- case 1: -- pixel = *(uint8_t *)src; -- break; -- case 2: -- pixel = *(uint16_t *)src; -- break; -- case 4: -- pixel = *(uint32_t *)src; -- break; -- } -- *data = ((pixel & visual->red_mask) >> visual->red_shift) << (24 - visual->red_prec) | -- ((pixel & visual->green_mask) >> visual->green_shift) << (16 - visual->green_prec) | -- ((pixel & visual->blue_mask) >> visual->blue_shift) << (8 - visual->blue_prec); -- src += image->bpp; -- data++; -- } -- row += image->bpl; -- -- } --} -- --static void build_gdk_image_from_gl(GdkImage *image, uint32_t *data) --{ -- GdkVisual *visual; -- int i, j; -- uint8_t *row; -- -- visual = image->visual; -- row = image->mem; -- for (j = 0; j < image->height; j++) { -- uint8_t *dst = row; -- for (i = 0; i < image->width; i++) { -- uint32_t pixel; -- -- pixel = (((*data >> (24 - visual->red_prec)) << visual->red_shift) & visual->red_mask) | -- (((*data >> (16 - visual->green_prec)) << visual->green_shift) & visual->green_mask) | -- (((*data >> (8 - visual->blue_prec)) << visual->blue_shift) & visual->blue_mask); -- -- switch (image->bpp) { -- case 1: -- *(uint8_t *)dst = pixel; -- break; -- case 2: -- *(uint16_t *)dst = pixel; -- break; -- case 4: -- *(uint32_t *)dst = pixel; -- break; -- } -- dst += image->bpp; -- data++; -- } -- row += image->bpl; -- } --} -- --static void scale_display(VncDisplay *obj, gint width, gint height) --{ -- VncDisplayPrivate *priv = VNC_DISPLAY(obj)->priv; -- -- if (priv->gl_drawable == NULL) -- return; -- -- if (priv->gl_enabled == 0) { -- GdkImage *image; -- -- priv->gl_enabled = 1; -- -- image = priv->image; -- priv->image = NULL; -- -- do_resize(obj, priv->fb.width, priv->fb.height, TRUE); -- build_gl_image_from_gdk((uint32_t *)priv->fb.data, image); -- -- g_object_unref(image); -- } -- -- priv->gl_width = width; -- priv->gl_height = height; -- -- gdk_gl_drawable_gl_begin(priv->gl_drawable, priv->gl_context); -- glClearColor (0.0, 0.0, 0.0, 0.0); -- glShadeModel(GL_FLAT); -- glPixelStorei(GL_UNPACK_ALIGNMENT, 1); -- -- glViewport(0, 0, priv->gl_width, priv->gl_height); -- glMatrixMode(GL_PROJECTION); -- glLoadIdentity(); -- glOrtho(0.0, priv->gl_width, 0.0, priv->gl_height, -1, 1); -- glMatrixMode(GL_MODELVIEW); -- glLoadIdentity(); -- gdk_gl_drawable_gl_end(priv->gl_drawable); --} -- --static void rescale_display(VncDisplay *obj, gint width, gint height) --{ -- VncDisplayPrivate *priv = obj->priv; -- -- if (priv->allow_scaling && -- (priv->fb.width != width || -- priv->fb.height != height)) -- scale_display(obj, width, height); -- else if (priv->gl_enabled) { -- void *data; -- priv->gl_enabled = 0; -- -- data = priv->gl_tex_data; -- priv->gl_tex_data = NULL; -- -- do_resize(GTK_WIDGET(obj), priv->fb.width, priv->fb.height, TRUE); -- -- build_gdk_image_from_gl(priv->image, (uint32_t *)data); -- gdk_gl_drawable_gl_begin(priv->gl_drawable, -- priv->gl_context); -- glDeleteTextures(1, &priv->gl_tex); -- gdk_gl_drawable_gl_end(priv->gl_drawable); -- g_free(data); -- } --} -- --static gboolean configure_event(GtkWidget *widget, GdkEventConfigure *configure) --{ -- VncDisplay *obj = VNC_DISPLAY(widget); -- VncDisplayPrivate *priv = obj->priv; -- -- if (priv->fb.data == NULL) -- return FALSE; -- -- rescale_display(VNC_DISPLAY(widget), -- configure->width, configure->height); -- -- return FALSE; --} --#endif -- --static gboolean on_pointer_type_change(void *opaque, int absolute) --{ -- VncDisplay *obj = VNC_DISPLAY(opaque); -- VncDisplayPrivate *priv = obj->priv; -- -- if (absolute && priv->in_pointer_grab && !priv->grab_pointer) -- do_pointer_ungrab(obj, FALSE); -- -- priv->absolute = absolute; -- -- if (!priv->in_pointer_grab && !priv->absolute) -- do_pointer_show(obj); -- -- return TRUE; --} -- --static gboolean on_auth_cred(void *opaque) --{ -- VncDisplay *obj = VNC_DISPLAY(opaque); -- GValueArray *cred_list; -- GValue username, password, clientname; -- struct signal_data s; -- -- memset(&username, 0, sizeof(username)); -- memset(&password, 0, sizeof(password)); -- memset(&clientname, 0, sizeof(clientname)); -- -- cred_list = g_value_array_new(0); -- if (gvnc_wants_credential_username(obj->priv->gvnc)) { -- g_value_init(&username, G_PARAM_SPEC_VALUE_TYPE(signalCredParam)); -- g_value_set_enum(&username, VNC_DISPLAY_CREDENTIAL_USERNAME); -- cred_list = g_value_array_append(cred_list, &username); -- } -- if (gvnc_wants_credential_password(obj->priv->gvnc)) { -- g_value_init(&password, G_PARAM_SPEC_VALUE_TYPE(signalCredParam)); -- g_value_set_enum(&password, VNC_DISPLAY_CREDENTIAL_PASSWORD); -- cred_list = g_value_array_append(cred_list, &password); -- } -- if (gvnc_wants_credential_x509(obj->priv->gvnc)) { -- g_value_init(&clientname, G_PARAM_SPEC_VALUE_TYPE(signalCredParam)); -- g_value_set_enum(&clientname, VNC_DISPLAY_CREDENTIAL_CLIENTNAME); -- cred_list = g_value_array_append(cred_list, &clientname); -- } -- -- s.cred_list = cred_list; -- emit_signal_delayed(obj, VNC_AUTH_CREDENTIAL, &s); -- -- g_value_array_free(cred_list); -- -- return TRUE; --} -- --static gboolean on_auth_type(void *opaque, unsigned int ntype, unsigned int *types) --{ -- VncDisplay *obj = VNC_DISPLAY(opaque); -- VncDisplayPrivate *priv = obj->priv; -- GSList *l; -- guint i; -- -- if (!ntype) -- return TRUE; -- -- for (l = priv->preferable_auths; l; l=l->next) { -- gvnc_auth pref = GPOINTER_TO_UINT (l->data); -- -- for (i=0; igvnc, types[i]); -- return TRUE; -- } -- } -- } -- -- gvnc_set_auth_type(priv->gvnc, types[0]); -- return TRUE; --} -- --static gboolean on_auth_subtype(void *opaque, unsigned int ntype, unsigned int *types) --{ -- VncDisplay *obj = VNC_DISPLAY(opaque); -- VncDisplayPrivate *priv = obj->priv; -- -- GSList *l; -- guint i; -- -- if (!ntype) -- return TRUE; -- -- for (l = priv->preferable_auths; l; l=l->next) { -- gvnc_auth pref = GPOINTER_TO_UINT (l->data); -- -- for (i=0; igvnc, types[i]); -- return TRUE; -- } -- } -- } -- -- gvnc_set_auth_subtype(priv->gvnc, types[0]); -- return TRUE; --} -- --static gboolean on_auth_failure(void *opaque, const char *msg) --{ -- VncDisplay *obj = VNC_DISPLAY(opaque); -- struct signal_data s; -- -- s.msg = msg; -- emit_signal_delayed(obj, VNC_AUTH_FAILURE, &s); -- -- return TRUE; --} -- --static gboolean on_auth_unsupported(void *opaque, unsigned int auth_type) --{ -- VncDisplay *obj = VNC_DISPLAY(opaque); -- struct signal_data s; -- -- s.auth_type = auth_type; -- emit_signal_delayed(obj, VNC_AUTH_UNSUPPORTED, &s); -- -- return TRUE; --} -- --static gboolean on_server_cut_text(void *opaque, const void* text, size_t len) --{ -- VncDisplay *obj = VNC_DISPLAY(opaque); -- GString *str = g_string_new_len ((const gchar *)text, len); -- struct signal_data s; -- -- s.str = str; -- emit_signal_delayed(obj, VNC_SERVER_CUT_TEXT, &s); -- -- g_string_free (str, TRUE); -- return TRUE; --} -- --static gboolean on_bell(void *opaque) --{ -- VncDisplay *obj = VNC_DISPLAY(opaque); -- struct signal_data s; -- -- emit_signal_delayed(obj, VNC_BELL, &s); -- -- return TRUE; --} -- --static gboolean on_local_cursor(void *opaque, int x, int y, int width, int height, uint8_t *image) --{ -- VncDisplay *obj = VNC_DISPLAY(opaque); -- VncDisplayPrivate *priv = obj->priv; -- -- if (priv->remote_cursor) { -- gdk_cursor_unref(priv->remote_cursor); -- priv->remote_cursor = NULL; -- } -- -- if (width && height) { -- GdkDisplay *display = gdk_drawable_get_display(GDK_DRAWABLE(GTK_WIDGET(obj)->window)); -- GdkPixbuf *pixbuf = gdk_pixbuf_new_from_data(image, GDK_COLORSPACE_RGB, -- TRUE, 8, width, height, -- width * 4, NULL, NULL); -- priv->remote_cursor = gdk_cursor_new_from_pixbuf(display, -- pixbuf, -- x, y); -- gdk_pixbuf_unref(pixbuf); -- } -- -- if (priv->in_pointer_grab) { -- do_pointer_ungrab(obj, TRUE); -- do_pointer_grab(obj, TRUE); -- } else if (priv->absolute) { -- do_pointer_hide(obj); -- } -- -- return TRUE; --} -- --static gboolean check_pixbuf_support(const char *name) --{ -- GSList *list, *i; -- -- list = gdk_pixbuf_get_formats(); -- -- for (i = list; i; i = i->next) { -- GdkPixbufFormat *fmt = i->data; -- if (!strcmp(gdk_pixbuf_format_get_name(fmt), name)) -- break; -- } -- -- g_slist_free(list); -- -- return !!(i); --} -- --static gboolean on_render_jpeg(void *opaque G_GNUC_UNUSED, -- rgb24_render_func *render, void *render_opaque, -- int x, int y, int w, int h, -- uint8_t *data, int size) --{ -- GdkPixbufLoader *loader = gdk_pixbuf_loader_new(); -- GdkPixbuf *p; -- uint8_t *pixels; -- -- if (!gdk_pixbuf_loader_write(loader, data, size, NULL)) -- return FALSE; -- -- gdk_pixbuf_loader_close(loader, NULL); -- -- p = g_object_ref(gdk_pixbuf_loader_get_pixbuf(loader)); -- g_object_unref(loader); -- -- pixels = gdk_pixbuf_get_pixels(p); -- -- render(render_opaque, x, y, w, h, -- gdk_pixbuf_get_pixels(p), -- gdk_pixbuf_get_rowstride(p)); -- -- gdk_pixbuf_unref(p); -- -- return TRUE; --} -- --static const struct gvnc_ops vnc_display_ops = { -- .auth_cred = on_auth_cred, -- .auth_type = on_auth_type, -- .auth_subtype = on_auth_subtype, -- .auth_failure = on_auth_failure, -- .update = on_update, -- .resize = on_resize, -- .pixel_format = on_pixel_format, -- .pointer_type_change = on_pointer_type_change, -- .local_cursor = on_local_cursor, -- .auth_unsupported = on_auth_unsupported, -- .server_cut_text = on_server_cut_text, -- .bell = on_bell, -- .render_jpeg = on_render_jpeg, -- .get_preferred_pixel_format = on_get_preferred_pixel_format --}; -- --/* we use an idle function to allow the coroutine to exit before we actually -- * unref the object since the coroutine's state is part of the object */ --static gboolean delayed_unref_object(gpointer data) --{ -- VncDisplay *obj = VNC_DISPLAY(data); -- -- g_assert(obj->priv->coroutine.exited == TRUE); -- -- if (obj->priv->image) { -- g_object_unref(obj->priv->image); -- obj->priv->image = NULL; -- } -- --#if WITH_GTKGLEXT -- if (obj->priv->gl_tex_data) -- g_free(obj->priv->gl_tex_data); -- obj->priv->gl_tex_data = NULL; -- obj->priv->gl_enabled = 0; --#endif -- -- g_object_unref(G_OBJECT(data)); -- return FALSE; --} -- --static void *vnc_coroutine(void *opaque) --{ -- VncDisplay *obj = VNC_DISPLAY(opaque); -- VncDisplayPrivate *priv = obj->priv; -- -- /* this order is extremely important! */ -- int32_t encodings[] = { GVNC_ENCODING_TIGHT_JPEG5, -- GVNC_ENCODING_TIGHT, -- GVNC_ENCODING_EXT_KEY_EVENT, -- GVNC_ENCODING_DESKTOP_RESIZE, -- GVNC_ENCODING_WMVi, -- GVNC_ENCODING_RICH_CURSOR, -- GVNC_ENCODING_XCURSOR, -- GVNC_ENCODING_POINTER_CHANGE, -- GVNC_ENCODING_ZRLE, -- GVNC_ENCODING_HEXTILE, -- GVNC_ENCODING_RRE, -- GVNC_ENCODING_COPY_RECT, -- GVNC_ENCODING_RAW }; -- int32_t *encodingsp; -- int n_encodings; -- int ret; -- struct signal_data s; -- -- if (priv->gvnc == NULL || gvnc_is_open(priv->gvnc)) { -- g_idle_add(delayed_unref_object, obj); -- return NULL; -- } -- -- GVNC_DEBUG("Started background coroutine\n"); -- x_keymap_set_keymap_entries(); -- -- if (priv->fd != -1) { -- if (!gvnc_open_fd(priv->gvnc, priv->fd)) -- goto cleanup; -- } else { -- if (!gvnc_open_host(priv->gvnc, priv->host, priv->port)) -- goto cleanup; -- } -- -- emit_signal_delayed(obj, VNC_CONNECTED, &s); -- -- GVNC_DEBUG("Protocol initialization\n"); -- if (!gvnc_initialize(priv->gvnc, priv->shared_flag)) -- goto cleanup; -- -- emit_signal_delayed(obj, VNC_INITIALIZED, &s); -- -- encodingsp = encodings; -- n_encodings = G_N_ELEMENTS(encodings); -- -- if (check_pixbuf_support("jpeg")) { -- if (!priv->allow_lossy) { -- encodingsp++; -- n_encodings--; -- } -- } else { -- encodingsp += 2; -- n_encodings -= 2; -- } -- -- if (!gvnc_set_encodings(priv->gvnc, n_encodings, encodingsp)) -- goto cleanup; -- -- if (!gvnc_framebuffer_update_request(priv->gvnc, 0, 0, 0, priv->fb.width, priv->fb.height)) -- goto cleanup; -- -- GVNC_DEBUG("Running main loop\n"); -- while ((ret = gvnc_server_message(priv->gvnc))) { -- if (!gvnc_framebuffer_update_request(priv->gvnc, 1, 0, 0, -- priv->fb.width, priv->fb.height)) -- goto cleanup; -- } -- -- cleanup: -- GVNC_DEBUG("Doing final VNC cleanup\n"); -- gvnc_close(priv->gvnc); -- emit_signal_delayed(obj, VNC_DISCONNECTED, &s); -- g_idle_add(delayed_unref_object, obj); -- x_keymap_free_keymap_entries(); -- /* Co-routine exits now - the VncDisplay object may no longer exist, -- so don't do anything else now unless you like SEGVs */ -- return NULL; --} -- --static gboolean do_vnc_display_open(gpointer data) --{ -- VncDisplay *obj = VNC_DISPLAY(data); -- struct coroutine *co; -- -- if (obj->priv->gvnc == NULL || gvnc_is_open(obj->priv->gvnc)) { -- g_object_unref(G_OBJECT(obj)); -- return FALSE; -- } -- -- obj->priv->open_id = 0; -- -- co = &obj->priv->coroutine; -- -- co->stack_size = 16 << 20; -- co->entry = vnc_coroutine; -- co->release = NULL; -- -- coroutine_init(co); -- coroutine_yieldto(co, obj); -- -- return FALSE; --} -- --gboolean vnc_display_open_fd(VncDisplay *obj, int fd) --{ -- if (obj->priv->gvnc == NULL || gvnc_is_open(obj->priv->gvnc)) -- return FALSE; -- -- obj->priv->fd = fd; -- obj->priv->host = NULL; -- obj->priv->port = NULL; -- -- g_object_ref(G_OBJECT(obj)); /* Unref'd when co-routine exits */ -- obj->priv->open_id = g_idle_add(do_vnc_display_open, obj); -- -- return TRUE; --} -- --gboolean vnc_display_open_host(VncDisplay *obj, const char *host, const char *port) --{ -- if (obj->priv->gvnc == NULL || gvnc_is_open(obj->priv->gvnc)) -- return FALSE; -- -- obj->priv->host = g_strdup(host); -- if (!obj->priv->host) { -- return FALSE; -- } -- obj->priv->port = g_strdup(port); -- if (!obj->priv->port) { -- g_free(obj->priv->host); -- obj->priv->host = NULL; -- return FALSE; -- } -- -- g_object_ref(G_OBJECT(obj)); /* Unref'd when co-routine exits */ -- obj->priv->open_id = g_idle_add(do_vnc_display_open, obj); -- return TRUE; --} -- --gboolean vnc_display_is_open(VncDisplay *obj) --{ -- if (obj->priv->gvnc == NULL) -- return FALSE; -- return gvnc_is_open(obj->priv->gvnc); --} -- --void vnc_display_close(VncDisplay *obj) --{ -- VncDisplayPrivate *priv = obj->priv; -- GtkWidget *widget = GTK_WIDGET(obj); -- -- if (priv->open_id) { -- g_source_remove(priv->open_id); -- obj->priv->open_id = 0; -- } -- -- if (priv->gvnc == NULL) -- return; -- -- if (gvnc_is_open(priv->gvnc)) { -- GVNC_DEBUG("Requesting graceful shutdown of connection\n"); -- gvnc_shutdown(priv->gvnc); -- } -- --#if WITH_GTKGLEXT -- if (priv->gl_tex_data) { -- gdk_gl_drawable_gl_begin(priv->gl_drawable, -- priv->gl_context); -- glDeleteTextures(1, &priv->gl_tex); -- gdk_gl_drawable_gl_end(priv->gl_drawable); -- } --#endif -- -- if (widget->window) { -- gint width, height; -- -- gdk_drawable_get_size(widget->window, &width, &height); -- gtk_widget_queue_draw_area(widget, 0, 0, width, height); -- } --} -- -- --void vnc_display_send_keys(VncDisplay *obj, const guint *keyvals, int nkeyvals) --{ -- vnc_display_send_keys_ex(obj, keyvals, -- nkeyvals, VNC_DISPLAY_KEY_EVENT_CLICK); --} -- --static guint get_keycode_from_keyval(guint keyval) --{ -- guint keycode = 0; -- GdkKeymapKey *keys = NULL; -- gint n_keys = 0; -- -- if (gdk_keymap_get_entries_for_keyval(gdk_keymap_get_default(), -- keyval, &keys, &n_keys)) { -- /* FIXME what about levels? */ -- keycode = keys[0].keycode; -- g_free(keys); -- } -- -- return keycode; --} -- --void vnc_display_send_keys_ex(VncDisplay *obj, const guint *keyvals, -- int nkeyvals, VncDisplayKeyEvent kind) --{ -- int i; -- -- if (obj->priv->gvnc == NULL || !gvnc_is_open(obj->priv->gvnc)) -- return; -- -- if (kind & VNC_DISPLAY_KEY_EVENT_PRESS) { -- for (i = 0 ; i < nkeyvals ; i++) -- gvnc_key_event(obj->priv->gvnc, 1, keyvals[i], -- get_keycode_from_keyval(keyvals[i])); -- } -- -- if (kind & VNC_DISPLAY_KEY_EVENT_RELEASE) { -- for (i = (nkeyvals-1) ; i >= 0 ; i--) -- gvnc_key_event(obj->priv->gvnc, 0, keyvals[i], -- get_keycode_from_keyval(keyvals[i])); -- } --} -- --void vnc_display_send_pointer(VncDisplay *obj, gint x, gint y, int button_mask) --{ -- VncDisplayPrivate *priv = obj->priv; -- -- if (priv->gvnc == NULL || !gvnc_is_open(obj->priv->gvnc)) -- return; -- -- if (priv->absolute) { -- priv->button_mask = button_mask; -- priv->last_x = x; -- priv->last_y = y; -- gvnc_pointer_event(priv->gvnc, priv->button_mask, x, y); -- } --} -- --static void vnc_display_destroy (GtkObject *obj) --{ -- VncDisplay *display = VNC_DISPLAY (obj); -- GVNC_DEBUG("Requesting that VNC close\n"); -- vnc_display_close(display); -- GTK_OBJECT_CLASS (vnc_display_parent_class)->destroy (obj); --} -- -- --static void vnc_display_finalize (GObject *obj) --{ -- VncDisplay *display = VNC_DISPLAY (obj); -- VncDisplayPrivate *priv = display->priv; -- -- GVNC_DEBUG("Releasing VNC widget\n"); -- if (gvnc_is_open(priv->gvnc)) { -- g_warning("VNC widget finalized before the connection finished shutting down\n"); -- } -- gvnc_free(priv->gvnc); -- display->priv->gvnc = NULL; -- --#if WITH_GTKGLEXT -- if (priv->gl_enabled) { -- gdk_gl_drawable_gl_begin(priv->gl_drawable, -- priv->gl_context); -- glDeleteTextures(1, &priv->gl_tex); -- gdk_gl_drawable_gl_end(priv->gl_drawable); -- if (priv->gl_tex_data) { -- g_free(priv->gl_tex_data); -- priv->gl_tex_data = NULL; -- } -- } -- -- if (priv->gl_config) { -- g_object_unref(G_OBJECT(priv->gl_config)); -- priv->gl_config = NULL; -- } --#endif -- -- if (priv->image) { -- g_object_unref(priv->image); -- priv->image = NULL; -- } -- -- g_slist_free (priv->preferable_auths); -- -- G_OBJECT_CLASS (vnc_display_parent_class)->finalize (obj); --} -- --static void vnc_display_class_init(VncDisplayClass *klass) --{ -- GObjectClass *object_class = G_OBJECT_CLASS (klass); -- GtkObjectClass *gtkobject_class = GTK_OBJECT_CLASS (klass); -- GtkWidgetClass *gtkwidget_class = GTK_WIDGET_CLASS (klass); -- -- gtkwidget_class->expose_event = expose_event; -- gtkwidget_class->motion_notify_event = motion_event; -- gtkwidget_class->button_press_event = button_event; -- gtkwidget_class->button_release_event = button_event; -- gtkwidget_class->scroll_event = scroll_event; -- gtkwidget_class->key_press_event = key_event; -- gtkwidget_class->key_release_event = key_event; -- gtkwidget_class->enter_notify_event = enter_event; -- gtkwidget_class->leave_notify_event = leave_event; -- gtkwidget_class->focus_out_event = focus_event; --#if WITH_GTKGLEXT -- gtkwidget_class->realize = realize_event; -- gtkwidget_class->configure_event = configure_event; --#endif -- -- -- object_class->finalize = vnc_display_finalize; -- object_class->get_property = vnc_display_get_property; -- object_class->set_property = vnc_display_set_property; -- -- gtkobject_class->destroy = vnc_display_destroy; -- -- g_object_class_install_property (object_class, -- PROP_POINTER_LOCAL, -- g_param_spec_boolean ( "local-pointer", -- "Local Pointer", -- "Whether we should use the local pointer", -- FALSE, -- G_PARAM_READWRITE | -- G_PARAM_CONSTRUCT | -- G_PARAM_STATIC_NAME | -- G_PARAM_STATIC_NICK | -- G_PARAM_STATIC_BLURB)); -- g_object_class_install_property (object_class, -- PROP_POINTER_GRAB, -- g_param_spec_boolean ( "grab-pointer", -- "Grab Pointer", -- "Whether we should grab the pointer", -- FALSE, -- G_PARAM_READWRITE | -- G_PARAM_CONSTRUCT | -- G_PARAM_STATIC_NAME | -- G_PARAM_STATIC_NICK | -- G_PARAM_STATIC_BLURB)); -- g_object_class_install_property (object_class, -- PROP_KEYBOARD_GRAB, -- g_param_spec_boolean ( "grab-keyboard", -- "Grab Keyboard", -- "Whether we should grab the keyboard", -- FALSE, -- G_PARAM_READWRITE | -- G_PARAM_CONSTRUCT | -- G_PARAM_STATIC_NAME | -- G_PARAM_STATIC_NICK | -- G_PARAM_STATIC_BLURB)); -- g_object_class_install_property (object_class, -- PROP_READ_ONLY, -- g_param_spec_boolean ( "read-only", -- "Read Only", -- "Whether this connection is read-only mode", -- FALSE, -- G_PARAM_READWRITE | -- G_PARAM_CONSTRUCT | -- G_PARAM_STATIC_NAME | -- G_PARAM_STATIC_NICK | -- G_PARAM_STATIC_BLURB)); -- g_object_class_install_property (object_class, -- PROP_WIDTH, -- g_param_spec_int ( "width", -- "Width", -- "The width of the remote screen", -- 0, -- G_MAXINT, -- 0, -- G_PARAM_READABLE | -- G_PARAM_STATIC_NAME | -- G_PARAM_STATIC_NICK | -- G_PARAM_STATIC_BLURB)); -- g_object_class_install_property (object_class, -- PROP_HEIGHT, -- g_param_spec_int ( "height", -- "Height", -- "The height of the remote screen", -- 0, -- G_MAXINT, -- 0, -- G_PARAM_READABLE | -- G_PARAM_STATIC_NAME | -- G_PARAM_STATIC_NICK | -- G_PARAM_STATIC_BLURB)); -- g_object_class_install_property (object_class, -- PROP_NAME, -- g_param_spec_string ( "name", -- "Name", -- "The screen name of the remote connection", -- NULL, -- G_PARAM_READABLE | -- G_PARAM_STATIC_NAME | -- G_PARAM_STATIC_NICK | -- G_PARAM_STATIC_BLURB)); -- g_object_class_install_property (object_class, -- PROP_LOSSY_ENCODING, -- g_param_spec_boolean ( "lossy-encoding", -- "Lossy Encoding", -- "Whether we should use a lossy encoding", -- FALSE, -- G_PARAM_READWRITE | -- G_PARAM_CONSTRUCT | -- G_PARAM_STATIC_NAME | -- G_PARAM_STATIC_NICK | -- G_PARAM_STATIC_BLURB)); -- g_object_class_install_property (object_class, -- PROP_SCALING, -- g_param_spec_boolean ( "scaling", -- "Scaling", -- "Whether we should use scaling", -- FALSE, -- G_PARAM_READWRITE | -- G_PARAM_CONSTRUCT | -- G_PARAM_STATIC_NAME | -- G_PARAM_STATIC_NICK | -- G_PARAM_STATIC_BLURB)); -- g_object_class_install_property (object_class, -- PROP_SHARED_FLAG, -- g_param_spec_boolean ( "shared-flag", -- "Shared Flag", -- "Whether we should leave other clients connected to the server", -- FALSE, -- G_PARAM_READWRITE | -- G_PARAM_CONSTRUCT | -- G_PARAM_STATIC_NAME | -- G_PARAM_STATIC_NICK | -- G_PARAM_STATIC_BLURB)); -- g_object_class_install_property (object_class, -- PROP_FORCE_SIZE, -- g_param_spec_boolean ( "force-size", -- "Force widget size", -- "Whether we should define the widget size", -- TRUE, -- G_PARAM_READWRITE | -- G_PARAM_CONSTRUCT | -- G_PARAM_STATIC_NAME | -- G_PARAM_STATIC_NICK | -- G_PARAM_STATIC_BLURB)); -- -- signalCredParam = g_param_spec_enum("credential", -- "credential", -- "credential", -- vnc_display_credential_get_type(), -- 0, -- G_PARAM_READABLE); -- -- signals[VNC_CONNECTED] = -- g_signal_new ("vnc-connected", -- G_OBJECT_CLASS_TYPE (object_class), -- G_SIGNAL_RUN_FIRST, -- G_STRUCT_OFFSET (VncDisplayClass, vnc_connected), -- NULL, NULL, -- g_cclosure_marshal_VOID__VOID, -- G_TYPE_NONE, -- 0); -- -- signals[VNC_INITIALIZED] = -- g_signal_new ("vnc-initialized", -- G_OBJECT_CLASS_TYPE (object_class), -- G_SIGNAL_RUN_FIRST, -- G_STRUCT_OFFSET (VncDisplayClass, vnc_initialized), -- NULL, NULL, -- g_cclosure_marshal_VOID__VOID, -- G_TYPE_NONE, -- 0); -- -- signals[VNC_DISCONNECTED] = -- g_signal_new ("vnc-disconnected", -- G_OBJECT_CLASS_TYPE (object_class), -- G_SIGNAL_RUN_FIRST, -- G_STRUCT_OFFSET (VncDisplayClass, vnc_disconnected), -- NULL, NULL, -- g_cclosure_marshal_VOID__VOID, -- G_TYPE_NONE, -- 0); -- -- signals[VNC_AUTH_CREDENTIAL] = -- g_signal_new ("vnc-auth-credential", -- G_OBJECT_CLASS_TYPE (object_class), -- G_SIGNAL_RUN_FIRST, -- G_STRUCT_OFFSET (VncDisplayClass, vnc_auth_credential), -- NULL, NULL, -- g_cclosure_marshal_VOID__BOXED, -- G_TYPE_NONE, -- 1, -- G_TYPE_VALUE_ARRAY); -- -- -- signals[VNC_POINTER_GRAB] = -- g_signal_new("vnc-pointer-grab", -- G_TYPE_FROM_CLASS(klass), -- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, -- 0, -- NULL, -- NULL, -- g_cclosure_marshal_VOID__VOID, -- G_TYPE_NONE, -- 0); -- -- signals[VNC_POINTER_UNGRAB] = -- g_signal_new("vnc-pointer-ungrab", -- G_TYPE_FROM_CLASS(klass), -- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, -- 0, -- NULL, -- NULL, -- g_cclosure_marshal_VOID__VOID, -- G_TYPE_NONE, -- 0); -- -- signals[VNC_KEYBOARD_GRAB] = -- g_signal_new("vnc-keyboard-grab", -- G_TYPE_FROM_CLASS(klass), -- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, -- 0, -- NULL, -- NULL, -- g_cclosure_marshal_VOID__VOID, -- G_TYPE_NONE, -- 0); -- -- signals[VNC_KEYBOARD_UNGRAB] = -- g_signal_new("vnc-keyboard-ungrab", -- G_TYPE_FROM_CLASS(klass), -- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, -- 0, -- NULL, -- NULL, -- g_cclosure_marshal_VOID__VOID, -- G_TYPE_NONE, -- 0); -- -- -- signals[VNC_DESKTOP_RESIZE] = -- g_signal_new("vnc-desktop-resize", -- G_TYPE_FROM_CLASS(klass), -- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, -- 0, -- NULL, -- NULL, -- g_cclosure_user_marshal_VOID__INT_INT, -- G_TYPE_NONE, -- 2, -- G_TYPE_INT, G_TYPE_INT); -- -- signals[VNC_AUTH_FAILURE] = -- g_signal_new("vnc-auth-failure", -- G_TYPE_FROM_CLASS(klass), -- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, -- 0, -- NULL, -- NULL, -- g_cclosure_marshal_VOID__STRING, -- G_TYPE_NONE, -- 1, -- G_TYPE_STRING); -- -- signals[VNC_AUTH_UNSUPPORTED] = -- g_signal_new("vnc-auth-unsupported", -- G_TYPE_FROM_CLASS(klass), -- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, -- 0, -- NULL, -- NULL, -- g_cclosure_marshal_VOID__UINT, -- G_TYPE_NONE, -- 1, -- G_TYPE_UINT); -- -- signals[VNC_SERVER_CUT_TEXT] = -- g_signal_new("vnc-server-cut-text", -- G_TYPE_FROM_CLASS(klass), -- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, -- 0, -- NULL, -- NULL, -- g_cclosure_marshal_VOID__STRING, -- G_TYPE_NONE, -- 1, -- G_TYPE_STRING); -- -- signals[VNC_BELL] = -- g_signal_new("vnc-bell", -- G_TYPE_FROM_CLASS(klass), -- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, -- 0, -- NULL, -- NULL, -- g_cclosure_marshal_VOID__VOID, -- G_TYPE_NONE, -- 0); -- -- g_type_class_add_private(klass, sizeof(VncDisplayPrivate)); --} -- --static void vnc_display_init(VncDisplay *display) --{ -- GtkObject *obj = GTK_OBJECT(display); -- GtkWidget *widget = GTK_WIDGET(display); -- VncDisplayPrivate *priv; -- -- GTK_WIDGET_SET_FLAGS(obj, GTK_CAN_FOCUS); -- -- gtk_widget_add_events(widget, -- GDK_POINTER_MOTION_MASK | -- GDK_BUTTON_PRESS_MASK | -- GDK_BUTTON_RELEASE_MASK | -- GDK_BUTTON_MOTION_MASK | -- GDK_ENTER_NOTIFY_MASK | -- GDK_LEAVE_NOTIFY_MASK | -- GDK_SCROLL_MASK | -- GDK_KEY_PRESS_MASK); -- gtk_widget_set_double_buffered(widget, FALSE); -- -- priv = display->priv = VNC_DISPLAY_GET_PRIVATE(display); -- memset(priv, 0, sizeof(VncDisplayPrivate)); -- priv->last_x = -1; -- priv->last_y = -1; -- priv->absolute = 1; -- priv->fd = -1; -- priv->read_only = FALSE; -- priv->allow_lossy = FALSE; -- priv->allow_scaling = FALSE; -- priv->grab_pointer = FALSE; -- priv->grab_keyboard = FALSE; -- priv->local_pointer = FALSE; -- priv->shared_flag = FALSE; -- priv->force_size = TRUE; -- -- priv->preferable_auths = g_slist_append (priv->preferable_auths, GUINT_TO_POINTER (GVNC_AUTH_VENCRYPT)); -- priv->preferable_auths = g_slist_append (priv->preferable_auths, GUINT_TO_POINTER (GVNC_AUTH_TLS)); -- priv->preferable_auths = g_slist_append (priv->preferable_auths, GUINT_TO_POINTER (GVNC_AUTH_VNC)); -- priv->preferable_auths = g_slist_append (priv->preferable_auths, GUINT_TO_POINTER (GVNC_AUTH_NONE)); -- --#if WITH_GTKGLEXT -- if (gtk_gl_init_check(NULL, NULL)) { -- priv->gl_config = gdk_gl_config_new_by_mode(GDK_GL_MODE_RGB | -- GDK_GL_MODE_DEPTH); -- if (!gtk_widget_set_gl_capability(widget, -- priv->gl_config, -- NULL, -- TRUE, -- GDK_GL_RGBA_TYPE)) { -- g_warning("Could not enable OpenGL"); -- g_object_unref(G_OBJECT(priv->gl_config)); -- priv->gl_config = NULL; -- } -- } else -- priv->gl_config = NULL; --#endif -- -- priv->gvnc = gvnc_new(&vnc_display_ops, obj); --} -- --static int vnc_display_best_path(char *buf, -- int buflen, -- const char *basedir, -- const char *basefile, -- char **dirs, -- unsigned int ndirs) --{ -- unsigned int i; -- for (i = 0 ; i < ndirs ; i++) { -- struct stat sb; -- snprintf(buf, buflen-1, "%s/%s/%s", dirs[i], basedir, basefile); -- buf[buflen-1] = '\0'; -- if (stat(buf, &sb) == 0) -- return 0; -- } -- return -1; --} -- --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 *dirs[] = { sysdir, userdir }; -- -- strncpy(sysdir, SYSCONFDIR "/pki", PATH_MAX-1); -- sysdir[PATH_MAX-1] = '\0'; -- -- if (!(pw = getpwuid(getuid()))) -- return TRUE; -- -- snprintf(userdir, PATH_MAX-1, "%s/.pki", pw->pw_dir); -- userdir[PATH_MAX-1] = '\0'; -- -- if (vnc_display_best_path(file, PATH_MAX, "CA", "cacert.pem", dirs, 2) < 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) -- 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) -- gvnc_set_credential_x509_key(obj->priv->gvnc, file); -- if (vnc_display_best_path(file, PATH_MAX, name, "clientcert.pem", dirs, 2) == 0) -- gvnc_set_credential_x509_cert(obj->priv->gvnc, file); -- -- return FALSE; --} -- --gboolean vnc_display_set_credential(VncDisplay *obj, int type, const gchar *data) --{ -- switch (type) { -- case VNC_DISPLAY_CREDENTIAL_PASSWORD: -- if (gvnc_set_credential_password(obj->priv->gvnc, data)) -- return FALSE; -- return TRUE; -- -- case VNC_DISPLAY_CREDENTIAL_USERNAME: -- if (gvnc_set_credential_username(obj->priv->gvnc, data)) -- return FALSE; -- return TRUE; -- -- case VNC_DISPLAY_CREDENTIAL_CLIENTNAME: -- return vnc_display_set_x509_credential(obj, data); -- } -- -- return FALSE; --} -- --void vnc_display_set_pointer_local(VncDisplay *obj, gboolean enable) --{ -- if (obj->priv->gc) { -- if (enable) -- do_pointer_show(obj); -- else if (obj->priv->in_pointer_grab || obj->priv->absolute) -- do_pointer_hide(obj); -- } -- obj->priv->local_pointer = enable; --} -- --void vnc_display_set_pointer_grab(VncDisplay *obj, gboolean enable) --{ -- VncDisplayPrivate *priv = obj->priv; -- -- priv->grab_pointer = enable; -- if (!enable && priv->absolute && priv->in_pointer_grab) -- do_pointer_ungrab(obj, FALSE); --} -- --void vnc_display_set_keyboard_grab(VncDisplay *obj, gboolean enable) --{ -- VncDisplayPrivate *priv = obj->priv; -- -- priv->grab_keyboard = enable; -- if (!enable && priv->in_keyboard_grab && !priv->in_pointer_grab) -- do_keyboard_ungrab(obj, FALSE); --} -- --void vnc_display_set_read_only(VncDisplay *obj, gboolean enable) --{ -- obj->priv->read_only = enable; --} -- --GType vnc_display_credential_get_type(void) --{ -- static GType etype = 0; -- -- if (etype == 0) { -- static const GEnumValue values[] = { -- { VNC_DISPLAY_CREDENTIAL_PASSWORD, "VNC_DISPLAY_CREDENTIAL_PASSWORD", "password" }, -- { VNC_DISPLAY_CREDENTIAL_USERNAME, "VNC_DISPLAY_CREDENTIAL_USERNAME", "username" }, -- { VNC_DISPLAY_CREDENTIAL_CLIENTNAME, "VNC_DISPLAY_CREDENTIAL_CLIENTNAME", "clientname" }, -- { 0, NULL, NULL } -- }; -- etype = g_enum_register_static ("VncDisplayCredentialType", values ); -- } -- -- return etype; --} -- --GType vnc_display_key_event_get_type(void) --{ -- static GType etype = 0; -- -- if (etype == 0) { -- static const GEnumValue values[] = { -- { VNC_DISPLAY_KEY_EVENT_PRESS, "VNC_DISPLAY_KEY_EVENT_PRESS", "press" }, -- { VNC_DISPLAY_KEY_EVENT_RELEASE, "VNC_DISPLAY_KEY_EVENT_RELEASE", "release" }, -- { VNC_DISPLAY_KEY_EVENT_CLICK, "VNC_DISPLAY_KEY_EVENT_CLICK", "click" }, -- { 0, NULL, NULL } -- }; -- etype = g_enum_register_static ("VncDisplayKeyEvents", values ); -- } -- -- return etype; --} -- --GdkPixbuf *vnc_display_get_pixbuf(VncDisplay *obj) --{ -- VncDisplayPrivate *priv = obj->priv; -- GdkPixbuf *pixbuf; -- -- if (!priv->gvnc || -- !gvnc_is_initialized(priv->gvnc)) -- return NULL; -- -- pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, FALSE, 8, -- priv->image->width, priv->image->height); -- -- if (!gdk_pixbuf_get_from_image(pixbuf, -- priv->image, -- gdk_colormap_get_system(), -- 0, 0, 0, 0, -- priv->image->width, -- priv->image->height)) -- return NULL; -- -- return pixbuf; --} -- -- --int vnc_display_get_width(VncDisplay *obj) --{ -- g_return_val_if_fail (VNC_IS_DISPLAY (obj), -1); -- -- return gvnc_get_width (obj->priv->gvnc); --} -- --int vnc_display_get_height(VncDisplay *obj) --{ -- g_return_val_if_fail (VNC_IS_DISPLAY (obj), -1); -- -- return gvnc_get_height (obj->priv->gvnc); --} -- --const char * vnc_display_get_name(VncDisplay *obj) --{ -- g_return_val_if_fail (VNC_IS_DISPLAY (obj), NULL); -- -- return gvnc_get_name (obj->priv->gvnc); --} -- --void vnc_display_client_cut_text(VncDisplay *obj, const gchar *text) --{ -- g_return_if_fail (VNC_IS_DISPLAY (obj)); -- -- gvnc_client_cut_text(obj->priv->gvnc, text, strlen (text)); --} -- --void vnc_display_set_lossy_encoding(VncDisplay *obj, gboolean enable) --{ -- g_return_if_fail (VNC_IS_DISPLAY (obj)); -- obj->priv->allow_lossy = enable; --} -- --void vnc_display_set_shared_flag(VncDisplay *obj, gboolean shared) --{ -- g_return_if_fail (VNC_IS_DISPLAY (obj)); -- obj->priv->shared_flag = shared; --} -- --#if WITH_GTKGLEXT --gboolean vnc_display_set_scaling(VncDisplay *obj, gboolean enable) --{ -- GtkWidget *widget = GTK_WIDGET(obj); -- gint width, height; -- -- g_return_val_if_fail (VNC_IS_DISPLAY (obj), FALSE); -- if (obj->priv->gl_config == NULL) -- return FALSE; -- -- obj->priv->allow_scaling = enable; -- if (gvnc_is_open(obj->priv->gvnc) && widget->window) { -- gdk_drawable_get_size(widget->window, &width, &height); -- rescale_display(obj, width, height); -- gtk_widget_queue_draw_area(widget, 0, 0, width, height); -- } -- -- return TRUE; --} --#else --gboolean vnc_display_set_scaling(VncDisplay *obj G_GNUC_UNUSED, -- gboolean enable G_GNUC_UNUSED) --{ -- return FALSE; --} --#endif -- --void vnc_display_set_force_size(VncDisplay *obj, gboolean enabled) --{ -- g_return_if_fail (VNC_IS_DISPLAY (obj)); -- obj->priv->force_size = enabled; --} -- --gboolean vnc_display_get_force_size(VncDisplay *obj) --{ -- g_return_val_if_fail (VNC_IS_DISPLAY (obj), FALSE); -- -- return obj->priv->force_size; --} -- --gboolean vnc_display_get_scaling(VncDisplay *obj) --{ -- g_return_val_if_fail (VNC_IS_DISPLAY (obj), FALSE); -- -- return obj->priv->allow_scaling; --} -- --gboolean vnc_display_get_lossy_encoding(VncDisplay *obj) --{ -- g_return_val_if_fail (VNC_IS_DISPLAY (obj), FALSE); -- -- return obj->priv->allow_lossy; --} -- --gboolean vnc_display_get_shared_flag(VncDisplay *obj) --{ -- g_return_val_if_fail (VNC_IS_DISPLAY (obj), FALSE); -- -- return obj->priv->shared_flag; --} -- --gboolean vnc_display_get_pointer_local(VncDisplay *obj) --{ -- g_return_val_if_fail (VNC_IS_DISPLAY (obj), FALSE); -- -- return obj->priv->local_pointer; --} -- --gboolean vnc_display_get_pointer_grab(VncDisplay *obj) --{ -- g_return_val_if_fail (VNC_IS_DISPLAY (obj), FALSE); -- -- return obj->priv->grab_pointer; --} -- --gboolean vnc_display_get_keyboard_grab(VncDisplay *obj) --{ -- g_return_val_if_fail (VNC_IS_DISPLAY (obj), FALSE); -- -- return obj->priv->grab_keyboard; --} -- --gboolean vnc_display_get_read_only(VncDisplay *obj) --{ -- g_return_val_if_fail (VNC_IS_DISPLAY (obj), FALSE); -- -- return obj->priv->read_only; --} -- --gboolean vnc_display_is_pointer_absolute(VncDisplay *obj) --{ -- return obj->priv->absolute; --} -- --GOptionGroup * --vnc_display_get_option_group (void) --{ -- GOptionGroup *group; -- -- group = g_option_group_new ("gtk-vnc", "GTK-VNC Options", "Show GTK-VNC Options", NULL, NULL); -- -- g_option_group_add_entries (group, gtk_vnc_args); -- -- return group; --} -- --/* -- * Local variables: -- * c-indent-level: 8 -- * c-basic-offset: 8 -- * tab-width: 8 -- * End: -- */ -diff -urN gtk-vnc-0.3.7/vc-list-files gtk-vnc-0.3.7.mingw/vc-list-files ---- gtk-vnc-0.3.7/vc-list-files 1970-01-01 01:00:00.000000000 +0100 -+++ gtk-vnc-0.3.7.mingw/vc-list-files 2008-10-09 12:19:03.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 . -+ -+ -+# 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 -+ exit ;; -+ -+ --version) -+ year=`echo "$scriptversion" | sed 's/[^0-9].*//'` -+ cat < -+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-dan3.patch b/gtk-vnc/gtk-vnc-0.3.7-mingw32-dan3.patch new file mode 100644 index 0000000..f81db38 --- /dev/null +++ b/gtk-vnc/gtk-vnc-0.3.7-mingw32-dan3.patch @@ -0,0 +1,702 @@ +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 ++ + #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 ++ + #include "coroutine.h" + #include + #include +@@ -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 ++ + #include + #include + #include +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 ++ + #include "gvnc.h" + + #include + #include + #include + +-#include + #include + #include + #include +@@ -40,6 +41,14 @@ + #include + + #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 ++ + #include "vncdisplay.h" + #include "coroutine.h" + #include "gvnc.h" +@@ -24,7 +26,9 @@ + #include + #include + #include ++#ifdef HAVE_PWD_H + #include ++#endif + + #if WITH_GTKGLEXT + #include +@@ -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 . ++ ++ ++# 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 ++ exit ;; ++ ++ --version) ++ year=`echo "$scriptversion" | sed 's/[^0-9].*//'` ++ cat < ++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 index ed2d9d6..1dc1b1f 100644 --- a/gtk-vnc/gtk-vnc-0.3.7-mingw32-gnulib-files.patch +++ b/gtk-vnc/gtk-vnc-0.3.7-mingw32-gnulib-files.patch @@ -1,20 +1,6 @@ -diff -urN gtk-vnc-0.3.7.mingw/bootstrap gtk-vnc-0.3.7.gnulib/bootstrap ---- gtk-vnc-0.3.7.mingw/bootstrap 2008-10-09 12:19:03.000000000 +0100 -+++ gtk-vnc-0.3.7.gnulib/bootstrap 2008-10-09 12:33:37.000000000 +0100 -@@ -65,6 +65,10 @@ - <$gnulib_tool || exit - - modules=' -+recv -+send -+socket -+connect - getaddrinfo - vc-list-files - ' -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/alloca.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/alloca.in.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. + @@ -72,9 +58,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/alloca.in.h gtk-vnc-0.3.7.gnulib/gnulib +#endif + +#endif /* _GL_ALLOCA_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/arpa_inet.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/arpa_inet.in.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 . + @@ -156,9 +142,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/arpa_inet.in.h gtk-vnc-0.3.7.gnulib/gnu + +#endif /* _GL_ARPA_INET_H */ +#endif /* _GL_ARPA_INET_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/asnprintf.c gtk-vnc-0.3.7.gnulib/gnulib/lib/asnprintf.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -195,9 +181,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/asnprintf.c gtk-vnc-0.3.7.gnulib/gnulib + va_end (args); + return result; +} -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/dummy.c gtk-vnc-0.3.7.gnulib/gnulib/lib/dummy.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -241,9 +227,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/dummy.c gtk-vnc-0.3.7.gnulib/gnulib/lib + this file is never empty. */ +typedef int dummy; +#endif -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/errno.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/errno.in.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 . + @@ -398,9 +384,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/errno.in.h gtk-vnc-0.3.7.gnulib/gnulib/ + +#endif /* _GL_ERRNO_H */ +#endif /* _GL_ERRNO_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/float+.h gtk-vnc-0.3.7.gnulib/gnulib/lib/float+.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -550,9 +536,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/float+.h gtk-vnc-0.3.7.gnulib/gnulib/li +typedef int verify_sizeof_ldbl[2 * (SIZEOF_LDBL <= sizeof (long double)) - 1]; + +#endif /* _FLOATPLUS_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/float.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/float.in.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 . + @@ -614,9 +600,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/float.in.h gtk-vnc-0.3.7.gnulib/gnulib/ + +#endif /* _GL_FLOAT_H */ +#endif /* _GL_FLOAT_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/gai_strerror.c gtk-vnc-0.3.7.gnulib/gnulib/lib/gai_strerror.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -696,9 +682,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/gai_strerror.c gtk-vnc-0.3.7.gnulib/gnu +#ifdef _LIBC +libc_hidden_def (gai_strerror) +#endif -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/getaddrinfo.c gtk-vnc-0.3.7.gnulib/gnulib/lib/getaddrinfo.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 @@ -1119,9 +1105,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/getaddrinfo.c gtk-vnc-0.3.7.gnulib/gnul + + return 0; +} -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/getaddrinfo.h gtk-vnc-0.3.7.gnulib/gnulib/lib/getaddrinfo.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 @@ -1286,9 +1272,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/getaddrinfo.h gtk-vnc-0.3.7.gnulib/gnul +#endif + +#endif /* GETADDRINFO_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/gettext.h gtk-vnc-0.3.7.gnulib/gnulib/lib/gettext.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 . + Copyright (C) 1995-1998, 2000-2002, 2004-2006 Free Software Foundation, Inc. @@ -1560,9 +1546,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/gettext.h gtk-vnc-0.3.7.gnulib/gnulib/l +} + +#endif /* _LIBGETTEXT_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/inet_ntop.c gtk-vnc-0.3.7.gnulib/gnulib/lib/inet_ntop.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 + @@ -1802,10 +1788,10 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/inet_ntop.c gtk-vnc-0.3.7.gnulib/gnulib +} + +#endif -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/Makefile.am gtk-vnc-0.3.7.gnulib/gnulib/lib/Makefile.am ---- gtk-vnc-0.3.7.mingw/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 12:33:42.000000000 +0100 -@@ -0,0 +1,484 @@ +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. @@ -1817,7 +1803,7 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/Makefile.am gtk-vnc-0.3.7.gnulib/gnulib +# 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 recv send socket vc-list-files ++# 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 + @@ -1979,6 +1965,24 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/Makefile.am gtk-vnc-0.3.7.gnulib/gnulib + +## 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) @@ -2186,6 +2190,52 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/Makefile.am gtk-vnc-0.3.7.gnulib/gnulib + +## end gnulib module stdio + ++## begin gnulib module stdlib ++ ++BUILT_SOURCES += stdlib.h ++ ++# We need the following in order to create 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) @@ -2227,6 +2277,63 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/Makefile.am gtk-vnc-0.3.7.gnulib/gnulib + +## 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 ++# 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 + + @@ -2290,550 +2397,159 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/Makefile.am gtk-vnc-0.3.7.gnulib/gnulib + fi; \ + done; \ + : -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/Makefile.am~ gtk-vnc-0.3.7.gnulib/gnulib/lib/Makefile.am~ ---- gtk-vnc-0.3.7.mingw/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 12:24:40.000000000 +0100 -@@ -0,0 +1,448 @@ -+## 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 getaddrinfo 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) +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. + -+# We need the following in order to create 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 ++ Copyright (C) 1997, 1998, 2006, 2007 Free Software Foundation, Inc. + -+EXTRA_DIST += alloca.in.h ++ 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. + -+## end gnulib module alloca-opt ++ 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. + -+## begin gnulib module arpa_inet ++ 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. */ + -+BUILT_SOURCES += $(ARPA_INET_H) ++/* written by Jim Meyering and Bruno Haible */ + -+# We need the following in order to create 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 ++#include ++/* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h. */ ++#ifdef malloc ++# define NEED_MALLOC_GNU ++# undef malloc ++#endif + -+EXTRA_DIST += arpa_inet.in.h ++/* Specification. */ ++#include + -+## end gnulib module arpa_inet ++#include + -+## begin gnulib module errno ++/* Call the system's malloc below. */ ++#undef malloc + -+BUILT_SOURCES += $(ERRNO_H) ++/* Allocate an N-byte block of memory from the heap. ++ If N is zero, allocate a 1-byte block. */ + -+# We need the following in order to create 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 ++void * ++rpl_malloc (size_t n) ++{ ++ void *result; + -+EXTRA_DIST += errno.in.h ++#ifdef NEED_MALLOC_GNU ++ if (n == 0) ++ n = 1; ++#endif + -+## end gnulib module errno ++ result = malloc (n); + -+## begin gnulib module float ++#if !HAVE_MALLOC_POSIX ++ if (result == NULL) ++ errno = ENOMEM; ++#endif + -+BUILT_SOURCES += $(FLOAT_H) ++ 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 . ++ Copyright (C) 2007-2008 Free Software Foundation, Inc. + -+# We need the following in order to create 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 ++ 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. + -+EXTRA_DIST += float.in.h ++ 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. + -+## end gnulib module float ++ 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. */ + -+## begin gnulib module getaddrinfo ++#ifndef _GL_NETINET_IN_H + ++#if @HAVE_NETINET_IN_H@ + -+EXTRA_DIST += gai_strerror.c getaddrinfo.c getaddrinfo.h ++@PRAGMA_SYSTEM_HEADER@ + -+EXTRA_libgnu_la_SOURCES += gai_strerror.c getaddrinfo.c ++/* On many platforms, assumes prior inclusion of ++ . */ ++# include + -+## end gnulib module getaddrinfo ++/* The include_next requires a split double-inclusion guard. */ ++# @INCLUDE_NEXT@ @NEXT_NETINET_IN_H@ + -+## begin gnulib module gettext-h ++#endif + -+libgnu_la_SOURCES += gettext.h ++#ifndef _GL_NETINET_IN_H ++#define _GL_NETINET_IN_H + -+## end gnulib module gettext-h ++#if !@HAVE_NETINET_IN_H@ + -+## begin gnulib module inet_ntop ++/* A platform that lacks . */ + ++# include + -+EXTRA_DIST += inet_ntop.c ++#endif + -+EXTRA_libgnu_la_SOURCES += inet_ntop.c ++#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. + -+## end gnulib module inet_ntop ++ 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. + -+## begin gnulib module link-warning ++ 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. + -+LINK_WARNING_H=$(top_srcdir)/./link-warning.h ++ 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. */ + -+EXTRA_DIST += $(top_srcdir)/./link-warning.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 defined. ++ STATIC Set to 'static' to declare the function static. */ + -+## end gnulib module link-warning ++#ifndef PRINTF_FETCHARGS ++# include ++#endif + -+## begin gnulib module netinet_in ++/* Specification. */ ++#ifndef PRINTF_FETCHARGS ++# include "printf-args.h" ++#endif + -+BUILT_SOURCES += $(NETINET_IN_H) -+ -+# We need the following in order to create 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 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 stdbool -+ -+BUILT_SOURCES += $(STDBOOL_H) -+ -+# We need the following in order to create 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 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 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 sys_socket -+ -+BUILT_SOURCES += $(SYS_SOCKET_H) -+ -+# We need the following in order to create 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 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 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.mingw/gnulib/lib/netinet_in.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/netinet_in.in.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 -@@ -0,0 +1,45 @@ -+/* Substitute for . -+ 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, assumes prior inclusion of -+ . */ -+# include -+ -+/* 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 . */ -+ -+# include -+ -+#endif -+ -+#endif /* _GL_NETINET_IN_H */ -+#endif /* _GL_NETINET_IN_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/printf-args.c gtk-vnc-0.3.7.gnulib/gnulib/lib/printf-args.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.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 -+#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; ++#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) @@ -2982,9 +2698,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/printf-args.c gtk-vnc-0.3.7.gnulib/gnul + } + return 0; +} -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/printf-args.h gtk-vnc-0.3.7.gnulib/gnulib/lib/printf-args.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -3140,9 +2856,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/printf-args.h gtk-vnc-0.3.7.gnulib/gnul +int PRINTF_FETCHARGS (va_list args, arguments *a); + +#endif /* _PRINTF_ARGS_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/printf-parse.c gtk-vnc-0.3.7.gnulib/gnulib/lib/printf-parse.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -3771,9 +3487,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/printf-parse.c gtk-vnc-0.3.7.gnulib/gnu +#undef DIRECTIVE +#undef CHAR_T_ONLY_ASCII +#undef CHAR_T -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/printf-parse.h gtk-vnc-0.3.7.gnulib/gnulib/lib/printf-parse.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -3954,9 +3670,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/printf-parse.h gtk-vnc-0.3.7.gnulib/gnu +#endif + +#endif /* _PRINTF_PARSE_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/size_max.h gtk-vnc-0.3.7.gnulib/gnulib/lib/size_max.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -3989,9 +3705,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/size_max.h gtk-vnc-0.3.7.gnulib/gnulib/ + in config.h. */ + +#endif /* GNULIB_SIZE_MAX_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/snprintf.c gtk-vnc-0.3.7.gnulib/gnulib/lib/snprintf.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -4065,9 +3781,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/snprintf.c gtk-vnc-0.3.7.gnulib/gnulib/ + + return len; +} -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/stdbool.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/stdbool.in.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 , 2001. @@ -4188,9 +3904,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/stdbool.in.h gtk-vnc-0.3.7.gnulib/gnuli +#define __bool_true_false_are_defined 1 + +#endif /* _GL_STDBOOL_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/stdint.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/stdint.in.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -4715,9 +4431,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/stdint.in.h gtk-vnc-0.3.7.gnulib/gnulib + +#endif /* _GL_STDINT_H */ +#endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/stdio.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/stdio.in.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 . + @@ -5194,9 +4910,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/stdio.in.h gtk-vnc-0.3.7.gnulib/gnulib/ +#endif /* _GL_STDIO_H */ +#endif /* _GL_STDIO_H */ +#endif -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/stdio-write.c gtk-vnc-0.3.7.gnulib/gnulib/lib/stdio-write.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -5262,93 +4978,339 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/stdio-write.c gtk-vnc-0.3.7.gnulib/gnul + return ret; \ + } + -+# if !REPLACE_PRINTF_POSIX /* avoid collision with printf.c */ -+int -+printf (const char *format, ...) -+{ -+ int retval; -+ va_list args; ++# 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 . ++ ++ 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 . */ ++ ++@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 declares mkstemp. */ ++# include ++# 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 ++ + -+ va_start (args, format); -+ retval = vfprintf (stdout, format, args); -+ va_end (args); ++#if @GNULIB_PUTENV@ ++# if @REPLACE_PUTENV@ ++# undef putenv ++# define putenv rpl_putenv ++extern int putenv (char *string); ++# endif ++#endif + -+ return retval; -+} -+# endif + -+# if !REPLACE_FPRINTF_POSIX /* avoid collision with fprintf.c */ -+int -+fprintf (FILE *stream, const char *format, ...) -+{ -+ int retval; -+ va_list args; ++#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 + -+ va_start (args, format); -+ retval = vfprintf (stream, format, args); -+ va_end (args); + -+ return retval; -+} -+# 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 !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) -+} ++#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 + -+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) -+} ++#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 + -+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) ++#ifdef __cplusplus +} ++#endif + -+# endif ++#endif /* _GL_STDLIB_H */ ++#endif /* _GL_STDLIB_H */ +#endif -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/sys_socket.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/sys_socket.in.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -5736,9 +5698,401 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/sys_socket.in.h gtk-vnc-0.3.7.gnulib/gn + +#endif /* _GL_SYS_SOCKET_H */ +#endif /* _GL_SYS_SOCKET_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/vasnprintf.c gtk-vnc-0.3.7.gnulib/gnulib/lib/vasnprintf.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 . ++ 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 . */ ++#if !(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) ++# include ++#endif ++ ++/* mingw fails to declare _exit in . */ ++#include ++ ++#if @GNULIB_WRITE@ && @REPLACE_WRITE@ && @GNULIB_UNISTD_H_SIGPIPE@ ++/* Get ssize_t. */ ++# include ++#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 ++ . */ ++# 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 ++ . */ ++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 ++# 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 ++ . */ ++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 ++ . */ ++# 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 ++ . */ ++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 ++# 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 ++ . ++ 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 . ++ */ ++# if !@HAVE_DECL_GETLOGIN_R@ ++# include ++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 ++# 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 ++# 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 ++ . */ ++# 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 ++ . */ ++# 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 ++ . */ ++# if !@HAVE_READLINK@ ++# include ++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 ++ . */ ++# 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 ++ . */ ++# 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. @@ -10627,9 +10981,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/vasnprintf.c gtk-vnc-0.3.7.gnulib/gnuli +#undef DCHAR_T +#undef FCHAR_T +#undef VASNPRINTF -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/vasnprintf.h gtk-vnc-0.3.7.gnulib/gnulib/lib/vasnprintf.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -10712,9 +11066,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/vasnprintf.h gtk-vnc-0.3.7.gnulib/gnuli +#endif + +#endif /* _VASNPRINTF_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/wchar.in.h gtk-vnc-0.3.7.gnulib/gnulib/lib/wchar.in.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 , for platforms that have issues. + @@ -10815,9 +11169,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/wchar.in.h gtk-vnc-0.3.7.gnulib/gnulib/ +#endif /* _GL_WCHAR_H */ +#endif /* _GL_WCHAR_H */ +#endif -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/winsock.c gtk-vnc-0.3.7.gnulib/gnulib/lib/winsock.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 + @@ -11127,9 +11481,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/winsock.c gtk-vnc-0.3.7.gnulib/gnulib/l + return r; +} +#endif -diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/xsize.h gtk-vnc-0.3.7.gnulib/gnulib/lib/xsize.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. + @@ -11239,9 +11593,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/lib/xsize.h gtk-vnc-0.3.7.gnulib/gnulib/lib + ((SIZE) != SIZE_MAX) + +#endif /* _XSIZE_H */ -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/alloca.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/alloca.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -11289,9 +11643,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/alloca.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4 +# 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.mingw/gnulib/m4/arpa_inet_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/arpa_inet_h.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -11343,9 +11697,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/arpa_inet_h.m4 gtk-vnc-0.3.7.gnulib/gnul + 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.mingw/gnulib/m4/errno_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/errno_h.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -11460,9 +11814,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/errno_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m + AC_SUBST($1[_VALUE]) + fi +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/extensions.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/extensions.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -11546,9 +11900,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/extensions.m4 gtk-vnc-0.3.7.gnulib/gnuli +# 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.mingw/gnulib/m4/float_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/float_h.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -11569,9 +11923,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/float_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m + esac + AC_SUBST([FLOAT_H]) +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/getaddrinfo.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/getaddrinfo.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -11700,59 +12054,13 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/getaddrinfo.m4 gtk-vnc-0.3.7.gnulib/gnul +#endif +#ifdef HAVE_WS2TCPIP_H +#include -+#endif -+]) -+]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/gnulib-cache.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/gnulib-cache.m4 ---- gtk-vnc-0.3.7.mingw/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 12:33:42.000000000 +0100 -@@ -0,0 +1,42 @@ -+# 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 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 -+ 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.mingw/gnulib/m4/gnulib-cache.m4~ gtk-vnc-0.3.7.gnulib/gnulib/m4/gnulib-cache.m4~ ---- gtk-vnc-0.3.7.mingw/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 12:24:40.000000000 +0100 -@@ -0,0 +1,38 @@ ++#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 @@ -11770,12 +12078,17 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/gnulib-cache.m4~ gtk-vnc-0.3.7.gnulib/gn + + +# 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 getaddrinfo vc-list-files ++# 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([]) @@ -11791,9 +12104,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/gnulib-cache.m4~ gtk-vnc-0.3.7.gnulib/gn +gl_LIBTOOL +gl_MACRO_PREFIX([gl]) +gl_PO_DOMAIN([]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/gnulib-common.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/gnulib-common.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -11853,347 +12166,43 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/gnulib-common.m4 gtk-vnc-0.3.7.gnulib/gn +[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.mingw/gnulib/m4/gnulib-comp.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/gnulib-comp.m4 ---- gtk-vnc-0.3.7.mingw/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 12:33:42.000000000 +0100 -@@ -0,0 +1,300 @@ -+# 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]) -+ 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_HEADER_SYS_SOCKET -+ AC_PROG_MKDIR_P -+ 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, [ ]) -+ ]) ++ 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 +]) -+ -+# 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/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/sys_socket.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/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/sys_socket_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-sys_socket.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.mingw/gnulib/m4/gnulib-comp.m4~ gtk-vnc-0.3.7.gnulib/gnulib/m4/gnulib-comp.m4~ ---- gtk-vnc-0.3.7.mingw/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 12:24:40.000000000 +0100 -@@ -0,0 +1,280 @@ +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. +# @@ -12240,6 +12249,11 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/gnulib-comp.m4~ gtk-vnc-0.3.7.gnulib/gnu + 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 @@ -12247,17 +12261,38 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/gnulib-comp.m4~ gtk-vnc-0.3.7.gnulib/gnu + 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 @@ -12410,6 +12445,7 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/gnulib-comp.m4~ gtk-vnc-0.3.7.gnulib/gnu + 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 @@ -12421,7 +12457,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/gnulib-comp.m4~ gtk-vnc-0.3.7.gnulib/gnu + 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 @@ -12439,6 +12477,7 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/gnulib-comp.m4~ gtk-vnc-0.3.7.gnulib/gnu + 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 @@ -12450,7 +12489,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/gnulib-comp.m4~ gtk-vnc-0.3.7.gnulib/gnu + 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 @@ -12465,7 +12506,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/gnulib-comp.m4~ gtk-vnc-0.3.7.gnulib/gnu + 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 @@ -12474,9 +12517,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/gnulib-comp.m4~ gtk-vnc-0.3.7.gnulib/gnu + tests=lib/intprops.h + tests=lib/verify.h +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/gnulib-tool.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/gnulib-tool.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -12535,9 +12578,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/gnulib-tool.m4 gtk-vnc-0.3.7.gnulib/gnul + +dnl Usage: gl_VC_FILES([BOOLEAN]) +AC_DEFUN([gl_VC_FILES], []) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/include_next.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/include_next.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -12667,9 +12710,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/include_next.m4 gtk-vnc-0.3.7.gnulib/gnu + [AS_VAR_GET([gl_next_header])]) + AS_VAR_POPDEF([gl_next_header])]) +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/inet_ntop.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/inet_ntop.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -12697,9 +12740,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/inet_ntop.m4 gtk-vnc-0.3.7.gnulib/gnulib + AC_REQUIRE([gl_SOCKET_FAMILIES]) + AC_REQUIRE([AC_C_RESTRICT]) +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/intmax_t.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/intmax_t.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -12762,9 +12805,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/intmax_t.m4 gtk-vnc-0.3.7.gnulib/gnulib/ + [Define to long or long long if and don't define.]) + fi +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/inttypes_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/inttypes_h.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -12792,9 +12835,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/inttypes_h.m4 gtk-vnc-0.3.7.gnulib/gnuli + and declares uintmax_t. ]) + fi +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/longlong.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/longlong.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -12902,9 +12945,54 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/longlong.m4 gtk-vnc-0.3.7.gnulib/gnulib/ + | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) + | (ullmax / ull) | (ullmax % ull));]]) +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/netinet_in_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/netinet_in_h.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -12936,9 +13024,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/netinet_in_h.m4 gtk-vnc-0.3.7.gnulib/gnu + fi + AC_SUBST([NETINET_IN_H]) +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/onceonly.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/onceonly.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -13030,9 +13118,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/onceonly.m4 gtk-vnc-0.3.7.gnulib/gnulib/ + AC_REQUIRE([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME])) + ]) +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/printf.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/printf.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -14343,9 +14431,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/printf.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4 +dnl NetBSD 3.0 . . . . # # . # # ? # . # . . . . . . +dnl BeOS # # . # # # . # . ? . # ? . . . . . . +dnl mingw # # # # # # . # # . # # ? . # # # . . -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/size_max.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/size_max.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -14415,9 +14503,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/size_max.m4 gtk-vnc-0.3.7.gnulib/gnulib/ +m4_ifdef([AC_COMPUTE_INT], [], [ + AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/snprintf.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/snprintf.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -14459,9 +14547,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/snprintf.m4 gtk-vnc-0.3.7.gnulib/gnulib/ + +# Prerequisites of lib/snprintf.c. +AC_DEFUN([gl_PREREQ_SNPRINTF], [:]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/socklen.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/socklen.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -14515,9 +14603,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/socklen.m4 gtk-vnc-0.3.7.gnulib/gnulib/m + #elif HAVE_WS2TCPIP_H + # include + #endif])]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/sockpfaf.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/sockpfaf.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -14577,9 +14665,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/sockpfaf.m4 gtk-vnc-0.3.7.gnulib/gnulib/ + AC_DEFINE(HAVE_IPV6, 1, [Define to 1 if defines AF_INET6.]) + fi +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/stdbool.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/stdbool.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. + @@ -14696,9 +14784,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/stdbool.m4 gtk-vnc-0.3.7.gnulib/gnulib/m + 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.mingw/gnulib/m4/stdint_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/stdint_h.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -14726,9 +14814,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/stdint_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/ + and declares uintmax_t. ]) + fi +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/stdint.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/stdint.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -15125,9 +15213,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/stdint.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4 +# Local Variables: +# indent-tabs-mode: nil +# End: -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/stdio_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/stdio_h.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -15254,9 +15342,60 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/stdio_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m + [gl_cv_var_stdin_large_offset=yes], + [gl_cv_var_stdin_large_offset=no])]) +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/sys_socket_h.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/sys_socket_h.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -15371,9 +15510,83 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/sys_socket_h.m4 gtk-vnc-0.3.7.gnulib/gnu + GNULIB_SENDTO=0; AC_SUBST([GNULIB_SENDTO]) + GNULIB_SETSOCKOPT=0; AC_SUBST([GNULIB_SETSOCKOPT]) +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/vasnprintf.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/vasnprintf.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -15635,9 +15848,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/vasnprintf.m4 gtk-vnc-0.3.7.gnulib/gnuli +AC_DEFUN([gl_PREREQ_ASNPRINTF], +[ +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/wchar.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/wchar.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 , for platforms that have issues. + @@ -15708,9 +15921,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/wchar.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/ + REPLACE_WCWIDTH=0; AC_SUBST([REPLACE_WCWIDTH]) + WCHAR_H=''; AC_SUBST([WCHAR_H]) +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/wchar_t.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/wchar_t.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -15732,9 +15945,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/wchar_t.m4 gtk-vnc-0.3.7.gnulib/gnulib/m + AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.]) + fi +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/wint_t.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/wint_t.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -15764,9 +15977,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/wint_t.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4 + AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.]) + fi +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/xsize.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/xsize.m4 ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -15781,9 +15994,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/m4/xsize.m4 gtk-vnc-0.3.7.gnulib/gnulib/m4/ + AC_REQUIRE([AC_C_INLINE]) + AC_CHECK_HEADERS(stdint.h) +]) -diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/dummy.c gtk-vnc-0.3.7.gnulib/gnulib/tests/dummy.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -15827,9 +16040,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/dummy.c gtk-vnc-0.3.7.gnulib/gnulib/t + this file is never empty. */ +typedef int dummy; +#endif -diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/intprops.h gtk-vnc-0.3.7.gnulib/gnulib/tests/intprops.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 + @@ -15908,10 +16121,10 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/intprops.h gtk-vnc-0.3.7.gnulib/gnuli +/* 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.mingw/gnulib/tests/Makefile.am gtk-vnc-0.3.7.gnulib/gnulib/tests/Makefile.am ---- gtk-vnc-0.3.7.mingw/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 12:24:40.000000000 +0100 -@@ -0,0 +1,192 @@ +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. @@ -16045,6 +16258,15 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/Makefile.am gtk-vnc-0.3.7.gnulib/gnul + +## 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 @@ -16054,6 +16276,15 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/Makefile.am gtk-vnc-0.3.7.gnulib/gnul + +## 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 @@ -16104,9 +16335,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/Makefile.am gtk-vnc-0.3.7.gnulib/gnul + fi; \ + done; \ + : -diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-alloca-opt.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-alloca-opt.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -16170,9 +16401,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-alloca-opt.c gtk-vnc-0.3.7.gnuli + + return 0; +} -diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-arpa_inet.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-arpa_inet.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 substitute. + Copyright (C) 2007 Free Software Foundation, Inc. @@ -16201,9 +16432,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-arpa_inet.c gtk-vnc-0.3.7.gnulib +{ + return 0; +} -diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-errno.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-errno.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 substitute. + Copyright (C) 2008 Free Software Foundation, Inc. @@ -16322,9 +16553,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-errno.c gtk-vnc-0.3.7.gnulib/gnu + + return 0; +} -diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-getaddrinfo.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-getaddrinfo.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. + @@ -16481,9 +16712,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-getaddrinfo.c gtk-vnc-0.3.7.gnul + + simple (HOST3, SERV3) + + simple (HOST4, SERV4); +} -diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-netinet_in.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-netinet_in.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 substitute. + Copyright (C) 2007 Free Software Foundation, Inc. @@ -16512,9 +16743,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-netinet_in.c gtk-vnc-0.3.7.gnuli +{ + return 0; +} -diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-snprintf.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-snprintf.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. @@ -16588,9 +16819,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-snprintf.c gtk-vnc-0.3.7.gnulib/ + + return 0; +} -diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-stdbool.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-stdbool.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 substitute. + Copyright (C) 2002-2007 Free Software Foundation, Inc. @@ -16687,9 +16918,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-stdbool.c gtk-vnc-0.3.7.gnulib/g +{ + return 0; +} -diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-stdint.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-stdint.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 substitute. + Copyright (C) 2006-2008 Free Software Foundation, Inc. @@ -17051,9 +17282,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-stdint.c gtk-vnc-0.3.7.gnulib/gn +{ + return 0; +} -diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-stdio.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-stdio.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 substitute. + Copyright (C) 2007 Free Software Foundation, Inc. @@ -17085,9 +17316,50 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-stdio.c gtk-vnc-0.3.7.gnulib/gnu +{ + return 0; +} -diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-sys_socket.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-sys_socket.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 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 . */ ++ ++/* Written by Bruno Haible , 2007. */ ++ ++#include ++ ++#include ++ ++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 substitute. + Copyright (C) 2007 Free Software Foundation, Inc. @@ -17136,9 +17408,57 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-sys_socket.c gtk-vnc-0.3.7.gnuli + + return 0; +} -diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-vasnprintf.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-vasnprintf.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 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 . */ ++ ++/* Written by Bruno Haible , 2007. */ ++ ++#include ++ ++#include ++ ++/* 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. @@ -17268,9 +17588,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-vasnprintf.c gtk-vnc-0.3.7.gnuli + test_asnprintf (); + return 0; +} -diff -urN gtk-vnc-0.3.7.mingw/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.mingw/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 12:24:39.000000000 +0100 +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 @@ -17334,9 +17654,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-vc-list-files-cvs.sh gtk-vnc-0.3 +done + +(exit $fail); exit $fail -diff -urN gtk-vnc-0.3.7.mingw/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.mingw/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 12:24:39.000000000 +0100 +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 @@ -17384,9 +17704,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-vc-list-files-git.sh gtk-vnc-0.3 + fail=0 + +(exit $fail); exit $fail -diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-wchar.c gtk-vnc-0.3.7.gnulib/gnulib/tests/test-wchar.c ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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 substitute. + Copyright (C) 2007-2008 Free Software Foundation, Inc. @@ -17419,9 +17739,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/test-wchar.c gtk-vnc-0.3.7.gnulib/gnu +{ + return 0; +} -diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/verify.h gtk-vnc-0.3.7.gnulib/gnulib/tests/verify.h ---- gtk-vnc-0.3.7.mingw/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 12:24:39.000000000 +0100 +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. + @@ -17563,9 +17883,9 @@ diff -urN gtk-vnc-0.3.7.mingw/gnulib/tests/verify.h gtk-vnc-0.3.7.gnulib/gnulib/ +# define verify(R) extern int (* verify_function__ (void)) [verify_true (R)] + +#endif -diff -urN gtk-vnc-0.3.7.mingw/link-warning.h gtk-vnc-0.3.7.gnulib/link-warning.h ---- gtk-vnc-0.3.7.mingw/link-warning.h 1970-01-01 01:00:00.000000000 +0100 -+++ gtk-vnc-0.3.7.gnulib/link-warning.h 2008-10-09 12:24:39.000000000 +0100 +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. diff --git a/gtk-vnc/mingw32-gtk-vnc.spec b/gtk-vnc/mingw32-gtk-vnc.spec index e8636d3..cf3d14d 100644 --- a/gtk-vnc/mingw32-gtk-vnc.spec +++ b/gtk-vnc/mingw32-gtk-vnc.spec @@ -6,7 +6,7 @@ Name: mingw32-gtk-vnc Version: 0.3.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: MinGW Windows port of VNC client GTK widget License: LGPLv2+ @@ -18,14 +18,11 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Patch1: gtk-vnc-0.3.7-abs-ungrab.patch # Dan's MinGW patch version 2, fixed so it can apply to the tarball. -Patch100: gtk-vnc-0.3.7-mingw32-dan2.patch +Patch100: gtk-vnc-0.3.7-mingw32-dan3.patch # Extra files required by Gnulib. Patch101: gtk-vnc-0.3.7-mingw32-gnulib-files.patch -# Fix redefined symbols in socketcompat.h. -Patch102: gtk-vnc-0.3.7-mingw32-socketcompat.patch - BuildArch: noarch BuildRequires: mingw32-filesystem >= 30 @@ -45,7 +42,6 @@ BuildRequires: mingw32-binutils %patch100 -p1 %patch101 -p1 -%patch102 -p1 autoreconf @@ -82,5 +78,5 @@ rm -rf $RPM_BUILD_ROOT %changelog -* Wed Sep 24 2008 Your Name - 1.2.3-1 +* Thu Oct 9 2008 Richard W.M. Jones - 0.3.7-2 - Initial RPM release. -- 1.8.3.1