github nyaosorg/nyagos 4.4.19_0

4 months ago
  • This version was released on Mar 13, 2026 as a pre-release.
  • The pre-release flag was cleared on Mar 21, 2026 with no modifying on the content.

Changes in 4.4.19_0 (English)

Bug fixes

  • Changed type command to require at least one argument, matching CMD.exe behavior. (#489,#490)
    (This avoids a race condition where a SIGINT from Ctrl-C could be delayed and incorrectly cancel the subsequent command.)

New Features

  • Made input prediction case-insensitive. (go-readline-ny#20, #476 and #477, thanks to @emisjerry)
  • Changed the behavior of the Escape key to act as a prefix key instead of clearing input.(#483, #485) This ensures that:
    • Escape sequences such as \x1B[A (arrow keys) work correctly even when the input is split by the terminal.
    • Pressing Escape is now equivalent to pressing Alt.
  • Esc+Left now behaves the same as Esc+b or Alt+b.
  • Esc+Right now behaves the same as Esc+f or Alt+f.
  • Changed the behavior of Alt+f, which previously moved the cursor to the beginning of the next word, to match GNU readline: it now moves to the end of the current or next word.
  • Alt/Esc+Backspace and ESC+Ctrl+w now delete the word to the left of the cursor.
  • Alt/Esc+d now deletes the current or next word.

Lua

  • Implemented nyagos.setnextline(STR), which sets the initial text for the next readline prompt. (#458, #466, thanks to @emisjerry)

  • nyagos.d/catalog/complete-jj.lua (#473, #474, #499, Thanks to @tsuyoshicho)

    • Regenerate with jj v0.39
    • Modify the generate script make-complete-jj.lua to output CRLF as line endings
    • Enable make update-complete-jj to update complete-jj.lua
  • Split the commit-prediction behavior that had been embedded in FORWARD_CHAR into three separate functions (go-readline-ny#19, #476 and #477, thanks to @emisjerry):

    • FORWARD_CHAR: move the cursor one character to the right
    • ACCEPT_PREDICT: accept the current prediction
    • FORWARD_CHAR_OR_ACCEPT_PREDICT: accept the prediction when the cursor is at the end of the line; otherwise move the cursor one character to the right

    By default, the Right Arrow key and Ctrl-F are now bound to FORWARD_CHAR_OR_ACCEPT_PREDICT.

  • Lua scripts under the nyagos.d directory are now loaded automatically again. (#469, #478)
    However, the standard scripts that used to reside in that directory remain embedded in the executable, and the default nyagos.d directory is empty.
    ( Originally, the directory was not intended for user-defined scripts. )

  • Do not stop processing other startup scripts when one of them fails. (#479)

  • Added runall.lua to nyagos.d/catalog. This utility loads and executes all Lua scripts under the specified directories (#480). Example:

    local runall = require("runall")
    runall("~/scriptdir1;~/scriptdir2")
    
  • Add nyagos.evaln, a version of nyagos.eval that does not strip trailing CRLF from the output (#495)

Documents

  • Rename release note files:
    • release_note_en.mdCHANGELOG.md
    • release_note_ja.mdCHANGELOG_ja.md (#494)
    • history-*.mdCHANGELOG-v*.md (#496)

Internal changes

  • Fixed an issue where the version string was empty when built without GNU Make.
    The version string is now updated via make bump during the release process. (#493)
  • Improved how Context is passed to Lua extensions. By using the Lua registry instead of LState.SetContext, we now suppress redundant Lua stack traces when a command is interrupted by Ctrl-C. (#492)

Changes in 4.4.19_0 (Japanese)

不具合修正

  • type コマンドの仕様を CMD.exe 同様、第一引数必須とした。 (#489,#490)
    (標準入力から読み取ると、Ctrl-C による SIGINT が遅延し、type ではなく、次のコマンドを中断させてしまうことが多いため)

仕様変更

  • 入力予測機能で英大文字・小文字を区別しないようにした (go-readline-ny#20, #476, #477, thanks to @emisjerry)
  • Escキーの扱いを見直し、「入力内容のクリア」ではなくプリフィックスキーとして処理するように変更した。(#483, #485)
    • 上矢印キーを表す \x1B[A などのキーシーケンスが端末の仕様により分割されて入力された場合でも、正しく動作するようになった。
    • Esc の入力が Alt シフトと等価となった。
  • Esc+LeftEsc+b, Alt+b と等価にした。
  • Esc+RightEsc+f, Alt+f と等価にした。
  • これまで次の単語の先頭への移動だった Alt + f の挙動を本家の readline に合わせ、現在または次の単語の末尾へ移動するように修正した。
  • Alt/Esc+Backspace, ESC+Ctrl+w で、カーソル左の単語を削除するようにした。
  • Alt+d で、カーソルから右直近の単語末尾までを削除するようにした。

Lua

  • readline の次回プロンプトに挿入する初期テキストを設定する nyagos.setnextline(STR) を実装 (#458, #466, thanks to @emisjerry)

  • nyagos.d/catalog/complete-jj.lua (#473, #474, #499, Thanks to @tsuyoshicho)

    • jj のサブコマンド補完をv0.39 ベースに更新
    • 改行コードが LF になっていたので、CRLF となるよう、生成スクリプト make-complete-jj.lua を修正
    • make update-complete-jj から complete-jj.lua を更新できるようにした
  • カーソル一文字分の右移動(FORWARD_CHAR)に組み込まれていた予測候補確定を分離し、次の3機能に分離した。(go-readline-ny#19, #476, #477, thanks to @emisjerry)

    • 純粋にカーソル一文字分の右移動のみ (FORWARD_CHAR)
    • 予測候補を確定 (ACCEPT_PREDICT)
    • カーソルが行末の時は予測候補確定、さもなければカーソル一文字分移動(FORWARD_CHAR_OR_ACCEPT_PREDICT)

    なお、右矢印キー、Ctrl-F はデフォルトで FORWARD_CHAR_OR_ACCEPT_PREDICT とした。

  • nyagos.d 以下の Lua スクリプトを再び自動ロード対象とした。(#469, #478)
    ただし、かつてあった nyagos.d 以下の標準スクリプトは引き続き EXE ファイル内に組み込みとし、デフォルトでは同フォルダー直下はファイルのない状態とする。
    ( 当初は nyagos.d 配下にユーザが独自スクリプトを置く想定ではありませんでした )

  • 起動時に読み込むスクリプトのどれかでエラーが発生しても、残りのスクリプトの実行を続けるようにした。(#479)

  • runall.lua スクリプトを nyagos.d/catalog に追加した。これは、指定ディレクトリ以下にあるすべての Lua スクリプトを順にロードして実行する (#480) 。使用例:

    local runall = require("runall")
    runall("~/scriptdir1;~/scriptdir2")
    
  • nyagos.eval の出力末尾の CRLF を削除しないバージョン nyagos.evaln を追加 (#495)

Documents

  • 変更履歴を記録するファイルを変更
    • release_note_en.mdCHANGELOG.md
    • release_note_ja.mdCHANGELOG_ja.md (#494)
    • history-*.mdCHANGELOG-v*.md (#496)

Internal changes

  • GNU Make なしでビルドした場合に、バージョン文字列が空になってしまう問題を修正
    今後、バージョンアップ時に make bump を実行する (#493)
  • Lua 拡張関数への Context 渡しを LState 経由からレジストリ経由に変更した。これにより、Ctrl-C 中断時に Lua インタプリタが冗長なスタックトレースを表示する問題を解消した。(#492)

Don't miss a new nyagos release

NewReleases is sending notifications on new releases.