aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2023-02-17 09:16:02 +1100
committerNeil <nyamatongwe@gmail.com>2023-02-17 09:16:02 +1100
commit286f99e34248b0bebc7663066a87c18dcc2ea97a (patch)
treecd0764520422ca9d975a24def9c38952fbe78edd
parent5e886f24d13438063a58e06e74e6c371cf8311e7 (diff)
downloadscintilla-mirror-286f99e34248b0bebc7663066a87c18dcc2ea97a.tar.gz
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.
-rw-r--r--src/MarginView.cxx6
1 files 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<int>(lev) >> 16
+ static_cast<unsigned int>(lev) >> 16
);
} else {
const int state = model.pdoc->GetLineState(lineDoc);
- sprintf(number, "%0X", state);
+ snprintf(number, std::size(number), "%0X", state);
}
sNumber = number;
}