Skip to content

Commit

Permalink
progcomp: fix a bug that "x" at the end of candidate is trimmed in Ba…
Browse files Browse the repository at this point in the history
…sh 5.3
  • Loading branch information
akinomyoga committed Dec 30, 2024
1 parent 1764652 commit d9faeb3
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 1 deletion.
1 change: 1 addition & 0 deletions docs/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
- main: suppress "--bash-debug-version" in "ble-reload" `#D2275` ec422115
- decode(read-user-settings): read the colonless form of `bind -x` of Bash 5.3 `#D2233` 62b23b69
- progcomp: use Bash 5.3 `compgen -V` for completions with newlines (motivated by RBT22) `#D2253` 0e8c388a
- progcomp: fix a bug that `x` at the end of the last completion is trimmed `#D2308` xxxxxxxx
- main: fix attach failure with `--attach=prompt` in Bash 5.3 POSIX mode `#D2267` 49845707
- syntax: fix a problem that `$_` is not preserved `#D2269` e053690d
- keymap/vi: support bash-5.3 readline bindable function `bash-vi-complete` in `vi_nmap` `#D2305` xxxxxxxx
Expand Down
1 change: 0 additions & 1 deletion lib/core-complete.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3817,7 +3817,6 @@ function ble/complete/progcomp/.filter-and-split-compgen {
nlfix=1
out=${out%$'\n'nlfix}
fi
out=${out%x}
else
out=$compgen
fi
Expand Down
21 changes: 21 additions & 0 deletions note.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7728,6 +7728,27 @@ bash_tips
Done (実装ログ)
-------------------------------------------------------------------------------

2024-12-30

* progcomp: fix a bug that "x" at the end of the last completion is trimmed [#D2308]

l ~/.opt/tilix を補完しようとすると何故か "~/.opt/tili " になってしまう。色々
試すと progcomp でファイル名を補完した時に発生する様である。builtin の補完
生成では発生しない。また、"touch fixfixfix" 等で作った "x" で終わるファイル
名に対しても発生するという事が分かった。"touch fixfixfix1" 等 "x" 以外で終
わるファイル名に対しては問題は発生しいない。

問題は ble/complete/progcomp/.filter-and-split-compgen で発生している様だ。
この中で x が消滅している。最近修正した mawk bug に対する workaround が問題
かもしれないと思ったが、その処理よりも前の時点で既に x が失われている様だ。
と思ったら out=${out%x} として明示的に "x" を消去している場所がある。これは
その直前に ${out%nlfix} というダミー文字列消去の処理があるので、それの一時
的な実装の時のコードが残留していたという事の気がする。単純に対象の行を消す
事にした。

これは 5.3 compgen -V 対応によって追加されたコードなので殆どのユーザーに対
しては影響がない物である。

2024-12-24

* vi_[in]map: rlfunc "paste-from-clipboard" の対応 [#D2307]
Expand Down

0 comments on commit d9faeb3

Please sign in to comment.