diff --git a/contrib b/contrib
index 8cac644c..29f97c61 160000
--- a/contrib
+++ b/contrib
@@ -1 +1 @@
-Subproject commit 8cac644c34fa3d07f98655f47c9fad9467469342
+Subproject commit 29f97c6155340581dea2af8020ff482cdc443d6b
diff --git a/docs/ChangeLog.md b/docs/ChangeLog.md
index 4cac86cf..67056af3 100644
--- a/docs/ChangeLog.md
+++ b/docs/ChangeLog.md
@@ -65,6 +65,7 @@
- highlight: fix inconsistent tab width in plain layer (reported by dgudim) `#D2132` f9072c40
- decode: consume incomplete keyseq in macros `#D2137` 27e6309e
- keymap/vi: fix conflicting binding to C-RET in `vi_imap` `#D2146` xxxxxxxx
+- decode: force updating cache for @ESC `#D2148` xxxxxxxx
## Compatibility
@@ -106,6 +107,7 @@
- contrib/fzf-git: fix unsupported command modes (reported by dgudim) `#D2083` ba2b8865
- contrib/bash-preexec: support the latest version of `bash-preexec` (reported by mcarans) `#D2128` 50af4d9c
- contrib/config/execmark: output error status through `ble/canvas/trace` `#D2136` 64cdcd01
+- histdb: suppress outputs from `PRAGMA quick_check;` `#D2147` xxxxxxxx
## Documentation
@@ -125,6 +127,7 @@
- test(bash,util): fix tests in interactive session `#D2123` 06ad3a6c
- test(vi): fix broken states after test `#D2123` 06ad3a6c
- test(bash): fix test cases for history expansion `#D2131` 838b4652
+- test(bash): add tests for bash array bugs `#D2149` xxxxxxxx
## Internal changes
diff --git a/lib/init-cmap.sh b/lib/init-cmap.sh
index 4dee1117..8ed07404 100644
--- a/lib/init-cmap.sh
+++ b/lib/init-cmap.sh
@@ -53,6 +53,7 @@
# 2020-04-29 cmap キャッシュ生成バグ修正に伴う更新 (2)
# 2021-07-12 __detach__ 追加
# 2024-01-21 _ble_decode_csimap_dict 追加に伴う更新
+# 2024-02-07 @ESC, @NUL コード変更に伴う更新
function ble/init:cmap/bind-single-csi {
ble-bind -k "ESC [ $1" "$2"
diff --git a/lib/test-bash.sh b/lib/test-bash.sh
index 3e923884..d37ed8d7 100644
--- a/lib/test-bash.sh
+++ b/lib/test-bash.sh
@@ -2,7 +2,7 @@
ble-import lib/core-test
-ble/test/start-section 'bash' 49
+ble/test/start-section 'bash' 61
# case $word を quote する必要がある条件は?
@@ -298,6 +298,48 @@ ble/test/start-section 'bash' 49
ble/test ret='1 2 3'
fi
+ # BUG bash-3.0
+ # IFS がデフォルト以外の時 declare -a arr2=("${arr1[@]}") (disbale=#D0525)
+ # も正しく動かない。
+ a=(1 2 3)
+ IFS=x
+ declare -a a1=("${a[@]}") # disable=#D0525
+ a2=("${a[@]}") # disable=#D0525
+ IFS=$' \t\n'
+ if ((_ble_bash<30100)); then
+ ble/test code:'ret=$a1' ret=1x2x3
+ ble/test code:'ret=$a2' ret=1
+ else
+ ble/test code:'ret=$a1' ret=1
+ ble/test code:'ret=$a2' ret=1
+ fi
+
+ # BUG bash-3.0
+ # IFS がデフォルト以外の時 declare -a arr2=($v) による split は動かない。代
+ # わりに空白で分割される。
+ IFS=x
+ v=1x2x3
+ declare -a a1=($v)
+ a2=($v)
+ if ((_ble_bash<30100)); then
+ ble/test code:'ret=$a1' ret=1x2x3
+ ble/test code:'ret=$a2' ret=1
+ else
+ ble/test code:'ret=$a1' ret=1
+ ble/test code:'ret=$a2' ret=1
+ fi
+ v='1 2 3'
+ declare -a a1=($v)
+ a2=($v)
+ if ((_ble_bash<30100)); then
+ ble/test code:'ret=$a1' ret=1
+ ble/test code:'ret=$a2' ret='1 2 3'
+ else
+ ble/test code:'ret=$a1' ret='1 2 3'
+ ble/test code:'ret=$a2' ret='1 2 3'
+ fi
+ IFS=$' \t\n'
+
# BUG bash-3.0 [Ref #D1570]
# * "${var[@]/xxx/yyy}" (#D1570) はスカラー変数に対して空の結果を生む。
# ${var[@]//xxx/yyy}, ${var[@]/%/yyy}, ${var[@]/#/yyy} (#D1570) について
@@ -378,7 +420,7 @@ ble/test/start-section 'bash' 49
# Quirks
(
# (#D2123) In all the Bash versions 1.14..5.3, expand_aliases inside
- # "compond-command &" are disabled in interactive sessions.
+ # "compound-command &" are disabled in interactive sessions.
shopt -s expand_aliases
alias e='ble/util/print hello'
ble/test 'eval "e"' stdout=hello
diff --git a/lib/test-keymap.vi.sh b/lib/test-keymap.vi.sh
index 4043374e..99577002 100644
--- a/lib/test-keymap.vi.sh
+++ b/lib/test-keymap.vi.sh
@@ -52,7 +52,7 @@ function ble/keymap:vi_test/check {
local str_expect=$fin
local str_result=$_ble_edit_str
- ble/test --display-code="$title" ret="$ind_expect" stdout="$str_expect[EOF]" \
+ ble/test --depth=1 --display-code="$title" ret="$ind_expect" stdout="$str_expect[EOF]" \
code:'ret=$ind_result; ble/util/put "$str_result[EOF]"'
local ext=$?
diff --git a/note.txt b/note.txt
index 9ac5a278..33552701 100644
--- a/note.txt
+++ b/note.txt
@@ -7075,6 +7075,30 @@ bash_tips
Done (実装ログ)
-------------------------------------------------------------------------------
+2024-02-09
+
+ * test: add tests for bash array bugs [#D2149]
+
+ 何かの修正の時に関係あるかもしれないと思ってテストを追加したが結局関係なかっ
+ た。後でもっと拡張して追加しようと思っていたが忙しいので、keymap.vi に対す
+ る修正があった今もうまとめて入れてしまう事にする。
+
+ * decode: fix test failure by cached @ESC [#D2148]
+
+ テストが失敗する様になった。何処にも昔の @ESC はない様に見えるのに昔の @ESC
+ が現れる。と思ったらキャッシュが残っていた。init-cmap.sh を更新するのを忘れ
+ ていた。また、keymap.vi のテストが失敗した時の行番号などの表示がヘルパー関
+ 数の物になっていたのを直した。
+
+ * histdb: ok ok という謎のメッセージが時々出る [#D2147]
+
+ と思っていたが、これはどうやら histdb のバックアップを生成する時に表示され
+ ている様だ。ok ok という表示が出た直後に ~/.local/state/blesh の中を見たら
+ history のバックアップファイルが作られたばかりだった。
+
+ PRAGMA quick_check を実行した時に表示される。標準出力に出している様だ。標準
+ 出力を潰す事にする。
+
2024-02-08
* keymap/vi: vi_imap C-RET が書き換わっている (reported by 10b14224cc) [#D2146]