Commit Graph

66 Commits

Author SHA1 Message Date
699d9d2fac Merge branch 'obsd-master' 2019-05-12 21:02:27 +01:00
c3c3927c2b Oops, removed too much in last change. 2019-05-12 18:18:30 +00:00
00f19b7f91 Fix some indentation and dead assignments. 2019-05-12 18:16:33 +00:00
dc7e53897a Merge branch 'obsd-master' 2019-04-30 21:02:26 +01:00
429c4bc51b Fix user options after show-hooks merge, GitHub issue 1704. 2019-04-30 18:02:03 +00:00
5489796737 Merge branch 'obsd-master' 2019-04-27 20:09:07 +01:00
dfb7bb6830 Merge hooks into options and make each one an array option. This allows
multiple commands to be easily bound to one hook. set-hook and
show-hooks remain but they are now variants of set-option and
show-options. show-options now has a -H flag to show hooks (by default
they are not shown).
2019-04-26 11:38:51 +00:00
7c4a2253e8 Merge branch 'obsd-master' 2019-04-25 21:02:43 +01:00
32a81e197b Make options_tostring allocate its result instead of using a stack
buffer (needed for something in the future).
2019-04-25 18:18:55 +00:00
f980e868dd Merge branch 'obsd-master' 2019-04-18 14:11:22 +01:00
5b9211d827 Copy the code to infer the option type to show-options and document it. 2019-04-18 12:22:07 +00:00
04402db616 Merge branch 'obsd-master' 2019-04-05 23:02:36 +01:00
1b5a8a0f09 Fix some warnings, from Thomas Adam. 2019-04-05 20:32:31 +00:00
073d439965 Merge branch 'obsd-master' 2019-03-19 00:02:39 +00:00
f34ebfed76 The individual -fg, -bg and -attr options have been deprecated (in
favour of -style), undocumented and hidden from show-options since
2014. Remove them, except for status-fg and status-bg.
2019-03-18 21:46:01 +00:00
acb2413852 Merge branch 'obsd-master' 2019-03-18 15:07:51 +00:00
ce6be7afd4 Make array options a sparse tree instead of an array of char * and
remove the size limit.
2019-03-18 11:58:40 +00:00
0868512bbc Merge branch 'obsd-master' 2017-05-10 16:01:10 +01:00
b519551153 Expand formats in option names and add -F flag to do so in option values as well. 2017-05-10 13:05:41 +00:00
e802b683ea Merge branch 'obsd-master' 2017-04-22 12:01:19 +01:00
ee45a8a149 Get rid of the extra layer of flags and cmd_prepare() and just store the
CMD_FIND_* flags in the cmd_entry and call it for the command. Commands
with special requirements call it themselves and update the target for
hooks to use.
2017-04-22 10:22:39 +00:00
d8da761d54 Merge branch 'obsd-master' 2017-01-31 00:01:12 +00:00
3408595f77 When a flag option is used in a format, it should use the number form
not string.
2017-01-30 21:41:17 +00:00
f38a6bbd81 Merge branch 'obsd-master' 2017-01-24 20:01:12 +00:00
61fce272ea If given an array option without an index either show or set all items,
and support -a for array options. Allow the separator for set to be
specified in the options table (will be used for backwards compatibility
later).
2017-01-24 19:11:46 +00:00
044999ce6d Merge branch 'obsd-master' 2017-01-18 12:01:11 +00:00
faa0570309 Plain stravis() because it will mangle UTF-8 characters, so add
utf8_stravis() which calls our existing utf8_strvis() and use it instead
2017-01-18 10:08:05 +00:00
6d37984f4f Merge branch 'obsd-master' 2017-01-18 10:01:12 +00:00
373541104b options_match needs to explicitly check for user options. 2017-01-18 08:40:50 +00:00
7e110b9d99 Merge branch 'obsd-master' 2017-01-16 15:36:02 +00:00
68db958477 getopt() has a struct option so just return to using options_entry. 2017-01-16 14:49:14 +00:00
997b11741c Remove vis.h which comes from compat. 2017-01-16 12:09:04 +00:00
2b0bc9f1c5 Major tidy up and rework of options tree and set-option/show-options
commands this pushes more of the code into options.c and ties it more
closely to the options table rather than having an unnecessary
split. Also add support for array options (will be used later). Only
(intentional) user visible change is that show-options output is now
passed through vis(3) with VIS_DQ so quotes are escaped.
2017-01-15 20:48:41 +00:00
b342bd0b46 Mass rename struct cmd_q to struct cmdq_item and related. 2016-10-16 19:04:05 +00:00
ed971268be Add CMD_AFTERHOOK flag to the easy commands that don't need any special handling. 2016-10-14 22:14:22 +00:00
a81685bfac Add static in cmd-* and fix a few other nits. 2016-10-10 21:51:39 +00:00
df0983af39 show-* and set-* need to handle a missing target. 2016-03-03 14:15:22 +00:00
995af0e2b7 I no longer use my SourceForge address so replace it. 2016-01-19 15:59:12 +00:00
a3129fd4e8 Instead of combined flags for -c, -s, -t, split into different sets
using an enum and simplify the parsing code.
2015-12-14 00:31:54 +00:00
ecfeee2e82 Use member names in cmd_entry definitions so I stop getting confused
about the order.
2015-12-13 21:53:57 +00:00
fd47084224 show-options and environment need CANFAIL flag. 2015-12-13 18:15:13 +00:00
4a4daf1303 Instead of every command resolving the target (-t or -s) itself, prepare
the state (client, session, winlink, pane) for it it before entering the
command. Each command provides some flags that tell the prepare step
what it is expecting.

This is a requirement for having hooks on commands (for example, if you
hook "select-window -t1:2", the hook command should to operate on window
1:2 not whatever it thinks is the current window), and should allow some
other target improvements.

The old cmd_find_* functions remain for the moment but that layer will
be dropped later.

Joint work with Thomas Adam.
2015-12-13 14:32:38 +00:00
fce56c56ef Instead of separate tables for different types of options, give each
option a scope type (server, session, window) in one table.
2015-11-20 12:01:19 +00:00
44657bf932 Move struct options into options.c. 2015-10-27 15:58:42 +00:00
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
ebc5cb447f Do not show the -fg, -bg and -attr options. If asked for one explicitly,
show the equivalent -style option instead.
2014-04-17 07:43:20 +00:00
d45c12b6c9 Remove the barely-used and unnecessary command check() function. 2013-10-10 12:00:18 +00:00
d39b1a87a5 Add -q flags to shut up errors to capture-pane and show-options, from
George Nachman.
2013-03-25 10:04:04 +00:00
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
0c0953f3bd Add user options, prefixed with @. May be set to any arbitrary string. 2013-03-21 16:17:01 +00:00