From 40ce6dc5df1adb5a740bec6c3cc017eeb9b1548d Mon Sep 17 00:00:00 2001 From: ocornut Date: Mon, 22 Aug 2022 11:06:33 +0200 Subject: [PATCH] ImStrv: Fixed various compile errors/warnings. --- imgui.cpp | 26 +++++++++++++------------- imgui_draw.cpp | 4 ++-- imgui_widgets.cpp | 4 ++-- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/imgui.cpp b/imgui.cpp index 0edf14007..d66321ec6 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -12058,7 +12058,7 @@ void ImGui::OpenPopup(ImStrv str_id, ImGuiPopupFlags popup_flags) { ImGuiContext& g = *GImGui; ImGuiID id = g.CurrentWindow->GetID(str_id); - IMGUI_DEBUG_LOG_POPUP("[popup] OpenPopup(\"%.*s\" -> 0x%08X\n", (int)(str_id.End - str_id.Begin), str_id, id); + IMGUI_DEBUG_LOG_POPUP("[popup] OpenPopup(\"%.*s\" -> 0x%08X\n", (int)(str_id.End - str_id.Begin), str_id.Begin, id); OpenPopupEx(id, popup_flags); } @@ -15959,7 +15959,7 @@ void ImGui::DebugRenderKeyboardPreview(ImDrawList* draw_list) // Helper tool to diagnose between text encoding issues and font loading issues. Pass your UTF-8 string and verify that there are correct. void ImGui::DebugTextEncoding(ImStrv str) { - Text("Text: \"%s\"", str); + Text("Text: \"%.*s\"", (int)str.length(), str.Begin); if (!BeginTable("##DebugTextEncoding", 4, ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg | ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_Resizable)) return; TableSetupColumn("Offset"); @@ -15972,7 +15972,7 @@ void ImGui::DebugTextEncoding(ImStrv str) unsigned int c; const int c_utf8_len = ImTextCharFromUtf8(&c, p, str.End); TableNextColumn(); - Text("%d", (int)(size_t)(p - str)); + Text("%d", (int)(p - str.Begin)); TableNextColumn(); for (int byte_index = 0; byte_index < c_utf8_len; byte_index++) { @@ -15981,7 +15981,7 @@ void ImGui::DebugTextEncoding(ImStrv str) Text("0x%02X", (int)(unsigned char)p[byte_index]); } TableNextColumn(); - TextUnformatted(p, p + c_utf8_len); + TextUnformatted(ImStrv(p, p + c_utf8_len)); if (!GetFont()->IsGlyphInFont((ImWchar)c)) { SameLine(); @@ -16173,7 +16173,7 @@ void ImGui::ShowFontAtlas(ImFontAtlas* atlas) ImFontAtlasRect r = {}; atlas->GetCustomRect(id, &r); ImStrv buf; - ImFormatStringToTempBuffer(&buf, NULL, "ID:%08X, used:%d, { w:%3d, h:%3d } { x:%4d, y:%4d }", id, entry.IsUsed, r.w, r.h, r.x, r.y); + ImFormatStringToTempBuffer(&buf, "ID:%08X, used:%d, { w:%3d, h:%3d } { x:%4d, y:%4d }", id, entry.IsUsed, r.w, r.h, r.x, r.y); TableNextColumn(); Selectable(buf.Begin); if (IsItemHovered()) @@ -17796,28 +17796,28 @@ void ImGui::DebugHookIdInfo(ImGuiID id, ImGuiDataType data_type, const void* dat if (info->DescOffset == -1) { - const char* result = NULL; - const char* result_end = NULL; + ImStrv result; switch (data_type) { case ImGuiDataType_S32: - ImFormatStringToTempBuffer(&result, &result_end, "%d", (int)(intptr_t)data_id); + ImFormatStringToTempBuffer(&result, "%d", (int)(intptr_t)data_id); break; case ImGuiDataType_String: - ImFormatStringToTempBuffer(&result, &result_end, "%.*s", data_id_end ? (int)((const char*)data_id_end - (const char*)data_id) : (int)ImStrlen((const char*)data_id), (const char*)data_id); + ImFormatStringToTempBuffer(&result, "%.*s", data_id_end ? (int)((const char*)data_id_end - (const char*)data_id) : (int)ImStrlen((const char*)data_id), (const char*)data_id); break; case ImGuiDataType_Pointer: - ImFormatStringToTempBuffer(&result, &result_end, "(void*)0x%p", data_id); + ImFormatStringToTempBuffer(&result, "(void*)0x%p", data_id); break; case ImGuiDataType_ID: // PushOverrideID() is often used to avoid hashing twice, which would lead to 2 calls to DebugHookIdInfo(). We prioritize the first one. - ImFormatStringToTempBuffer(&result, &result_end, "0x%08X [override]", id); + ImFormatStringToTempBuffer(&result, "0x%08X [override]", id); break; default: IM_ASSERT(0); } info->DescOffset = tool->ResultPathsBuf.size(); - tool->ResultPathsBuf.append(result, result_end + 1); // Include zero terminator + result.End++; // Include zero terminator + tool->ResultPathsBuf.append(result); } info->QuerySuccess = true; info->DataType = (ImS8)data_type; @@ -17869,7 +17869,7 @@ void ImGui::ShowIDStackToolWindow(bool* p_open) if (c == '/') tool->ResultTempBuf.append("\\"); if (c < 256 || !tool->OptHexEncodeNonAsciiChars) - tool->ResultTempBuf.append(p, p_next); + tool->ResultTempBuf.append(ImStrv(p, p_next)); else for (; p < p_next; p++) tool->ResultTempBuf.appendf("\\x%02x", (unsigned char)*p); p = p_next; diff --git a/imgui_draw.cpp b/imgui_draw.cpp index 86a2f9f64..78e2bfc30 100644 --- a/imgui_draw.cpp +++ b/imgui_draw.cpp @@ -3135,7 +3135,7 @@ ImFont* ImFontAtlas::AddFontFromFileTTF(ImStrv filename, float size_pixels, cons { if (font_cfg_template == NULL || (font_cfg_template->Flags & ImFontFlags_NoLoadError) == 0) { - IMGUI_DEBUG_LOG("While loading '%s'\n", filename); + IMGUI_DEBUG_LOG("While loading '%.*s'\n", filename.length(), filename.Begin); IM_ASSERT_USER_ERROR(0, "Could not load font file!"); } return NULL; @@ -5632,7 +5632,7 @@ begin: } else { - s = line_end ? line_end + 1 : text.End; + s = line_end ? line_end + 1 : text_end; } y += line_height; } diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp index 283ed22cd..190261fb4 100644 --- a/imgui_widgets.cpp +++ b/imgui_widgets.cpp @@ -1911,7 +1911,7 @@ bool ImGui::BeginCombo(ImStrv label, ImStrv preview_value, ImGuiComboFlags flags const float arrow_size = (flags & ImGuiComboFlags_NoArrowButton) ? 0.0f : GetFrameHeight(); const ImVec2 label_size = CalcTextSize(label, true); - const float preview_width = ((flags & ImGuiComboFlags_WidthFitPreview) && (preview_value != NULL)) ? CalcTextSize(preview_value, true).x : 0.0f; + const float preview_width = ((flags & ImGuiComboFlags_WidthFitPreview) && preview_value) ? CalcTextSize(preview_value, true).x : 0.0f; const float w = (flags & ImGuiComboFlags_NoPreview) ? arrow_size : ((flags & ImGuiComboFlags_WidthFitPreview) ? (arrow_size + preview_width + style.FramePadding.x * 2.0f) : CalcItemWidth()); const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y + style.FramePadding.y * 2.0f)); const ImRect total_bb(bb.Min, bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); @@ -1950,7 +1950,7 @@ bool ImGui::BeginCombo(ImStrv label, ImStrv preview_value, ImGuiComboFlags flags if (flags & ImGuiComboFlags_CustomPreview) { g.ComboPreviewData.PreviewRect = ImRect(bb.Min.x, bb.Min.y, value_x2, bb.Max.y); - IM_ASSERT(!preview_value); + IM_ASSERT(preview_value.empty()); } // Render preview and label