Commit Graph

55 Commits

Author SHA1 Message Date
Thomas Adam
562af864bd Merge branch 'obsd-master'
Conflicts:
	Makefile
	cmd-list-commands.c
	cmd-suspend-client.c
	job.c
	tmux.h
	xmalloc.c
2014-10-21 07:11:44 +01:00
nicm
45dfc5a074 Instead of setting up the default keys by building the key struct
directly with a helper function in the cmd_entry, include a table of
bind-key commands and pass them through the command parser and a
temporary cmd_q.

As well as being smaller, this will allow default bindings to be command
sequences which will probably be needed soon.
2014-10-20 22:29:25 +00:00
nicm
a27ba6e380 Add xreallocarray and remove nmemb argument from xrealloc. 2014-10-08 17:35:58 +00:00
Thomas Adam
814e40522c Merge branch 'obsd-master' 2014-06-20 12:59:43 +01:00
nicm
c8efffb4db Make -S- and -E- mean the start and end to capture-pane to avoid having
to faff around with huge numbers to get everything.
2014-06-20 10:46:59 +00:00
Thomas Adam
bae95844d7 Merge branch 'obsd-master'
Conflicts:
	format.c
	window.c
2014-05-13 21:58:48 +01:00
nicm
3dbacbb62b Add support for named buffers. If you don't name a buffer, things work
much as before - buffers are automatically named "buffer0000",
"buffer0001" and so on and ordered as a stack. Buffers can be named
explicitly when creating ("loadb -b foo" etc) or renamed ("setb -b
buffer0000 -n foo"). If buffers are named explicitly, they are not
deleted when buffer-limit is reached. Diff from J Raynor.
2014-05-13 07:34:35 +00:00
Thomas Adam
3f54c9292f Merge branch 'obsd-master' 2014-04-24 12:59:00 +01:00
nicm
bec6c807cd There is no longer a need for a paste_stack struct or for global_buffers
to be global. Move to paste.c.
2014-04-24 09:14:43 +00:00
nicm
d45c12b6c9 Remove the barely-used and unnecessary command check() function. 2013-10-10 12:00:18 +00:00
Nicholas Marriott
a36da3a878 Remove the barely-used and unnecessary command check() function. 2013-08-21 18:01:40 +01:00
Nicholas Marriott
270d90ce1e Handle empty pending output (not a failure) and add \n. From George
Nachman.
2013-03-25 11:42:19 +00:00
Nicholas Marriott
e85f764f23 Preserve trailing spaces with capture-pane -J, from George Nachman. 2013-03-25 10:05:35 +00:00
Nicholas Marriott
20636d956d Add a command queue to standardize and simplify commands that call other
commands and allow a command to block execution of subsequent
commands. This allows run-shell and if-shell to be synchronous which has
been much requested.

Each client has a default command queue and commands are consumed one at
a time from it. A command may suspend execution from the queue by
returning CMD_RETURN_WAIT and then resume it by calling cmd_continue() -
for example run-shell does this from the callback that is fired after
the job is freed.

When the command queue becomes empty, command clients are automatically
exited (unless attaching). A callback is also fired - this is used for
nested commands in, for example, if-shell which can block execution of
the client's cmdq until a new cmdq becomes empty.

Also merge all the old error/info/print functions together and lose the
old curclient/cmdclient distinction - a cmdq is bound to one client (or
none if in the configuration file), this is a command client if
c->session is NULL otherwise an attached client.
2013-03-24 09:54:10 +00:00
Nicholas Marriott
295d86911e Add -C and -J to capture pane to escape control sequences and to join
wrapped line, based on a diff from George Nachman.
2013-03-22 15:56:11 +00:00
Nicholas Marriott
8a6fbfa148 Don't use a target-client for stdout, just always cmdclient. 2013-03-22 15:51:15 +00:00
Nicholas Marriott
78543cce30 Support capture-pane -p to send to stdout. 2013-03-21 18:43:34 +00:00
Nicholas Marriott
69d97f6d4b Handle empty pending output (not a failure) and add \n. From George Nachman. 2013-03-19 09:34:00 +00:00
Nicholas Marriott
b5516771d3 Clean up capture-pane and add -P option to dump pending output, based on code
from George Nachman.
2013-03-11 13:47:29 +00:00
Nicholas Marriott
aaeee34c32 Preserve trailing spaces with capture-pane -J, from George Nachman. 2013-03-04 11:03:03 +00:00
Nicholas Marriott
1cb1fb5bd4 Add -q flags to shut up errors to capture-pane and show-options, from George
Nachman.
2013-03-04 09:00:24 +00:00
Nicholas Marriott
b2a61348dd Add -a to capture-pane to capture alternate screen, from George Nachman. 2013-02-24 07:52:03 +00:00
Nicholas Marriott
3964309c67 Add a command queue to standardize and simplify commands that call other
commands and allow a command to block execution of subsequent commands. This
allows run-shell and if-shell to be synchronous which has been much requested.

Each client has a default command queue and commands are consumed one at a time
from it. A command may suspend execution from the queue by returning
CMD_RETURN_WAIT and then resume it by calling cmd_continue() - for example
run-shell does this from the callback that is fired after the job is freed.

When the command queue becomes empty, command clients are automatically exited
(unless attaching). A callback is also fired - this is used for nested commands
in, for example, if-shell which can block execution of the client's cmdq until
a new cmdq becomes empty.

Also merge all the old error/info/print functions together and lose the old
curclient/cmdclient distinction - a cmdq is bound to one client (or none if in
the configuration file), this is a command client if c->session is NULL
otherwise an attached client.
2013-02-23 22:25:58 +00:00
Nicholas Marriott
b8b5631d9d Add -C and -J to capture pane to escape control sequences and to join wrapped
line, based on a diff from George Nachman.
2013-02-21 09:35:01 +00:00
Nicholas Marriott
1e20153b6e Fix so capture-pane/save-buffer can work in control clients, from George
Nachman.
2013-02-20 09:32:52 +00:00
Nicholas Marriott
4d1d4d6e8e Add -e flag to capture-pane to include embedded ANSI SGR escape sequences, from
George Nachman.
2013-02-19 09:55:02 +00:00
Nicholas Marriott
a96dd1932a Don't use a target-client for stdout, just always cmdclient. 2013-02-19 09:51:04 +00:00
Nicholas Marriott
1d591ada76 Support capture-pane -p to send to stdout. 2013-02-15 09:31:45 +00:00
Thomas Adam
675c6b3773 Merge branch 'obsd-master'
Sync from OpenBSD.
2012-12-31 18:50:37 +00:00
Nicholas Marriott
3a0016a78a Use the CMD_*_USAGE defines consistently, from Thomas Adam. 2012-12-09 23:17:35 +00:00
Tiago Cunha
1f5e6e35d5 Sync OpenBSD patchset 1151:
Make command exec functions return an enum rather than -1/0/1 values and
add a new value to mean "leave client running but don't attach" to fix
problems with using some commands in a command sequence. Most of the
work by Thomas Adam, problem reported by "jspenguin" on SF bug 3535531.
2012-07-11 19:37:32 +00:00
Tiago Cunha
a432fcd306 Sync OpenBSD patchset 1150:
xfree is not particularly helpful, remove it. From Thomas Adam.
2012-07-11 19:34:16 +00:00
Nicholas Marriott
ede8312d59 Make command exec functions return an enum rather than -1/0/1 values and
add a new value to mean "leave client running but don't attach" to fix
problems with using some commands in a command sequence. Most of the
work by Thomas Adam, problem reported by "jspenguin" on SF bug 3535531.
2012-07-11 07:10:15 +00:00
Nicholas Marriott
df912e3540 xfree is not particularly helpful, remove it. From Thomas Adam. 2012-07-10 11:53:01 +00:00
Tiago Cunha
f9b4095188 Sync OpenBSD patchset 991:
Extend history that can be captured to INT_MIN rather than
SHRT_MIN. From Chris Johnsen.
2011-12-30 14:16:44 +00:00
Nicholas Marriott
5db593e5c2 Extend history that can be captured to INT_MIN rather than
SHRT_MIN. From Chris Johnsen.
2011-12-27 13:46:26 +00:00
Tiago Cunha
d9807eeba1 Sync OpenBSD patchset 956:
Another memory leak from Tiago Cunha.
2011-09-21 16:34:34 +00:00
Nicholas Marriott
9800eaa63f Another memory leak from Tiago Cunha. 2011-08-30 09:20:17 +00:00
Tiago Cunha
391f1f08c0 Expand the Id keyword. 2011-07-09 09:42:33 +00:00
Tiago Cunha
bb38112ec8 Sync OpenBSD patchset 907:
Fix a couple of memory leaks, from Tiago Cunha.
2011-05-18 20:31:00 +00:00
Nicholas Marriott
538af37c35 Fix a couple of memory leaks, from Tiago Cunha. 2011-05-08 20:37:04 +00:00
Nicholas Marriott
0a2b3492c3 |PatchSet 874
|Date: 2011/03/28 21:17:39
|Author: nicm
|Branch: HEAD
|Tag: (none)
|Log:
|Allow a start and end line to be specified for capture-pane which may be
|negative to capture part of the history. Prompted by request from Victor
|J Orlikowski.
2011-04-06 22:19:42 +00:00
Nicholas Marriott
82e0165c49 Allow a start and end line to be specified for capture-pane which may be
negative to capture part of the history. Prompted by request from Victor
J Orlikowski.
2011-03-28 20:17:39 +00:00
Tiago Cunha
1df427bc7b Sync OpenBSD patchset 829:
Clean up and simplify tmux command argument parsing.

Originally, tmux commands were parsed in the client process into a
struct with the command data which was then serialised and sent to the
server to be executed. The parsing was later moved into the server (an
argv was sent from the client), but the parse step and intermediate
struct was kept.

This change removes that struct and the separate parse step. Argument
parsing and printing is now common to all commands (in arguments.c) with
each command left with just an optional check function (to validate the
arguments at parse time), the exec function and a function to set up any
key bindings (renamed from the old init function).

This is overall more simple and consistent.

There should be no changes to any commands behaviour or syntax although
as this touches every command please watch for any unexpected changes.
2011-01-07 14:45:34 +00:00
Nicholas Marriott
7502cb3adb Clean up and simplify tmux command argument parsing.
Originally, tmux commands were parsed in the client process into a
struct with the command data which was then serialised and sent to the
server to be executed. The parsing was later moved into the server (an
argv was sent from the client), but the parse step and intermediate
struct was kept.

This change removes that struct and the separate parse step. Argument
parsing and printing is now common to all commands (in arguments.c) with
each command left with just an optional check function (to validate the
arguments at parse time), the exec function and a function to set up any
key bindings (renamed from the old init function).

This is overall more simple and consistent.

There should be no changes to any commands behaviour or syntax although
as this touches every command please watch for any unexpected changes.
2011-01-04 00:42:46 +00:00
Tiago Cunha
f72f21951c Sync OpenBSD patchset 816:
Remove some unused defines.
2010-12-31 01:59:47 +00:00
Nicholas Marriott
4fb1045f5a Remove some unused defines. 2010-12-30 23:20:13 +00:00
Nicholas Marriott
cc42614fa9 Change from a per-session stack of buffers to one global stack which is
much more convenient and also simplifies lot of code. This renders
copy-buffer useless and makes buffer-limit now a server option.

By Tiago Cunha.
2010-12-30 23:16:18 +00:00
Tiago Cunha
9ebee6aef8 Global paste buffers instead of per-session which renders copy-buffer useless.
As a consequence buffer-limit is now a server option.
2010-12-30 22:39:49 +00:00
Tiago Cunha
4d477aaeef Sync OpenBSD patchset 612:
Don't leak line, from Tiago Cunha.
2010-01-22 17:29:19 +00:00