# 既知の問題

- バグ
- 仕様

## バグ

現在判明しているバグは特にありません。

## 仕様

バグではありませんが、「本来の」動作と異なる部分です。プログラム上の仕様です。

### Unicode関連

- RTLな文字でもLTRに表示することがある（「فارسی」をエディタにコピー＆ペーストしてみて下さい）
- カレットが合成文字上を移動した時、変な場所に来る「ぱぴぷぺぽ」をエディタにコピー＆ペーストしてみて下さい）
- カレットがBMP外の文字（UTF-16でサロゲートペアが必要な文字）上を移動した場合、文字の中間に来る（「𠀋」をエディタにコピー＆ペーストしてみて下さい）

これらの仕様は、MaxyがUnicode対応と謳っていながら内部コードをUCS-2（1文字＝2バイト長固定）で保持しているということと、「論理座標（バッファ内座標）」を文字位置としてそのまま使用していることが原因です（現在は、座標を「物理座標（表示座標）」「論理座標（バッファ内座標）」の2種類持っています）。 サロゲートペアを考慮したUTF-16などで保持したり、新たに「グリフ座標（文字座標）」を追加したりすることでこれらの問題を解決できます。

Uniscribeを使えば何とかなると思いますが、チューニングが必要（単純に実装するだけでは描画速度が遅くなる）ということと、内部構造をそれなりに変更しなければいけないということで先送り。 多分、Alphaのソースコードを見ればそのあたりの問題が解決されていると思うけど…

Copyright© 2003-2009 しまたろ