build: add -Wformat-security (#5646)
On some distros format-security is turned on to detect possible issues with non-string literals as format strings Let's explicitly turn it on and fix the ImgUi text formatting to avoid compile issues on those platforms Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
@@ -502,6 +502,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE
|
||||
-Wall -Wextra -Wno-error
|
||||
-Wformat-security
|
||||
-Wno-return-type
|
||||
-Wno-unused-parameter
|
||||
-Wno-unused-function
|
||||
@@ -529,6 +530,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch")
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE
|
||||
-Wall -Wextra -Wno-error
|
||||
-Wformat-security
|
||||
-Wno-return-type
|
||||
-Wno-unused-parameter
|
||||
-Wno-unused-function
|
||||
@@ -579,6 +581,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
|
||||
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE
|
||||
-Wall -Wextra -Wno-error
|
||||
-Wformat-security
|
||||
-Wno-unused-parameter
|
||||
-Wno-unused-function
|
||||
-Wno-unused-variable
|
||||
|
||||
@@ -395,7 +395,7 @@ void PresetsCustomWidget(WidgetInfo& info) {
|
||||
ImGui::TableNextRow();
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::AlignTextToFramePadding();
|
||||
ImGui::Text(name.c_str());
|
||||
ImGui::Text("%s", name.c_str());
|
||||
for (int i = PRESET_SECTION_SETTINGS; i < PRESET_SECTION_MAX; i++) {
|
||||
ImGui::TableNextColumn();
|
||||
DrawSectionCheck(name, !info.presetValues["blocks"].contains(blockInfo[i].names[1]), &info.apply[i],
|
||||
|
||||
@@ -647,7 +647,7 @@ void PlandomizerOverlayText(std::pair<Rando::Item, uint32_t> drawObject) {
|
||||
imageMax.y - ImGui::CalcTextSize(std::to_string(drawObject.second).c_str()).y - 2);
|
||||
|
||||
ImGui::SetCursorScreenPos(textPos);
|
||||
ImGui::Text(std::to_string(drawObject.second).c_str());
|
||||
ImGui::Text("%s", std::to_string(drawObject.second).c_str());
|
||||
|
||||
// Overlay item info
|
||||
if (drawObject.first.GetRandomizerGet() >= RG_PROGRESSIVE_HOOKSHOT &&
|
||||
@@ -665,7 +665,7 @@ void PlandomizerOverlayText(std::pair<Rando::Item, uint32_t> drawObject) {
|
||||
ImGui::SetCursorScreenPos(textPos);
|
||||
std::string overlayText = "+";
|
||||
overlayText += extractNumberInParentheses(drawObject.first.GetName().english.c_str());
|
||||
ImGui::Text(overlayText.c_str());
|
||||
ImGui::Text("%s", overlayText.c_str());
|
||||
}
|
||||
if (drawObject.first.GetRandomizerGet() >= RG_FOREST_TEMPLE_BOSS_KEY &&
|
||||
drawObject.first.GetRandomizerGet() <= RG_GANONS_CASTLE_BOSS_KEY) {
|
||||
@@ -678,7 +678,7 @@ void PlandomizerOverlayText(std::pair<Rando::Item, uint32_t> drawObject) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
ImGui::Text(shortName.c_str());
|
||||
ImGui::Text("%s", shortName.c_str());
|
||||
}
|
||||
if (drawObject.first.GetRandomizerGet() >= RG_OCARINA_A_BUTTON &&
|
||||
drawObject.first.GetRandomizerGet() <= RG_OCARINA_C_RIGHT_BUTTON) {
|
||||
@@ -691,7 +691,7 @@ void PlandomizerOverlayText(std::pair<Rando::Item, uint32_t> drawObject) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
ImGui::Text(shortName.c_str());
|
||||
ImGui::Text("%s", shortName.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1066,7 +1066,7 @@ void PlandomizerDrawHintsWindow() {
|
||||
ImGui::SeparatorText(hintData.hintName.c_str());
|
||||
ImGui::Text("Current Hint: ");
|
||||
ImGui::SameLine();
|
||||
ImGui::TextWrapped(hintData.hintText.c_str());
|
||||
ImGui::TextWrapped("%s", hintData.hintText.c_str());
|
||||
|
||||
if (spoilerHintData.size() > 0) {
|
||||
hintInputText = plandoHintData[index].hintText.c_str();
|
||||
@@ -1115,9 +1115,9 @@ void PlandomizerDrawLocationsWindow(RandomizerCheckArea rcArea) {
|
||||
auto randoArea = Rando::StaticData::GetLocation(checkID)->GetArea();
|
||||
if (rcArea == RCAREA_INVALID || rcArea == randoArea) {
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::TextWrapped(spoilerData.checkName.c_str());
|
||||
ImGui::TextWrapped("%s", spoilerData.checkName.c_str());
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::TextWrapped(spoilerData.checkRewardItem.GetName().english.c_str());
|
||||
ImGui::TextWrapped("%s", spoilerData.checkRewardItem.GetName().english.c_str());
|
||||
ImGui::TableNextColumn();
|
||||
PlandomizerDrawItemSlots(index);
|
||||
if (plandoLogData[index].checkRewardItem.GetRandomizerGet() == RG_ICE_TRAP) {
|
||||
|
||||
@@ -1085,7 +1085,7 @@ void CheckTrackerWindow::DrawElement() {
|
||||
totalChecksSS << totalChecksAvailable << " Available / ";
|
||||
}
|
||||
totalChecksSS << totalChecksGotten << " Checked / " << totalChecks << " Total";
|
||||
ImGui::Text(totalChecksSS.str().c_str());
|
||||
ImGui::Text("%s", totalChecksSS.str().c_str());
|
||||
|
||||
UIWidgets::PaddedSeparator();
|
||||
|
||||
@@ -1194,7 +1194,7 @@ void CheckTrackerWindow::DrawElement() {
|
||||
}
|
||||
}
|
||||
|
||||
ImGui::Text(areaTotalsSS.str().c_str());
|
||||
ImGui::Text("%s", areaTotalsSS.str().c_str());
|
||||
UIWidgets::Tooltip(areaTotalsTooltipSS.str().c_str());
|
||||
} else {
|
||||
ImGui::Text("???");
|
||||
|
||||
Reference in New Issue
Block a user