Skip to content

Commit

Permalink
main: fix a bug of BLE_SESSION_ID in bash-3.2
Browse files Browse the repository at this point in the history
  • Loading branch information
akinomyoga committed Feb 6, 2023
1 parent 9a1b4f9 commit 46ac426
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 31 deletions.
1 change: 1 addition & 0 deletions ble.pp
Expand Up @@ -1947,6 +1947,7 @@ function ble/base/initialize-session {
((start_time*=1000000))
else
ble/util/assign start_time 'ble/bin/date +%s'
((start_time*=1000000))
fi
((start_time-=SECONDS*1000000))

Expand Down
2 changes: 1 addition & 1 deletion contrib
Submodule contrib updated 1 files
+10 −8 histdb.bash
3 changes: 2 additions & 1 deletion docs/ChangeLog.md
Expand Up @@ -117,7 +117,7 @@
- auto-complete: cancel auto-complete for `magic-space` `#D1913` 01b4f67
- complete: support ambiguous completion for command paths `#D1922` 8a716ad
- complete: preserve original path segments as long as possible `#D1923` `#D1924` e3cdb9d
- main: support `BLE_SESSION_ID` and `BLE_COMMAND_ID` `#D1925` 44d9e10
- main: support `BLE_SESSION_ID` and `BLE_COMMAND_ID` `#D1925` 44d9e10 `#D1947` xxxxxxx
- main: support an option `--inputrc={diff,all,user,none}` `#D1926` 92f2006
- util (`ble/builtin/trap`): support Bash 5.2 `trap -P` `#D1937` xxxxxxx

Expand Down Expand Up @@ -549,6 +549,7 @@
- histdb: handle multiple exec lines for `histdb_ignore` `#D1942` xxxxxxx
- histdb: kill orphan `sqlite3` processes `#D1943` xxxxxxx
- histdb: back up the database `#D1944` xxxxxxx
- histdb: fix miscellaneous SQL query errors `#D1947` xxxxxxx
- integration: move `fzf` and `bash-preexec` integrations to subdir `#D1939` xxxxxxx

<!---------------------------------------------------------------------------->
Expand Down
92 changes: 63 additions & 29 deletions note.txt
Expand Up @@ -1928,38 +1928,21 @@ bash_tips
- leakvars
- keymap の移動 (これは別 commit にする?)

2023-02-03

* contrib: ble-import で contrib/ は不要なのではないか?

2023-01-26

* [保留] histdb: 現在の有効なファイル名をコマンドに紐づけて記録する可能性について

* コマンドが前提としているファイルの存在を確認して history を skip する。
2023-02-06

ファイル名着色などの情報を参照したい。そうすればファイル名と偶々一致してい
る単語を誤って登録してしまうという事もなくなる。chroma を充実させる動機にも
なる。
* auto-complete: cd 等簡単に成否が分かる物については判定して除外する可能性

複数のファイル名が考えられるので別テーブルに記録する事も考えたが、それだと
データベースサイズが大きくなる気がする。或いは、別テーブルにファイル名だけ
記録しておいて但し id リストを command_history の entry の中に保存するとい
う事にすれば良いのかもしれない。
然し cd を上書きしている場合等にはやはり問題になる。またコマンド毎に対応す
るのは大変なのでこれも progcomp, chroma の様に判定するシェル関数を用意する
可能性。ただ、問題なのは、単純コマンドでない時にコマンドの位置などの判定を
行う必要があるという事。そしてその為には構文解析を各項目に対して回す必要が
ある。という事を考えると重くて現実的でない気がする。

余り形式を複雑にしても仕方がないしデータベース上でファイル名を操作するとも
思えない。後で特定のファイル名を指定しているコマンドを探るとしても、ファイ
ルの相対パスを解決しなければ使えない。
2023-02-03

然し改めて考えたら、既にファイルが存在しているかどうかに関わらず実行するコ
マンドもあるのだからファイル名と一致するかどうかで候補として生成するかどう
かを変えるのは余り良いアイディアではない様な気もする。どうなのだろう。
* contrib: ble-import で contrib/ は不要なのではないか?

* 更に改めて考えてみると本当に fish がここまでの情報を記録しているのかも不
明である。oil の zulip ではその様な事を言っている人がいたが、実は単に
fish は cwd だけを見て判定している可能性もある。実際検索しても其処まで積
極的に履歴を記録している訳でもない様だ。2016に初めて cwd を一緒に記録し始
めた程度である。
2023-01-26

* histdb: history の中から情報を取り出してそれを使って何かする機能

Expand All @@ -1976,7 +1959,7 @@ bash_tips
histdb -d [.|dir] ディレクトリ指定
histdb -t [.|dir] ディレクトリ指定(サブディレクトリも含める)
histdb -g glob コマンドをパターンで絞り込み
hsitdb -r command_id コマンド削除
histdb -r command_id コマンド削除

2023-01-25

Expand Down Expand Up @@ -6720,6 +6703,57 @@ bash_tips

2023-02-06

* [棄却] histdb: 現在の有効なファイル名をコマンドに紐づけて記録する可能性について [#D1948]

* コマンドが前提としているファイルの存在を確認して history を skip する。

ファイル名着色などの情報を参照したい。そうすればファイル名と偶々一致してい
る単語を誤って登録してしまうという事もなくなる。chroma を充実させる動機にも
なる。

複数のファイル名が考えられるので別テーブルに記録する事も考えたが、それだと
データベースサイズが大きくなる気がする。或いは、別テーブルにファイル名だけ
記録しておいて但し id リストを command_history の entry の中に保存するとい
う事にすれば良いのかもしれない。

余り形式を複雑にしても仕方がないしデータベース上でファイル名を操作するとも
思えない。後で特定のファイル名を指定しているコマンドを探るとしても、ファイ
ルの相対パスを解決しなければ使えない。

然し改めて考えたら、既にファイルが存在しているかどうかに関わらず実行するコ
マンドもあるのだからファイル名と一致するかどうかで候補として生成するかどう
かを変えるのは余り良いアイディアではない様な気もする。どうなのだろう。

* 更に改めて考えてみると本当に fish がここまでの情報を記録しているのかも不
明である。oil の zulip ではその様な事を言っている人がいたが、実は単に
fish は cwd だけを見て判定している可能性もある。実際検索しても其処まで積
極的に履歴を記録している訳でもない様だ。2016に初めて cwd を一緒に記録し始
めた程度である。

→今 fish の振る舞いを試してみたが、コマンド実行時に存在したファイルを消し
ても、同じディレクトリで同じファイルが autosuggestion の候補として表示され
る。つまり、(少なくともデフォルトの設定では) fish は別にコマンドライン中に
含まれるファイル名について記録して存在を照合しているという訳ではない様だ。

逆に cd 等の既知のコマンドについてそれが成功するかどうかをその場で判定して
いるというだけの事なのかもしれない。

うーん。これについては棄却する事にする。代わりにコマンドが成功するかどうか
を高速に判定できればそのコマンドをスキップするという機能を項目として残す。

* histdb: 様々の sql query エラーの修正 [#D1947]

* main: bash-3.2 で BLE_SESSION_ID の時刻決定が誤っている。

bash-3.2 でちゃんと words を登録できていない気がする何故? 或いは、もっと
前から駄目だった? と思ったらどうやら時刻が誤っている様だ。そし
て_ble_base_session の時刻を見ると何故か 1000000 分の1の少数にされている。
うーん。結局これは ble/base/initialize-session の初期化が問題だった。

更に bash-3.2 で session が登録されていない。うーん。調べてみた所様々なエラー
が出ていた。bash-3.2 に限らず bash-4.0+ でも sqlite がエラーメッセージを出
しているのを捨てていた。直した。

* 2022-01-08 term: prompt_status_line でずれが生じる端末がやはり存在している。何故だろうか [#D1946]
Ref https://github.com/borisfaure/terminology/pull/115

Expand Down Expand Up @@ -7054,7 +7088,7 @@ bash_tips
きでは。→実際にやってみたら timestamp で比較してちゃんと rule が発火するの
で ln -sf で上書きしてしまえばOK。

* histdb: 今までに入力した単語を記録する機能。単語自動補完 [#D1938]
* histdb: 今までに入力した単語を記録する機能。単語自動補完 (histdb-word) [#D1938]

当初は対応する session_id, exec_id と紐づけて管理する事を考えていたが、其処
までする必要性はあるだろうか。そもそも何故単語を記録するのかというと、補完
Expand Down

0 comments on commit 46ac426

Please sign in to comment.