head 1.7; access; symbols pkgsrc-2013Q2:1.7.0.6 pkgsrc-2013Q2-base:1.7 pkgsrc-2012Q4:1.7.0.4 pkgsrc-2012Q4-base:1.7 pkgsrc-2011Q4:1.7.0.2 pkgsrc-2011Q4-base:1.7 pkgsrc-2011Q2:1.6.0.16 pkgsrc-2011Q2-base:1.6 pkgsrc-2011Q1:1.6.0.14 pkgsrc-2011Q1-base:1.6 pkgsrc-2010Q4:1.6.0.12 pkgsrc-2010Q4-base:1.6 pkgsrc-2010Q3:1.6.0.10 pkgsrc-2010Q3-base:1.6 pkgsrc-2010Q2:1.6.0.8 pkgsrc-2010Q2-base:1.6 pkgsrc-2010Q1:1.6.0.6 pkgsrc-2010Q1-base:1.6 pkgsrc-2009Q4:1.6.0.4 pkgsrc-2009Q4-base:1.6 pkgsrc-2009Q3:1.6.0.2 pkgsrc-2009Q3-base:1.6 pkgsrc-2009Q2:1.5.0.2 pkgsrc-2009Q2-base:1.5 pkgsrc-2009Q1:1.1.1.1.0.2 pkgsrc-2009Q1-base:1.1.1.1 pkgsrc-base:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.7 date 2011.08.17.16.57.19; author jmmv; state dead; branches; next 1.6; 1.6 date 2009.07.08.20.59.11; author hasso; state Exp; branches; next 1.5; 1.5 date 2009.06.04.21.49.18; author minskim; state Exp; branches; next 1.4; 1.4 date 2009.06.03.06.09.11; author minskim; state Exp; branches; next 1.3; 1.3 date 2009.05.27.06.11.23; author minskim; state Exp; branches; next 1.2; 1.2 date 2009.05.02.10.50.58; author hasso; state Exp; branches; next 1.1; 1.1 date 2009.03.06.12.16.17; author hasso; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2009.03.06.12.16.17; author hasso; state Exp; branches; next ; desc @@ 1.7 log @Update to 1.5: The official list of changes is shown below. However, this release also switches to use GNU Autoconf and Automake, yet this is not shown in the list of changes. This fact obsoletes our previous local changes, although new portability problems might arise. CHANGES FROM 1.4 TO 1.5, 09 July 2011 * Support xterm mouse modes 1002 and 1003. * Change from a per-session stack of buffers to one global stack. This renders copy-buffer useless and makes buffer-limit now a server option. * Fix most-recently-used choice by avoiding reset the activity timer for unattached sessions every second. * Add a -P option to new-window and split-window to print the new window or pane index in target form (useful to pass it into other commands). * Handle a # at the end of a replacement string (such as status-left) correctly. * Support for UTF-8 mouse input (\033[1005h) which was added in xterm 262. If the new mouse-utf8 option is on, UTF-8 mouse input is enabled for all UTF-8 terminals. The option defaults to on if LANG etc are set in the same manner as the utf8 option. * Support for HP-UX. * Accept colours of the hex form #ffffff and translate to the nearest from the xterm(1) 256-colour set. * Clear the non-blocking IO flag (O_NONBLOCK) on the stdio file descriptors before closing them (fixes things like "tmux ls && cat"). * Use TMPDIR if set. * Fix next and previous session functions to actually work. * Support -x and -y for new-session to specify the initial size of the window if created detached with -d. * Make bind-key accept characters with the top-bit-set and print them as octal. * Set $TMUX without the session when background jobs are run. * Simplify the way jobs work and drop the persist type, so all jobs are fire-and-forget. * Accept tcgetattr/tcsetattr(3) failure, fixes problems with fatal() if the terminal disappears while locked. * Add a -P option to detach to HUP the client's parent process (usually causing it to exit as well). * Support passing through escape sequences to the underlying terminal by using DCS with a "tmux;" prefix. * Prevent tiled producing a corrupt layout when only one column is needed. * Give each pane created in a tmux server a unique id (starting from 0), put it in the TMUX_PANE environment variable and accept it as a target. * Allow a start and end line to be specified for capture-pane which may be negative to capture part of the history. * Add -a and -s options to lsp to list all panes in the server or session respectively. Likewise add -s to lsw. * Change -t on display-message to be target-pane for the #[A-Z] replacements and add -c as target-client. * The attach-session command now prefers the most recently used unattached session. * Add -s option to detach-client to detach all clients attached to a session. * Add -t to list-clients. * Change window with mouse wheel over status line if mouse-select-window is on. * When mode-mouse is on, automatically enter copy mode when the mouse is dragged or the mouse wheel is used. Also exit copy mode when the mouse wheel is scrolled off the bottom. * Provide #h character pair for short hostname (no domain). * Don't use strnvis(3) for the title as it breaks UTF-8. * Use the tsl and fsl terminfo(5) capabilities to update terminal title and automatically fill them in on terminals with the XT capability (which means their title setting is xterm-compatible). * Add a new option, mouse-resize-pane. When on, panes may be resized by dragging their borders. * Fix crash by resetting last pane on {break,swap}-pane across windows. * Add three new copy-mode commands - select-line, copy-line, copy-end-of-line. * Support setting the xterm clipboard when copying from copy mode using the xterm escape sequence for the purpose (if xterm is configured to allow it). * Support xterm(1) cursor colour change sequences through terminfo(5) Cc (set) and Cr (reset) extensions. * Support DECSCUSR sequence to set the cursor style with two new terminfo(5) extensions, Cs and Csr. * Make the command-prompt custom prompts recognize the status-left option character pairs. * Add a respawn-pane command. * Add a couple of extra xterm-style keys that gnome terminal provides. * Allow the initial context on prompts to be set with the new -I option to command-prompt. Include the current window and session name in the prompt when renaming and add a new key binding ($) for rename session. * Option bell-on-alert added to trigger the terminal bell when there is an alert. * Change the list-keys format so that it shows the keys using actual tmux commands which should be able to be directly copied into the config file. * Show full targets for lsp/lsw -a. * Make confirm-before prompt customizable with -p option like command-prompt and add the character pairs #W and #P to the default kill-{pane,window} prompts. * Avoid sending data to suspended/locked clients. * Small memory leaks in error paths plugged. * Vi mode improvements. @ text @$NetBSD: patch-aa,v 1.6 2009/07/08 20:59:11 hasso Exp $ --- Makefile.orig 2009-07-04 00:42:13.000000000 +0100 +++ Makefile @@@@ -56,7 +56,7 @@@@ clean-all: clean rm -f config.h config.mk install: all - ${INSTALLDIR} ${DESTDIR}${PREFIX}/bin - ${INSTALLBIN} tmux ${DESTDIR}${PREFIX}/bin/ - ${INSTALLDIR} ${DESTDIR}${PREFIX}/man/man1 - ${INSTALLMAN} tmux.1 ${DESTDIR}${PREFIX}/man/man1/ + ${BSD_INSTALL_PROGRAM_DIR} ${DESTDIR}${PREFIX}/bin + ${BSD_INSTALL_PROGRAM} tmux ${DESTDIR}${PREFIX}/bin/ + ${BSD_INSTALL_MAN_DIR} ${DESTDIR}${PREFIX}/man/man1 + ${BSD_INSTALL_MAN} tmux.1 ${DESTDIR}${PREFIX}/man/man1/ @ 1.6 log @Update to 0.9, thanks to Adrian Portelli. Changes since 0.8: * Major changes to build infrastructure: cleanup of makefiles and addition of a configure script. * monitor-content window option to monitor a window for a specific fnmatch(3) pattern. The find-window command also now accepts fnmatch(3) patterns. * previous-layout and select-layout commands, and a main-horizontal layout. * Recreate the server socket on SIGUSR1. * clear-history command. * Use ACS line drawing characters for pane separator lines. * UTF-8 improvements, and code to detect UTF-8 support by looking at environment variables. * The resize-pane-up and resize-pane-down commands are now merged together into a new resize-pane command with -U and -D flags. * confirm-before command to request a yes/no answer before executing dangerous commands. * Status line bug fixes, support for UTF-8 (status-utf8 option), and a key to paste from the paste buffer. * Support for some additional escape sequences and terminal features, including better support for insert mode and tab stops. * Improved window resizing behaviour, modelled after xterm. * Some code reduction and a number of miscellaneous bug fixes. @ text @d1 1 a1 1 $NetBSD$ @ 1.5 log @Make misc/tmux build on SunOS. @ text @d1 1 a1 1 $NetBSD: patch-aa,v 1.4 2009/06/03 06:09:11 minskim Exp $ d3 1 a3 1 --- Makefile.orig 2009-04-21 13:10:22.000000000 -0700 d5 2 a6 46 @@@@ -79,7 +79,18 @@@@ LDFLAGS+= -L/usr/local/lib .ifdef PROFILE LDFLAGS+= -pg .endif -LIBS+= -lutil -lncurses +.if ${OS} == "SunOS" +LIBS+= -lsocket -lnsl +.else +LIBS+= -lutil +.endif +LIBS+= -lncurses + +# Darwin +.if ${OS} == "Darwin" +SRCS+= compat/strtonum.c compat/vis.c +CFLAGS+= -DNO_SETPROCTITLE -DNO_STRTONUM -DNO_QUEUE_H -DNO_TREE_H +.endif # FreeBSD and DragonFly .if ${OS} == "FreeBSD" || ${OS} == "DragonFly" @@@@ -91,10 +102,21 @@@@ LIBS+= -lcrypt # NetBSD .if ${OS} == "NetBSD" -INCDIRS= -Icompat +INCDIRS+= -Icompat SRCS+= compat/strtonum.c compat/vis.c LIBS+= -lcrypt -CFLAGS+=-DNO_STRTONUM +CFLAGS+=-DNO_STRTONUM -DNO_QUEUE_H -DNO_TREE_H +.endif + +# SunOS +.if ${OS} == "SunOS" +INCDIRS+= -Icompat +SRCS+= compat/asprintf.c compat/daemon.c compat/fgetln.c \ + compat/forkpty-sunos.c compat/getopt_long.c compat/strtonum.c \ + compat/vis.c +CFLAGS+= -DNO_ASPRINTF -DNO_CDEFS_H -DNO_DAEMON -DNO_FGETLN -DNO_FORKPTY \ + -DNO_PATHS_H -DNO_PROGNAME -DNO_QUEUE_H -DNO_SETPROCTITLE \ + -DNO_STRTONUM -DNO_TREE_H .endif OBJS= ${SRCS:S/.c/.o/:S/.y/.o/} @@@@ -152,7 +174,7 @@@@ update-index.html: sed "s/%%VERSION%%/${VERSION}/g" index.html.in >index.html d10 1 a10 1 - ${INSTALLBIN} ${PROG} ${DESTDIR}${PREFIX}/bin/ d12 1 a12 1 - ${INSTALLMAN} ${PROG}.1 ${DESTDIR}${PREFIX}/man/man1/ d14 1 a14 1 + ${BSD_INSTALL_PROGRAM} ${PROG} ${DESTDIR}${PREFIX}/bin/ d16 1 a16 1 + ${BSD_INSTALL_MAN} ${PROG}.1 ${DESTDIR}${PREFIX}/man/man1/ @ 1.4 log @Use BSD_INSTALL_* so that a non-root user can install misc/tmux. @ text @d1 1 a1 1 $NetBSD: patch-aa,v 1.3 2009/05/27 06:11:23 minskim Exp $ d3 1 a3 1 --- Makefile.orig 2009-04-27 17:38:18.000000000 +0200 d5 3 a7 1 @@@@ -81,6 +81,12 @@@@ LDFLAGS+= -pg d9 8 a16 2 LIBS+= -lutil -lncurses d22 1 a22 1 + d25 1 a25 2 INCDIRS+= -Icompat @@@@ -91,10 +97,10 @@@@ LIBS+= -lcrypt d35 11 d49 1 a49 1 @@@@ -152,7 +158,7 @@@@ update-index.html: @ 1.3 log @Make misc/tmux compile on Darwin. @ text @d1 1 a1 1 $NetBSD: patch-aa,v 1.2 2009/05/02 10:50:58 hasso Exp $ d31 12 @ 1.2 log @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. @ text @d1 1 a1 1 $NetBSD$ d5 14 a18 1 @@@@ -91,10 +91,10 @@@@ LIBS+= -lcrypt @ 1.1 log @Initial revision @ text @d3 1 a3 7 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. --- Makefile.orig 2009-02-07 00:36:34.000000000 -0800 d5 1 a5 6 @@@@ -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 d7 3 a9 27 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" d11 1 a11 9 +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 d13 2 a16 9 +# NetBSD +.if ${OS} == "NetBSD" +INCDIRS+= -Icompat +SRCS+= compat/strtonum.c compat/vis.c +LIBS+= -lcrypt +CFLAGS+=-DNO_STRTONUM +.endif + + a17 14 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/ @ 1.1.1.1 log @Tmux is a "terminal multiplexer", it enables a number of terminals (or windows) to be accessed and controlled from a single terminal. Tmux is intended to be a simple, modern, BSD-licensed alternative to programs such as GNU screen. Brought in from pkgsrc-wip (PR 40497) where it was maintained by Fulvio Ciriaco. @ text @@