pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/misc/tmux Update to 0.8. From Fulvio Ciriaco via priva...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/f5b4d1627694
branches:  trunk
changeset: 392522:f5b4d1627694
user:      hasso <hasso%pkgsrc.org@localhost>
date:      Sat May 02 10:50:57 2009 +0000

description:
Update to 0.8. From Fulvio Ciriaco via private mail.

Upstream changes since 0.7:

* Remove the right number of characters from the buffer when escape then
  a cursor key (or other key prefixed by \033) is pressed. Reported by
  Stuart Henderson.
* rotate-window command. -U flag (default) for up, -D flag for down.
* Change scroll/pane redraws to only redraw the single pane affected rather
  than the entire window.
* If redrawing the region would mean redrawing > half the pane, just schedule
  to redraw the entire window. Also add a flag to skip updating the window any
  further if it is scheduled to be redrawn. This has the effect of batching
  multiple redraws together.
* Basic horizontal splitting and layout management. Still some redraw and other
  issues - particularly, don't mix with manual pane resizing, be careful when
  viewing from multiple clients and don't expect shell windows to redraw very
  well after the layout is changed; generally cycling the layout a few times
  will fix most problems. Getting this in for testing while I think about how
  to deal with manual mode.
  Split window as normal and cycle the layouts with C-b space. Some of the
  layouts will work better when swap-pane comes along.
* AIX port, thanks to cmihai for access to a box. Only tested on 6.1 with xlc
  10.1 (make sure CC is set). Needs GNU make and probably ncurses (didn't try
  plain curses). Also won't build with DEBUG, so comment the FDEBUG=1 line in
  GNUmakefile.
* Draw a vertical line on the right when the window size is less than the
  terminal size. This is partly to shake out any horizontal limit bugs on the
  way to horizontal splitting/pane tiling. Currently a bit slow since it has to
  do a lot of redrawing but hopefully that will improve as I get some better
  ideas for how to do it.
* Fix remaining problems with copy and paste and UTF-8.
* Better UTF-8 support, including combined characters. Unicode data is now
  stored as UTF-8 in a separate array, the code does a lookup into this every
  time it gets to a UTF-8 cell. Zero width characters are just appended onto
  the UTF-8 data for the previous cell. This also means that almost no bytes
  extra are wasted non-Unicode data (yay).
  Still some oddities, such as copy mode skips over wide characters in a
  strange way, and the code could do with some tidying.
* Key repeating is now a property of the key binding not of the command.
  Repeat is turned on when the key is bound with the -r flag to bind-key.
  next/previous-window no longer repeat by default as it turned out to annoy
  me.
* Clear using ED when redrawing the screen. I foolishly assumed using spaces
  would be equivalent and terminals would pick up on this, but apparently not.
  This fixes copy and paste in xterm/rxvt.
* Sockets in /tmp are now created in a subdirectory named, tmux-UID, eg
  tmux-1000. The default socket is thus /tmp/tmux-UID/default. To start a
  separate server, the new -L command line option should be used: this creates
  a socket in the same directory with a different name ("-L main" will create
  socket called "main"). -S should only be used to place the socket outside
  /tmp. This makes sockets a little more secure and a bit more convenient to
  use multiple servers.
* New session flag "set-remain-on-exit" to set remain-on-exit flag for new
  windows created in that session (like "remain-by-default" used to do). Not
  perfectly happy about this, but until I can think of a good way to introduce
  it generically (maybe a set of options in the session) this will do. Fixes
  SF request 2527847.
* Support for 88 colour terminals.
* break-pane command to create a new window using an existing pane.
* Make escape key timer work properly so escape+key can be used without
  lightning fast key presses.
* Redo mode keys slightly more cleanly and apply them to command prompt
  editing. vi or emacs mode is controlled by the session option status-keys.
* Looking up argv[0] is expensive, so just use p_comm for the window name which
  is good enough. Also increase name update time to 500 ms.
* Only use ri when actually at the top of the screen; just move the cursor up
  otherwise.
* FreeBSD's console wraps lines at $COLUMNS - 1 rather than $COLUMNS (the
  cursor can never be beyond $COLUMNS - 1) and does not appear to support
  changing this behaviour, or any of the obvious possibilities (turning off
  right margin wrapping, insert mode). This is irritating, most notably because
  it impossible to write to the very bottom-right of the screen without
  scrolling. To work around this, if built on FreeBSD and run with a "cons"
  $TERM, the bottom-right cell on the screen is omitted.
* Emulate scroll regions (slowly) to support the few terminals which don't have
  it (some of which don't really have any excuse).
* No longer redraw the status line every status-interval unless it has actually
  changed.

diffstat:

 misc/tmux/Makefile         |    5 +-
 misc/tmux/distinfo         |   13 +--
 misc/tmux/patches/patch-aa |   82 ++-------------------
 misc/tmux/patches/patch-ab |   15 ----
 misc/tmux/patches/patch-ac |  168 ---------------------------------------------
 misc/tmux/patches/patch-ad |   19 -----
 6 files changed, 16 insertions(+), 286 deletions(-)

diffs (truncated from 339 to 300 lines):

diff -r 8f8759c81c64 -r f5b4d1627694 misc/tmux/Makefile
--- a/misc/tmux/Makefile        Sat May 02 08:57:52 2009 +0000
+++ b/misc/tmux/Makefile        Sat May 02 10:50:57 2009 +0000
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.1.1.1 2009/03/06 12:16:17 hasso Exp $
+# $NetBSD: Makefile,v 1.2 2009/05/02 10:50:57 hasso Exp $
 
-DISTNAME=      tmux-0.7
-PKGREVISION=   1
+DISTNAME=      tmux-0.8
 CATEGORIES=    misc
 MASTER_SITES=  ${MASTER_SITE_SOURCEFORGE:=tmux/}
 
diff -r 8f8759c81c64 -r f5b4d1627694 misc/tmux/distinfo
--- a/misc/tmux/distinfo        Sat May 02 08:57:52 2009 +0000
+++ b/misc/tmux/distinfo        Sat May 02 10:50:57 2009 +0000
@@ -1,9 +1,6 @@
-$NetBSD: distinfo,v 1.1.1.1 2009/03/06 12:16:17 hasso Exp $
+$NetBSD: distinfo,v 1.2 2009/05/02 10:50:57 hasso Exp $
 
-SHA1 (tmux-0.7.tar.gz) = 11c27de5de98367ea2c94ea70ef098e5e70eeead
-RMD160 (tmux-0.7.tar.gz) = 81f60d21230b995651e91e18e587d484e40f6c96
-Size (tmux-0.7.tar.gz) = 163951 bytes
-SHA1 (patch-aa) = 8144db4780da4731b88666a75759211cb7c5a633
-SHA1 (patch-ab) = 0de94fd65799bbf1447fbc204e8d6885bcd08aae
-SHA1 (patch-ac) = 305dd0b74ad7b8a07de529f52a93dcb889c5578e
-SHA1 (patch-ad) = 83155287cee869f9b44885e0f662001e0875da3a
+SHA1 (tmux-0.8.tar.gz) = 87a9db829ff36cc432114672f7354a74d673832b
+RMD160 (tmux-0.8.tar.gz) = 81f828e0af59a994e0b4ba86ab17421ffd7d7e98
+Size (tmux-0.8.tar.gz) = 175515 bytes
+SHA1 (patch-aa) = d8edf7fba23ddeadc1fe62567d96ac06fa5c7e85
diff -r 8f8759c81c64 -r f5b4d1627694 misc/tmux/patches/patch-aa
--- a/misc/tmux/patches/patch-aa        Sat May 02 08:57:52 2009 +0000
+++ b/misc/tmux/patches/patch-aa        Sat May 02 10:50:57 2009 +0000
@@ -1,81 +1,17 @@
-$NetBSD: patch-aa,v 1.1.1.1 2009/03/06 12:16:17 hasso Exp $
-
-Do not add -W* flags to CFLAGS.
-NetBSD has not got strtonum(3) and strnvis(3) so use the compat/
-alternatives.
-Add settings for Darwin, obtained from GNUmakefile.
-Do not use rough install(1) commands, use cleaner INSTALL_* ones.
+$NetBSD: patch-aa,v 1.2 2009/05/02 10:50:58 hasso Exp $
 
---- Makefile.orig      2009-02-07 00:36:34.000000000 -0800
+--- Makefile.orig      2009-04-27 17:38:18.000000000 +0200
 +++ Makefile
-@@ -46,10 +46,10 @@ SRCS= tmux.c server.c server-msg.c serve
-       options.c options-cmd.c paste.c colour.c utf8.c clock.c \
-       tty.c tty-term.c tty-keys.c tty-write.c util.c names.c \
-       osdep-unknown.c osdep-openbsd.c osdep-freebsd.c osdep-linux.c \
--      osdep-darwin.c attributes.c
-+      osdep-darwin.c osdep-netbsd.c attributes.c
+@@ -91,10 +91,10 @@ LIBS+= -lcrypt
  
- CC?= cc
--INCDIRS+= -I. -I- -I/usr/local/include
-+INCDIRS+= -I. -I/usr/local/include
- CFLAGS+= -DMETA="'${META}'"
- .ifdef PROFILE
- # Don't use ccache
-@@ -64,10 +64,10 @@ CFLAGS+= -DBUILD="\"$(VERSION) ($(DATE))
- CFLAGS+= -DBUILD="\"$(VERSION)\""
- .endif
- #CFLAGS+= -pedantic -std=c99
--CFLAGS+= -Wno-long-long -Wall -W -Wnested-externs -Wformat=2
--CFLAGS+= -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations
--CFLAGS+= -Wwrite-strings -Wshadow -Wpointer-arith -Wcast-qual -Wsign-compare
--CFLAGS+= -Wundef -Wbad-function-cast -Winline -Wcast-align
-+#CFLAGS+= -Wno-long-long -Wall -W -Wnested-externs -Wformat=2
-+#CFLAGS+= -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations
-+#CFLAGS+= -Wwrite-strings -Wshadow -Wpointer-arith -Wcast-qual -Wsign-compare
-+#CFLAGS+= -Wundef -Wbad-function-cast -Winline -Wcast-align
- 
- PREFIX?= /usr/local
- INSTALLDIR= install -d
-@@ -80,6 +80,14 @@ LDFLAGS+= -pg
- .endif
- LIBS+= -lutil -lncurses
- 
-+# Darwin
-+.if ${OS} == "Darwin"
+ # NetBSD
+ .if ${OS} == "NetBSD"
+-INCDIRS= -Icompat
 +INCDIRS+= -Icompat
-+SRCS+= compat/strtonum.c compat/bsd-poll.c compat/vis.c
-+CFLAGS+= -DNO_STRTONUM -DNO_SETRESUID -DNO_SETRESGID -DNO_SETPROCTITLE \
-+         -DNO_QUEUE_H -DNO_TREE_H -DBROKEN_POLL
-+.endif
-+
- # FreeBSD and DragonFly
- .if ${OS} == "FreeBSD" || ${OS} == "DragonFly"
- INCDIRS+= -Icompat
-@@ -88,6 +96,15 @@ CFLAGS+= -DUSE_LIBUTIL_H -DNO_QUEUE_H -D
+ SRCS+= compat/strtonum.c compat/vis.c
  LIBS+= -lcrypt
+-CFLAGS+=-DNO_STRTONUM
++CFLAGS+=-DNO_STRTONUM -DNO_QUEUE_H -DNO_TREE_H
  .endif
  
-+# NetBSD
-+.if ${OS} == "NetBSD"
-+INCDIRS+= -Icompat
-+SRCS+= compat/strtonum.c compat/vis.c
-+LIBS+= -lcrypt
-+CFLAGS+=-DNO_STRTONUM
-+.endif
-+
-+
  OBJS= ${SRCS:S/.c/.o/:S/.y/.o/}
- 
- DISTDIR= ${PROG}-${VERSION}
-@@ -134,7 +151,7 @@ update-index.html:
-               sed "s/%%VERSION%%/${VERSION}/g" index.html.in >index.html
- 
- install:      all
--              ${INSTALLDIR} ${DESTDIR}${PREFIX}/bin
--              ${INSTALLBIN} ${PROG} ${DESTDIR}${PREFIX}/bin/${PROG}
--              ${INSTALLDIR} ${DESTDIR}${PREFIX}/man/man1
--              ${INSTALLMAN} ${PROG}.1 ${DESTDIR}${PREFIX}/man/man1/
-+              ${INSTALL_PROGRAM_DIR} ${DESTDIR}${PREFIX}/bin
-+              ${INSTALL_PROGRAM} ${PROG} ${DESTDIR}${PREFIX}/bin/${PROG}
-+              ${INSTALL_MAN_DIR} ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
-+              ${INSTALL_MAN} ${PROG}.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/
diff -r 8f8759c81c64 -r f5b4d1627694 misc/tmux/patches/patch-ab
--- a/misc/tmux/patches/patch-ab        Sat May 02 08:57:52 2009 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-$NetBSD: patch-ab,v 1.1.1.1 2009/03/06 12:16:17 hasso Exp $
-
-NetBSD is supported via osdep-netbsd.c.
-
---- osdep-unknown.c.orig       2009-01-20 23:17:53.000000000 +0100
-+++ osdep-unknown.c
-@@ -17,7 +17,7 @@
-  */
- 
- #if !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__linux__) && \
--      !defined(__APPLE__)
-+      !defined(__APPLE__) && !defined(__NetBSD__)
- 
- #include <sys/types.h>
- 
diff -r 8f8759c81c64 -r f5b4d1627694 misc/tmux/patches/patch-ac
--- a/misc/tmux/patches/patch-ac        Sat May 02 08:57:52 2009 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-$NetBSD: patch-ac,v 1.1.1.1 2009/03/06 12:16:17 hasso Exp $
-
-get_argv0() and get_proc_argv0() functions for NetBSD.
-
---- osdep-netbsd.c.orig        2009-02-22 16:30:11.000000000 +0100
-+++ osdep-netbsd.c
-@@ -0,0 +1,161 @@
-+/*
-+ * Copyright (c) 2009 Nicholas Marriott <nicm%users.sourceforge.net@localhost>
-+ *
-+ * 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 MIND, 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.
-+ */
-+
-+#ifdef __NetBSD__
-+
-+#include <sys/param.h>
-+#include <sys/proc.h>
-+#include <sys/stat.h>
-+#include <sys/sysctl.h>
-+#include <sys/user.h>
-+
-+#include <err.h>
-+#include <errno.h>
-+#include <stdint.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-+
-+char  *get_argv0(int, char *);
-+char  *get_proc_argv0(pid_t);
-+
-+#define nitems(_a) (sizeof((_a)) / sizeof((_a)[0]))
-+
-+#define is_runnable(p) \
-+      ((p)->p_stat == LSRUN || (p)->p_stat == SIDL)
-+#define is_stopped(p) \
-+      ((p)->p_stat == LSSTOP || (p)->p_stat == SZOMB)
-+
-+char *
-+get_argv0(int fd, char *tty)
-+{
-+      int              mib[4] = { CTL_KERN, KERN_PROC2, KERN_PROC_PGRP, 0 };
-+      struct stat      sb;
-+      size_t           len;
-+      struct kinfo_proc2 *buf, *newbuf, *p, *bestp;
-+      char            *procname;
-+      u_int            i;
-+
-+      buf = NULL;
-+
-+      if (stat(tty, &sb) == -1)
-+              return (NULL);
-+      if ((mib[3] = tcgetpgrp(fd)) == -1)
-+              return (NULL);
-+
-+retry:
-+      if (sysctl(mib, nitems(mib), NULL, &len, NULL, 0) == -1)
-+              return (NULL);
-+      len = (len * 5) / 4;
-+
-+      if ((newbuf = realloc(buf, len)) == NULL) {
-+              free(buf);
-+              return (NULL);
-+      }
-+      buf = newbuf;
-+
-+      if (sysctl(mib, nitems(mib), buf, &len, NULL, 0) == -1) {
-+              if (errno == ENOMEM)
-+                      goto retry;
-+              free(buf);
-+              return (NULL);
-+      }
-+
-+      bestp = NULL;
-+      for (i = 0; i < len / sizeof (struct kinfo_proc); i++) {
-+              if (buf[i].p_tdev != sb.st_rdev)
-+                      continue;
-+              p = &buf[i];
-+              if (bestp == NULL) {
-+                      bestp = p;
-+                      continue;
-+              }
-+
-+              if (is_runnable(p) && !is_runnable(bestp))
-+                      bestp = p;
-+              else if (!is_runnable(p) && is_runnable(bestp))
-+                      continue;
-+
-+              if (!is_stopped(p) && is_stopped(bestp))
-+                      bestp = p;
-+              else if (is_stopped(p) && !is_stopped(bestp))
-+                      continue;
-+
-+              if (p->p_estcpu > bestp->p_estcpu)
-+                      bestp = p;
-+              else if (p->p_estcpu < bestp->p_estcpu)
-+                      continue;
-+
-+              if (p->p_slptime < bestp->p_slptime)
-+                      bestp = p;
-+              else if (p->p_slptime > bestp->p_slptime)
-+                      continue;
-+
-+              if (strcmp(p->p_comm, p->p_comm) < 0)
-+                      bestp = p;
-+              else if (strcmp(p->p_comm, p->p_comm) > 0)
-+                      continue;
-+
-+              if (p->p_pid > bestp->p_pid)
-+                      bestp = p;
-+      }
-+      if (bestp != NULL) {
-+              procname = get_proc_argv0(bestp->p_pid);
-+              if (procname == NULL || *procname == '\0') {
-+                      free(procname);
-+                      procname = strdup(bestp->p_comm);
-+              }
-+      } else
-+              procname = NULL;
-+
-+
-+      free(buf);
-+      return (procname);
-+}
-+
-+char *
-+get_proc_argv0(pid_t pid)
-+{
-+      int     mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_ARGS, 0 };
-+        size_t        size, size2;
-+      char   *args, *args2, *procname;
-+
-+      mib[3] = pid;
-+      procname = NULL;
-+
-+      args = NULL;
-+      size = 128;
-+      while (size < SIZE_MAX / 2) {
-+              size *= 2;
-+              if ((args2 = realloc(args, size)) == NULL)
-+                      break;
-+              args = args2;



Home | Main Index | Thread Index | Old Index