CSView v1.5.0
文字コードとして UTF16 をサポートしました。
- 最初の2バイトが
\xFE\xFF
、もしくは最初の1バイトが\0
の時
→ UTF16BE - 最初の2バイトが
\xFF\xFF
、もしくは二番目の1バイトが\0
の時
→ UTF16LE
と判断するようにしました。今どき、UTF16 なんて使っているところなんで、ほとんど無いとは思うんですが、昔、自分が仕事でたずさわったツールが UTF16LE の TSV なんて使ってたんですよね… 昔の自分をたすけるつもりで対応しました。
はてなブログクライアント v1.1.0
- オプション引数を非オプション引数の後にも置けるようにした。
(例)htnblog -n 10 list
をhtnblog list -n 10
と書くことが可能
書き忘れて、よくカーソルを戻したりするので
htnblog new
: ドラフトのコメント欄に End-Point-URL を挿入するようにした
はてなブログは3つまで無料でブログを管理できるんですが、投稿先を勘違いして事故らないように…と
- htnblog from-stdin: 標準入力から新しい記事を読み込むサブコマンドを用意した
(フォーマットは htnblog new で表示されるものと同じ)
昔、wifky で書いた「にっき」を今サルベージして、markdown化しているんですが、それのインポートを視野に入れての対応です。
- エディター設定に
"C:/Program Files/vim/vim91/vim.exe" --literal
など空白・二重引用符・オプションを含められるようにした
今までは"C:/Program Files/vim/vim91/vim.exe" --literal
という名前の実行ファイルだと解釈されていました。本修正で jj や git の動作と同様にスペースは引数との区切り文字だと解釈させるようにしました。そして、jj や git と違って、二重引用符を適切に解釈するようにしていますので、空白が含まれた実行ファイルパスでも大丈夫です。
Sponge v0.2.0
sponge は Go版と Rust 版を作ってますが、Go版の方です。
- Windows で
cat -n < FILE | sponge FILE
形式で実行した時、シェルが FILE をクローズしていないため、エラーになる不具合を修正 (一旦、リネームだけして、少なくとも差し替えだけは完了させるようにした)
こちらも、wifky の「にっき」のサルベージ中に気付きました。
cat -n FILE | sponge FILE
の時は大丈夫だったんですが、cat -n < FILE | sponge FILE
だと、FILE をクローズするタイミングが遅いので、sponge が上書きリネームする時に失敗するという問題がりました。次のように修正しました (ファイル名は例です)
- 旧動作:
- Rename FILE.tmp → FILE … FILE がオープンされているのでエラー
新動作:
- Rename FILE → FILE~ … オープンされているファイルのリネームは可能
- Rename FILE.tmp → FILE
元ファイルを別名で残すオプションを用意(
-b 接尾語
)- 一時ファイルと同名のファイルが存在している時、エラー終了させるようにした
上だと FILE.tmp に相当する名前のファイルが既にあるとエラーになります。
- 新ファイルのパーミッションを旧ファイルと同じになるようにした。
- 一時ファイルのフォーマットとして
(original-name)-sponge(process-id)
を使うようにした
FILE.tmp とかいう名前だと、ぶつかりやすいので
- エラーや Ctrl-C で中断された時、ゼロバイトのファイルを作成しないようにした
これはファイルを遅延openする型を作りました。最初の1バイトを書き込むまで open 処理を実施しないようにしただけです。
-h
で、args[0], バージョン, OS, GOARCH を標準エラー出力に表示するようにした。
これは自分の標準的な動作です。
nyagos 4.4.15_0 → 少し延期
4月1日にリリースするつもりでしたが、3月31日に不具合修正をしたので、様子見期間を設けるため、一週間ほど延期です。
foreach
で繰り返すコマンド入力のループ を Ctrl-C で中断できない不具合を修正
(本問題は 4.4.6_2 のコミット8bf0a2acb25b152d3d40c188de09858c2ef572ae で混入した模様。#383と4.4.6_0 も参照のこと)
Ctrl-C の入力で、今入力している行を無効化していたのですが、foreach においても「それだけの動作」になっていました。Ctrl-C は内部的には readline.CtrlC というerror型で処理していたんですが、それを判断する箇所をより上位で行うような形にして、foreach 文にて CtrlC を判断できるよう修正しました。1
その他は docs/release_note_ja.md に書いています。SKK 関連の修正はかなり前に行っていたのですが、それだけでも、もっと早く 4.4.14_1 という体裁でリリースしておいた方がよかったかもしれません。