A1404Sのバグ?

自前で記述している、ダイアログの文字が画面外に
はみ出してしまうというバグを持っていたアプリの修正していた。


選択肢部分で改行するわけには行かないところであったため
現在使用しているノーマルフォントの幅が22ドットより
大きかった場合、スモールフォントを使用するようにプログラムを組んでいた。


アプリの端末チェックを任せていた他の会社から
A1404Sのみ、文字が画面外にはみ出てしまうとらしいという連絡を受け
その端末を送ってもらった。



AECHAR s[] = { 'あ', '\0' };
int wid = IDISPLAY_MeasureText( display, AEE_FONT_NORMAL, s );
と記述し、widの値を確認したところ、12が入っていた。
なお、この端末は24が返ってこなければおかしいのである。


次に

AECHAR s[] = { 'あ', 'い', '\0' };
int wid = IDISPLAY_MeasureText( display, AEE_FONT_NORMAL, s );
と記述し、widの値を確認したところ、36が入っていた。

その後、いろいろなテストを行った結果、最初の全角文字のみ半角として扱われるらしい。
仕方がないので、判定方法を


AECHAR s[] = { 'A', 'A', '\0' };
int wid = IDISPLAY_MeasureText( display, AEE_FONT_NORMAL, s );
と記述することにより、正常な値を取得できることとなった。