diff options
author | Neil <nyamatongwe@gmail.com> | 2023-02-17 09:16:02 +1100 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2023-02-17 09:16:02 +1100 |
commit | 286f99e34248b0bebc7663066a87c18dcc2ea97a (patch) | |
tree | cd0764520422ca9d975a24def9c38952fbe78edd | |
parent | 5e886f24d13438063a58e06e74e6c371cf8311e7 (diff) | |
download | scintilla-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.cxx | 6 |
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; } |