本文書では『かんな』Version 1.2 以降の変更点について時間をさかのぼりな
がら説明いたします。 Version 3.7 以降については、CHANGES.jpを参照して
ください。


0. 『かんな』Version 3.6 におけるパッチ

0.1 パッチレベル４での修正

 ここでは主要な変更のみを述べます。詳しくは ChangeLog を参照して下さい。

 仕様変更:
 ・サンプルの初期化ファイルやdefault.cannaを開発中の3.7と同様の構成にした。
 ・起動スクリプトのサンプルmisc/cannaを廃止して、より現代的なrc.cannaに
 置き換えた。
 ・カナ変換時の自動登録を使えるようにした。verbose.cannaにあるように、
 use-dictionaryで:katakana "your-dictionary"のように設定することでこの機能を
 利用できる。
 ・fuzokugo.cldはインストールも生成も止めた。
 ・lispで設定できるキーシンボルを増やした。(アプリケーション側の対応も必要。)
 
 バグ修正:
 ・単語登録の時の単語の編集がまだおかしかったので修正。
 ・条件によって文節を延び縮みさせた時にサーバが落ちる問題を修正。
 ・cpdicが動かない問題を修正。
 ・ローマ字仮名変換ファイルを生成する際の特殊文字問題を修正。
 ・「ん」を「n'」で入力できない問題を修正。
 ・KC_DOの不適切な挙動を修正。
 ・単語登録の品詞メニューで「その他」を選んだ時に不正な動作をする問題を修正。
 ・わずかに間違ったバイナリ辞書が生成される問題を修正。
 
 その他:
 ・ドキュメントを修正した。特に、doc/man/guide以下のTeXドキュメントを大
 幅に更新し、LaTeX2eに対応した他、古い記述を修正した。
 ・サーバが異常終了した際に適切な終了コードを返すようにした。
 ・その他、内部の潜在的な問題を修正した。

0.2 パッチレベル３での修正

 ・manページのインストールに失敗する問題を修正。
 ・Sunでcanuumが動くようにした。

0.3 パッチレベル２での修正

 ここでは主要な変更のみを述べます。詳しくは ChangeLog を参照して下さい。

 ・canuum を FreeWnn の uum をベースに書き換え。
 ・共有ライブラリのバージョンを1.1に統一。
 ・辞書の誤字、品詞の誤りを修正。
 ・character-based-move が t に設定されていると、単語登録の際に単語の編集
 　がうまく出来ない不具合を修正。
 ・TTY ベースのアプリケーションや emacs で、カーソルキーやファンクションキー
 　を正常に入力できない不具合を修正。
 ・字種変換、部分確定の際に誤った学習が行われる問題を修正。
 ・現代的なディレクトリ構造に対応させやすいよう、 Canna.conf.dist を
 　書き換え。デフォルトのディレクトリ構造は変えていない。
 ・FreeBSD 5.x,OpenBSD でのワイドキャラクタの扱いを修正。
 ・mkbindic で同じ読みの単語同士の優先順位を変えないようにした。
 ・3.6p1 で逐次入力が壊れていたのを修正。
 ・マニュアル類やカスタマイズファイルのサンプルを更新。
 ・その他細かなバグ修正。

0.4 パッチレベル１での修正

 クライアントから不正なリクエストを送られると、バッファオーバーフローを
 起こしたり、内部情報が漏れたりするというセキュリティ問題を修正。


1. 『かんな』Version 3.6 における変更点

『かんな』Version 3.6 では『かんな』Version 3.5 β2版 に対して以下に
示すような機能拡張、変更を行っています。

1.1 従来と互換性のない変更

 cannaserverに-inetオプションを付けて起動しない限り、TCP接続は受け付けず、
 UNIXドメインソケットでの接続のみを受け付けるようにしました。これは、
 Debian GNU/Linuxでの修正を取り入れたものです。なお、UNIXドメインの場合、
 サーバ名はunix[:番号]と指定します。

1.2 セキュリティ修正

 クライアントから非常に長いユーザ名を送られると、バッファオーバーフロー
 を起こすという問題を修正しました。

1.3 辞書、文法データの修正

 3.5 β2版リリース後に公開された、狩野氏および藤枝氏によるアンオフィ
 シャル文法パッチを適用しました。また、pubdic+の誤字を数箇所修正しま
 した。

1.4 変換エンジンの強化

 次の機能を実現する、藤枝氏によるアンオフィシャルパッチを適用しました。

 ・3つ以上付属語が接続した時に、日本語としてあり得ない表現が生じるのを
   打ち消すロジックを追加する。

 ・使われていなかった文節区切り学習の機能を有効にする。

 この他、Debian GNU/Linuxで行われていた、読みが一文字の単語では優先度を
 無視する修正を加えています。(これは藤枝氏がCanna-mlに流したパッチので、
 統合パッチから抜けていたものです。)また、藤枝氏のパッチでは、mkdicで
 作った辞書では文節区切り学習が効かないので、それも効くようにしました。

1.5 その他の主な変更

 (1) cannaserverの特権の設定

 -uオプションで、cannaserverがどのユーザの権限で動作するかを指定できる
 ようになりました。これはDebian GNU/Linuxでの修正を取り入れたものです。

 (2) 日本語manページのインストール

 従来は、日本語と英語のどちらかのmanページしかインストール出来ません
 でしたが、両方のmanページが入るようになりました。


2. 『かんな』Version 3.5 β版における変更点

2.1 β2版での変更点

  ・C-j の問題点の修正

   C-j を部分確定機能にわりあてたが、読みモードで最後尾にカーソルがあ
   る状態で部分確定すると、空モードに戻らないで読みモードのままである
   と言う問題があった。具体的には「わたし C-j C-b」のように Emacs 上で
   入力したとき、C-b が Emacs のカーソル移動に用いられれず C-b 自身が
   されてしまうという問題があった。

  ・早稲田大学の狩野氏および北陸先端大学院大学の藤枝氏によるアンオフィ
    シャル文法パッチを適用した。

  ・C-k や C-d の処理の修正

   C-k や C-d のような先頭一文字、末尾一文字を取り出す処理を行う場合に、
   内部にかかえている読み部分を先頭一文字/末尾一文字などにしていたが、
   これだとアンドゥできなくなるので、この処理をやめた。ただし、現状で
   は C-k や C-d 後に self-insert(a などを入力)すると C-k や C-d の効
   果が無くなってしまうと言う問題がある。

  ・ライブラリのインストールパスを /usr/local/lib から /usr/lib に戻し
    た。

  ・OS/2 でもコンパイルできるようにした。この部分は日本 IBM の上野さん
    による修正です。

  ・Linux が select 部分で CPU を異常に消費してしまう問題を解決した。
  ・NetBSD でもコンパイルできるようにした。
  ・keishiki.t や katakana.t などの足りなかった辞書の追加。
  ・β1で canuum がコンパイルできなかった件を修正
  ・SunOS 4.1 のコンパイラではねられる記述を取り除いた。
  ・その他小さな問題の修正

3. 『かんな』Version 3.5 における変更点

『かんな』Version 3.5 では『かんな』Version 3.4 に対して以下に示すよう
な機能拡張・変更を行っています。

  (1) ユーザインタフェースの改善
  (2) ファイル拡張子の変更
  (3) 辞書の変更
  (4) スリムな Canna を作るためのフラグの追加
  (5) 旧形式ファイルのサポートとりやめ
  (6) SJ3, Wnn のサーバアクセスライブラリのサポートとりやめ
  (7) いくつかのコマンドのサポートとりやめ
  (8) アプリケーションプログラムインタフェースの改善

(1),(2) の変更は、主に Canna for Windows 95 開発に伴う変更です。

3.1 ユーザインタフェース

 (1) 候補一覧のページスクロール

  候補一覧の二次元表示時に、画面に収まり切らない候補に関してページ単位
  のスクロールアップスクロールダウンができるようになりました。

 (2) 一文字選択機能の追加

  文節内の先頭あるいは末尾の一文字だけを選択する機能をつけました。C-k 
  および C-d に割り当ててあります。これに伴い、変換中の C-k の機能(部
  分確定を行い残り部分を読みに戻す)は C-k への割当が削除されました。一
  文字選択機能は例えば、「直出(ちょくしゅつ)」という単語が辞書に無かっ
  た時に、「ちょくせつがいしゅつ<変換>」→「直接外出」→C-k,C-f,C-d→
  「直出」として入力することができます。

  C-k を以前と同じ意味で利用する場合は以下のように定義してください。

    (set-key 'tankouho-mode "\C-k" '(bubun-kakutei quit))
    (set-key 'ichiran-mode "\C-k" '(bubun-kakutei quit))

 (3) bubun-kakutei 機能

  bubun-kakutei 機能を追加しました。これはカレントカーソルポジションの
  前までの領域を確定させるものです。キーは C-j に割り当てました。

 (4) 文字種変換バリエーションの追加

  かな文字字種だけでぐるぐる字種変換する kana-rotate、英数文字だけでぐ
  るぐる字種変換する romaji-rotate、大文字小文字キャピタライズを選択す
  る case-rotate 機能を入れました。

 (5) 文字種変換後の動作がカスタマイズ可能に

  文字種変換後、文字種変換部分を確定しないで次の入力を行うかどうかを指
  定することができるようになりました。指定するための変数は 
  mojishu-continue で、t または nil を指定します。デフォルト値は t で、
  Version 3.4 のときの仕様と同じ「確定しないで次の入力を行う」です。

 (6) defsymbol の拡張

  ローマ字かな変換の補助を行う defsymbol 機能を拡張しました。入力キー
  に対して他のキーが入力されたように振舞わせることができるようになりま
  す。

    (例) F1 を押したら全角スペースを入力する。その時入力キーはあたかも
         スペースキーであったかのようにする。

         (defsymbol ?\F1 ?\Space "　")

 (7) defsymbol の動作の若干の変更

  defsymbol してある文字については候補一覧表示を行った時にはかならず 
  defsymbol での定義による一覧が出ていましたが、defsymbol で候補が一つ
  しかないときは漢字の一覧が出るようになりました。

 (8) 候補一覧モードにおける操作の拡張

  文節伸ばし(C-o)など、候補一覧モードでは直接用いられないキーを入力し
  たときに、候補一覧を終了し、単候補モードでその機能が実行されるように
  なりました。

 (9) Capitalize 機能の修正

  Capitalize 機能を修正しました。例えば、new york に対しては New York 
  となるようになりました。

3.2 ファイル拡張子の変更

  各種ファイルの拡張子を Canna for Windows 95 に合わせて、以下のように
  変更しました。

    ローマ字かな変換テーブル  *.kp → *.cbp
    バイナリ辞書              *.d  → *.cbd
    テキスト辞書              *.t  → *.ctd
    学習ファイル              *.fq → *.cld

3.3 辞書の変更

 (1) pubdic+ の利用

  pubdic+ の辞書を簡単に利用できるようになりました。

 (2) ユーザ用サンプル辞書とシステム辞書の統合

  ユーザ辞書ディレクトリ(user/user) にサンプル辞書がいくつか置いてあり
  ましたが、これらの辞書をシステム辞書ディレクトリ(canna)に移動しまし
  た。

3.4 スリムな Canna を作るためのフラグの追加

  旧プロトコル互換のためのコードや、ユーザインタフェースライブラリにお
  けるメニュー部分のコードをコンパイルスイッチで削除することができるよ
  うになりました。デフォルトでは、旧プロトコル(『かんな』Version 1.x 
  のプロトコル)は削除、メニューはそのままとなります。

  これにより旧プロトコルしか話せないクライアントやサーバとの接続ができ
  なくなります。『かんな』Version 1.x のものとの通信を行なう場合は、旧
  プロトコルも利用できるように Canna.conf を書換えてください。


3.5 旧形式ファイルのサポートの取りやめ

  以下の旧形式ファイルのサポートをとりやめました。

    *.iroha … 旧形式カスタマイズファイル
    *.rdef  … 旧形式ローマ字かな変換テーブルソース
    *.rdic  … 旧形式ローマ字かな変換テーブル

  これにともない、mkromdic の -n オプションも使用できなくなります。	

3.6 SJ3, Wnn のサーバアクセスライブラリのサポートとりやめ

  RKSj3(SJ3 サーバアクセスライブラリ)、RKWnn(Wnn の jserver アクセスラ
  イブラリ)のサポートをとりやめました。

3.7 いくつかのコマンドのサポートとりやめ

  以下のツール、プログラムのサポートをとりやめました。

    canvert … 『かんな』Version 1.x のバイナリ辞書やカスタマイズファ
               イルを Version 2.1 以降の形式のファイルに変換するツール。

    dpwdic  … 上記 canvert から呼び出される辞書コンバータ。

    itoc    … 上記 canvert から呼び出されるカスタマイズファイルコンバー
               タ。

3.8 アプリケーションプログラムインタフェース

  候補一覧のコールバック API を拡張および変更しました。この API は 
  Windows 95 用 IME のためのものです。kinput2 もこの API を利用してい
  ますが、kinput2v2 fix2 にて対応済です。


4. 『かんな』Version 3.4 における変更点

『かんな』Version 3.4 では『かんな』Version 3.3 に対して以下に示すよう
な機能拡張を行っています。

  (1) ユーザインタフェースの改善
  (2) アプリケーションインタフェースの追加
  (3) その他の変更

本変更は主に Canna for Windows 3.1 開発に伴う変更です。

4.1 ユーザインタフェース

 (1) カタカナ自動登録

  全角カタカナに字種変換して確定した場合は、そのカタカナを自動登録する
  ことができるようになりました。自動登録の指定は、カスタマイズファイル
  を利用して以下のように記述します。

    (use-dictionary :katakana "katakana")

 (2) コード種別の指定

  コード変換の機能を利用してコード入力を行う場合、JIS コード(jis)、シ
  フト JIS コード(sjis)、区点コード(kuten)の 3 つのコード種別のいずれ
  かを指定することができるようになりました。コード種別の指定は、カスタ
  マイズファイルを利用して以下のように記述します。

    (setq code-input "jis")

  ただし、メニューを利用したコード入力は、JIS コードのみサポートします。

4.2 アプリケーションインタフェース

 (1) KC_SETUSERINFO

  KC_SETUSERINFO によってアプリケーションからユーザ名などの指定が行え
  ます。

 (2) KC_CHANGESERVER

  KC_CHANGESERVER によってアプリケーションから接続しているサーバを変更
  することができます。

4.3 その他

  メニュー表示をアプリケーションが行ったり、カスタマイズファイルをバイ
  ナリ形式にしたりすることができるようになりました。


5. 『かんな』Version 3.3 における変更点

『かんな』Version 3.3 では『かんな』Version 3.2 に対して以下に示すよう
な機能拡張・変更を行っています。

  (1) クライアントサーバ間通信プロトコルの追加
  (2) 辞書の同期処理の改善
  (3) ユーザインタフェースの改善
  (4) premountdics サポートとりやめ
  (5) その他

5.1 クライアントサーバ間通信プロトコルの追加

  サーバの終了要求を送るプロトコルを追加しました。Version 3.2 までは、
  サーバの終了処理はシェルスクリプトで行っており、ロックファイルの有無
  でサーバの起動状態を判断していたため、ロックファイルを削除すると、サー
  バが起動されていても起動していないものと判断されていましたが、
  Version 3.3 からは、サーバの終了処理はプロトコルで要求するようになり、
  確実にサーバの終了処理が行えるようになりました。

  このプロトコルのサポートに伴い、ロックファイルのサポートを中止しまし
  た。

5.2 辞書の同期処理の改善

  サーバが一定時間アイドルであった場合に、サーバ側で辞書の同期処理を行
  うようになりました。

5.3 ユーザインタフェースの改善

 (1) 単語登録メニューの改善

  メニューを利用した単語登録時に表示される品詞および詳細な品詞決定のた
  めの質問を見直し、わかりやすくしました。

 (2) 単語削除メニューの改善

  メニューを利用した単語削除時に、Version 3.2 までは辞書を選択した後に、
  読みを入力して単語を削除していましたが、Version 3.3 からは読みを入力
  すると、その読みを持つ単語が表示され、削除する単語を選択した後に辞書
  を選択するようになりました。これによって、以前は削除したい単語が登録
  されている辞書がわからないと単語削除できなかったのが、単語さえ指定す
  れば削除できるようになりました。

 (3) カスタマイズファイルの見直し

  提供しているカスタマイズファイルをすべて見直し、操作性を変更しました。

5.4 premountdics サポートとりやめ

  premountdics ファイルのサポートをとりやめました。

5.5 その他

  スタンドアロンタイプとしても make することができるようになりました。


6. 『かんな』Version 3.2 におけるパッチ

6.1 パッチレベル 2 での修正

  ・INSTALL の修正
      - X11R6 環境での作り方の記述しかなかったが、X11R5 と X11R6 の両
        方を記述した。 
  ・Imakefile の修正
      - INSTALLFLAGS を抜いた(パッチ 1 での修正もれ)。
      - chmoddic がインストールされるようにした。
  ・カスタマイズのキーワードの追加
      - inhibit-hankaku-kana を追加した。
  ・lseek の第 2 引数関連の修正
  ・cpp がないときの処理の追加
  ・辞書の修正
      - 「台」を #JS でも登録した。
      - 「しんがくぎほう」の修正。
  ・ローマ字かな変換テーブルの修正
      - cpp によってはうまく処理できなかったため、「"」や「'」を「\x22」 
        や「\x27」に変更した。
  ・マニュアルの修正
      - SCREEN という環境を使うようにした。
  ・rmdic の結果が dics.dir に反映されなかったのを修正した。
  ・base-kakutei で、確定キーを押すと何もなくなる問題を直した。
  ・その他細かいバグの修正。

6.2 パッチレベル 1 での修正

  ・kinput2 で記号の連続入力に対応するための修正。
  ・サンプルのカスタマイズファイルの修正。
    - skk.canna を kinput2 で使えるようにした。
    - tut.canna で TUT 記号が入れられるようにした。
  ・Imakefile の修正。
    - X11R5,X11R6 ともに対応できるようにした。
    - INSTALLFLAGS を抜いた。
  ・ドキュメント用 README の修正。
  ・ドキュメントの修正。\tt の問題。
  ・いくつかの単語の品詞の修正。
  ・number.t がインストールされるようにした。
  ・Sparc の cc で warning が出たのを修正した。
  ・その他細かい修正。


7. 『かんな』Version 3.2 における変更点

『かんな』Version 3.2 では『かんな』Version 3.1 に対して以下に示すよう
な機能拡張を行っています。

 (1) グループ辞書のサポート
 (2) 辞書の同期処理のサポート
 (3) 分野別学習ファイルのサポート
 (4) 辞書コピーの改善
 (5) 辞書のアクセス権の設定
 (6) 接続クライアント数の拡大
 (7) バイナリ辞書からの単語削除のサポート
 (8) ユーザインタフェースの改善

7.1 かな漢字変換

 (1) グループ辞書のサポート

   辞書をコピーしなくても、グループ ID(gid) の同じユーザ間では複数のユー
   ザで同一の辞書を使用できるようになりました。

 (2) 辞書の同期処理のサポート

   辞書ファイルへの同期処理を追加しました。これにより、カスタマイズす
   ることによって、単語登録/削除時に辞書をメモリ上の辞書と同期できるよ
   うになりました。

 (3) 分野別学習ファイルのサポート

   一つの辞書に対し複数の学習情報ファイルが扱えるようになり、分野ごと
   に学習情報を切替えることができるようになりました。

 (4) 辞書コピーの改善

   辞書コピー専用の関数を作成し、辞書のコピーが速くなりました。また、
   学習ファイルについても、バイナリ辞書のコピーという形で個人別学習ファ
   イルとして使用できます。

 (5) 辞書のアクセス権の設定

   辞書の READ/WRITE 権を設定できるようにしました。

 (6) 空白文字を含む単語の登録・削除

   空白文字を含む読みや候補を登録・削除できるようになりました。

 (7) 接続クライアント数の拡大

   システムの資源(メモリ等)が許す限り cannaserver にクライアントが接続
   できるようにしました。

 (8) バイナリ辞書からの単語削除のサポート

   バイナリ辞書からの単語の削除が可能になりました(α版では未サポート)。

7.2 ユーザインタフェース

 (1) 逐次自動変換および連文節変換部の統合

   『かんな』Version 2.1 において、文節伸縮モードがサポートされました
   が、この機能が使用できるのは連文節変換時のみでした(Version 1.2 にお
   ける変更点 参照)。この機能が逐次自動変換時にも使用できるようにしま
   した(α版では未サポート)。

 (2) 編集モード時の処理の変更

   編集モードの処理が変更になり、編集モードがなくなりました。かわりに
   読みモード、単候補モード、字種モードの混在により処理されるようにな
   りました。

 (3) メニューのカスタマイズ化

   拡張メニューがカスタマイズできるようになりました。

 (4) 記号入力時の操作の改良

   記号を連続して入力できるようにしました。

 (5) 新キーワードの導入

   新キーワードが導入され、連文節変換時に英数モードで空白文字の入力時
   に変換が行われないようになりました。また、逐次自動変換時においても、
   句読点の入力時に変換が起動されるようになっている場合、英数モードで
   は句読点を入力しても変換が行われないようになりました。

 (6) 文法辞書の指定

   ユーザが自由に文法辞書を変えられるようになりました。

 (7) 辞書引き順の明確化

   カスタマイズファイルに、優先して引きたい順に辞書を指定できるように
   なりました。

 (8) boiled-egg 的入力方法のサポート

   あるタイミングで一括してローマ字かな変換/かな漢字変換を行うことがで
   きるようになりました。

 (9) ローマ字かな変換優先機能の追加

   ローマ字かな変換を優先することができるようになりました。


8. 『かんな』Version 3.1 における変更点

『かんな』Version 3.1 では『かんな』Version 2.2 に対して以下に示すよう
な機能拡張を行っています。

 (1) 文節長学習・単語長学習対応

   文節長学習・単語長学習の結果をファイルに保管するようになり、翌日に
   なってもそれまでの学習結果が反映されるようになりました。

 (2) 辞書形式の変更

   4Kbyte 単位でアクセスするようになり、アクセス効率および仮想記憶効率
   が上がりました。また、辞書が小さくなりました。


9. 『かんな』Version 2.2 におけるパッチ

9.1 パッチレベル４での修正

 ・Mule を使っている時に接続がきれたり、立ち上げ時に辞書のマウントに失
   敗することがあった。この問題を直した。
 ・パッチ２ で cannaserver にバグを入れていた。具体的には文節伸ばし縮め
   を行った時に、余計なデータをクライアントに返していた。これを直した。
 ・addwords などでタブをうまく処理していなかったことの修正。
 ・単語登録時に候補を入れて確定した後 romaji 機能を使うと core dump す
   ることがあった。これを修正。
 ・辞書の若干の修正。
 ・jdvi2kps で epsbox スタイルを使う人のための注意を入れた。

9.2 パッチレベル３での修正

 ・パッチ２で入れてしまった以下の問題を解決
  - iroha.t のコンパイルができなくなっていた。
  - rename() を、ポータビリティ向上のため link/unlink で置き換えたが、
    置き換え方に一部間違いがあった。
 ・サービス番号のデフォルト値を用いる時に Little Endian マシンでの値の
   設定が間違っていた。 
 ・一般の接尾語辞書 suffix.t を消し、数関係の接尾語辞書 number.t を入
   れた。

9.3 パッチレベル２での修正

 ・DEC αで動作するようにした。今までも大体動いていたが、cannaserver 
   だけはプロトコル処理部に sizeof(long)==sizeof(int)==4 と仮定してい
   る部分があってうまくなかった。これを直した。
 ・TUT 入力のための tut.canna および tut.kpdef をサポート。
 ・ヘッダの C++ 対応(つもり)。
 ・ドキュメントの整備(ASCII TeX への対応、ディレクトリの記述が 
   Canna.conf にしたがうようにした、など)。
 ・ライブラリのマニュアルページを doc/man/lib から lib/canna に移した。
 ・doc/man/guide/tex/texindex の動作が awk に依存していたので C で書き
   直し名前も変更し cannaindex とした。
 ・rename() を使っている部分があったので link()/unlink() で書き換えた。
   rename() を持たないシステムへの対応。
 ・Purify した。
 ・狩野氏による、文法関連の unofficial patch の反映。(patches.49 まで)
 ・一部のマシンで make canna 時に辞書コンパイルのところで syntax error 
   が出る件を修正。
 ・その他細かいバグ修正。

9.4 パッチレベル１での修正

 ・sj3serv にも接続できるようにした。
 ・BSD386 などで見られる、プロトコルエラーを修正した。
 ・linux に対応した。
 ・ユーザインストール時に chown で fail する件に対処した。
 ・cannaserver での free 忘れ/メモリ初期化忘れの修正。
 ・マニュアルを作る時にディレクトリ表記をインストール時の指定に合わせ
   るようにした。
 ・canuum のベースを Wnn4.108 から Wnn4.109 に変えた。
 ・canuum の PTY の最大値を大きくした。
 ・mergeword の引数にファイルが指定できるようにした。また、splitword 
   に引数を与えない時に標準入力を見るようにした。
 ・いくつかの文法の修正。
 ・その他細かいバグの修正。


10. 『かんな』Version 2.2 における変更点

『かんな』Version 2.1 から『かんな』Version 2.2 では以下のことが追加
されました。

 (1) エンジンの切り替え

   かな漢字変換エンジンを cannaserver(irohaserver) と Wnn の jserver 
   との間で自由に切り替えることができるようになりました。

 (2) マーク

   字種変換などの範囲をマークとカーソルで指定できるようにしました。

これらについては参照できるドキュメントがほとんど存在しませんので、こ
こでちょっと説明します。詳しい説明はもうしばらくお待ちください。

(1) エンジンの切り替え

  エンジンの切り替えはダイナミックローディング(dlopenなど)を使って行っ
  ています。したがって、ダイナミックローディングを利用できない OS では
  使えません(実はオブジェクトサイズが大きくなっても良いのであればなん
  とでもできるのですが)。ロードされるライブラリは libRKC.so (かんな) 
  か libRKWnn.so (Wnn) です。

  β版の Makefile (Imakefile) では Shared Library のことはあまり考慮し
  ていないのでエンジンの切り替えを行うには人手での Makefile の書き換え
  が必要になります。

  libRKWnn.so はβ版のソース(lib/RKWnn)に加えて、Wnn の libwnn.a と 
  kinput2 の jclib.o jilib.o があれば作成できます。以後の版で Makefile 
  を提供する予定ですが、とりあえずやってみたい人は doc/misc/engine.tx 
  を見てトライしてください。

(2) マーク

  マークを打つのは C-<space> です。今までは C-n などで字種変換をすると
  入力中の文字全てが字種変換されていましたが、Version 2.2 では 
  C-<space> が打たれたり、一度字種変換がされたりするとマークが設定され、
  そこから後ろだけが字種変換されます。

  《例》

   fairu C-n a C-p → V1.2  ファイルa (「ファイル」の部分が確定される)
                      V2.1  fairua
                      V2.2  ファイルa (「ファイル」の部分も読みのまま)


11. 『かんな』Version 2.1 における変更点

『かんな』Version 2.1 では『かんな』Version 1.2 に対して主に以下に示す
機能拡張を行っています。

 (1) 逐次自動変換方式の導入(サーバクライアント方式ではフリーソフト初)
 (2) 個人別頻度学習管理のサポート
 (3) EUCのG3文字のサポート
 (4) ユーザインタフェースの改善

これにともない、かな漢字変換辞書形式の変更、ローマ字かな変換テーブルの
形式の変更、カスタマイズファイル形式の変更を始めとする様々な変更が行わ
れました。詳しくは以下を参照してください。

11.1 かな漢字変換

 (1) 逐次自動変換サポート

  サーバクライアント方式としては初の逐次自動変換をサポートしました。従
  来のパーソナルコンピュータなどでは逐次自動変換の操作方法がぎこちない
  場合が多くありましたが、連文節変換でのユーザインタフェースを自然に拡
  張する形の操作法を提供しており、誰でも自然に逐次自動変換を利用するこ
  とが可能です。

 (2) 個人別頻度学習のサポート

  今までは同一の辞書を複数のユーザが使用しているときは最後に使用した人
  の学習情報によって他の人の学習情報が上書きされていましたが、メインの
  辞書とは別に学習情報ファイルをユーザ毎に分散させて持たせることにより
  頻度情報を各個人毎に管理することが可能になりました。

  今まで通り頻度情報を共有することもユーザ毎の設定により可能です。

 (3) EUCのG3文字のサポート

  JIS規格により補助漢字集合(JIS X0212)が制定されました。補助漢字集合は
  UNIX Internationalの日本語規約ではEUCのG3文字として取り扱うことが定
  められております。

  『かんな』Version 2.1では補助漢字集合を始めとしてG3領域に置かれるこ
  とが多い外字等をサポートできるようにEUCのG3文字をかな漢字変換の「読
  み」あるいは「候補」として利用できます。

 (4) 辞書形式の変更(バイナリ辞書)

  個人別頻度学習とEUCのG3文字のサポートに伴い辞書形式が変更されました
  (テキスト形式辞書に関しては以前のままです)。

  旧形式の辞書を『かんな』Version 2.1でも活用したいかたのために旧形式
  辞書から新形式辞書へのコンバータツールもサポートしています。

11.2 ローマ字かな変換

 (1)「ん」の入力のためのデフォルトの変更

  従来「あんない」「せんい」などの入力を行う時に「annai」「sen'i」など
  のような「n」一文字が「ん」に対応するものをデフォルトとしていました。
  もちろん従来からカスタマイズの設定により変更することは可能でしたが、
  『かんな』Version 2.1 ではパソコン、ワープロで広く見られる「nn」を
  「ん」に対応させる規則をデフォルトに変えました。これにより「あんない」
  「せんい」などの入力のしかたは以下のようになります。

   ┌────┬─────┬───────────┐   
   │        │   従来   │『かんな』Version 2.1 │
   ├────┼─────┼───────────┤
   │あんない│   annai  │      annnai          │
   ├────┼─────┼───────────┤
   │ せんい │   sen'i  │      senni           │
   │        │   semni  │      sen'i           │
   │        │          │      semni           │
   ├────┼─────┼───────────┤
   │ べんり │   benri  │      benri           │
   └────┴─────┴───────────┘

 (2)ローマ字かな変換テーブルの形式の変更

  ローマ字かな変換テーブルのテキスト形式およびバイナリ形式を変更しまし
  た。ローマ字かな変換規則の記述の際に中間結果を記述する３番目フィール
  ドが設けられ柔軟な規則が記述できるようになりました。

  以前作成したローマ字かな変換テーブルに関しても『かんな』Version 2.1 
  で利用することが可能です(バイナリ形式、テキスト形式両方とも)。


 (3)複数のローマ字かな変換テーブルの切り替え可能

  複数のローマ字かな変換テーブルを登録しておいて、使用時にそれらを切り
  替えることが可能となりました。

 (4)多候補シンボル定義が可能

  「.」(ピリオド)や「,」(コンマ)を始めとして全てのキーに対して複数の記
  号を対応させて使用時に切り替えることが可能となりました。例えば、以下
  のような対応が可能です。

   ┌───┬──────────────┐
   │ 入力 │ ローマ字かな変換結果       │
   ├───┼──────────────┤
   │  .   │   。 または ．             │
   ├───┼──────────────┤
   │  ,   │   、または ，              │
   ├───┼──────────────┤
   │  [   │  「、『、［、〔 または [   │
   ├───┼──────────────┤
   │  ]   │  」、』、］、〕 または ]   │
   └───┴──────────────┘

  切り替えはかな漢字変換の候補選択と同様の操作で行えます。また、複数の
  切り替えをリンクして行うことも可能です。

11.3 日本語入力操作

 (1)モード表示の変更

  逐次自動変換モードの導入に伴ってモード表示文字列を見直しました。

   ・「確」の領域の削除

    モード表示の左側に設けられていた、確定入力を表す「確」を表示する領
    域が削除されました。

    確定モードはモード表示を取り囲む括弧の形で表現されます。

   ・アルファベット入力モードのモード表示が 「」(空文字列)だったものが 
     「　　　」(空白文字列)に変更されました。(見た目には同じです)

 (2)文字種ベース変更の削除

  読みを入力している状態で C-i および C-o を押した時に文字種ベースの変
  更が行われるようになっていましたが、誤操作が多いのでオプションとしま
  した。

 (3)再初期化の削除

  ユーティリティメニューにてカスタマイズファイルの再読み込みを行いかな
  漢字変換を再初期化するメニューを提供していましたが、アプリケーション
  プログラムとの間に設定のずれを生じさせる可能性があるので『かんな』
  Version 2.1 ではサポートをとりやめました。

  再初期化に関してはアプリケーションプログラムが提供している機能によっ
  てのみ行えます(例えば『かんな』版 Nemacs の M-x canna-reset)。

 (4)候補番号の表示

  候補一覧を出している際に、現在カーソルが指している候補が全体の候補の
  何番目かを示す表示が行われるようになりました。

 (5)文節伸縮モード

  文節を伸ばし縮めするもうひとつの方法として一太郎などでよく見られる方
  法もオプションとしてサポートするようにしました。

  その場合、文節伸ばし縮め操作を行うとカレント文節以降が一旦読みに戻さ
  れ、読みの上でカーソルが移動し、文節長を調整することになります。文節
  長が正しくなった時点で変換キーを押すとカーソルがある部分までをひとつ
  の文節として変換が行われます。

 (6)大文字小文字変換

  今までは字種変換時に字種が英数字になっていたときのみ大文字小文字変換
  が行われていましたが、かなが表示されている時に大文字小文字変換キーを
  押すと一旦英数字に変換した後大文字小文字変換するようにしました。

 (7)バージョン情報、サーバ情報の表示

  ユーティリティメニューにて『かんな』のバージョンや接続しているサーバ
  に関する情報が取り出せるようになりました。

 (8)設定の変更

  逐次自動変換や学習に関して使用時にオン／オフを切り替えることが可能に
  なりました。

11.4 カスタマイズファイル

 (1)カスタマイズファイル名の変更

  カスタマイズファイルのファイル名が .iroha から .canna に変更になりま
  した。また、カスタマイズファイルの記述形式もLispシンタックスを使った
  ものに変更になりました。既存の .iroha を新形式に変更するためのコマン
  ドも提供します。

  既存のシンタックスは拡張性が乏しかったためバージョンアップ時に新しい
  カスタマイズ記述を組み入れると古いアプリケーションプログラムが回復不
  能なシンタックスエラーとなっていました。新形式では一部理解できない部
  分があっても読み飛ばして次の設定を行うことが可能です。

  また、新形式では現在の『かんな』のバージョン、接続されているサーバの
  バージョンなどを問い合わせることが可能であり、それらのバージョンによっ
  て条件的にカスタマイズを行うことが可能です。

 (2)InitialMode の削除

  今までは InitialMode によってアプリケーション起動時のかな漢字変換の
  モードを設定することが可能でしたが、『かんな』Version 2.1 ではこれに
  代わって initialize-function という機能を使ってアプリケーション起動
  時の状態を設定することが可能です。

  initialize-function では「一度ある状態に移行してからそこでの設定を変
  更してまた別の状態に戻る」などの処理が行えます。

  例えば、initialize-function にて「一度日本語入力モードに移行し、文字
  ベースをカタカナに切り替えた後再びアルファベットモードに戻る」という
  処理を行っておけば、C-oなどで日本語モードに移った時にカタカナベース
  の日本語入力が行えるようになります。

 (3)実行可能機能の増加

  文字ベースに関する機能が増えた他、逐次自動変換関連、新しい文節伸ばし
  縮め操作関連でキーに割り当てることができる機能が増えました。

 (4)記号定義

  ローマ字かな変換の補助としてピリオドやコンマに対して複数のローマ字か
  な変換を定義する機能が追加されました。ユーザの好みで任意のキーに対し
  て任意の記号を割り当てることが可能です。

 (5)確定モード等の削除

  確定モード等のモードがなくなりました。それに代わって以下の２つのうち
  のいずれかで代替することができます。


   (a) 読み入力時の属性を変更する以下の機能を組み合わせて入力する文字
       種や状態を変更します。

    名称                          機能
    base-hiragana                 文字ベースをひらがなに変える
    base-katakana                 文字ベースをカタカナに変える
    base-eisu                     文字ベースを英数に変える
    base-kana                     文字ベースをひらがなかカタカナに変える
    base-zenkaku                  文字ベースを全角に変える
    base-hankaku                  文字ベースを半角に変える
    base-kakutei                  確定入力に入る
    base-henkan                   確定入力を抜ける
    base-hiragana-katakana-toggle ひらがなとカタカナをトグルする
    base-kana-eisu-toggle         かなと英数をトグルする
    base-zenkaku-hankaku-toggle   全角と半角をトグルする
    base-kakutei-henkan-toggle    確定入力かどうかをトグルする
    base-rotate-forward           文字ベースを順送りに変更してゆく
    base-rotate-backward          文字ベースを逆送りに変更してゆく


   (b) モード定義を使う

     以下で説明するモード定義を使い新たにモードを定義します。

 (6)モード定義

  ユーザが自由にモードを定義することが可能となりました。

  モードの定義に伴い、そのモード固有のローマ字かな変換テーブル、モード
  表示文字列、文字ベースの状態などが選択できます。

  これにより疑似かな入力モードやＴコード入力モードなどが定義できます。

  またユーザ定義モードだけに対して有効なキーの割り当てを行うことが可能
  です。

 (7)記号モードでのカスタマイズ

  『かんな』Version 1.1 から Version 1.2 へとバージョンアップされた時
  に記号モードだけに有効である限定カスタマイズが行えなくなりましたが、
  元に戻しました。

  したがって、記号モード固有のカスタマイズを行うことが可能となります。

11.5 アプリケーションインタフェース

アプリケーションインタフェースに関しては以下の変更があります。

 (1)ワイドキャラクタインタフェースのサポート

  ワイドキャラクタベースのかな漢字変換ライブラリをサポートします。これ
  により日本語を取り扱い易いワイドキャラクタだけを使って日本語関連のア
  プリケーションプログラムを作成することが可能です。

 (2)KC_PARSE の変更

  KC_PARSE によってアプリケーションプログラム独自にカスタマイズを設定
  することが可能でしたが、カスタマイズファイルの形式の変更に伴い 
  KC_PARSE で与える文字列も変更になります。

 (3)IROHA_ から CANNA_ へ

  モードや機能、キーなどを表すマクロ名としてIROHA_××××がありました
  が、このマクロ名がCANNA_××××に変更されました。

  ただし、コンパイル時に -DIROHA_BC を指定することにより旧マクロ名を使っ
  ていてもコンパイルが可能です。

 (4)モード番号、機能番号
 
  モード番号(CANNA_MODE_××××)、機能番号(CANNA_FN_××××)の番号が
  一部入れ替わりました。これらの番号をマクロ名でのみ扱っている場合には
  問題ありませんが、直接番号をプログラムに記述している場合には修正が必
  要です。

 (5)libiroha から libcanna へ

  かな漢字変換を行うアプリケーションプログラムがリンクするライブラリが 
  libiroha から libcanna に変更になりました。

11.6 コマンドの変更

 (1)コマンドの追加

  かな漢字変換辞書やローマ字かな変換テーブルの新形式に対応するためのユー
  ティリティツールを始めとしていくつかのコマンドが追加されました。

    追加コマンド   概要
    ------------+------------------------------------------------------
    canvert        カスタマイズファイル、かな漢字変換辞書等の形式の変換
    addwords       一括単語登録
    delwords       一括単語削除

11.7 ファイルの位置

  『かんな』の名称が決定したことに伴い今まで iroha が付いたディレクトリ
  に存在していたファイルを canna が付くディレクトリに移動しました。

 (1)辞書関連

  ローマ字かな変換ファイルやかな漢字変換ファイルは $(irohaLibDir)/dic 
  に移動、その他 $(irohaLibDir) にあったものは $(cannaLibDir) に移動し
  ました。

 (2)ログファイル、ロックファイル

  エラーログやロックファイルは $(irohaSpoolDir) から $(cannaSpoolDir) 
  に移動しました。

 (3)ヘッダファイル

  ヘッダファイルは $(irohaIncDir) から $(cannaIncDir) に変更になりました。

 (4)UNIX通信用ファイル

  かな漢字変換サーバとクライアントがUNIXドメインで通信するための
  ファイル(/tmp/.iroha_unix/IROHA)に関しては旧クライアントとの通信に関す
  る互換性確保のためファイル名が変わりません。

以上

/* Copyright 1994 NEC Corporation, Tokyo, Japan.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without
 * fee, provided that the above copyright notice appear in all copies
 * and that both that copyright notice and this permission notice
 * appear in supporting documentation, and that the name of NEC
 * Corporation not be used in advertising or publicity pertaining to
 * distribution of the software without specific, written prior
 * permission.  NEC Corporation makes no representations about the
 * suitability of this software for any purpose.  It is provided "as
 * is" without express or implied warranty.
 *
 * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN 
 * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 
 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 
 * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 
 * PERFORMANCE OF THIS SOFTWARE. 
 */

($Id: OCHANGES.jp,v 1.1 2003/09/25 15:24:31 aida_s Exp $)
