2013.02.01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

MHI 5.0

この「にっき」には暴力シーンやグロテスクな表現が含まれています。

(2013.02.17)

$ NYAOS 3.3.5_0 を公開しました

http://www.nyaos.org/index.cgi?p=NYAOS+3000

  • キャレット(^)を CMD.EXE 同様にエスケープ文字として認識するようにした
  • for,assoc を標準 _nya で関数定義
  • コマンドラインが111文字以上の時にCreateProcess に失敗すると、エラー メッセージが「Too long command line, or bad command or file name.」 になる謎仕様を削除
  • goto が機能していなかった不具合を修正
  • 小文字の関数しか呼べない不具合を修正
  • 「command(s) | nyaos.exe」の時に、メッセージを抑制するようにした。

どちらかというと、3.3.4_4 の方がいいかなと思いましたが、 最初のキャレットの扱いの変更は「仕様変更」なので、 マイナーバージョンアップ扱いにしました。

このキャレットの扱いが微妙でして、CMD.EXE と互換なんですが、 それでも「えっ」という動きをします。ルールとしては

  • ダブルクォーテーションで囲まれていないキャレットは次の文字を無効化する。
  • ダブルクォーテーションで囲まれていないキャレットは機能しない

となっていて、ダブルクォーテーションの方が機能として優先する形となっています。 それゆえ

$ echo " ^" ^" "
quote>

などと一見正しい文なのに、クォートが閉じていないとみなされてしまいます。

これは

  • 一つ目の " は「引用開始」
  • 二つ目の ^" は、引用内ゆえに ^ が無効なので、" が生きており「引用終了」
  • 三つ目の ^" は、引用外ゆえに ^ が有効なので、" が死んでおり「ただの文字」
  • 四つ目の " は「引用開始」

ぎゃー、こんな仕様を採用してる CMD.EXE 爆発しろ!

$ [NYAOS] Windows8 環境で日本語が入力できない

お二人目の不具合報告が来たので、本格的に対応します。

とはいえ、手元に Windows 8 環境がないので、検証プログラムを用意して、 8 をお持ちの方の下で実行していただいて、 文字が化けている原因を確認したいと思います。

eight-xp.PNG

1行目が化けていますが、これは UTF8 文字列を表示しようとしているからです。 Windows8 環境がもしかして、UTF8 がデフォルトになっているのではないかということを 確認するためのものです。

もし、お手元に Windows 8 環境をお持ちの方がいらっしゃいましたら、 以上ご確認いただけますと幸いです。

rltm Win8 Pro + ATOOK 13でやると「日本語」が確定すると「当」と表示され、[93][96][8C]という結果が表示されました。 (2013/02/17 17:09:27)

rltm UTF8 MESSAGE欄は上の画像と全く同じ文字で化けています。 (2013/02/17 17:21:52)

はやま ありがとうございます。どうも、ShiftJIS が入っているのは間違いなさそうですが、日本語の2バイト目がとれてないようですね、ううむ (2013/02/17 17:27:04)

(2013.02.16) | (2013.02.17)'

.net(3) C++(3) Cygwin(12) GAME(3) Groovy(1) Linux(2) Lua(39) Mercurial(13) NYAOS(92) OS/2(7) Oracle(3) Perl(4) Python(22) SKK(4) Windows8(1) album(68) ckw(10) coLinux(1) vim(6) wifky(27) 書評(21) (9)

zetamattaのたいじゅー