Commit Graph

102 Commits

Author SHA1 Message Date
cd60e57b6a Merge branch 'obsd-master'
Sync from OpenBSD.
2013-04-23 08:26:04 +01:00
3d2b7d5bce When using choose-tree -u, start with the current window
highlighted. From Thomas Adam.
2013-04-22 22:17:29 +00:00
6fee3e9e4b Rename session idx to session id throughout and add $ prefix to targets
to use it, extended from a diff from George Nachman.
2013-03-25 10:11:45 +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
2243cfbe75 Need to set clients in context before changing their reference count. 2013-03-22 15:54:29 +00:00
a1722d5c2e Remove unnecessary initializers of cmd_ctx. 2013-03-22 15:50:42 +00:00
2f5fa4ee9d Don't hang when clearing line in choose mode now that the cursor stays
at the end with wrap.
2013-03-22 10:38:33 +00:00
8d59b189cc No more lint means no more ARGSUSED. 2013-03-22 10:31:22 +00:00
51d989f5df Do not crash when calling choose-tree with a command that changes the mode. 2013-03-21 16:22:48 +00:00
180faf73af Allow choose commands to be used outside tmux, so long as at least one
client is attached.
2013-03-21 16:09:59 +00:00
f47a063841 Rename session idx to session id throughout and add $ prefix to targets to use
it, extended from a diff from George Nachman.
2013-03-07 10:07:22 +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
c3859d1df1 Add copy-pipe mode command to copy selection and also pipe to a command. 2013-02-19 17:49:53 +00:00
693244795c Remove unnecessary initializers of cmd_ctx. 2013-02-18 23:38:57 +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
37d34b6b83 Don't hang when clearing line in choose mode now that the cursor stays at the
end with wrap.
2013-02-18 17:23:08 +00:00
9d165df18a No more lint means no more ARGSUSED. 2013-02-17 23:15:38 +00:00
362c460767 Do not crash when calling choose-tree with a command that changes the mode. 2013-02-13 11:01:26 +00:00
fc6f08d5b7 No more need for freefn. 2013-02-13 10:27:49 +00:00
68e370574a Fix constness of window_choose_add_item and _window. 2013-02-13 10:25:37 +00:00
544c80d715 Fix constness of cmd_template_replace. 2013-02-13 10:19:43 +00:00
f1ce95915c Allow choose commands to be used outside tmux, so long as at least one client
is attached.
2013-02-10 17:52:51 +00:00
aadc87f5a7 Remove free callback for window_choose_data objects. 2013-02-10 17:36:58 +00:00
4d382ae8e6 Miscellaneous tidying of choose API, including:
- rename client and session to start_client and start_session in
  window_choose_data struct. also add TREE_OTHER define and reorder the
  struct
- rename window_choose_ctx to window_choose_data_run
- don't pass a cmd_ctx into window_choose_create (will let it use a
  different client later). instead take type, session, client
- add window_choose_data_free and use it to dispose of wcd rather than
  each cmd-*.c doing it individually
- change so ref counting is done by wcd_add and wcd_free rather than
  callers. this means 1 ref for each item but what of it :-)
- also add a ref to tree_session - not sure if this is needed?
- all the callbacks except choose-client and find-window are the same so
  remove them and add window_choose_default_callback
- reorder/rename some other bits and pieces for tidyness
2013-02-10 17:32:58 +00:00
64da762c15 Merge branch 'obsd-master' 2013-02-07 12:08:55 +00:00
8903c1f167 Automatically reflow wrapped lines when a pane is resized, requested by
many over the years and finally implemented by Richard Woodbury.
2013-02-05 11:08:59 +00:00
675c6b3773 Merge branch 'obsd-master'
Sync from OpenBSD.
2012-12-31 18:50:37 +00:00
3e6d45acf6 Add -T option to select-window to toggle to last window if already
current, from Raghavendra D Prabhu.
2012-12-24 12:34:32 +00:00
47fbf87185 Merge branch 'obsd-master'
Sync from OpenBSD.
2012-10-26 20:28:58 +01:00
d210d99cce Make mouse event structure clearer by defining events (up, click, drag)
and simplifying how buttons and wheels are represented, from Ailin
Nemui. Should be no functional changes.
2012-10-26 14:35:42 +00:00
b4ad1759b8 Merge branch 'obsd-master'
Sync from OpenBSD.
2012-10-11 17:52:23 +01:00
6589120667 Fix a use-after-free when collapsing the tree in choose mode, from
Carl Henrik Lunde.
2012-10-11 08:53:50 +00:00
619ffe1f4f Merge branch 'obsd-master'
Sync from OpenBSD.

* obsd-master:
  Allow session tree (C-b s) to expand and collapse sessions with left/right/space keys. From Thomas Adam.
  Remove some out of date text from man page, from Thomas Adam.
2012-10-02 10:47:16 +01:00
9107b0c69a Allow session tree (C-b s) to expand and collapse sessions with
left/right/space keys. From Thomas Adam.
2012-10-02 08:16:28 +00:00
28fd3a3835 add cmd-choose-list to allow arbitrary options to be selected. From
Thomas Adam.
2012-09-04 22:37:29 +01:00
7263fa36eb add cmd-choose-list to allow arbitrary options to be selected. From
Thomas Adam.
2012-09-03 09:57:57 +00:00
554f19eb05 Sync OpenBSD patchset 1167:
Instead of requiring a prompt to enter all numbers >10, go back to
0-9a-z and add A-Z and enter the prompt when M-0 to M-9 are pressed
(like in copy mode). Prompted by request from mcbride@, help from Thomas
Adam.
2012-08-31 09:24:51 +00:00
674545f7e6 Sync OpenBSD patchset 1164:
Boldify windows with alerts in choose-* list.
2012-08-31 09:20:47 +00:00
753775033a Instead of requiring a prompt to enter all numbers >10, go back to
0-9a-z and add A-Z and enter the prompt when M-0 to M-9 are pressed
(like in copy mode). Prompted by request from mcbride@, help from Thomas
Adam.
2012-08-27 21:29:23 +00:00
a1e4908ed7 Boldify windows with alerts in choose-* list. 2012-08-14 09:17:14 +00:00
454e7d9c3a Sync OpenBSD patchset 1160:
Simplify width calculation (all numbers always sequential) and don't
rely on uninitialized data, from Thomas Adam.
2012-08-12 19:31:26 +00:00
200b0e5821 Sync OpenBSD patchset 1156:
Instead of numbering choose mode items 0-9a-z and then nothing, number
them all and if there are more than 10 use a prompt when 0-9 is
pressed. From Thomas Adam.
2012-08-12 19:28:20 +00:00
20129b7bf9 Simplify width calculation (all numbers always sequential) and don't
rely on uninitialized data, from Thomas Adam.
2012-08-12 06:22:26 +00:00
a3dec6bece Instead of numbering choose mode items 0-9a-z and then nothing, number
them all and if there are more than 10 use a prompt when 0-9 is
pressed. From Thomas Adam.
2012-08-11 06:45:33 +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
df912e3540 xfree is not particularly helpful, remove it. From Thomas Adam. 2012-07-10 11:53:01 +00:00
7e02d2f459 Sync OpenBSD patchset 1143:
Provide common helper function for adding windows and sessions to choose
lists and expand %% in command before using it rather than at callback
time. From Thomas Adam.
2012-07-04 11:03:20 +00:00
5761712799 Sync OpenBSD patchset 1142:
Clean up and simplify the choose mode code, from Thomas Adam.
2012-07-04 11:01:00 +00:00
67b926cf3c Provide common helper function for adding windows and sessions to choose
lists and expand %% in command before using it rather than at callback
time. From Thomas Adam.
2012-06-25 14:27:25 +00:00