summaryrefslogtreecommitdiffstats
path: root/cmd-find-window.c
AgeCommit message (Collapse)Author
2013-08-21Remove the barely-used and unnecessary command check() function.Nicholas Marriott
2013-02-23Add a command queue to standardize and simplify commands that call otherNicholas Marriott
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-10Allow choose commands to be used outside tmux, so long as at least one clientNicholas Marriott
is attached.
2013-02-10Remove free callback for window_choose_data objects.Nicholas Marriott
2013-02-10Miscellaneous tidying of choose API, including:Nicholas Marriott
- 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
2012-10-25Merge branch 'obsd-master'Thomas Adam
Sync from OpenBSD.
2012-10-25Add ability to active pane in list-windows and find-window formats, fromNicholas Marriott
Carl Henrik Lunde.
2012-09-04When choosing a pane found by find-window, switch to that pane ratherNicholas Marriott
than just the window. Also use a helper function for the inner loop.
2012-09-03When choosing a pane found by find-window, switch to that pane ratherNicholas Marriott
than just the window. Also use a helper function for the inner loop.
2012-08-31Sync OpenBSD patchset 1162:Tiago Cunha
Use a separate define for each default format template and strip clutter from the choose-tree defaults.
2012-08-14Use a separate define for each default format template and strip clutterNicholas Marriott
from the choose-tree defaults.
2012-07-11Sync OpenBSD patchset 1151:Tiago Cunha
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-11Sync OpenBSD patchset 1150:Tiago Cunha
xfree is not particularly helpful, remove it. From Thomas Adam.
2012-07-11Make command exec functions return an enum rather than -1/0/1 values andNicholas Marriott
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-10xfree is not particularly helpful, remove it. From Thomas Adam.Nicholas Marriott
2012-07-04Sync OpenBSD patchset 1142:Tiago Cunha
Clean up and simplify the choose mode code, from Thomas Adam.
2012-07-04Sync OpenBSD patchset 1141:Tiago Cunha
Trim a blank line.
2012-06-25Clean up and simplify the choose mode code, from Thomas Adam.Nicholas Marriott
2012-06-25Trim a blank line.Nicholas Marriott
2012-05-22Sync OpenBSD patchset 1119:Tiago Cunha
Switch all of the various choose- and list- commands over to the format infrastructure, from Thomas Adam.
2012-05-22Switch all of the various choose- and list- commands over to the formatNicholas Marriott
infrastructure, from Thomas Adam.
2012-04-10Sync OpenBSD patchset 1087:Tiago Cunha
Minor style nits - return ().
2012-04-10Sync OpenBSD patchset 1081:Tiago Cunha
Only find each window once no matter how many panes, from Jonathan Daugherty.
2012-04-01Minor style nits - return ().Nicholas Marriott
2012-04-01Only find each window once no matter how many panes, from JonathanNicholas Marriott
Daugherty.
2012-03-29Sync OpenBSD patchset 1076:Tiago Cunha
Remove a stale comment.
2012-03-29Sync OpenBSD patchset 1075:Tiago Cunha
Add -C -N -T flags to find-window to find in content, name, title. From Jonathan Daugherty.
2012-03-20Remove a stale comment.Nicholas Marriott
2012-03-20Add -C -N -T flags to find-window to find in content, name, title. FromNicholas Marriott
Jonathan Daugherty.
2011-07-09Expand the Id keyword. Tiago Cunha
2011-01-07Sync OpenBSD patchset 829:Tiago Cunha
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-04Clean up and simplify tmux command argument parsing.Nicholas Marriott
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.
2010-12-22Sync OpenBSD patchset 801:Tiago Cunha
Unify the way sessions are used by callbacks - store the address and use the reference count, then check it is still on the global sessions list in the callback.
2010-12-20Unify the way sessions are used by callbacks - store the address and useNicholas Marriott
the reference count, then check it is still on the global sessions list in the callback.
2009-11-14Sync OpenBSD patchset 539:Tiago Cunha
Get rid of the ugly CMD_CHFLAG macro and use a const string (eg "dDU") in the command entry structs and a couple of functions to check/set the flags.
2009-11-13Get rid of the ugly CMD_CHFLAG macro and use a const string (eg "dDU") in theNicholas Marriott
command entry structs and a couple of functions to check/set the flags.
2009-07-28Sync OpenBSD patchset 181:Tiago Cunha
Make all messages sent between the client and server fixed size. This is the first of two changes to make the protocol more resilient and less sensitive to other changes in the code, particularly with commands. The client now packs argv into a buffer and sends it to the server for parsing, rather than doing it itself and sending the parsed command data. As a side-effect this also removes a lot of now-unused command marshalling code. Mixing a server without this change and a client with or vice versa will cause tmux to hang or crash, please ensure that tmux is entirely killed before upgrading.
2009-07-26Make all messages sent between the client and server fixed size.Nicholas Marriott
This is the first of two changes to make the protocol more resilient and less sensitive to other changes in the code, particularly with commands. The client now packs argv into a buffer and sends it to the server for parsing, rather than doing it itself and sending the parsed command data. As a side-effect this also removes a lot of now-unused command marshalling code. Mixing a server without this change and a client with or vice versa will cause tmux to hang or crash, please ensure that tmux is entirely killed before upgrading.
2009-07-17A similar for fix for window_choose: don't rely on the callback always beingNicholas Marriott
called to free data, have a separate free callback and call it from the mode cleanup code.
2009-07-17A similar for fix for window_choose: don't rely on the callback always beingNicholas Marriott
called to free data, have a separate free callback and call it from the mode cleanup code.
2009-07-14Having fixed flags for single-character getopt options is a bit hard toNicholas Marriott
maintain and is only going to get worse as more are used. So instead, add a new uint64_t member to cmd_entry which is a bitmask of upper and lowercase options accepted by the command. This means new single character options can be used without the need to add it explicitly to the list.
2009-07-13Having fixed flags for single-character getopt options is a bit hard toNicholas Marriott
maintain and is only going to get worse as more are used. So instead, add a new uint64_t member to cmd_entry which is a bitmask of upper and lowercase options accepted by the command. This means new single character options can be used without the need to add it explicitly to the list.
2009-06-25Restore $Id$ and add script to do so.Nicholas Marriott
2009-06-25Change find-window and monitor-content to use fnmatch(3). For convenience andNicholas Marriott
compatibility, *s are implicitly added at the start and end of the pattern.
2009-06-24Change find-window and monitor-content to use fnmatch(3). For convenience andNicholas Marriott
compatibility, *s are implicitly added at the start and end of the pattern. Also display the line number and the entire line in the results, and lose the nasty section_string function and the now empty util.c file. Initially from Tiago Cunha.
2009-06-01Import tmux, a terminal multiplexor allowing (among other things) a singleNicholas Marriott
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-05-19- New window option monitor-content to search for a string in a window, andTiago Cunha
highlight the status line if it matches. - To make this possible, the function cmd_find_window_search from cmd-find-window.c had to be moved to window.c and renamed window_pane_search. - While there use three new functions in server.c to check for bell, activity, and content, to avoid too much nesting.
2009-05-04Space trimmage mega-diff.Nicholas Marriott
2009-03-298 -> UTF8_SIZE.Nicholas Marriott
2009-03-28Better UTF-8 support, including combined characters. Unicode data is now storedNicholas Marriott
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.