From e41055c5aa8a49dc360820fa0f0995436726c876 Mon Sep 17 00:00:00 2001 From: Tiago Cunha Date: Sun, 8 Nov 2009 22:51:34 +0000 Subject: [PATCH] Adjust recent libevent changes to the portable version. --- NOTES | 7 ++- compat.h | 10 +--- compat/bsd-poll.c | 124 ---------------------------------------------- compat/bsd-poll.h | 59 ---------------------- configure | 24 +++------ 5 files changed, 15 insertions(+), 209 deletions(-) delete mode 100644 compat/bsd-poll.c delete mode 100644 compat/bsd-poll.h diff --git a/NOTES b/NOTES index dbbde468..0d9ad564 100644 --- a/NOTES +++ b/NOTES @@ -16,6 +16,11 @@ If upgrading from 1.0, PLEASE NOTE: default colours by using op/AX. Nevertheless, if needed, the terminal-overrides session option can replace it. +Since the 1.2 release that tmux depends on libevent. Download the stable +version from: + + http://www.monkey.org/~provos/libevent/ + tmux consists of a server part and multiple clients. The server is created when required and runs continuously unless killed by the user. Clients access the server through a socket in /tmp. Multiple sessions may be created on a single @@ -88,4 +93,4 @@ start. Please contact me with any queries. -- Nicholas Marriott -$Id: NOTES,v 1.51 2009-11-05 12:35:47 tcunha Exp $ +$Id: NOTES,v 1.52 2009-11-08 22:51:34 tcunha Exp $ diff --git a/compat.h b/compat.h index d196bc24..fb02c50e 100644 --- a/compat.h +++ b/compat.h @@ -1,4 +1,4 @@ -/* $Id: compat.h,v 1.19 2009-10-06 15:32:21 tcunha Exp $ */ +/* $Id: compat.h,v 1.20 2009-11-08 22:51:34 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -49,14 +49,6 @@ typedef uint64_t u_int64_t; #include "compat/bitstring.h" #endif -#ifdef HAVE_POLL -#include -#else -#define POLLNVAL 0 -#define POLLHUP 0 -#include "compat/bsd-poll.h" -#endif - #ifdef HAVE_GETOPT #include #endif diff --git a/compat/bsd-poll.c b/compat/bsd-poll.c deleted file mode 100644 index 1cf51936..00000000 --- a/compat/bsd-poll.c +++ /dev/null @@ -1,124 +0,0 @@ -/* $Id: bsd-poll.c,v 1.2 2009-05-13 23:50:42 nicm Exp $ */ - -/* - * Copyright (c) 2004, 2005, 2007 Darren Tucker (dtucker at zip com au). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* #include "includes.h" */ -#define HAVE_SYS_SELECT_H -#define MAX(a,b) (((a) > (b)) ? (a) : (b)) -#include - -#if !defined(HAVE_POLL) - -#ifdef HAVE_SYS_SELECT_H -# include -#endif - -#include -#include - -#include "compat/bsd-poll.h" - -/* - * A minimal implementation of poll(2), built on top of select(2). - * - * Only supports POLLIN and POLLOUT flags in pfd.events, and POLLIN, POLLOUT - * and POLLERR flags in revents. - * - * Supports pfd.fd = -1 meaning "unused" although it's not standard. - */ - -int -poll(struct pollfd *fds, nfds_t nfds, int timeout) -{ - nfds_t i; - int saved_errno, ret, fd, maxfd = 0; - fd_set *readfds = NULL, *writefds = NULL, *exceptfds = NULL; - size_t nmemb; - struct timeval tv, *tvp = NULL; - - for (i = 0; i < nfds; i++) { - fd = fds[i].fd; - if (fd >= FD_SETSIZE) { - errno = EINVAL; - return -1; - } - maxfd = MAX(maxfd, fd); - } - - nmemb = howmany(maxfd + 1 , NFDBITS); - if ((readfds = calloc(nmemb, sizeof(fd_mask))) == NULL || - (writefds = calloc(nmemb, sizeof(fd_mask))) == NULL || - (exceptfds = calloc(nmemb, sizeof(fd_mask))) == NULL) { - saved_errno = ENOMEM; - ret = -1; - goto out; - } - - /* populate event bit vectors for the events we're interested in */ - for (i = 0; i < nfds; i++) { - fd = fds[i].fd; - if (fd == -1) - continue; - if (fds[i].events & POLLIN) { - FD_SET(fd, readfds); - FD_SET(fd, exceptfds); - } - if (fds[i].events & POLLOUT) { - FD_SET(fd, writefds); - FD_SET(fd, exceptfds); - } - } - - /* poll timeout is msec, select is timeval (sec + usec) */ - if (timeout >= 0) { - tv.tv_sec = timeout / 1000; - tv.tv_usec = (timeout % 1000) * 1000; - tvp = &tv; - } - - ret = select(maxfd + 1, readfds, writefds, exceptfds, tvp); - saved_errno = errno; - - /* scan through select results and set poll() flags */ - for (i = 0; i < nfds; i++) { - fd = fds[i].fd; - fds[i].revents = 0; - if (fd == -1) - continue; - if (FD_ISSET(fd, readfds)) { - fds[i].revents |= POLLIN; - } - if (FD_ISSET(fd, writefds)) { - fds[i].revents |= POLLOUT; - } - if (FD_ISSET(fd, exceptfds)) { - fds[i].revents |= POLLERR; - } - } - -out: - if (readfds != NULL) - free(readfds); - if (writefds != NULL) - free(writefds); - if (exceptfds != NULL) - free(exceptfds); - if (ret == -1) - errno = saved_errno; - return ret; -} -#endif diff --git a/compat/bsd-poll.h b/compat/bsd-poll.h deleted file mode 100644 index 849c35ad..00000000 --- a/compat/bsd-poll.h +++ /dev/null @@ -1,59 +0,0 @@ -/* $OpenBSD: poll.h,v 1.11 2003/12/10 23:10:08 millert Exp $ */ - -/* - * Copyright (c) 1996 Theo de Raadt - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* OPENBSD ORIGINAL: sys/sys/poll.h */ - -#ifndef _COMPAT_POLL_H_ -#define _COMPAT_POLL_H_ - -typedef struct pollfd { - int fd; - short events; - short revents; -} pollfd_t; - -typedef unsigned int nfds_t; - -#define POLLIN 0x0001 -#define POLLOUT 0x0004 -#define POLLERR 0x0008 -#if 0 -/* the following are currently not implemented */ -#define POLLPRI 0x0002 -#define POLLHUP 0x0010 -#define POLLNVAL 0x0020 -#define POLLRDNORM 0x0040 -#define POLLNORM POLLRDNORM -#define POLLWRNORM POLLOUT -#define POLLRDBAND 0x0080 -#define POLLWRBAND 0x0100 -#endif - -#define INFTIM (-1) /* not standard */ - -int poll(struct pollfd *, nfds_t, int); -#endif /* !_COMPAT_POLL_H_ */ diff --git a/configure b/configure index 9e339a79..66fc2c15 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #!/bin/sh -# $Id: configure,v 1.43 2009-10-25 21:45:26 nicm Exp $ +# $Id: configure,v 1.44 2009-11-08 22:51:34 tcunha Exp $ # # Copyright (c) 2009 Nicholas Marriott # @@ -38,7 +38,6 @@ cat <>$CONFIG_H #undef HAVE_IMSG #undef HAVE_LIBUTIL_H #undef HAVE_PATHS_H -#undef HAVE_POLL #undef HAVE_PROGNAME #undef HAVE_PTY_H #undef HAVE_QUEUE_H @@ -66,7 +65,6 @@ case $TMUX_PLATFORM in #define HAVE_FORKPTY #define HAVE_GETOPT #define HAVE_PATHS_H -#define HAVE_POLL #define HAVE_PROGNAME #define HAVE_QUEUE_H #define HAVE_SETPROCTITLE @@ -81,7 +79,7 @@ case $TMUX_PLATFORM in #define HAVE_VIS EOF cat <>$CONFIG_MK -LIBS+= -lcurses -lutil +LIBS+= -lcurses -lutil -levent SRCS+= osdep-openbsd.c \ compat/imsg-buffer.c \ compat/imsg.c @@ -95,7 +93,6 @@ EOF #define HAVE_DAEMON #define HAVE_FORKPTY #define HAVE_PATHS_H -#define HAVE_POLL #define HAVE_PROGNAME #define HAVE_PTY_H #define HAVE_STRCASESTR @@ -104,7 +101,7 @@ EOF EOF cat <>$CONFIG_MK CFLAGS+= -std=c99 -D_GNU_SOURCE -D_POSIX_SOURCE -LIBS+= -lncurses -lcrypt -lutil +LIBS+= -lncurses -lcrypt -lutil -levent SRCS+= osdep-linux.c \ compat/fgetln.c \ compat/strlcat.c \ @@ -124,10 +121,9 @@ EOF #define HAVE_DAEMON EOF cat <>$CONFIG_MK -LIBS+= -lcurses +LIBS+= -lcurses -levent SRCS+= osdep-unknown.c \ compat/asprintf.c \ - compat/bsd-poll.c \ compat/daemon.c \ compat/forkpty-aix.c \ compat/strcasestr.c \ @@ -147,13 +143,12 @@ EOF SunOS) cat <>$CONFIG_H #define HAVE_CRYPT_H -#define HAVE_POLL #define HAVE_STRLCAT #define HAVE_STRLCPY EOF cat <>$CONFIG_MK CFLAGS+= -D_XPG4_2 -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS -LIBS+= -lcurses -lsocket -lnsl +LIBS+= -lcurses -lsocket -lnsl -levent SRCS+= osdep-sunos.c \ compat/asprintf.c \ compat/daemon.c \ @@ -189,9 +184,8 @@ EOF #define HAVE_U_INT EOF cat <>$CONFIG_MK -LIBS+= -lcurses +LIBS+= -lcurses -levent SRCS+= osdep-darwin.c \ - compat/bsd-poll.c \ compat/strtonum.c \ compat/vis.c \ compat/unvis.c \ @@ -210,7 +204,6 @@ EOF #define HAVE_GETOPT #define HAVE_LIBUTIL_H #define HAVE_PATHS_H -#define HAVE_POLL #define HAVE_PROGNAME #define HAVE_SETPROCTITLE #define HAVE_STRCASESTR @@ -221,7 +214,7 @@ EOF #define HAVE_U_INT EOF cat <>$CONFIG_MK -LIBS+= -lcurses -lcrypt -lutil +LIBS+= -lcurses -lcrypt -lutil -levent SRCS+= osdep-freebsd.c \ compat/vis.c \ compat/unvis.c \ @@ -239,7 +232,6 @@ EOF #define HAVE_FORKPTY #define HAVE_GETOPT #define HAVE_PATHS_H -#define HAVE_POLL #define HAVE_PROGNAME #define HAVE_SETPROCTITLE #define HAVE_STRCASESTR @@ -252,7 +244,7 @@ EOF cat <>$CONFIG_MK CPPFLAGS+= -I/usr/pkg/include LDFLAGS+= -L/usr/pkg/lib -LIBS+= -lncurses -lcrypt -lutil +LIBS+= -lncurses -lcrypt -lutil -levent SRCS+= osdep-netbsd.c \ compat/strtonum.c \ compat/vis.c \