Diff
1diff --git a/lib/cli.zsh b/lib/cli.zsh
2index e490149e0e669df41b46b1310f9af8d1645b5b57..a10b0e1471aac0c35c94c15f25cb19afffd4f62c 100644
3--- a/lib/cli.zsh
4+++ b/lib/cli.zsh
5@@ -226,13 +226,17 @@ function _omz::plugin::disable {
6 return 1
7 fi
8
9+ # Remove plugins substitution awk script
10+ local awk_subst_plugins="\
11+ gsub(/\s+(${(j:|:)dis_plugins})/, \"\") # with spaces before
12+ gsub(/(${(j:|:)dis_plugins})\s+/, \"\") # with spaces after
13+ gsub(/\((${(j:|:)dis_plugins})\)/, \"\") # without spaces (only plugin)
14+"
15 # Disable plugins awk script
16 local awk_script="
17 # if plugins=() is in oneline form, substitute disabled plugins and go to next line
18 /^\s*plugins=\([^#]+\).*\$/ {
19- gsub(/\s+(${(j:|:)dis_plugins})/, \"\") # with spaces before
20- gsub(/(${(j:|:)dis_plugins})\s+/, \"\") # with spaces after
21- gsub(/\((${(j:|:)dis_plugins})\)/, \"\") # without spaces (only plugin)
22+ $awk_subst_plugins
23 print \$0
24 next
25 }
26@@ -240,29 +244,22 @@ function _omz::plugin::disable {
27 # if plugins=() is in multiline form, enable multi flag and disable plugins if they're there
28 /^\s*plugins=\(/ {
29 multi=1
30- gsub(/\s+(${(j:|:)dis_plugins})/, \"\")
31- gsub(/(${(j:|:)dis_plugins})\s+/, \"\")
32- gsub(/\((${(j:|:)dis_plugins})\)/, \"\")
33+ $awk_subst_plugins
34 print \$0
35 next
36 }
37
38-# if multi flag is enabled and we find a valid closing parenthesis,
39-# add new plugins and disable multi flag
40+# if multi flag is enabled and we find a valid closing parenthesis, remove plugins and disable multi flag
41 multi == 1 && /^[^#]*\)/ {
42 multi=0
43- gsub(/\s+(${(j:|:)dis_plugins})/, \"\")
44- gsub(/(${(j:|:)dis_plugins})\s+/, \"\")
45- gsub(/\((${(j:|:)dis_plugins})\)/, \"\")
46+ $awk_subst_plugins
47 print \$0
48 next
49 }
50
51-multi == 1 {
52- gsub(/\s+(${(j:|:)dis_plugins})/, \"\")
53- gsub(/(${(j:|:)dis_plugins})\s+/, \"\")
54- gsub(/\((${(j:|:)dis_plugins})\)/, \"\")
55- print \$0
56+multi == 1 && length(\$0) > 0 {
57+ $awk_subst_plugins
58+ if (length(\$0) > 0) print \$0
59 next
60 }
61