Commit Graph

66 Commits

Author SHA1 Message Date
f8c86a9515 Add some additional debug logging. 2013-03-05 17:17:59 +00:00
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
afd5e978cf Need to set clients in context before changing their reference count. 2013-02-20 10:25:15 +00:00
5a5e285be8 Don't try to print unterminated strings when loading configuration file. 2013-02-19 17:28:21 +00:00
255a4f8ce3 load_cfg can actually use the same context now they are reference counted. 2013-02-18 23:35:54 +00:00
293e331d69 Add functions to allocate and free command contexts rather than doing it all on
the stack.
2013-02-18 23:20:21 +00:00
9d165df18a No more lint means no more ARGSUSED. 2013-02-17 23:15:38 +00:00
77a2174685 Fix a couple of memory leaks, from Romain Francoise. 2013-02-16 19:35:49 +00:00
675c6b3773 Merge branch 'obsd-master'
Sync from OpenBSD.
2012-12-31 18:50:37 +00:00
9714880283 Change load_cfg to fix a crash reported by jasper. 2012-12-13 15:36:16 +00:00
fb83914bd7 Merge branch 'obsd-master'
Sync from OpenBSD.
2012-12-08 20:29:37 +00:00
8600fe054b Use strlcat not strncat in load_cfg and some other trivial tidying from
Tiago Cunha.
2012-12-06 13:06:05 +00:00
8264e92b37 Fix return value of load_cfg, from Thomas Adam. 2012-11-27 22:59:34 +00:00
39631edb98 Merge branch 'obsd-master'
Sync from OpenBSD.
2012-11-27 18:12:04 +00:00
9b8998aeec Correctly aggregate together errors from nested config files (with
source-file). Fix by Thomas Adam, reported by Sam Livingstone-Gray
2012-11-27 16:12:29 +00:00
c04aa90207 Merge branch 'obsd-master'
Sync from OpenBSD.

* obsd-master:
  Add halfpage commands to mode command string table (missed by accident), from Thomas Adam.
  Clarify some points about config files, notably that they are only read at server start. From Thomas Adam.
  Use a utility function for common code to show errors in config file, from Thomas Adam.
2012-11-22 13:24:14 +00:00
827b311c81 Use a utility function for common code to show errors in config file,
from Thomas Adam.
2012-11-19 10:38:06 +00:00
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
a432fcd306 Sync OpenBSD patchset 1150:
xfree is not particularly helpful, remove it. From Thomas Adam.
2012-07-11 19:34:16 +00:00
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
df912e3540 xfree is not particularly helpful, remove it. From Thomas Adam. 2012-07-10 11:53:01 +00:00
04bf0d8efc Sync OpenBSD patchset 1113:
Ignore line continuation when escaped as \\, from Simon Nicolussi.
2012-05-22 20:50:51 +00:00
ac7e2f13e9 Ignore line continuation when escaped as \\, from Simon Nicolussi. 2012-05-17 21:21:31 +00:00
4a01da19df Sync OpenBSD patchset 951:
Support \ for line continuation in the configuration file, from Julius
Plenz.
2011-08-25 21:14:23 +00:00
0588168a64 Support \ for line continuation in the configuration file, from Julius
Plenz.
2011-08-24 10:46:01 +00:00
391f1f08c0 Expand the Id keyword. 2011-07-09 09:42:33 +00:00
210b4553a5 Sync OpenBSD patchset 811:
Allow the config file parser and source-file to return "don't exit" to
the client to let attach work from configuration files.
2010-12-30 22:26:07 +00:00
230e39ec35 Allow the config file parser and source-file to return "don't exit" to
the client to let attach work from configuration files.
2010-12-29 21:28:32 +00:00
0d6a64070c Sync OpenBSD patchset 704:
Fix an out-of-date comment.
2010-06-06 00:04:18 +00:00
608eef731a Fix an out-of-date comment. 2010-05-25 19:47:30 +00:00
36a80b2cd6 Sync OpenBSD patchset 640:
Use the array.h code for the causes list.
2010-02-08 18:29:32 +00:00
a32d095c97 Sync OpenBSD patchset 635:
Instead of bailing out on the first configuration file error, carry on,
collecting all the errors, then start with the active window in more mode
displaying them.
2010-02-08 18:10:07 +00:00
4651180503 Use the array.h code for the causes list. 2010-02-06 23:22:27 +00:00
8aba77b7be Instead of bailing out on the first configuration file error, carry on,
collecting all the errors, then start with the active window in more mode
displaying them.
2010-02-06 17:15:33 +00:00
c12e0b0708 Sync OpenBSD patchset 567:
Remove a couple of unused arguments where possible, and add /* ARGSUSED */ to
the rest to reduce lint output.
2009-11-28 14:50:37 +00:00
4ca857e0e9 Remove a couple of unused arguments where possible, and add /* ARGSUSED */ to
the rest to reduce lint output.
2009-11-26 21:37:13 +00:00
a5acabd923 Sync OpenBSD patchset 467:
tabs are better; ok nicm
2009-10-28 23:12:38 +00:00
ed62d1263c tabs are better; ok nicm 2009-10-26 21:42:04 +00:00
35b926c445 Sync OpenBSD patchset 290:
When using source-file, run the commands in the context of the source-file
command rather than with no context. This makes things like attach work from a
file.
2009-08-24 16:27:03 +00:00
2e2e762743 Sync OpenBSD patchset 289:
The cursession member in struct cmd_ctx is always either curclient->session or
NULL when curclient is also NULL, so just eliminate it.
2009-08-24 16:24:18 +00:00
c7394ac4e0 When using source-file, run the commands in the context of the source-file
command rather than with no context. This makes things like attach work from a
file.
2009-08-23 17:29:51 +00:00
43cd40e87a The cursession member in struct cmd_ctx is always either curclient->session or
NULL when curclient is also NULL, so just eliminate it.
2009-08-23 16:45:00 +00:00
1297c39a31 Sync OpenBSD patchset 233:
Don't leak in the (rare) case of an invalid command at the end of a file not
terminated by a \n.
2009-08-09 17:53:50 +00:00
b3107d26df Don't leak in the (rare) case of an invalid command at the end of a file not
terminated by a \n.
2009-08-09 08:34:17 +00:00
56dd5dfff4 Sync OpenBSD patchset 206:
Don't babysit people and let them try to load /dev/zero or (more useful)
/dev/null if they want.
2009-07-30 21:07:23 +00:00
61f3fc7e4d Don't babysit people and let them try to load /dev/zero or (more useful)
/dev/null if they want.
2009-07-30 17:46:12 +00:00
a5830b9603 Restore $Id$ and add script to do so. 2009-06-25 16:21:32 +00:00
abb5e36199 Unused prototypes. Found by lint, no binary change. 2009-06-25 16:06:09 +00:00
9144d30848 Unused prototypes. Found by lint, no binary change. 2009-06-25 06:00:45 +00:00
35876eaab9 Import tmux, a terminal multiplexor allowing (among other things) a single
terminal to be switched between several different windows and programs
displayed on one terminal be detached from one terminal and moved to another.

ok deraadt pirofti
2009-06-01 22:58:49 +00:00