diff options
| author | Marc Cornellà <marc@mcornella.com> | 2024-05-08 22:20:42 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-08 22:20:42 +0200 |
| commit | b0561d28b5a3efbbcca4700626fa32e62c23959b (patch) | |
| tree | 60b7027b8217d024d5962c205b7fff562e5cd424 /lib/cli.zsh | |
| parent | 8c5f64cc2f0e75399a1e906e39713ed25b65ece1 (diff) | |
| download | zsh-b0561d28b5a3efbbcca4700626fa32e62c23959b.tar.gz zsh-b0561d28b5a3efbbcca4700626fa32e62c23959b.tar.bz2 zsh-b0561d28b5a3efbbcca4700626fa32e62c23959b.zip | |
fix(cli): fix edge cases in `omz plugin disable` command (#12401)
Also introduces tests, which will be refactored into the proper
place when a test system is finally designed.
Fixes #12400
Diffstat (limited to 'lib/cli.zsh')
| -rw-r--r-- | lib/cli.zsh | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/cli.zsh b/lib/cli.zsh index 4a8d4d127..383b0cfb0 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -241,10 +241,18 @@ function _omz::plugin::disable { # Remove plugins substitution awk script local awk_subst_plugins="\ - gsub(/[ \t]+(${(j:|:)dis_plugins})/, \"\") # with spaces before - gsub(/(${(j:|:)dis_plugins})[ \t]+/, \"\") # with spaces after - gsub(/\((${(j:|:)dis_plugins})\)/, \"\") # without spaces (only plugin) + gsub(/[ \t]+(${(j:|:)dis_plugins})[ \t]+/, \" \") # with spaces before or after + gsub(/[ \t]+(${(j:|:)dis_plugins})$/, \"\") # with spaces before and EOL + gsub(/^(${(j:|:)dis_plugins})[ \t]+/, \"\") # with BOL and spaces after + + gsub(/\((${(j:|:)dis_plugins})[ \t]+/, \"(\") # with parenthesis before and spaces after + gsub(/[ \t]+(${(j:|:)dis_plugins})\)/, \")\") # with spaces before or parenthesis after + gsub(/\((${(j:|:)dis_plugins})\)/, \"()\") # with only parentheses + + gsub(/^(${(j:|:)dis_plugins})\)/, \")\") # with BOL and closing parenthesis + gsub(/\((${(j:|:)dis_plugins})$/, \"(\") # with opening parenthesis and EOL " + # Disable plugins awk script local awk_script=" # if plugins=() is in oneline form, substitute disabled plugins and go to next line |
