Ng for Win32 変更履歴 by Tillanosoft 0.8 2007.1.29 β8版 0.7 版からの変更点として以下があります。 1. コントロールキーのマッピングの拡張 0.6 版までは jornada 690/720 などの H/PC を対象に、Tab キーをコン トロールキーとして利用できるように設定するオプションを設けていまし たが、CAPS や EISU が A の左にある場合に、それらのキーをコントロー ルキーとして利用可能なようにしました。 また、Pocket PC に Bluetooth キーボードをつける場合も増えてきまし たので、Pocket PC でもコントロールキーのマッピングが行えるようにし ました。 0.7 2006.1.12 β7版 0.6 版からの変更点として以下があります。 1. その場変換対応 その場変換に対応しました。 2. Windows Mobile 5 Pocket PC 対応 Windows Mobile 5 の Pocket PC に対応しました。具体的にはソフトキー 対応のメニューが出るようにしました。 3. Pocket PC での IME 制御対応 Pocket PC においても IME を制御するようにしました。たとえば、C-x な どを押下した際に自動的に日本語モードがオフになり、コマンド入力が終 了した時点で元のモードに戻ります。 4. 高解像度 Pocket PC (VGA Pocket PC) に対応 高解像度 Pocket PC に対応しました。高解像度のフォントが利用可能とな りました。 5. フォントの指定で weight も指定できるように weight で 800 などを指定するとそれなりにフォントが太くなります。た だ、固定幅ではなくなるようで使いにくいかもしれません。 6. ウィンドウアイコンとして大きなアイコンを設定 Alt+TAB で表示されるアイコンはウィンドウアイコンが用いられますが、 今までは小さなアイコンが拡大されて表示されてました。 7. what-line 追加 現在行が何行目かを表示する what-line を追加しました。 8. mode-line がウィンドウからはみ出しているのを修正 できるだけ画面に収まるようにしました。 9. ダイアログボックスフォントの大きさ指定を廃止 sigmarion III で設定画面が小さすぎたのを直しました。 10. メニューに「上書き保存」を追加 0.6 2001.2.20 β6版 0.5 版からの変更点として以下があります。 1. Pocket PC 対応 Pocket PC に対応しました。 2. StrongARM での不具合に対応 StrongARM 版で、カーソルがおかしな位置に来る問題を直しました。本件 StrongARM のコンパイラの問題に起因していました。 3. jornada 720 のキーボードの不具合に対応 jornada 720 日本語版のキーボードで C-r を押下したときに WM_CHAR メッ セージとともにわたるデータとして C-s を示すコードが渡されていました。 これにより、Ng for Win32 にて isearch-backward が C-r で呼び出せて いませんでした。 本件を Ng 側で回避する設定が行えるようにしました。(M-x configure で、 「キー」タブを押し、設定) 4. リソース開放もれ修正 プログラム終了時、ウィンドウリソースが一部開放されていなかったのを 開放するようにしました。 0.5 2000.9.11 β5版 0.4 版からの変更点として以下があります。 1. コマンドバンドのサポート メニューバーとツールバーが備わったコマンドバンドを入れ、タップによ りある程度の編集作業が行えるようにしました。コマンドバンドが不要の 際は設定により従来のような画面に設定することも可能です。 2. キャレットの採用 カーソルの表示を縦棒から Windows 標準のキャレットに変更しました。こ れによりカーソルがブリンクするようになりました。 3. ng.ini のパスに関する問題の修正 ng.ini が日本語を含むパスに置かれている場合、configure でパスを正し く指定しても起動時に ng.ini が読み込まれない場合がありました。 4. kill-buffer での確認の削減 ファイルに関連していないバッファを kill-buffer する際に、kill して も良いか確認が行われていましたが、GNU Emacs などと同様に、ファイル に関連していないバッファについては確認なしで kill されるようにしま した。 5. フォント設定の追加 Windows CE 版にて、フォントの設定変更ができるようになりました (M-x configure)。 6. Keyboard Remapper に対応 日本語キーボード配列に応じた処理を行っている部分がありましたが、中 村さんの Keyboard Remapper (http://www.kiwi.ne.jp/~snak/) を利用し ている場合に、それらの処理が行われないように設定できるようにしまし た。Keyboard Remapper を利用して ANSI 配列にしている場合は、M-x configure の「キー」タブにて「日本語キー配列を利用中」のチェックを 外してください。 7. コントロールキーのリマップ機能の削除 Caps キーを Ctrl キーとして取り扱うための機能を入れていましたが、同 様の機能をかなり完全な形で行うソフト(Keyboard Remapper, http://www.kiwi.ne.jp/~snak/)が出てきましたので、Ng ではこの機能の サポートをとりやめました。 8. スタイラス/マウスによるクリック時の問題の修正 キーによりカーソルを上下移動させた直後にスタイラス/マウスでカーソル 位置を変更し、さらにその後、キーでカーソルを上下させたとき、横位置 がスタイラス/マウスで変更する前の位置に戻ってしまう問題がありました。 また、折り返しがされている行の折り返し以降の部分をスタイラス/マウス でタップ/クリックした際に、横位置がずれる場合がありました。 9. fill-paragraph まわりのバグ修正 fill-paragraph が無限ループをひき起こす場合があるとか、改行で終らな いバッファ末の段落に対して fill-paragraph を行なうと末尾の数文字が 消えるなどの問題を修正しました。これらの問題は 10 年間もの長い間、 バグのまま放っておかれていたようです。 10. PsPC の入力パネルのオンオフへの対応 PsPC での入力パネルのオンオフに対応して、ウィンドウの大きさを変更す るようにしました(ソースのみ、バイナリ提供なし)。 11. Kctrl への対応 英語版 Windows CE を日本語化して利用するときにも Ng for Win32 が利 用できるようにしました(ソースのみ、バイナリ提供なし)。 12. 英語版対応 英語版(Mg for Win32)を作成しました(ソースおよび別パッケージ)。 0.4 1999.6.7 β4版 0.3 版からの変更点として以下があります。 1. Windows 95/98 サポート Windows 95/98 上で動作する版も公開します。このバイナリ(Ng.exe)は Windows NT でも動作します。これにともない、Windows NT でしか動かな いもののサポートは取りやめます。 2. Buffer Menu モードのサポート C-x C-b(list-buffers)で表示されるバッファ一覧は fundamental モード で表示されており、そのバッファ一覧上でのバッファの選択や削除はサポー トされていませんでした。0.4 版では、GNU Emacs で見られる Buffer Menu モードのうち、中心となる機能をサポートしました。 具体的には SUPDOC.N32.txt をご参照ください。 3. list-buffers での半角カタカナバッファ名の乱れの修正 C-x C-b(list-buffers)で表示されるバッファ一覧に半角カタカナのバッファ 名のものが含まれると表示が乱れていたのを修正しました。 4. NT 版でのコマンドライン引数の不具合の解消 NT 版でコマンドラインh引数を受け付けないという問題がありましたが、 これを解消いたしました。 5. copy-buffer-as-kill の追加 バッファの内容すべてを kill buffer にコピーするコマンド copy-buffer-as-kill を追加しました。なお、copy-buffer-as-kill は Ng 独自のコマンドであり、Windows のカットバッファを介して他のアプリケー ションにバッファの内容を簡単に渡すことを目的に実装しました。 0.3 1999.5.20 β3版 0.2 版からの変更点として以下があります。 1. コマンドラインでの日本語ファイル名のあつかいの修正 コマンドラインで日本語のファイル名を与えると、そのファイルがうまく 開けない問題がありましたが、これを修正しました。 2. Windows NT 版対応 Windows NT 上で動作する版も公開します。このバイナリ(Ng.exe)は残念な がら Windows 95/98では動作しません。 3. Font 指定機能 (Windows NT 版のみ) M-x configure 内にフォントの指定機能を入れました。この機能が使える のは今のところ Windows NT 版のみです。 4. find-alternate-file のサポート find-alternate-file をサポートしました。find-alternate-file は間違っ て目的のファイルと異なったファイルを開いてしまったときなどに、別の ファイルを同じバッファで読み込みなおすためのコマンドです。通常はC-x C-v にマップされています。 5. dired-flag-backup-files のサポート dired-flag-backup-files をサポートしました。dired-flag-backup-files は Ng が作成したバックアップファイル(ファイル名の末尾が「~」のもの) に対して削除用の印を付けるコマンドです。通常「~」キーにマップされて います。 6. 画面サイズの変更に対応 (CE 2.0 以降) Windows CE 2.0 以降ではタスクバーを自動的に隠す設定を選択することが できますが、自動的に隠すか隠さないかを Ng 起動後に変更した場合に Ng の画面サイズも自動的に変更されるようにしました。 7. find-file からの dired 起動についての修正 find-file でフォルダを開こうとすると dired が起動するようになってい ますが、フォルダ名の最後に「\」が含まれると dired が起動せず、ファ イルが開いたときのような振る舞いをしていました。これを修正し、かな らず dired が起動するようにしました。 8. 空フォルダの dired の修正その 2 dired の対象としてファイルがまったく含まれないフォルダを与えると dired が起動しないという問題があり、0.2 版で修正しましたが、0.2 で 修正されたのは本体メモリ上に存在する空フォルダに対してのみで、フラッ シュカード上の空フォルダはあいかわらず dired できていませんでした。 これを修正しました。 9. その他細かい問題の修正 その他、ソフトウェア記述上の効率関連の修正等を行っています。 0.2 1999.4.21 β2版 configure 項目の追加など 0.1 版からの変更点でもっともご注意いただきたいのは、ctrlmap-mode が ng.ini の記述からなくなったことです。代わりに 0.2 版からは、 configure で設定する項目として「コントロールキーの英数キーへの割り当 て」があります。ng.ini に対する ctrlmap-mode の記述は 0.2 版からはエ ラーになりますのでご注意ください。 本件を含めて 0.1 版からの変更点として以下があります。 1. ctrlmap-mode の削除 同様の設定は M-x configure によって呼び出されるプロパティシートにて 行うようになリました。これにより ctrlmap-mode の ng.ini への記述は エラーとなりますのでご注意ください。 2. configure のプロパティシート化 0.1 版では M-x configure を実行した場合出て来るウィンドウは単なるダ イアログボックスでしたが、0.2 版からは複数のシートを持つプロパティ シートとなります。 3. ビープ音(configure) ビープ音が出るようにしました。ビープ音として任意のサウンドを割り当 てることが可能です。ビープ音の割り当ては M-x configure にて行います。 4. ファイル名の強制小文字変換の廃止 Ng for Win32 ver 0.1 までは DOS 版の Ng の流れをくみ、ファイル名は すべて小文字で取り扱っておりました。しかし、実際には Windows CE は ファイル名をつけるときに大文字小文字を区別するためこの処理を行わな いようにしました。 (小文字化の処理は、たとえば、EmLog および EmTerm にて記事を投稿する ときに障害になっていました。) 5. コマンドラインオプション -f の追加 コマンドラインオプションとして -f オプションを追加しました。-f オプ ションは Ng の起動直後に指定されたコマンドを実行するためのものです。 たとえば -f yank を指定することにより Ng 起動後、カットバッファに存 在するテキストを Ng に貼り付けます。 (このオプションは実は EmLog で -f yank したいがために追加しました。) 6. dired における 2000 年問題対応 dired の画面でファイルの更新時刻の年の部分が下2桁であらわされていま したが、これを4桁表示に修正しました。 7. 空フォルダの dired ファイルがまったく存在しないフォルダに対して dired ができないように なっていましたが、これをできるようにしました。 8. dired まわりのメモリリーク、リソースリークの修正 dired まわりに軽微なメモリリークおよびリソースリークがあったのを修 正しました。 9. 無効だった一部コントロールキーの有効化 C-^, C-_, C-@ が入力できませんでしたが、これらのコントロールキーを 入力できるようにしました。 10. バージョン表記の修正 v0.1 版で ng-version 等でのバージョン表記を変更していましたが、表記 が二重になるなど、おかしくなっていました。これを直しました。 0.1 1999.4.15 日本語版 Windows CE 対応β1版 このバージョンは伊藤栄一郎氏の Ng for WinCE 0.12 をベースにしていま す。Ng for WinCE 0.12 からの変更点は以下のとおりです。 1. 日本語版 Windows CE に対応 kctrl.dll も必要なくなっています。 2. IME制御 日本語入力モードのときに C-x o のようなキーストロークを入力しても 「o」が「お」になったりしません(set-fep-control)。 3. IMEのオンオフ機能のEmacs Lispコマンドへの割り当て これにより 任意のキーでIMEのオンオフができます。たとえば Canna に見 られるように C-o に割り当てることも可能です(toggle-fep)。 4. 英数キーをコントロールキーとして取り扱える 多少制限がありますが、 英数キーをコントロールキーとして取り扱えます (ctrlmap-mode)。 5. バッファごとのカレントディレクトリ管理 Ng はカレントディレクトリとして、全バッファ共通の1つのディレクトリ を参照していました。Ng for Win32 では GNU Emacs で見られるように、 バッファごとに別々にカレントディレクトリを管理するようにしました。 6. find-file 等でカレントディレクトリの表示 find-file 等でファイルを指定するときは、カレントディレクトリのファ イルをパスなしで指定するか、フルパスをすべて入力する必要がありまし たが、GNU Emacs が行っているように、カレントディレクトリをデフォル トパスとして表示するようにしました。対象となる機能は以下です。 cd, find-file, find-file-other-window, find-file-readonly, write-file, insert-file, dired, dired-other-window, dired-copy-file, dired-rename-file 7. ng.iniファイルのパス指定 ng.ini を任意のフォルダに置いておけるようにしました(configure)。 8. ペンによるカーソル移動に対応 ペン(スタイラス)で画面をタップすることにより編集対象バッファを変更 したり(複数バッファが同時に表示されている場合)、カーソルを移動した りできるようになりました。 9. 表示している部分の全体に対する位置表示 表示している部分が全体の何%ぐらいの位置にあたるかを モードラインに 表示するようにしました。 10. dired-do-shell-command の実装 dired モードからプログラムを起動できるようにしました。たとえば、 dired で .htm ファイル上にカーソルがある時に dired-do-shell-command を実行すると Internet Explorer が起動しそのファイルが表示されます。 11. dired-view-file の実装 dired モードで、対象ファイル上で 「v」を打つことで、読み込み専用モー ドでファイルを開けるようにしました。 12. dired モードでは IME をオフにするように変更 dired モードに入る直前に IME がオンだった場合、dired を実行したとき にオフ になるようにしました。これにより dired 中に「f」を打鍵したと き等にIMEに 入力がとられるのを防ぐことができます。(よそのバッファに 行ってそこで日本語オンにして dired バッファに戻るとオンのままなので、 実はちょっといまいち)。 13. バックアップファイル機能 伊藤氏の移植ではバックアップファイル機能が使えないようになっていま したが、これを使えるようにしました。なお、 バックアップファイルは末 尾に「~」がついたものになります。 バックアップファイルを残さないよ うにも設定できます。 14. Home, End キーの割り当て変更 それぞれバッファ頭、バッファ末へカーソルが移動するようになっていま したが、最近の Windows のエディタのしきたりにしたがって、行頭行末へ 移動するように割り当て直しました。 15. Del キーの認識 Del キー(Shift + BS)を認識するようにしました。 16. M-Spc の割り当て変更 伊藤氏により M-Spc が、かな漢字変換機能のオンオフに 割り当てられて いましたが、もとの just-one-space に割り当てを戻しました。 17. ミニバッファメッセージの消去 ミニバッファに書かれたメッセージがなかなか消えなかったのですが、次 のキー入力で消えるようにしました。 18. kill-region の問題の修正 kill-region が Windows のクリップボードを使うように伊藤氏によりプロ グラムされていますが、大きな領域を対象にするとフリーズするような感 じになっていました。これを直しました。 19. ミニバッファへの漢字表示不正問題の修正 ミニバッファに漢字が正しく表示されない問題を修正しました。 ファイル 名が漢字のバッファを kill-buffer したときや、 インクリメンタルサー チで漢字文字列をサーチしたときに、ミニバッファへの表示が正しく行わ れていませんでした。 20. suspend-emacs の実装 suspend-emacs が何もしないようになっていましたが、これを実装しまし た。suspend-emacs を実行すると Ng for Win32 の画面がバックグラウン ド側に送られます。 21. Ng 1.3.1 の修正の取り込み Ng 1.3.1 で改善された以下の点が Ng 1.3L で元に戻されていたので、そ の修正を再度適用しました。 (1) Buffer List バッファを Emacs に合わせて Read Only にした。 (2) 各 "*XXXX*" バッファの内容を書き換えてしまうと、次にそのバッファ が表示される時に、"kill anyway?" と聞かれるのを修正した。 (3) Read Only バッファで編集しようとする時に、ワーニングメッセージと 一緒にベルを鳴らすようにした。 ただし、(3) は実際には Ng for Win32 の 0.1 版ではベル自身がまだ動作 しません。 22. コンパイル時の Warning の除去 コンパイル時に 500 以上にものぼる Warning が発生していましたがこれ を修正しました。初期化を行ってない変数の使用など、比較的問題が大き いものもありました。 23. アイコンを変更しました。 以上