--- SDL_ttf.c_bug4361 2018-11-06 14:14:58.116885653 +0100 +++ SDL_ttf.c 2018-11-06 14:50:47.646939939 +0100 @@ -1668,7 +1668,7 @@ Uint8 *alpha_table = NULL; Uint8 *utf8_alloc = NULL; - int line, numLines, rowHeight; + int line, numLines, lineskip, rowHeight; char *str = NULL, **strLines = NULL, **newLines = NULL; TTF_CHECKPOINTER(font, NULL); @@ -1780,10 +1780,11 @@ } while (tok < end); } - rowHeight = SDL_max(height, TTF_FontLineSkip(font)); + lineskip = TTF_FontLineSkip(font); + rowHeight = SDL_max(height, lineskip); width = (numLines > 1) ? wrapLength : width; - height = rowHeight * numLines; + height = rowHeight + lineskip * (numLines - 1); /* Create surface for rendering */ if (render_mode == RENDER_SOLID) { @@ -1807,7 +1808,7 @@ TTF_Size_Internal(font, text, STR_UTF8, &line_width, NULL, &xstart, &ystart); /* Move to current line */ - ystart += rowHeight * line; + ystart += lineskip * line; /* Render one text line to textbuf */ if (Render_Line(font, textbuf, text, xstart, ystart, render_mode, color, alpha_table, line_width /* style line width */, 1 /* wrapped */) < 0) {