diff options
author | Marc Cornellà <hello@mcornella.com> | 2022-10-03 18:52:50 +0200 |
---|---|---|
committer | Marc Cornellà <hello@mcornella.com> | 2022-10-12 11:06:29 +0200 |
commit | b9be3a43b4da579299b4426b1ba9121f746e2555 (patch) | |
tree | 13127aefd8a728c4aa838759eecd2495f9b9ced1 /lib | |
parent | ee4910e3b36dc5556cad567c3760ee500297cc8e (diff) | |
download | zsh-b9be3a43b4da579299b4426b1ba9121f746e2555.tar.gz zsh-b9be3a43b4da579299b4426b1ba9121f746e2555.tar.bz2 zsh-b9be3a43b4da579299b4426b1ba9121f746e2555.zip |
fix(cli): change unrecognized `\s` in BSD awk (#11146)
In BSD awk, \s is not a valid sequence interchangeable with "space or tab characters"
as it is in GNU awk. This fix uses [ \t] instead, which is all the possibilities that
we need to contemplate when reading the .zshrc file.
Fixes #11146
Diffstat (limited to 'lib')
-rw-r--r-- | lib/cli.zsh | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/cli.zsh b/lib/cli.zsh index db659c11f..f15bd6d63 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -241,21 +241,21 @@ function _omz::plugin::disable { # Remove plugins substitution awk script local awk_subst_plugins="\ - gsub(/\s+(${(j:|:)dis_plugins})/, \"\") # with spaces before - gsub(/(${(j:|:)dis_plugins})\s+/, \"\") # with spaces after + gsub(/[ \t]+(${(j:|:)dis_plugins})/, \"\") # with spaces before + gsub(/(${(j:|:)dis_plugins})[ \t]+/, \"\") # with spaces after gsub(/\((${(j:|:)dis_plugins})\)/, \"\") # without spaces (only plugin) " # Disable plugins awk script local awk_script=" # if plugins=() is in oneline form, substitute disabled plugins and go to next line -/^\s*plugins=\([^#]+\).*\$/ { +/^[ \t]*plugins=\([^#]+\).*\$/ { $awk_subst_plugins print \$0 next } # if plugins=() is in multiline form, enable multi flag and disable plugins if they're there -/^\s*plugins=\(/ { +/^[ \t]*plugins=\(/ { multi=1 $awk_subst_plugins print \$0 @@ -330,14 +330,14 @@ function _omz::plugin::enable { # Enable plugins awk script local awk_script=" # if plugins=() is in oneline form, substitute ) with new plugins and go to the next line -/^\s*plugins=\([^#]+\).*\$/ { +/^[ \t]*plugins=\([^#]+\).*\$/ { sub(/\)/, \" $add_plugins&\") print \$0 next } # if plugins=() is in multiline form, enable multi flag -/^\s*plugins=\(/ { +/^[ \t]*plugins=\(/ { multi=1 } @@ -699,9 +699,9 @@ function _omz::theme::set { # Enable theme in .zshrc local awk_script=' -!set && /^\s*ZSH_THEME=[^#]+.*$/ { +!set && /^[ \t]*ZSH_THEME=[^#]+.*$/ { set=1 - sub(/^\s*ZSH_THEME=[^#]+.*$/, "ZSH_THEME=\"'$1'\" # set by `omz`") + sub(/^[ \t]*ZSH_THEME=[^#]+.*$/, "ZSH_THEME=\"'$1'\" # set by `omz`") print $0 next } |