diff options
author | Daniel Shahaf <d.s@daniel.shahaf.name> | 2016-09-04 18:26:32 +0000 |
---|---|---|
committer | Daniel Shahaf <d.s@daniel.shahaf.name> | 2016-09-06 23:48:10 +0000 |
commit | 73c0e8d4e679ed681acc4883234324c7676cc676 (patch) | |
tree | a9f037be06e051ee5bc4f68ecbd57e70f46ad8aa /README | |
parent | 831a336c494b55641b4ba2c8bb89a8acda2709f8 (diff) | |
download | zsh-73c0e8d4e679ed681acc4883234324c7676cc676.tar.gz zsh-73c0e8d4e679ed681acc4883234324c7676cc676.tar.xz zsh-73c0e8d4e679ed681acc4883234324c7676cc676.zip |
39173: _arguments: Escape colons and backslashes in $opt_args unambiguously.
Diffstat (limited to 'README')
-rw-r--r-- | README | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/README b/README index 9de5eb4a9..019294e4b 100644 --- a/README +++ b/README @@ -87,6 +87,15 @@ The "f" qualifier has for many years been the documented way of testing file modes; it allows the "and" test ("*(f+1)" is the documented equivalent of "*(1)") as well as many other forms. +5) The completion helper function _arguments now escapes both backslashes +and colons in the values of option arguments when populating the $opt_args +associative array. Previously, colons were escaped with a backslash but +backslashes were not themselves escaped with a backslash, which lead to +ambiguity: if the -x option took two arguments (as in + _arguments : -x:foo:${action}:bar:$action +), it would be impossible to tell from $opt_args whether the command-line +was '-x foo\:bar' or '-x foo\\ bar'. + Incompatibilities between 5.0.8 and 5.2 --------------------------------------- |