aboutsummaryrefslogtreecommitdiff
path: root/cmd-parse.y
Commit message (Collapse)AuthorAge
* Add helpers for the simple case of parse string and add to command queue.nicm2020-04-13
|
* When parsing strings, put all commands in one group even if there arenicm2020-04-13
| | | | | | newlines. This means that for example bind q { a \n b } and bind q "a ; b" are the same. Also log commands in different groups separated by ;; rather than ; (a command list like this should never be user visible).
* Add a way to mark environment variables as "hidden" so they can be usednicm2020-03-31
| | | | by tmux but are not passed into the environment of new panes.
* Ignore empty commands rather than adding them to the command list rathernicm2020-01-28
| | | | than trying to skip them later, fixes problem reported by M Kelly.
* Change so that assignments may be specified alone - a command isn'tnicm2020-01-27
| | | | required. GitHub issue 2062.
* Add function to the right file.nicm2019-12-12
|
* Memory leaks, from Igor Wong in GitHub issue 1934.nicm2019-10-14
|
* Do not lazily use BUFSIZ for "I don't care what size" when buildingnicm2019-10-03
| | | | | strings because it is only guaranteed to be 256 bytes and even the default 1024 is not always enough. Reported by Gregory Pakosz.
* Set up format tree for %if, GitHub issue 1896.nicm2019-09-10
|
* Handle comments more correctly inside {}, from Avi Halachmi.nicm2019-06-18
|
* Show filename with -v for source-file.nicm2019-06-14
|
* A couple of minor parser changes around conditions: 1) only treat #{nicm2019-06-14
| | | | | specially after a condition, otherwise as a comment (which is more as most people expect) 2) allow formats to be quoted after a condition.
* Add a -v flag to source-file to show the commands and line numbers.nicm2019-06-05
|
* yacc(1) copies its union so it is not a good place to storenicm2019-06-02
| | | | | TAILQ_HEADs. Allocate them instead. Found from a problem reported by sthen@.
* Need stdlib.h, from Ben Boeckel.nicm2019-06-01
|
* Allow % strings that are all numbers or %s, and fix a double free. Bothnicm2019-05-31
| | | | reported by George Nachman, GitHub issues 1765 and 1766.
* No longer need to reduce line number by one.nicm2019-05-30
|
* Use VIS_CSTYLE for the arguments and add the missing escapes it cannicm2019-05-29
| | | | generate to the parser.
* The line number needs to be updated only after the \n is processed bynicm2019-05-29
| | | | | the parser, so store a flag and update it next time around. Also each new line needs its own shared data.
* Support \ooo escapes, from Avi Halachmi.nicm2019-05-29
|
* Add an additional {} syntax for defining strings in the configurationnicm2019-05-27
| | | | | | | 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.
* Some other platforms doesn't support fmemopen(3) (not unexpectedly), sonicm2019-05-26
| | | | | don't use it - since we only use getc/ungetc on the file anyway it is easy not to.
* Merge cmd_list_parse into cmd-parse.y so it can use the new aliasnicm2019-05-25
| | | | processing code.
* Fix line numbers - commands are added after the line ends so they need tonicm2019-05-23
| | | | get line - 1.
* Break the argument escaping code into a separate function and use it tonicm2019-05-23
| | | | escape key bindings in list-keys. Also escape ~ and ; and $ properly.
* Replace the split parser code (cfg.c and cmd-string.c) with a singlenicm2019-05-23
parser using yacc(1). This is a major change but is clearer and simpler and allows some edge cases to be made more consistent, as well as tidying up how aliases are handled. It will also allow some further improvements later. Entirely the same parser is now used for parsing the configuration file and for string commands. This means that constructs previously only available in .tmux.conf, such as %if, can now be used in string commands (for example, those given to if-shell - not commands invoked from the shell, they are still parsed by the shell itself). The only syntax change I am aware of is that #{} outside quotes or a comment is now considered a format and not a comment, so #{ is now a syntax error (notably, if it is at the start of a line). This also adds two new sections to the man page documenting the syntax and outlining how parsing and command execution works. Thanks to everyone who sent me test configs (they still all parse without errors - but this doesn't mean they still work as intended!). Thanks to Avi Halachmi for testing and man page improvements, also to jmc@ for reviewing the man page changes.