aboutsummaryrefslogtreecommitdiff
path: root/cmd.c
Commit message (Collapse)AuthorAge
...
* Remove the cmd_find_{session,window,pane,index} functions (which arenicm2015-12-13
| | | | | just wrappers around cmd_find_target) and just use cmd_find_target directly.
* Move logging into cmd_find_target rather than each function.nicm2015-12-13
|
* Instead of every command resolving the target (-t or -s) itself, preparenicm2015-12-13
| | | | | | | | | | | | | | | | 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.
* Add hooks infrastructure, basic commands (set-hook, show-hooks) and anicm2015-12-08
| | | | | | couple of not very useful client hooks. This will eventually let commands be run at various points and on notifications. Joint work with Thomas Adam.
* Do not set a limit on the length of commands when printing them.nicm2015-11-27
|
* All the cmd_*_entry declarations do not need to be in tmux.h.nicm2015-09-01
|
* Rewrite of the target resolution internals to be simpler and morenicm2015-04-27
| | | | | | | consistent but with much less duplication, but keeping the same internal API. Also adds more readable aliases for some of the special tokens used in targets (eg "{start}" instead of "^"). Some behaviours may have changed, for example prefix matches now happen before fnmatch.
* Make message log a TAILQ.nicm2015-04-25
|
* Move the functions to convert ids from strings into session.c and window.c.nicm2015-04-25
|
* Convert clients list into a TAILQ.nicm2015-04-24
|
* Look up indexes as number before name, makes more sense if windows arenicm2015-04-21
| | | | named starting with numbers. From Thomas Adam.
* Rewrite of tmux mouse support which was a mess. Instead of havingnicm2015-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | options for "mouse-this" and "mouse-that", mouse events may be bound as keys and there is one option "mouse" that turns on mouse support entirely (set -g mouse on). See the new MOUSE SUPPORT section of the man page for description of the key names and new flags (-t= to specify the pane or window under mouse as a target, and send-keys -M to pass through a mouse event). The default builtin bindings for the mouse are: bind -n MouseDown1Pane select-pane -t=; send-keys -M bind -n MouseDown1Status select-window -t= bind -n MouseDrag1Pane copy-mode -M bind -n MouseDrag1Border resize-pane -M To get the effect of turning mode-mouse off, do: unbind -n MouseDrag1Pane unbind -temacs-copy MouseDrag1Pane The old mouse options are now gone, set-option -q may be used to suppress warnings if mixing configuration files.
* Add xreallocarray and remove nmemb argument from xrealloc.nicm2014-10-08
|
* Support using pane id as part of session or window specifier (so %1nicm2014-09-25
| | | | | means session-of-%1 or window-of-%1) and window id as part of session (so @1 means session-of-@1).
* Support ! for last pane.nicm2014-09-25
|
* Show an error if cmd_find_session can't find the current session, likenicm2014-07-13
| | | | the other functions.
* If multiple arguments are given to new-session, new-window,nicm2014-05-13
| | | | | | split-window, respawn-window or respawn-pane, pass them directly to execvp() to help avoid quoting problems. One argument still goes to "sh -c" like before. Requested by many over the years. Patch from J Raynor.
* Just use char ** for argv like normal people, not char *const *.nicm2014-05-09
|
* Remove the choose-list command to prepare for some later choose-* work.nicm2014-04-16
|
* Don't write into buffer if no arguments, reported by Filipe Rosset.nicm2014-03-31
|
* Allow attach-session -t to accept a window and pane to select them onnicm2014-01-09
| | | | attach. Based on a diff from J Raynor.
* We accidentally haven't been using $TMUX to work out the session for anicm2013-10-10
| | | | | | while and in fact it is less useful that using the client ttyname. So don't bother and don't pass it from the client. If we need it in future it is in c->environ.
* Remove now unused cmd_get_default_path.nicm2013-10-10
|
* Support -c for new-session, based on code from J Raynor.nicm2013-10-10
|
* Reserve space for \0 in cmd_print, from George Nachman.Nicholas Marriott2013-05-15
|
* Sort includes and fix spaces.Nicholas Marriott2013-03-25
|
* Rename session idx to session id throughout and add $ prefix to targetsNicholas Marriott2013-03-25
| | | | to use it, extended from a diff from George Nachman.
* Add a wait-for command which blocks a client on a named channel until itNicholas Marriott2013-03-25
| | | | is woken up again (with wait-for -S). From Thiago Padilha.
* Add a command queue to standardize and simplify commands that call otherNicholas Marriott2013-03-24
| | | | | | | | | | | | | | | | | | | | | | 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.
* Fix error reporting for client commands by adding a flag toNicholas Marriott2013-03-24
| | | | | cmd_find_client to tell it whether or not to show errors, sometimes it's needed and sometimes not.
* Need to set clients in context before changing their reference count.Nicholas Marriott2013-03-22
|
* Add functions to allocate and free command contexts rather than doing itNicholas Marriott2013-03-22
| | | | all on the stack.
* Do not crash when calling choose-tree with a command that changes the mode.Nicholas Marriott2013-03-21
|
* Style nits - return (x) not return x.Nicholas Marriott2013-01-18
|
* Add ^ and $ special command targets to select lowest and highestNicholas Marriott2012-12-24
| | | | numbered windows, from Raghavendra D Prabhu.
* Fix session choice so that preferring unattached sessions actuallyNicholas Marriott2012-11-27
| | | | works, reported by Drew Frank.
* Use pgrp of pty fd not pid of immediate child when recovering currentNicholas Marriott2012-09-24
| | | | working directory (like current process). From Marcel Partap.
* add cmd-choose-list to allow arbitrary options to be selected. FromNicholas Marriott2012-09-03
| | | | Thomas Adam.
* 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
|
* Add choose-tree command to show windows and sessions in the sameNicholas Marriott2012-07-08
| | | | | list. Change choose-window and -session to use the same code. From Thomas Adam.
* Do not crash when the current session has no window, fixes a bugNicholas Marriott2012-06-18
| | | | reported by Giorgio Lando. Fix from Thomas Adam.
* Do not return a buffer on the stack, mentioned by jsg a while ago.Nicholas Marriott2012-04-23
|
* Fix printing commands with no arguments, from Benjamin Poirier.Nicholas Marriott2012-04-22
|
* Add move-pane command (like join-pane but allows the same window). AlsoNicholas Marriott2012-03-03
| | | | | -b flag to join-pane and move-pane to place the pane to the left or above. From George Nachman.
* Don't die if fail to get root directory, from Ben Boeckel.Nicholas Marriott2012-02-06
|
* Provide defined ways to set the various default-path possibilities: ~Nicholas Marriott2012-01-31
| | | | | | | | | for home directory, . for server start directory, - for session start directory and empty for the pane's working directory (the default). All can also be used as part of a relative path (eg -/foo). Also provide -c flags to neww and splitw to override default-path setting. Based on a diff from sthen. ok sthen
* Give each window a unique id, like panes but prefixed with @. Based onNicholas Marriott2012-01-30
| | | | work from George Nachman.
* Add some const and fix a warning.Nicholas Marriott2012-01-20
|
* Allow $HOME as default-path in tmux.conf so the same config file can be usedStefan Sperling2011-12-27
| | | | | on different machines regardless of where the user's home directory is. ok nicm