News

2005-02-12

imserver-20050212.tar.gzをリリース。

  • XIMクライアントの最上位ウィンドウをリサイズしたとき、候補ウィンドウがリサイズされないバグを修正。
  • Xmb/XwcResetIC()で前編集文字列が消去されないバグを修正。
  • XIMクライアントが終了した直後に別のXIMクライアントと接続するとクラッシュするバグを修正。
  • XIMクライアントが終了したときに(imreceiverが)予測候補を表示したままになるバグを修正。
  • deleteLine(キャレットから行末まで削除)がOpenOfficeとQtで正しく動作しないバグを修正。

2005-01-08

imserver-20050108.tar.gzをリリース。

  • 常にXエラーハンドラをオーバライドするようにして、XIMクライアントが強制終了させられたりクラッシュしたときに、巻き添えにならないようにした。
  • 入力状態でキャレットの位置から行末までを削除できるようにした(デフォルトはControl-u)。
  • 予測変換後の変換状態で、予測候補を読み文字列に展開し、かつキャレットの位置を展開前の読み文字列の末尾に移動できるようにした(デフォルトはShift-Escape, Shift-Control-g)。
  • OpenOffice 1.1.2/1.1.3の設定例を追加。

2004-05-16

imserver-20040516.tar.gzをリリース。

  • Imakefileでの日本語変換サーバの指定方法を変更。
  • DB4のDB1.85互換APIを使用した場合、無入力状態なのに予測候補が提示されてしまうバグを修正。

2004-05-06

imserver-20040506.tar.gzをリリース。

  • タイムスタンプが同じ予測候補は辞書順にソートして提示するようにした。
  • 無入力状態以外ではキーイベントをXIMクライアントに転送しないようにした。
  • 自閉モード(Autisticモード、従来の動作)に加え、参照辞書を併用して予測する参照(Reference)モードを追加した。それに伴い、AutisticモードとReferenceモードを切り替えるキー割り当て、状態文字列中のエスケープ文字を置換する文字列、参照辞書のパスを指定するリソースを追加した。

2003-12-17

imserver-20031217.tar.gzをリリース。

  • XIMクライアントが終了するときに、imserverがひきずられてクラッシュするバグを修正。
  • imreceiverの変更をマージ。

2003-11-03

imserver-20031103.tar.gzをリリース。

  • OpenOffice 1.1.0のフィードバックの実装に対応するため、クライアント最適化の動作指定AnotherFeedbackを廃止した。代わりに動作指定Feedbackを追加して、OpenOffice 1.0/1.1の両方に対応した。

2003-07-07

imserver-20030707.tar.gzをリリース。

  • リソースimserver.clientOptimizationを設定することで、クライアント毎に使用する予測辞書を切り替えられるようにした。
  • 前変換や半角全角変換、ひらがなカタカナ変換のリソースを読み込む際、文字列に含まれるエスケープ文字の処理するときにバッファオーバランが発生するバグを修正。

2003-06-09

クライアント最適化のデモを公開。

2003-06-06

imserver-20030606.tar.gzをリリース。

  • リソースimserver.clientOptimizationを指定することで、クライアント毎の動作を最適化できるようにした。
  • On-The-Spotスタイルでキャレットを描画しないXIMクライアントのために、反転文字で疑似的にキャレットを描画できるようにした。
  • On-The-Spotスタイルでフィードバックを正常に描画できないXIMクライアントのために、フィードバック無しのOn-The-Spotスタイルを使用できるようにした。
  • On-The-Spotスタイルでフィードバックの解釈が仕様と異なるXIMクライアントのために、使用するフィードバックの値を切り替えることができるようにした。
  • 設定値を字句解析する処理を共通のモジュールにまとめた。
  • XIMSetIMValues()と2つのXIM属性XNResourceNameとXNResourceClassに対応するコードを追加。
  • XIC属性XNPreeditStateNotifyCallbackに対応。
  • キャレットコールバックを使用してキャレットを移動するコードを追加した。

2003-04-17

imserver-20030417.tar.gzをリリース。

  • OpenOffice 1.0.2で正常にOn-The-Spot入力できるようにした。

2003-03-16

imserver-20030316.tar.gzをリリース。

  • コンパイル時の警告を減らした。
  • FreeBSDのwchar_tの値に依存した半角全角変換、ひらがなカタカナ変換のコードを削除し、変換規則をリソース指定できるように分離した。リソースimserver.symbolSystemMappingで「仮名」変換のルールを、リソースimserver.symbolWidthMappingで「角」変換のルールを記述するようにした。
  • 前変換を基本規則と最終規則の2つに分割し、関係するリソースを変更、追加した。これにより、ローマ字仮名変換の規則(特に「ん」への変換)を改善した。
  • LinuxでCannaを使用した場合にクラッシュするバグを修正。
  • ローマ字かな変換入力で、付属のリソースを用いても「thi」で「てぃ」を入力できなかったバグを修正。
  • LinuxでビルドしやすいようにImakefileにコメントを追加した。
  • 2つのXIC属性XNPreeditStateとXNResetStateに対応。XIMクライアントがXmb/XwcResetIC()を発行したとき、XNResetStateの指定に従って日本語入力をオン、オフにするようにした。
  • 「かなキー」入力がFreeBSD以外(Linuxなど)で有効にならないバグを修正。

前変換モード

前変換モードの仕様が変更になりました。

Direct
前変換しません。
Single
リソースimserver.preconversionBasicRuleの基本規則とimserver.preconversionFinalRuleの最終規則の内容に従って前変換します。文字が入力されると基本規則が適用されます。変換、確定する直前には最終規則が適用されます。変換ルールの詳細については、ローマ字変換を記述した付属のファイルRomaji.adを参考にしてください。
Double
Singleの場合の処理に加えて、ひらがなをカタカナに変換します。

モード切り替えのキー割当は、次のリソースで指定します。

imserver.preedit.directInputMode
imserver.undofix.directInputMode
Directモードに移行します。
imserver.preedit.singlePreconversionMode
imserver.undofix.singlePreconversionMode
Singleモードに移行します。
imserver.preedit.doublePreconversionMode
imserver.undofix.doublePreconversionMode
Doubleモードに移行します。

デフォルトの前変換モードは、次のリソースで指定します。

imserver.preconversion
direct, single, doubleのいずれかを指定します。

次のリソースは廃止になりました。

imserver.preconversionMapping

2002-12-23

予測入力のデモを公開。

2002-09-09

imserver-20020909.tar.gzをリリース。

  • XFree86 4.2.0でmake installが失敗するのを修正した。
  • マクロBUGGY_XFONTSETが適切に定義されるように修正した。
  • 候補のデータ型を見直して、候補のアクセス方法を統一した。
  • 変換状態で候補の読みを展開できるようにした。予測変換の候補を展開すると、候補の読み文字列が前編集文字列になる。通常の変換の候補や、二次予測変換の候補を展開したときは、変換のキャンセルとして扱われる。

2002-07-23

imserver-20020723.tar.gzをリリース。

  • Exposeイベントにより候補ウィンドウを再描画するときにsegmentation faultが発生するバグを修正。
  • warnx()を使用していたところを、fprintf()で標準エラー出力に表示するように直した。
  • Imakefileのターゲット指定方法を、由緒正しいマクロを使うように変更した。

2002-06-21

imserver-20020621.tar.gzをリリース。

  • XIMレシーバに送信する予測候補と予測変換の候補が一致しないバグを修正。
  • 予測変換の候補数がリソースimserver.maximumPredictionsで指定した数よりも少なくなるバグを修正。
  • IC生成時に不適切なXIMスタイルが指定されていた場合の回復処置を追加。

2002-04-30

imserver-20020430.tar.gzをリリース。

  • XIM_SET_IC_FOCUSとXIM_UNSET_IC_FOCUSの応答処理である遅延コールバックの実行中は、Xlibのデフォルトエラーハンドラを無効化するようにした。
  • オーバライドしたXlibのエラーハンドラが呼ばれた場合は、エラーの内容を標準エラー出力に表示するようにした。
  • ImakefileのマクロDebugをデフォルトで定義しないようにした。
  • "#ifndef BUGGY_XFONTSET" とするべきところを "#ifdef BUGGY_XFONTSET" としていたバグを修正。
  • テキスト操作APIの関数のプロトタイプ宣言でポインタ型の引数には可能な限りconst修飾子を指定するようにした。
  • テキスト操作APIを追加した。マルチバイト文字列、ワイドキャラクタ文字列を保存する領域のサイズの計算方法を修正。MB_LEN_MAX、sizeof(wchar_t)とするべきところをsizeof(MB_LEN_MAX)にしていたバグを修正。
  • 予測辞書を更新している間はSIGINTとSIGHUPを無視するようにした。
  • StatusAreaスタイルでXIMクライアントがXIM_RESET_ICリクエストを発行するまで状態が描画されていなかったバグを修正した。
  • Cannaの辞書ホームディレクトリのパスをImakefileのCANNA_DIRで指定するようにした。

2001-09-23

imserver-20010923.tar.gzをリリース。

  • 予測候補の後始末処理の性能を改善した。
  • テキスト操作APIの仕様を一部変更した。
  • XICで指定されるフォントセットを共有するように変更した。詳細についてはXCreateFontsSet()のバグを参照。X11R6.5.1以降では、新たなフォントセットを生成するときに使われてないフォントがあれば解放するようにしたが、それより古いリリースでは、いっさいフォントセットを解放しないようにした。

2001-09-02

imserver-20010902.tar.gzをリリース。

  • XIMStatusAreaスタイルでの状態描画は、イベントによる再描画ではなく、ウィンドウの背景ピクスマップで処理するようにした。
  • XIMPreeditPositionスタイルのプロパティ受渡し用のウィンドウをマップしていたバグを修正した。
  • 予測辞書に登録する「読み文字列」と「確定文字列」が同じ場合、確定文字列を長さ0の文字列にとして登録することにした。また、確定文字列をキーとして検索できるように「確定文字列 + 長さ0の文字列」も登録するようにした。逆に予測辞書から「読み文字列」と「確定文字列」を取り出したときに、確定文字列の長さが0であれば、読み文字列と確定文字列が同じものであるとして扱うようにした。
  • 変換後、変換中の文字列で予測し、予測の内容を更新するようにした。
  • Control-Tab(デフォルトのキー割り当て)で、変換中の文字列を用いて予測入力できるようにした。
  • 予測候補のコミットを遅延コールバックで処理するようにした。

2001-05-30

imserver-20010530.tar.gzをリリース。

  • Linuxでもビルドできるようにした。
  • ムダなテキスト操作を減らした。
  • XIMStatusNoneスタイルをサポートしていなかったのに、利用可能であるとXIMクライアントに伝えていたバグを修正した。
  • wstrncpy()のコピー元文字列の長さ(ヌル文字を除く)とコピー文字数が等しい場合、コピー先文字列にさらにヌル文字を追加していたバグを修正し、さらにコピー元文字列の長さよりもコピー文字数が大きい場合の振る舞いをstrncpy()と同様にした。
  • 日本語変換エンジンとしてCannaとSJ3のどちらかを選べるようにした。
  • OnTheSpot以外のスタイルでは、IC破壊時に候補ウィンドウが破壊されないバグを修正した。
  • IC破壊リクエストは延遅コールバックで処理しないようにした。
  • DEBUGが定義されていないときに、unused parameterの警告が出ないようにした。
  • 文節の数のかかわらず、変換結果の文節関係をXIM_JA_STUDYプロパティに登録するようにした。
  • 候補ウィンドウの幅を決定する際、候補文字列のなかから最大幅のものを求めて、それに合わせるようにした。
  • デフォルトの変換キー(入力状態)の割り当てから、Down, Control-nを取り除いた。
  • デフォルトの次候補/前候補への切り替えキー(変換状態)の割り当てに、それぞれTab/Shift-Tabを追加した。
  • IC生成時に状態領域のジオメトリ属性を指定しないXIMクライアント(Netscape 4.7)では、状態領域のウィンドウが生成されないため、フォーカス獲得時にエラーになるバグを修正した。
  • 入力状態でTabキーを入力したときに、読み文字列から予測入力できるようにした。

2001-03-11

imserver-20010311.tar.gzをリリース。

  • 複数文節の半自動登録に対応するため、確定した文節が2文節以上の場合、ルートウィンドウのXIM_JA_STUDYプロパティに、確定した文字列と読み文字列を設定するようにした。
  • ICの破壊とIMの破壊を遅延コールバックで処理するようにした。
  • StatusAreaスタイルでの描画をピクスマップに描画してからウィンドウにコピーするようにした。
  • ALTキーが押されている場合は前編集文字列に加えずに、そのままクライアントに渡すようにした(XEmacs対応)。
  • クライアントの最上位ウィンドウを移動、サイズ変更したときにも前編集領域のスポット位置が追従するように、XIMレシーバに通知するときに座標変換するようにした。
  • XIM_SET_IC_FOCUSとXIM_UNSET_IC_FOCUSの応答処理をICの遅延コールバックで処理するようにした。
  • XIM_TRIGGER_NOTIFYの応答で、入力ONのときにはICのfocus_in()メソッドを呼び出すようにした。
  • XIMクライアントとの通信でプロパティ取得とセレクション応答のときXlibのエラーハンドラを無効化するようにした。
  • StatusNothingスタイルに対応した。
  • 文節学習の処理で「文節長が変化したが、表示している文字列と候補が異なる」場合も学習していたのを修正した。

2001-02-05

imserver-20010205.tar.gzをリリース。

  • ローマ字変換入力での初期カタカナ入力モードが可能になるように、前変換モードのモードを拡張した。
  • 前編集文字列を全消去するキーを割り当てるリソースimserver.preedit.cancelを追加した。
  • 状態ウィンドウに描画する文字列をリソースで指定できるようにした。
  • 入力コンテキストを破壊する直前の前編集文字列の描画(フォーカスアウト)処理をやめた(Over-The-Spotスタイルでは正常に動作しないため)。
  • Over-The-Spotスタイルに伴うXIMレシーバとの通信に関して、プロトコルを変更し、入力コンテキストのフォーカスを設定する際に、ウィンドウをセレクションで通知するようにした。
  • XRegisterIMInstantiateCallback()を使用するXIMクライアントに対応した。
  • 候補の文字列がユニークになるようにした(候補に同一文字列が複数含まれる場合、正常に候補を選択できなかったバグを修正)。

前変換モード

2001-02-05より、前変換モードの種類をOn/OffからDirect/Single/Doubleに変更しました。モードの意味は次の通りです。

Direct
前変換しません(従来の前変換モードoffの場合と同様)。
Single
リソースimserver.preconversionMappingの内容に従って前変換します(従来の前変換モードonの場合と同様)。変換ルールの詳細については、ローマ字変換を記述した付属のファイルRomaji.adを参考にしてください。
Double
Singleの場合の処理に加えて、ひらがなをカタカナに変換します。

モード切り替えのキー割当は、次のリソースで指定します。

imserver.preedit.directInputMode
imserver.undofix.directInputMode
Directモードに移行します。
imserver.preedit.singlePreconversionMode
imserver.undofix.singlePreconversionMode
Singleモードに移行します。
imserver.preedit.doublePreconversionMode
imserver.undofix.doublePreconversionMode
Doubleモードに移行します。

デフォルトの前変換モードは、次のリソースで指定します。

imserver.preconversion
direct, single, doubleのいずれかを指定します。

また2001-02-05より、次のリソースは廃止になりました。

imserver.preedit.preconversionMode
imserver.undofix.preconversionMode

状態領域に描画する文字列

2001-02-05より、状態領域に描画する文字列を次のリソースで指定できるようになりました。

imserver.activeLabel
日本語入力ONのときに表示する文字列を指定します。
imserver.inactiveLabel
日本語入力OFFのときに表示する文字列を指定します。

どちらも指定した文字列中に%で始まる文字列が含まれていた場合、次のように展開されます。

%s
日本語入力OFFの状態はリソースimserver.inactiveState、入力状態(無入力状態も含む)はリソースimserver.inputState、変換状態はリソースimserver.convertStateで指定する文字列に、それぞれ展開されます。
%p
Directモードはリソースimserver.directMode、Singleモードはリソースimserver.singleMode、Doubleモードはリソースimserver.doubleModeで指定する文字列に、それぞれ展開されます。
%%
%に展開されます。
そのほか%に続く任意の一文字
空文字列に展開されます。

2001-01-24

imserver-20010124.tar.gzをリリース。

  • 変換状態における処理のコード(convert.c)を共通化した。
  • ICの状態領域のAreaNeeded属性とArea属性に暫定的に対応した。
  • On-The-RootとOver-The-Spotに対応するコードを追加した(補助クライアントを同時に使用することで暫定的に対応)。
  • 前編集領域または状態領域のフォントセット属性が変更された場合、新しく指定されたフォントセット名が現在のものと同じ場合は何もしないようにした(性能改善のため)。
  • XIM_RESET_ICを受け取ったときに前編集文字列を消去するタイミングを、リプライ前からリプライ後に変更した。

2000-06-12

imserver-20000612.tar.gzをリリース。

  • XmbResetIC()の直後、描画コールバックを呼び出して前編集文字列を消去するように変更した。

2000-05-29

imserver-20000529.tar.gzをリリース。

  • IC破壊リクエストへの応答に対応した。
  • クライアントウィンドウのDestroyNotifyを受け取ったときに、入力コンテキストの管理情報を解放する処理が間違っていたバグを修正した。

2000-04-30

imserver-20000430.tar.gzをリリース。

  • 関数SendXIMResetICReply()で、リプライする前に状態表示を更新するようにした。
  • 前編集文字列がある状態でもpreconversionModeとDirectKanaInputModeの切り替えができるようにした。
  • 候補一覧のウィンドウを表示するようにした。

2000-02-07

On-The-Spot対応の日本語XIMサーバ機能比較をまとめた。

2000-01-08

imserver-20000108.tar.gzをリリース。

1999-09-20

imserver-19990920.tar.gzをリリース。