From 286f99e34248b0bebc7663066a87c18dcc2ea97a Mon Sep 17 00:00:00 2001 From: Neil Date: Fri, 17 Feb 2023 09:16:02 +1100 Subject: Use maximum 4 digits for next fold level display when lexer incorrectly sets fold level to -1. Previously 8 digits were displayed due to sign extension. Limit formatted length although no possibility of exceeding 100 characters. --- src/MarginView.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/MarginView.cxx b/src/MarginView.cxx index d96c5ec7c..7f63f3047 100644 --- a/src/MarginView.cxx +++ b/src/MarginView.cxx @@ -376,15 +376,15 @@ void MarginView::PaintOneMargin(Surface *surface, PRectangle rc, PRectangle rcOn char number[100] = ""; if (FlagSet(model.foldFlags, FoldFlag::LevelNumbers)) { const FoldLevel lev = model.pdoc->GetFoldLevel(lineDoc); - sprintf(number, "%c%c %03X %03X", + snprintf(number,std::size(number), "%c%c %03X %03X", LevelIsHeader(lev) ? 'H' : '_', LevelIsWhitespace(lev) ? 'W' : '_', LevelNumber(lev), - static_cast(lev) >> 16 + static_cast(lev) >> 16 ); } else { const int state = model.pdoc->GetLineState(lineDoc); - sprintf(number, "%0X", state); + snprintf(number, std::size(number), "%0X", state); } sNumber = number; } -- cgit v1.2.3