diff --git a/Adafruit_GFX.cpp b/Adafruit_GFX.cpp index ae26bf1..9032f2c 100644 --- a/Adafruit_GFX.cpp +++ b/Adafruit_GFX.cpp @@ -1435,7 +1435,7 @@ void Adafruit_GFX::drawChar(int16_t x, int16_t y, unsigned char c, // newlines, returns, non-printable characters, etc. Calling // drawChar() directly with 'bad' characters of font may cause mayhem! - c -= (uint8_t)pgm_read_byte(&gfxFont->first); + c -= (uint8_t)pgm_read_word(&gfxFont->first); GFXglyph *glyph = pgm_read_glyph_ptr(gfxFont, c); uint8_t *bitmap = pgm_read_bitmap_ptr(gfxFont); @@ -1519,8 +1519,8 @@ size_t Adafruit_GFX::write(uint8_t c) { cursor_y += (int16_t)textsize_y * (uint8_t)pgm_read_byte(&gfxFont->yAdvance); } else if (c != '\r') { - uint8_t first = pgm_read_byte(&gfxFont->first); - if ((c >= first) && (c <= (uint8_t)pgm_read_byte(&gfxFont->last))) { + uint16_t first = pgm_read_word(&gfxFont->first); + if ((c >= first) && (c <= pgm_read_word(&gfxFont->last))) { GFXglyph *glyph = pgm_read_glyph_ptr(gfxFont, c - first); uint8_t w = pgm_read_byte(&glyph->width), h = pgm_read_byte(&glyph->height); @@ -1635,8 +1635,8 @@ void Adafruit_GFX::charBounds(unsigned char c, int16_t *x, int16_t *y, *x = 0; // Reset x to zero, advance y by one line *y += textsize_y * (uint8_t)pgm_read_byte(&gfxFont->yAdvance); } else if (c != '\r') { // Not a carriage return; is normal char - uint8_t first = pgm_read_byte(&gfxFont->first), - last = pgm_read_byte(&gfxFont->last); + uint16_t first = pgm_read_word(&gfxFont->first), + last = pgm_read_word(&gfxFont->last); if ((c >= first) && (c <= last)) { // Char present in this font? GFXglyph *glyph = pgm_read_glyph_ptr(gfxFont, c - first); uint8_t gw = pgm_read_byte(&glyph->width),