Skip to content

Commit

Permalink
global: work around bash-3.0 bug that single quotas remains for "${v-…
Browse files Browse the repository at this point in the history
…$''}"
  • Loading branch information
akinomyoga committed Jul 7, 2022
1 parent e799191 commit 30440b2
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 5 deletions.
10 changes: 8 additions & 2 deletions lib/core-syntax.sh
Expand Up @@ -472,7 +472,10 @@ function ble/syntax/print-status/nest.get-text {
if [[ $nparam == none ]]; then
nparam=
else
nparam=" nparam=${nparam//$_ble_term_FS/$'\e[7m^\\\e[m'}"
# Note #D1774: bash-3.0 bug "${var//../$'...'}" とすると $'' の引用符が残
# る問題の回避の為に行を分けて代入する。
nparam=${nparam//$_ble_term_FS/$'\e[7m^\\\e[m'}
nparam=" nparam=$nparam"
fi

nest=" nest=($nctx w=$nword n=$nnest t=$nchild:$nprev$nparam)"
Expand Down Expand Up @@ -526,7 +529,10 @@ function ble/syntax/print-status/stat.get-text {
if [[ $snparam == none ]]; then
snparam=
else
snparam=" nparam=${snparam//"$_ble_term_FS"/$'\e[7m^\\\e[m'}"
# Note #D1774: bash-3.0 bug "${var//$'...'}" とすると余分な引用符が残る問
# 題を回避する為に行を分けて代入している。
snparam=${snparam//"$_ble_term_FS"/$'\e[7m^\\\e[m'}
snparam=" nparam=$snparam"
fi

local stat_lookahead=
Expand Down
19 changes: 17 additions & 2 deletions make_command.sh
Expand Up @@ -134,7 +134,16 @@ function sub:check/bash300bug {

# bash-3.0 では local -a arr=("$hello") とすると
# クォートしているにも拘らず $hello の中身が単語分割されてしまう。
grc 'local -a [[:alnum:]_]+=\([^)]*[\"'\''`]' --exclude=./test --exclude=./make_command.sh
grc 'local -a [[:alnum:]_]+=\([^)]*[\"'\''`]' --exclude=./{test,ext} --exclude=./make_command.sh

# bash-3.0 では "${scalar[@]/xxxx}" は全て空になる
grc '\$\{[a-zA-Z_0-9]+\[[*@]\]/' --exclude=./{text,ext} --exclude=./make_command.sh --exclude=\*.md --color |
grep -v '#D1570'

# bash-3.0 では "..${var-$'hello'}.." は (var が存在しない時) "..'hello'..." になる。
grc '".*\$\{[^{}]*\$'\''([^\\'\'']|\\.)*'\''\}.*"' --exclude={./make_command.sh,memo,\*.md} --color |
grep -v '#D1774'

}

function sub:check/bash301bug-array-element-length {
Expand Down Expand Up @@ -265,7 +274,13 @@ function sub:check {
sub:check/bash502-patsub_replacement
sub:check/gawk402bug-regex-check
sub:check/array-count-in-arithmetic-expression
sub:check/unset-variable
sub:check/unset-variable |
sed -E 'h;s/'"$esc"'//g;s/^[^:]*:[0-9]+:[[:space:]]*//
\Zunset _ble_init_(version|arg|exit|command)\bZd
\Zbuiltins1=\(.* unset .*\)Zd
\Zfunction unsetZd
\Zreadonly -f unsetZd
g'

sub:check/memo-numbering
}
Expand Down
2 changes: 1 addition & 1 deletion src/util.sh
Expand Up @@ -1100,7 +1100,7 @@ else
local _ble_local_ret=$?
TMOUT= IFS= builtin read -r -d '' "$1" < "$_ble_local_tmpfile"
ble/util/assign/.rmtmp
builtin eval "$1=\${$1%$'\n'}"
builtin eval "$1=\${$1%$_ble_term_nl}"
return "$_ble_local_ret"
}
fi
Expand Down

0 comments on commit 30440b2

Please sign in to comment.