NYAGOS 4.4.3_0 を公開していただと…

連休前の話ですが、NYAGOS 4.4.3_0 公開したので、更新内容をご説明します。

  • (#116) readline: Ctrl-Z,Ctrl-_ による操作取り消しを実装

3年前に issue を起案してた UNDO をようやく実装しました。やってみたら、意外と簡単でした。まぁ、技術的に難しいというよりも胆力不足で先送りしてたという感じでしょうか(最近、介護中の母を介護施設が預かっていただける曜日が増えたので、体力やら時間やらがかなり改善したのも大きいと思います)

なお、bash と違って、連続する UNDO 動作をまとめるようなことはしません。具体的にいうと、BSキーを4回タイプした後、これを元に戻す時、bash では1回のUNDOで4文字戻りますが、nyagos では4回のUNDOが必要です。これについては、bash のようにまとめても必ずしも使いやすいとも限らないので、無理して合わせる必要ないかなと考えました。

  • (#194) コンソールウインドウの左上のアイコンを更新するようにした。

2年前の起案していた件とありますが、これ、本来は「コンソール窓の左上のアイコン」ではなく、「タスクバーのアイコン」の方。これが nyagos.exe 内蔵のアイコンではなく、CMD.EXE アイコンになってしまうという問題。

今回「コンソール窓」の左上アイコンだけでも変えられるようになったので、関係事項として同issueに書きましたが…本命の方がまだ変えられていないので、クローズならずです。どうすりゃいいんでしょうね、これ。SendMesssage という API は初めて使ったのですが、タスクバーも似たようなことやるんでしょうかね。

CMD.EXE 内蔵コマンドについては、いちいち CMD /C 内蔵コマンド とか打ってられないので、nyagos.d/comspec.luaエイリアスを定義しているのですが、そこに date/time を追加しました(単に気づいてなかっただけ)

date/time なんて使う機会は滅多にないのですが、会社で「現在日時を変えてテストするテスト」をしなくちゃいけないことがあったのですが、一番、手軽に変えるのが date コマンドということで多用したので、追加した次第です。

  • cd 相対パス の後のドライブ毎のカレントディレクトリが狂う不具合を修正
    ( cd C:\x\y\z ; cd .. ; cd \\localhost\c$ ; c: ; pwd -> C:\x (not C:\x\y) )

DOSの頃はカレントディレクトリはドライブごとにあったのですが、Windows では全ドライブで1つしかありません。CMD.EXE(と MSVCRT.DLL)では「=X:」という変な名前の隠し環境変数で X ドライブのカレントディレクトリを保持するようにして、DOSの頃の動作をエミュレートしています。

で、NYAGOS もそれにならっています。(昔は MSVCRT.DLL の機能を使っていた)。で、今回の不具合は、違うドライブに移動する際に、それまでのドライブのカレントディレクトリを保存するのですが、そのタイミングを間違ってしまったという感じです。


で、今回の修正の目玉は事実上「UNDO」しかなくて、ちょっと物足りないのではあったのですが、連休中に結構ガリガリ書くことが予想されたため、一旦、連休前に安定版を出しておいた方が安全ではないかと考えた次第です。実際、かなりガリガリ書いたわけですが、それについては 4.4.4_0 の更新報告にて…