From 867bdbecb3dbc3d27c807fc7cd744a14d9ed2041 Mon Sep 17 00:00:00 2001 From: ocornut Date: Tue, 31 Jan 2023 14:39:45 +0100 Subject: [PATCH] Text: fixed issue in RenderText() leading to IM_ASSERT_PARANOID() triggering if enabled. (#6132, #5720, #5919) Amend 3482d4ec, bd96f6e --- imgui.h | 2 +- imgui_draw.cpp | 6 ++---- imgui_internal.h | 10 ++++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/imgui.h b/imgui.h index 4676f3975..6eef57667 100644 --- a/imgui.h +++ b/imgui.h @@ -23,7 +23,7 @@ // Library Version // (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM > 12345') #define IMGUI_VERSION "1.89.3 WIP" -#define IMGUI_VERSION_NUM 18924 +#define IMGUI_VERSION_NUM 18925 #define IMGUI_HAS_TABLE /* diff --git a/imgui_draw.cpp b/imgui_draw.cpp index 540dc11a7..09db1c6bd 100644 --- a/imgui_draw.cpp +++ b/imgui_draw.cpp @@ -3573,19 +3573,17 @@ void ImFont::RenderText(ImDrawList* draw_list, float size, const ImVec2& pos, Im while (y + line_height < clip_rect.y && s < text_end) { const char* line_end = (const char*)memchr(s, '\n', text_end - s); - if (!line_end) - line_end = text_end; if (word_wrap_enabled) { // FIXME-OPT: This is not optimal as do first do a search for \n before calling CalcWordWrapPositionA(). // If the specs for CalcWordWrapPositionA() were reworked to optionally return on \n we could combine both. // However it is still better than nothing performing the fast-forward! - s = CalcWordWrapPositionA(scale, s, line_end, wrap_width); + s = CalcWordWrapPositionA(scale, s, line_end ? line_end : text_end, wrap_width); s = CalcWordWrapNextLineStartA(s, text_end); } else { - s = line_end + 1; + s = line_end ? line_end + 1 : text_end; } y += line_height; } diff --git a/imgui_internal.h b/imgui_internal.h index a80840f29..56f8a4fd9 100644 --- a/imgui_internal.h +++ b/imgui_internal.h @@ -1,10 +1,12 @@ // dear imgui, v1.89.3 WIP // (internal structures/api) -// You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility! -// Set: -// #define IMGUI_DEFINE_MATH_OPERATORS -// To implement maths operators for ImVec2 (disabled by default to not collide with using IM_VEC2_CLASS_EXTRA along with your own math types+operators) +// You may use this file to debug, understand or extend Dear ImGui features but we don't provide any guarantee of forward compatibility. +// To implement maths operators for ImVec2 (disabled by default to not conflict with using IM_VEC2_CLASS_EXTRA with your own math types+operators), use: +/* +#define IMGUI_DEFINE_MATH_OPERATORS +#include "imgui_internal.h" +*/ /*