summaryrefslogtreecommitdiffstats
path: root/arguments.c
AgeCommit message (Collapse)Author
2020-06-12Fix quoting with newlines and single quotes.nicm
2020-06-04Instead of using a custom parse function to process {}, treat it as anicm
set of statements and parse with yacc, then convert back to a string as the last step. This means the rules are consistent inside and outside {}, %if and friends work at the right time, and the final result isn't littered with unnecessary newlines.
2020-05-25Fix some error strings, from Kris Katterjohn.nicm
2020-05-16Add formats for after hook command arguments.nicm
2020-04-22Change so main-pane-width and height can be given as a percentage.nicm
2020-04-12Print empty arguments properly.nicm
2020-03-21Break code to convert an argument as a percentage into a common function.nicm
2020-03-17getopt is not required to set optarg to NULL when there is no argumentnicm
and some do not, so set it explicitly each time.
2019-07-09Add a -H flag to send-keys to send literal keys given as hex numbersnicm
(needed for control clients to send mouse sequences). Also add some format flags for UTF-8 and SGR mouse mode. Requested by Bradley Smith in GitHub issues 1832 and 1833.
2019-06-20Add a -A flag to show-options to show parent options as well.nicm
2019-05-29Use VIS_CSTYLE for the arguments and add the missing escapes it cannicm
generate to the parser.
2019-05-28Do not read past the end of the argument string if it is empty.nicm
2019-05-27Add an additional {} syntax for defining strings in the configurationnicm
file, making it much tidier to define commands that contain other tmux or shell commands (like if-shell). Also tweak bind-key to expect a string if it is only given one argument, so {} can be used with it as well. From Avi Halachmi.
2019-05-23Break the argument escaping code into a separate function and use it tonicm
escape key bindings in list-keys. Also escape ~ and ; and $ properly.
2019-04-28Support multiple occurances of the same argument. Use this for a newnicm
flag -e to new-window, split-window, respawn-window, respawn-pane to pass environment variables into the newly created process. From Steffen Christgau in GitHub issue 1697.
2017-08-23Run alert hooks based on the options rather than unconditionally, fromnicm
Brad Town.
2017-05-30Rewrite of choose mode, both to simplify and tidy the code and to addnicm
some modern features. Now the common code is in mode-tree.c, which provides an API used by the three modes now separated into window-{buffer,client,tree}.c. Buffer mode shows buffers, client mode clients and tree mode a tree of sessions, windows and panes. Each mode has a common set of key bindings plus a few that are specific to the mode. Other changes are: - each mode has a preview pane: for buffers this is the buffer content (very useful), for others it is a preview of the pane; - items may be sorted in different ways ('O' key); - multiple items may be tagged and an operation applied to all of them (for example, to delete multiple buffers at once); - in tree mode a command may be run on the selected item (session, window, pane) or on tagged items (key ':'); - displayed items may be filtered in tree mode by using a format (this is used to implement find-window) (key 'f'); - the custom format (-F) for the display is no longer available; - shortcut keys change from 0-9, a-z, A-Z which was always a bit weird with keys used for other uses to 0-9, M-a to M-z. Now that the code is simpler, other improvements will come later. Primary key bindings for each mode are documented under the commands in the man page (choose-buffer, choose-client, choose-tree). Parts written by Thomas Adam.
2017-04-22Do not need getopt.h.nicm
2017-01-18Plain stravis() because it will mangle UTF-8 characters, so addnicm
utf8_stravis() which calls our existing utf8_strvis() and use it instead
2017-01-18Run arguments through vis() as well when printing them.nicm
2016-10-11Add static in window-*.c and move some internal functions out of tmux.h.nicm
2016-10-10Some more static.nicm
2016-01-19I no longer use my SourceForge address so replace it.nicm
2015-11-27Do not set a limit on the length of commands when printing them.nicm
2015-08-29struct args_entry can go into arguments.c.nicm
2014-10-20Tidy up some includes.nicm
2014-04-11Don't blindly increase offsets by the return value of snprintf, if therenicm
wasn't enough space this will go off the end. Instead clamp to the available space. Fixes crash reported by Julien Rebetez.
2014-01-15Couple of fixes from cppcheck via Tiago Cunha.nicm
2014-01-09Simplify args_set, from Tiago Cunha.nicm
2013-11-17Include unistd.h as it is the standard location for getopt().okan
OK millert@
2013-05-31Instead of eating 1024 bytes or so for the arguments of each command,Nicholas Marriott
save memory by using an RB tree. From Tiago Cunha.
2012-07-10xfree is not particularly helpful, remove it. From Thomas Adam.Nicholas Marriott
2011-07-09Pass the right size to calloc (* not **).Nicholas Marriott
2011-01-30Free old argument even if setting to NULL.Nicholas Marriott
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.