Skip to content

Commit

Permalink
main: support shell variable "BLE_VER"
Browse files Browse the repository at this point in the history
  • Loading branch information
akinomyoga committed Feb 25, 2024
1 parent 3e9d890 commit a12deda
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 9 deletions.
22 changes: 13 additions & 9 deletions ble.pp
Original file line number Diff line number Diff line change
Expand Up @@ -937,7 +937,7 @@ function ble/base/read-blesh-arguments {

_ble_version=0
BLE_VERSION=$_ble_init_version
function ble/base/initialize-version-information {
function ble/base/initialize-version-variables {
local version=$BLE_VERSION

local hash=
Expand All @@ -955,10 +955,14 @@ function ble/base/initialize-version-information {
local major=${version%%.*}; version=${version#*.}
local minor=${version%%.*}; version=${version#*.}
local patch=${version%%.*}
BLE_VERSINFO=("$major" "$minor" "$patch" "$hash" "$status" noarch)
((_ble_version=major*10000+minor*100+patch))
BLE_VERSINFO=("$major" "$minor" "$patch" "$hash" "$status" noarch)
BLE_VER=$_ble_version
}
function ble/base/clear-version-variables {
builtin unset -v _ble_bash _ble_version BLE_VERSION BLE_VERSINFO BLE_VER
}
ble/base/initialize-version-information
ble/base/initialize-version-variables

#------------------------------------------------------------------------------
# workarounds for builtin read
Expand Down Expand Up @@ -1154,7 +1158,7 @@ function ble/init/check-environment {
}
if ! ble/init/check-environment; then
ble/util/print "ble.sh: failed to adjust the environment. canceling the load of ble.sh." 1>&2
builtin unset -v _ble_bash BLE_VERSION BLE_VERSINFO
ble/base/clear-version-variables
ble/init/clean-up 2>/dev/null # set -x 対策 #D0930
return 1
fi
Expand Down Expand Up @@ -1500,7 +1504,7 @@ function ble/base/initialize-base-directory {
}
if ! ble/base/initialize-base-directory "${BASH_SOURCE[0]}"; then
ble/util/print "ble.sh: ble base directory not found!" 1>&2
builtin unset -v _ble_bash BLE_VERSION BLE_VERSINFO
ble/base/clear-version-variables
ble/init/clean-up 2>/dev/null # set -x 対策 #D0930
return 1
fi
Expand Down Expand Up @@ -1576,7 +1580,7 @@ function ble/base/initialize-runtime-directory {
}
if ! ble/base/initialize-runtime-directory; then
ble/util/print "ble.sh: failed to initialize \$_ble_base_run." 1>&2
builtin unset -v _ble_bash BLE_VERSION BLE_VERSINFO
ble/base/clear-version-variables
ble/init/clean-up 2>/dev/null # set -x 対策 #D0930
return 1
fi
Expand Down Expand Up @@ -1733,7 +1737,7 @@ function ble/base/migrate-cache-directory {
}
if ! ble/base/initialize-cache-directory; then
ble/util/print "ble.sh: failed to initialize \$_ble_base_cache." 1>&2
builtin unset -v _ble_bash BLE_VERSION BLE_VERSINFO
ble/base/clear-version-variables
ble/init/clean-up 2>/dev/null # set -x 対策 #D0930
return 1
fi
Expand Down Expand Up @@ -1791,7 +1795,7 @@ function ble/base/initialize-state-directory {
}
if ! ble/base/initialize-state-directory; then
ble/util/print "ble.sh: failed to initialize \$_ble_base_state." 1>&2
builtin unset -v _ble_bash BLE_VERSION BLE_VERSINFO
ble/base/clear-version-variables
ble/init/clean-up 2>/dev/null # set -x 対策 #D0930
return 1
fi
Expand Down Expand Up @@ -2415,7 +2419,7 @@ function ble/base/unload {
ble/util/import/finalize
ble/base/clean-up-runtime-directory finalize
ble/fd#finalize
builtin unset -v _ble_bash BLE_VERSION BLE_VERSINFO
ble/base/clear-version-variables
return 0
} 0<&"$_ble_util_fd_tui_stdin" 1>&"$_ble_util_fd_tui_stdout" 2>&"$_ble_util_fd_tui_stderr"

Expand Down
1 change: 1 addition & 0 deletions docs/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
- main: support `bash ble.sh --install` `#D2169` 986d26a3 3801a87e
- util(stty): support `bleopt term_stty_restore` (requested by TheFantasticWarrior) `#D2170` e64b02b7
- edit: support `bleopt edit_magic_accept` (requested by pl643, bkerin) `#D2175` xxxxxxxx
- main: support shell variable `BLE_VER` `#D2177` xxxxxxxx

## Changes

Expand Down
62 changes: 62 additions & 0 deletions note.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7385,6 +7385,68 @@ bash_tips

2024-02-25

* main: BLE_VER 対応 [#D2177]

wezterm や atuin integration で _ble_version を参照するのも忍びない。かと言っ
て BLE_VERSINFO は実際の所使いにくい。変数名は微妙だが __cplusplus や
MSCVER や GCCVER の様に一つの整数に纏めた物という事で BLEVER が良さそうな気
がする。然し名前空間的に BLE_VER の方が良い。

* [外部] edit: wezterm で prompt_status_line にカーソルが被さる? [#D2176]
https://github.com/akinomyoga/ble.sh/issues/413

? yes: PROMPT_COMMAND で改行を出力すると計算がずれる?

| 最初は wezterm の integration で勝手に改行を挿入するのが悪いと思ったが、
| よく考えたら PROMPT_COMMAND で何かメッセージを出力する設定があったらそ
| れでも壊れるのではないか。status line を表示するのは PROMPT_COMMAND よ
| りも後にしなければならない気がする。
|
| 実際に問題が起こるかどうかを確認する→と思ったがそうでもない様だ。不思
| 議だ。何故 wezterm の中だと問題が起こるのだろうか。何かの同期の都合でず
| れているのだろうか。ble.sh は buffering を行っているので、ずれる? と思っ
| たが、PROMPT_COMMAND を実行する前に flush している筈だし、wezterm
| precmd は直接 printf しているので遅延される事もない筈だ。或いは wezterm
| は FreshLineAndStartPrompt に於いて何か特別の事をしているのだろうか?
| WezTerm 自体が改行調整を遅延するとは思えない。
|
| 別に ble.sh は PROMPT_COMMAND から出てくる出力を勝手に buffering したり
| はしていない。
|
| 或いは wezterm の中限定で PROMPT_COMMAND で何か出力するとずれてしまうと
| いう事なのか? wezterm の上で試す必要がある気がする。

色々試して分かった。先ず wezterm での問題は空行に対して RET を押した時に
だけ発生する。そして、wezterm でなくても PROMPT_COMMAND の中で何かを出力
したりすると同じ現象が発生する。従って、これは wezterm 特有の問題ではない。

? そもそも PROMPT_COMMAND 評価は ble.sh を使っていない時には空行に対して発
生するのだったか? そこからして振る舞いが違う可能性?

よく見たら当に bleopt prompt_command_changes_layout というオプションが存在
していた。なので本来はこれを指定すれば済む話である。但し、wezterm の場合に
は実際にやって見た所、status line を一旦消して PROMPT_COMMAND を評価してま
た表示するという具合になって余り滑らかでなくなってしまうのでやはり
FreshLine を省略する方向で行けないか質問をする事にする。

* wezterm: PS1, PS2 がそれぞれ左プロンプト・右プロンプトという具合になって
いるが本当か? 実際には使われていない様なので関係ないかもしれないが。また、
その他の prompt_status_line についても値を割り当てるべきか。そもそも
wezterm は status line の様な変な所に表示するプロンプトの存在を想定してい
るか。どの様に使われるのかの説明はあるだろうか。

* wezterm に於いて _ble_version を参照したいがこれは如何にも内部変数である。
スカラー値として BLE_VER なる物を導入して 0.3 にも backport したい気がす
る。因みに別に backport していなくても、0.4 以上というチェックであれば問
題はない筈。問題は BLE_VER を今導入したとしても少なくとも devel release
を一回はして、更にその後暫く待ってからでないと行けないという事。という事
を考えると暫くは内部変数ではあるが _ble_version を使う様にした方が良い気
がする。

BLE_ATTACHED を参照する可能性も考えたが、そもそも BLE_VERSION が設定され
ている時には bash-preexec が登録されていないので何も動作しない。なので、
常に BLE_ATTACHED になっているという想定で良い気がする。

* 2021-09-20 sabbrev: accept-line の時にも展開する可能性について (requested by pl643, bkerin) [#D2175]
https://github.com/akinomyoga/ble.sh/discussions/138
https://github.com/akinomyoga/ble.sh/issues/406#issuecomment-1939461192
Expand Down

0 comments on commit a12deda

Please sign in to comment.