Skip to content

Commit d4f08bf

Browse files
authored
getFontData()の不具合対応(0x3000以下の全角文字が取得できなかった)
1 parent 6255da8 commit d4f08bf

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

libraries/sdfonts/sdfonts.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66
// 修正 2016/05/17 by Tamakichi fontfile_read()をブロック読み込みに修正
77
// 修正 2016/05/19 by たま吉さん, グラフィック液晶用フォントモードの追加(setLCDMode()関数追加)
88
// 修正 2016/06/26 by たま吉さん, ESP8266対応(ARDUINO_ARCH_AVRの判定追加),read_code()の不具合対応
9-
// 2016/12/15 findcode()の不具合対応(flg_stopの初期値を-1から0に訂正)
9+
// 修正 2016/12/15 by たま吉さん, findcode()の不具合対応(flg_stopの初期値を-1から0に訂正)
10+
// 修正 2017/03/22 by たま吉さん, getFontData()の不具合対応(0x3000以下の全角文字が取得できなかった)
1011
//
12+
1113
#define MYDEBUG 0
1214
#define USE_CON 0
1315

@@ -282,7 +284,7 @@ boolean sdfonts::getFontData(byte* fontdata, uint16_t utf16) {
282284
}
283285

284286
// 文字コードから全角、半角を判定する
285-
if (utf16 < 0x3000) {
287+
if (utf16 < 0x100) {
286288
switch (utf16) {
287289
case 0x5C:
288290
case 0xA2:
@@ -345,17 +347,16 @@ char* sdfonts::getFontData(byte* fontdata,char *pUTF8) {
345347
// 戻り値: true 正常終了1, false 異常終了
346348
//
347349
boolean sdfonts::getFontDataByUTF16(byte* fontdata, uint16_t utf16) {
348-
uint32_t code;
350+
int16_t code;
349351
uint32_t addr;
350352
uint8_t bnum;
351-
byte n;
352353

353354
code = findcode(utf16);
354355
if ( 0 > code)
355356
return false; // 該当するフォントが存在しない
356357

357358
bnum = pgm_read_byte(_finfo+_fontNo*RCDSIZ+OFSET_BNUM);
358-
addr = cnvAddres(OFSET_DATA, _fontNo ) + code * (uint32_t)bnum;
359+
addr = cnvAddres(OFSET_DATA, _fontNo ) + (uint32_t)code * (uint32_t)bnum;
359360
return fontfile_read(addr, fontdata, bnum );
360361
}
361362

0 commit comments

Comments
 (0)