diff options
author | Neil <nyamatongwe@gmail.com> | 2021-03-29 09:03:04 +1100 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2021-03-29 09:03:04 +1100 |
commit | f1ad63380ea954ae42c26d0a4fc0e46574cd9e5f (patch) | |
tree | d0b95dd1e509cc0eca7a353520e9c409c0497195 /qt/ScintillaEditBase/PlatQt.cpp | |
parent | ab70e1041cb40c9d807a18ca7abb5c000adf2fdf (diff) | |
download | scintilla-mirror-f1ad63380ea954ae42c26d0a4fc0e46574cd9e5f.tar.gz |
Modify ListBox::GetValue to return a std::string to avoid fixed size buffers
and the possibility of truncation.
Diffstat (limited to 'qt/ScintillaEditBase/PlatQt.cpp')
-rw-r--r-- | qt/ScintillaEditBase/PlatQt.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/qt/ScintillaEditBase/PlatQt.cpp b/qt/ScintillaEditBase/PlatQt.cpp index ee91f8311..b9d6a0351 100644 --- a/qt/ScintillaEditBase/PlatQt.cpp +++ b/qt/ScintillaEditBase/PlatQt.cpp @@ -953,7 +953,7 @@ public: void Select(int n) override; int GetSelection() override; int Find(const char *prefix) override; - void GetValue(int n, char *value, int len) override; + std::string GetValue(int n) override; void RegisterImage(int type, const char *xpmData) override; void RegisterRGBAImage(int type, int width, int height, const unsigned char *pixelsImage) override; @@ -1128,15 +1128,13 @@ int ListBoxImpl::Find(const char *prefix) return result; } -void ListBoxImpl::GetValue(int n, char *value, int len) +std::string ListBoxImpl::GetValue(int n) { ListWidget *list = GetWidget(); QListWidgetItem *item = list->item(n); QString str = item->data(Qt::DisplayRole).toString(); QByteArray bytes = unicodeMode ? str.toUtf8() : str.toLocal8Bit(); - - strncpy(value, bytes.constData(), len); - value[len-1] = '\0'; + return std::string(bytes.constData()); } void ListBoxImpl::RegisterQPixmapImage(int type, const QPixmap& pm) |