summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMarc Cornellà <hello@mcornella.com>2022-10-03 18:52:50 +0200
committerMarc Cornellà <hello@mcornella.com>2022-10-12 11:06:29 +0200
commitb9be3a43b4da579299b4426b1ba9121f746e2555 (patch)
tree13127aefd8a728c4aa838759eecd2495f9b9ced1 /lib
parentee4910e3b36dc5556cad567c3760ee500297cc8e (diff)
downloadzsh-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.zsh16
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
}