aboutsummaryrefslogtreecommitdiff
path: root/cmd-find-window.c
Commit message (Collapse)AuthorAge
* Remove the barely-used and unnecessary command check() function.Nicholas Marriott2013-08-21
|
* Add a command queue to standardize and simplify commands that call otherNicholas Marriott2013-02-23
| | | | | | | | | | | | | | | | | | | | 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.
* Allow choose commands to be used outside tmux, so long as at least one clientNicholas Marriott2013-02-10
| | | | is attached.
* Remove free callback for window_choose_data objects.Nicholas Marriott2013-02-10
|
* Miscellaneous tidying of choose API, including:Nicholas Marriott2013-02-10
| | | | | | | | | | | | | | | | | - 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
* Merge branch 'obsd-master'Thomas Adam2012-10-25
|\ | | | | | | Sync from OpenBSD.
| * Add ability to active pane in list-windows and find-window formats, fromNicholas Marriott2012-10-25
| | | | | | | | Carl Henrik Lunde.
| * When choosing a pane found by find-window, switch to that pane ratherNicholas Marriott2012-09-03
| | | | | | | | than just the window. Also use a helper function for the inner loop.
| * Use a separate define for each default format template and strip clutterNicholas Marriott2012-08-14
| | | | | | | | from the choose-tree defaults.
| * Make command exec functions return an enum rather than -1/0/1 values andNicholas Marriott2012-07-11
| | | | | | | | | | | | 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.
| * xfree is not particularly helpful, remove it. From Thomas Adam.Nicholas Marriott2012-07-10
| |
| * Clean up and simplify the choose mode code, from Thomas Adam.Nicholas Marriott2012-06-25
| |
| * Trim a blank line.Nicholas Marriott2012-06-25
| |
| * Switch all of the various choose- and list- commands over to the formatNicholas Marriott2012-05-22
| | | | | | | | infrastructure, from Thomas Adam.
| * Minor style nits - return ().Nicholas Marriott2012-04-01
| |
| * Only find each window once no matter how many panes, from JonathanNicholas Marriott2012-04-01
| | | | | | | | Daugherty.
| * Remove a stale comment.Nicholas Marriott2012-03-20
| |
| * Add -C -N -T flags to find-window to find in content, name, title. FromNicholas Marriott2012-03-20
| | | | | | | | Jonathan Daugherty.
| * Clean up and simplify tmux command argument parsing.Nicholas Marriott2011-01-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * Unify the way sessions are used by callbacks - store the address and useNicholas Marriott2010-12-20
| | | | | | | | | | the reference count, then check it is still on the global sessions list in the callback.
| * Get rid of the ugly CMD_CHFLAG macro and use a const string (eg "dDU") in theNicholas Marriott2009-11-13
| | | | | | | | command entry structs and a couple of functions to check/set the flags.
| * Make all messages sent between the client and server fixed size.Nicholas Marriott2009-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * A similar for fix for window_choose: don't rely on the callback always beingNicholas Marriott2009-07-17
| | | | | | | | | | called to free data, have a separate free callback and call it from the mode cleanup code.
| * Having fixed flags for single-character getopt options is a bit hard toNicholas Marriott2009-07-13
| | | | | | | | | | | | | | | | | | 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.
| * Change find-window and monitor-content to use fnmatch(3). For convenience andNicholas Marriott2009-06-24
| | | | | | | | | | | | | | | | | | 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.
| * Import tmux, a terminal multiplexor allowing (among other things) a singleNicholas Marriott2009-06-01
| | | | | | | 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
* When choosing a pane found by find-window, switch to that pane ratherNicholas Marriott2012-09-04
| | | | than just the window. Also use a helper function for the inner loop.
* Sync OpenBSD patchset 1162:Tiago Cunha2012-08-31
| | | | | | Use a separate define for each default format template and strip clutter from the choose-tree defaults.
* Sync OpenBSD patchset 1151:Tiago Cunha2012-07-11
| | | | | | | | 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.
* Sync OpenBSD patchset 1150:Tiago Cunha2012-07-11
| | | | | xfree is not particularly helpful, remove it. From Thomas Adam.
* Sync OpenBSD patchset 1142:Tiago Cunha2012-07-04
| | | | | Clean up and simplify the choose mode code, from Thomas Adam.
* Sync OpenBSD patchset 1141:Tiago Cunha2012-07-04
| | | | | Trim a blank line.
* Sync OpenBSD patchset 1119:Tiago Cunha2012-05-22
| | | | | | Switch all of the various choose- and list- commands over to the format infrastructure, from Thomas Adam.
* Sync OpenBSD patchset 1087:Tiago Cunha2012-04-10
| | | | | Minor style nits - return ().
* Sync OpenBSD patchset 1081:Tiago Cunha2012-04-10
| | | | | | Only find each window once no matter how many panes, from Jonathan Daugherty.
* Sync OpenBSD patchset 1076:Tiago Cunha2012-03-29
| | | | | Remove a stale comment.
* Sync OpenBSD patchset 1075:Tiago Cunha2012-03-29
| | | | | | Add -C -N -T flags to find-window to find in content, name, title. From Jonathan Daugherty.
* Expand the Id keyword. Tiago Cunha2011-07-09
|
* Sync OpenBSD patchset 829:Tiago Cunha2011-01-07
| | | | | | | | | | | | | | | | | | | | | | 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.
* Sync OpenBSD patchset 801:Tiago Cunha2010-12-22
| | | | | | | 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.
* Sync OpenBSD patchset 539:Tiago Cunha2009-11-14
| | | | | | 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.
* Sync OpenBSD patchset 181:Tiago Cunha2009-07-28
| | | | | | | | | | | | | | | | | 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.
* A similar for fix for window_choose: don't rely on the callback always beingNicholas Marriott2009-07-17
| | | | | | called to free data, have a separate free callback and call it from the mode cleanup code.
* Having fixed flags for single-character getopt options is a bit hard toNicholas Marriott2009-07-14
| | | | | | | | | | 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.
* Restore $Id$ and add script to do so.Nicholas Marriott2009-06-25
|
* Change find-window and monitor-content to use fnmatch(3). For convenience andNicholas Marriott2009-06-25
| | | | | compatibility, *s are implicitly added at the start and end of the pattern.
* - New window option monitor-content to search for a string in a window, andTiago Cunha2009-05-19
| | | | | | | | | 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.
* Space trimmage mega-diff.Nicholas Marriott2009-05-04
|
* 8 -> UTF8_SIZE.Nicholas Marriott2009-03-29
|
* Better UTF-8 support, including combined characters. Unicode data is now storedNicholas Marriott2009-03-28
| | | | | | | | | | | 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.