From 1058dbeab830f231c7496db83d6c31609b44c0f6 Mon Sep 17 00:00:00 2001 From: Allan CORNET Date: Mon, 6 Jun 2022 18:27:42 +0200 Subject: [PATCH] fix #661 CodeQL new warnings (#664) * fix #661 CodeQL new warnings * fix codacy warnings detected after CodeQL fix * limit cin width * indent * unusued variables --- CHANGELOG.md | 2 ++ modules/core/src/cpp/GetNelsonPath.cpp | 2 +- modules/engine/src/cpp/StartNelson.cpp | 4 ++-- .../engine/src/cpp/StartNelsonUserModules.cpp | 2 +- .../engine/src/cpp/StartNelsonUserScript.cpp | 3 +-- modules/file_archiver/src/c/minizip/mz_zip.c | 12 +++-------- .../src/cpp/ListFiles.cpp | 4 ++-- modules/help_browser/src/cpp/HelpBrowser.cpp | 2 +- .../help_browser/src/cpp/HelpCollection.cpp | 7 ++++++- modules/help_tools/src/c/hoedown/document.c | 2 +- modules/help_tools/src/c/hoedown/html.c | 2 +- modules/help_tools/src/cpp/XmlDocDocument.cpp | 4 ++-- modules/interpreter/src/cpp/Context.cpp | 6 +----- modules/interpreter/src/cpp/NelsonLexer.cpp | 5 ++--- .../src/cpp/MemoryInformation.cpp | 5 ++--- modules/mex/src/cpp/MxStruct.cpp | 2 +- .../builtin/cpp/ismoduleBuiltin.cpp | 3 +-- modules/modules_manager/src/c/semver/semver.c | 4 ++-- modules/operators/src/cpp/Colon.cpp | 2 +- modules/profiler/resources/highlight.pack.js | 6 +++--- modules/profiler/resources/sort.js | 2 +- .../builtin/cpp/fwriteBuiltin.cpp | 4 ++++ modules/stream_manager/src/cpp/FileWrite.cpp | 2 +- .../stream_manager/src/cpp/PrintfFunction.cpp | 8 ++++--- .../stream_manager/src/fmt/include/fmt/core.h | 7 +++---- .../stream_manager/src/fmt/include/fmt/os.h | 2 +- modules/string/src/cpp/MatrixToString.cpp | 21 +++++++------------ modules/text_editor/src/cpp/QtTextEdit.cpp | 6 ++---- modules/types/src/cpp/ArrayOf_Extract.cpp | 2 +- modules/types/src/cpp/Dimensions.cpp | 2 +- .../webtools/src/cpp/RepositoryHelpers.cpp | 12 +++++------ 31 files changed, 68 insertions(+), 79 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07b6f8770a..88f34e8889 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - [#659](http://github.com/Nelson-numerical-software/nelson/issues/659): qhelpgenerator on macOs after brew Qt6.3.0 update. +- [#661](http://github.com/Nelson-numerical-software/nelson/issues/661): CodeQL warnings. + ## 0.6.5 (2022-05-26) ### Added diff --git a/modules/core/src/cpp/GetNelsonPath.cpp b/modules/core/src/cpp/GetNelsonPath.cpp index 3ff95125d7..7ed15805a9 100644 --- a/modules/core/src/cpp/GetNelsonPath.cpp +++ b/modules/core/src/cpp/GetNelsonPath.cpp @@ -67,7 +67,7 @@ get_basepathU() { std::string path = ""; pid_t pid = getpid(); - char buf[10]; + char buf[13]; sprintf(buf, "%d", pid); std::string _link = "/proc/"; _link.append(buf); diff --git a/modules/engine/src/cpp/StartNelson.cpp b/modules/engine/src/cpp/StartNelson.cpp index bcec39d0cf..cb0baafb4e 100644 --- a/modules/engine/src/cpp/StartNelson.cpp +++ b/modules/engine/src/cpp/StartNelson.cpp @@ -111,7 +111,7 @@ ErrorPathDetection(NELSON_ENGINE_MODE _mode) } #else msg = msg + L"\n"; - fwprintf(stderr, msg.c_str()); + fwprintf(stderr, L"%ls", msg.c_str()); #endif } //============================================================================= @@ -128,7 +128,7 @@ ErrorInterpreter(NELSON_ENGINE_MODE _mode) } #else msg = msg + L"\n"; - fwprintf(stderr, msg.c_str()); + fwprintf(stderr, L"%ls", msg.c_str()); #endif } //============================================================================= diff --git a/modules/engine/src/cpp/StartNelsonUserModules.cpp b/modules/engine/src/cpp/StartNelsonUserModules.cpp index 746b5ffd49..c2541a82c5 100644 --- a/modules/engine/src/cpp/StartNelsonUserModules.cpp +++ b/modules/engine/src/cpp/StartNelsonUserModules.cpp @@ -25,7 +25,7 @@ printError(Interface* io, const std::wstring& message) io->warningMessage(message); } else { const wchar_t* format = L"%s\n"; - fwprintf(stdout, format, message.c_str()); // lgtm [cpp/wrong-type-format-argument] + fwprintf(stdout, format, message.c_str()); } } //============================================================================= diff --git a/modules/engine/src/cpp/StartNelsonUserScript.cpp b/modules/engine/src/cpp/StartNelsonUserScript.cpp index cfb5c45f59..360dc234fc 100644 --- a/modules/engine/src/cpp/StartNelsonUserScript.cpp +++ b/modules/engine/src/cpp/StartNelsonUserScript.cpp @@ -39,8 +39,7 @@ StartNelsonUserScript(Evaluator* eval) io->errorMessage(errmsg); } else { const wchar_t* format = L"%s\n"; - fwprintf( - stderr, format, errmsg.c_str()); // lgtm [cpp/wrong-type-format-argument] + fwprintf(stderr, format, errmsg.c_str()); } } return true; diff --git a/modules/file_archiver/src/c/minizip/mz_zip.c b/modules/file_archiver/src/c/minizip/mz_zip.c index c566a39be4..40da0c2041 100644 --- a/modules/file_archiver/src/c/minizip/mz_zip.c +++ b/modules/file_archiver/src/c/minizip/mz_zip.c @@ -141,13 +141,7 @@ mz_zip_search_eocd(void* stream, int64_t* central_pos) return err; file_size = mz_stream_tell(stream); - - if (max_back <= 0) { // lgtm [cpp/constant-comparison] - max_back = file_size; - } - if (max_back > file_size) { - max_back = file_size; - } + max_back = file_size; return mz_stream_find_reverse(stream, (const void*)find, sizeof(find), max_back, central_pos); } @@ -1397,11 +1391,11 @@ mz_zip_close(void* handle) } if (zip->file_info_stream != NULL) { - mz_stream_mem_close(zip->file_info_stream); // lgtm [cpp/useless-expression] + mz_stream_mem_close(zip->file_info_stream); mz_stream_mem_delete(&zip->file_info_stream); } if (zip->local_file_info_stream != NULL) { - mz_stream_mem_close(zip->local_file_info_stream); // lgtm [cpp/useless-expression] + mz_stream_mem_close(zip->local_file_info_stream); mz_stream_mem_delete(&zip->local_file_info_stream); } diff --git a/modules/files_folders_functions/src/cpp/ListFiles.cpp b/modules/files_folders_functions/src/cpp/ListFiles.cpp index 0afcd75011..7d81e44dc3 100644 --- a/modules/files_folders_functions/src/cpp/ListFiles.cpp +++ b/modules/files_folders_functions/src/cpp/ListFiles.cpp @@ -178,7 +178,7 @@ ListFiles(const std::wstring& directory, bool bSubdirectories) struct { bool - operator()(FileInfo a, FileInfo b) // lgtm [cpp/large-parameter] + operator()(FileInfo a, FileInfo b) { return static_cast(a.isDir()) > static_cast(b.isDir()); } @@ -189,7 +189,7 @@ ListFiles(const std::wstring& directory, bool bSubdirectories) struct { bool - operator()(FileInfo a, FileInfo b) // lgtm [cpp/large-parameter] + operator()(FileInfo a, FileInfo b) { return a.getName() < b.getName(); } diff --git a/modules/help_browser/src/cpp/HelpBrowser.cpp b/modules/help_browser/src/cpp/HelpBrowser.cpp index 6773d9b2ea..455361487a 100644 --- a/modules/help_browser/src/cpp/HelpBrowser.cpp +++ b/modules/help_browser/src/cpp/HelpBrowser.cpp @@ -140,7 +140,7 @@ HelpBrowser::closeBrowser() } } //============================================================================= -HelpBrowser::HelpBrowser() { } +HelpBrowser::HelpBrowser() {} //============================================================================= void HelpBrowser::registerHelpFiles(const wstringVector& filenames) diff --git a/modules/help_browser/src/cpp/HelpCollection.cpp b/modules/help_browser/src/cpp/HelpCollection.cpp index e4cea9f7aa..f97d3599e9 100644 --- a/modules/help_browser/src/cpp/HelpCollection.cpp +++ b/modules/help_browser/src/cpp/HelpCollection.cpp @@ -51,7 +51,12 @@ HelpCollection::HelpCollection() std::wstring cachedCollectionFile = getNelsonCachedCollectionFullFilename(); if (!IsFile(cachedCollectionFile)) { std::wstring collectionFile = getNelsonCollectionFullFilename(); - QHelpEngineCore* collection = new QHelpEngineCore(wstringToQString(collectionFile)); + QHelpEngineCore* collection = nullptr; + try { + collection = new QHelpEngineCore(wstringToQString(collectionFile)); + } catch (std::bad_alloc&) { + collection = nullptr; + } if (collection) { collection->copyCollectionFile(wstringToQString(cachedCollectionFile)); delete collection; diff --git a/modules/help_tools/src/c/hoedown/document.c b/modules/help_tools/src/c/hoedown/document.c index 0b8c47db04..fffded6dce 100644 --- a/modules/help_tools/src/c/hoedown/document.c +++ b/modules/help_tools/src/c/hoedown/document.c @@ -1191,7 +1191,7 @@ char_link(hoedown_buffer* ob, hoedown_document* doc, uint8_t* data, size_t offse } i++; } else if (i >= 1 && _isspace(data[i - 1]) - && (data[i] == '\'' || data[i] == '"')) // lgtm [cpp/constant-comparison] + && (data[i] == '\'' || data[i] == '"')) { break; } else { diff --git a/modules/help_tools/src/c/hoedown/html.c b/modules/help_tools/src/c/hoedown/html.c index efea6d867d..d9cf1b105d 100644 --- a/modules/help_tools/src/c/hoedown/html.c +++ b/modules/help_tools/src/c/hoedown/html.c @@ -389,7 +389,7 @@ rndr_raw_block(hoedown_buffer *ob, const hoedown_buffer *text, const hoedown_ren { return; } - /* FIXME: Do we *really* need to trim the HTML? How does that make a difference? */ // lgtm [cpp/fixme-comment] + /* FIXME: Do we *really* need to trim the HTML? How does that make a difference? */ sz = text->size; while (sz > 0 && text->data[sz - 1] == '\n') { diff --git a/modules/help_tools/src/cpp/XmlDocDocument.cpp b/modules/help_tools/src/cpp/XmlDocDocument.cpp index 75981dba3b..25cf3c350c 100644 --- a/modules/help_tools/src/cpp/XmlDocDocument.cpp +++ b/modules/help_tools/src/cpp/XmlDocDocument.cpp @@ -790,14 +790,14 @@ XmlDocDocument::writeAsMarkdown(std::string& utf8stream) if (haveExample()) { XmlDocGenericItem* pItem = findfirst(EXAMPLES_TAG); XmlDocExamples* pExamples = (XmlDocExamples*)pItem; - pExamples->writeHeaderAsMarkdown(utf8stream); // lgtm [cpp/useless-expression] //-V522 + pExamples->writeHeaderAsMarkdown(utf8stream); } // header if (isKeywordDocument()) { XmlDocGenericItem* pItem = findfirst(KEYWORD_TAG); if (pItem) { XmlDocKeywordItem* pItemKeyword = (XmlDocKeywordItem*)pItem; - pItemKeyword->writeHeaderAsMarkdown(utf8stream); // lgtm [cpp/useless-expression] + pItemKeyword->writeHeaderAsMarkdown(utf8stream); } } if (isChapterDocument()) { diff --git a/modules/interpreter/src/cpp/Context.cpp b/modules/interpreter/src/cpp/Context.cpp index b30376d729..cf5bcb890d 100644 --- a/modules/interpreter/src/cpp/Context.cpp +++ b/modules/interpreter/src/cpp/Context.cpp @@ -59,11 +59,7 @@ Context::pushScope(const std::string& name) } catch (const std::bad_alloc&) { Error(ERROR_STACK_DEPTH_EXCEEDED); } - if (sc != nullptr) { - scopestack.push_back(sc); - } else { - Error(ERROR_STACK_DEPTH_EXCEEDED); - } + scopestack.push_back(sc); } //============================================================================= void diff --git a/modules/interpreter/src/cpp/NelsonLexer.cpp b/modules/interpreter/src/cpp/NelsonLexer.cpp index 4dede653c7..9c3a56dfc0 100644 --- a/modules/interpreter/src/cpp/NelsonLexer.cpp +++ b/modules/interpreter/src/cpp/NelsonLexer.cpp @@ -865,9 +865,8 @@ lexInitialState() { if (isNewline() != 0) { NextLine(); - } else if (isWhitespace() != 0) { // lgtm [cpp/empty-block] - // nothing - } else if (match(";") != 0) { // lgtm [cpp/empty-block] + } else if (isWhitespace() != 0) { // nothing + } else if (match(";") != 0) { // nothing } else if (currentChar() == '%') { fetchComment(); diff --git a/modules/memory_manager/src/cpp/MemoryInformation.cpp b/modules/memory_manager/src/cpp/MemoryInformation.cpp index e232c6af88..05a191bcb9 100644 --- a/modules/memory_manager/src/cpp/MemoryInformation.cpp +++ b/modules/memory_manager/src/cpp/MemoryInformation.cpp @@ -174,9 +174,8 @@ getTotalVirtualMemoryByNelson() int utime, stime, cutime, cstime, counter, priority, timeout; unsigned itrealvalue, starttime; int vsize = 0, rss = 0; - f >> pid >> name >> state >> ppid >> pgrp >> session >> tty // lgtm [cpp/dangerous-cin] - >> tpgid // lgtm [cpp/dangerous-cin] - >> flags; // lgtm [cpp/dangerous-cin] + std::cin.width(4096); + f >> pid >> name >> state >> ppid >> pgrp >> session >> tty >> tpgid >> flags; f >> minflt >> cminflt >> majflt >> cmajflt >> utime >> stime >> cutime; f >> cstime >> counter >> priority >> timeout >> itrealvalue >> starttime; f >> vsize >> rss; diff --git a/modules/mex/src/cpp/MxStruct.cpp b/modules/mex/src/cpp/MxStruct.cpp index 461a9ef29e..4272f9bac9 100644 --- a/modules/mex/src/cpp/MxStruct.cpp +++ b/modules/mex/src/cpp/MxStruct.cpp @@ -102,7 +102,7 @@ mxGetFieldByNumber(const mxArray* pm, mwIndex index, int fieldnumber) if (!mxIsStruct(pm)) { return nullptr; } - if (index >= mxGetNumberOfElements(pm) || index < 0) { // lgtm [cpp/constant-comparison] + if (index >= mxGetNumberOfElements(pm) || index < 0) { return nullptr; } if (fieldnumber >= mxGetNumberOfFields(pm) || fieldnumber < 0) { diff --git a/modules/modules_manager/builtin/cpp/ismoduleBuiltin.cpp b/modules/modules_manager/builtin/cpp/ismoduleBuiltin.cpp index f961913e89..8156758dd8 100644 --- a/modules/modules_manager/builtin/cpp/ismoduleBuiltin.cpp +++ b/modules/modules_manager/builtin/cpp/ismoduleBuiltin.cpp @@ -20,8 +20,7 @@ Nelson::ModulesManagerGateway::ismoduleBuiltin(int nLhs, const ArrayOfVector& ar nargincheck(argIn, 1, 1); nargoutcheck(nLhs, 0, 1); std::wstring moduleshortname; - if (argIn[0].isRowVectorCharacterArray() || - (argIn[0].isStringArray() && argIn[0].isScalar())) { + if (argIn[0].isRowVectorCharacterArray() || (argIn[0].isStringArray() && argIn[0].isScalar())) { moduleshortname = argIn[0].getContentAsWideString(); } else { Error(ERROR_WRONG_ARGUMENT_1_TYPE_STRING_EXPECTED); diff --git a/modules/modules_manager/src/c/semver/semver.c b/modules/modules_manager/src/c/semver/semver.c index d9a46b96df..24072143ba 100644 --- a/modules/modules_manager/src/c/semver/semver.c +++ b/modules/modules_manager/src/c/semver/semver.c @@ -53,7 +53,7 @@ strcut (char *str, int begin, int len) { size_t l; l = strlen(str); - if((int)l < 0 || (int)l > MAX_SAFE_INT) return -1; // lgtm [cpp/constant-comparison] + if((int)l < 0 || (int)l > MAX_SAFE_INT) return -1; if (len < 0) len = l - begin + 1; if (begin + len > (int)l) len = l - begin; @@ -97,7 +97,7 @@ parse_int (const char *s) { if (valid == 0) return -1; num = strtol(s, NULL, 10); - if (num > MAX_SAFE_INT) return -1; // lgtm [cpp/constant-comparison] + if (num > MAX_SAFE_INT) return -1; return num; } diff --git a/modules/operators/src/cpp/Colon.cpp b/modules/operators/src/cpp/Colon.cpp index 96f38f981c..3304c5c789 100644 --- a/modules/operators/src/cpp/Colon.cpp +++ b/modules/operators/src/cpp/Colon.cpp @@ -34,7 +34,7 @@ integer_colon(NelsonType destinationClass, T low, T high, T step) } if (low < high) { if (isSignedInteger(destinationClass)) { - if (step < 0) { // lgtm [cpp/constant-comparison] + if (step < 0) { ArrayOf res = ArrayOf::emptyConstructor(1, 0); res.promoteType(destinationClass); return res; diff --git a/modules/profiler/resources/highlight.pack.js b/modules/profiler/resources/highlight.pack.js index 6b65831cf2..0c8efca1e7 100644 --- a/modules/profiler/resources/highlight.pack.js +++ b/modules/profiler/resources/highlight.pack.js @@ -165,14 +165,14 @@ [], t.c.map(function(e) { return ( - (n = "self" === e ? t : e).v && // lgtm [js/use-before-declaration] + (n = "self" === e ? t : e).v && !n.cached_variants && (n.cached_variants = n.v.map(function(e) { return l(n, { v: null }, e); })), n.cached_variants || (n.eW && [l(n)]) || [n] ); - var n; // lgtm [js/unreachable-statement] + var n; }) )), t.c.forEach(function(e) { @@ -430,7 +430,7 @@ " " + e.nodeName + '="' + - _(e.value).replace('"', """) + // lgtm [js/incomplete-sanitization] + _(e.value).replace('"', """) + '"' ); }) diff --git a/modules/profiler/resources/sort.js b/modules/profiler/resources/sort.js index 62b667738e..5ffd4a1f65 100644 --- a/modules/profiler/resources/sort.js +++ b/modules/profiler/resources/sort.js @@ -25,7 +25,7 @@ function SortTable() { arrayOfRows[i].oldIndex = i; var celltext = rows[i] .getElementsByTagName("td") - [sortColumn].innerHTML.replace(/<[^>]*>/g, ""); // lgtm [js/incomplete-multi-character-sanitization] + [sortColumn].innerHTML.replace(/<[^>]*>/g, ""); var re = type == "N" ? /[^\.\-\+\d]/g : /[^a-zA-Z0-9]/g; arrayOfRows[i].value = celltext .replace(re, "") diff --git a/modules/stream_manager/builtin/cpp/fwriteBuiltin.cpp b/modules/stream_manager/builtin/cpp/fwriteBuiltin.cpp index 2cb4e8fd60..dc86b9ca0f 100644 --- a/modules/stream_manager/builtin/cpp/fwriteBuiltin.cpp +++ b/modules/stream_manager/builtin/cpp/fwriteBuiltin.cpp @@ -62,6 +62,10 @@ fwriteBuiltinFiveRhs(int nLhs, const ArrayOfVector& argIn) Error(_W("Cannot write sparse type.")); } auto* fm = static_cast(NelsonConfiguration::getInstance()->getFileManager()); + if (fm == nullptr) { + Error(_W("Problem with file manager.")); + return retval; + } auto iValue = static_cast(param1.getContentAsDoubleScalar()); if (fm->isOpened(iValue)) { File* f = fm->getFile(iValue); diff --git a/modules/stream_manager/src/cpp/FileWrite.cpp b/modules/stream_manager/src/cpp/FileWrite.cpp index e5a1853b5e..4c1557f03d 100644 --- a/modules/stream_manager/src/cpp/FileWrite.cpp +++ b/modules/stream_manager/src/cpp/FileWrite.cpp @@ -67,7 +67,7 @@ FileWrite(File* fp, ArrayOf src, NelsonType destClass, size_t skip, bool bIsLitt FILE* filepointer = static_cast(fp->getFilePointer()); if (filepointer) { if (skip) { - char* skipdata; + char* skipdata = nullptr; try { skipdata = new char[skip]; } catch (const std::bad_alloc&) { diff --git a/modules/stream_manager/src/cpp/PrintfFunction.cpp b/modules/stream_manager/src/cpp/PrintfFunction.cpp index 22d5455d7f..f61d4a1476 100644 --- a/modules/stream_manager/src/cpp/PrintfFunction.cpp +++ b/modules/stream_manager/src/cpp/PrintfFunction.cpp @@ -13,10 +13,10 @@ //============================================================================= #include #include +#include #include "PrintfFunction.hpp" #include "Error.hpp" #include "PrintfHelper.hpp" -#include //============================================================================= namespace Nelson { //============================================================================= @@ -134,7 +134,8 @@ printfFunction(const ArrayOfVector& args, std::wstring& errorMessage, std::wstri boost::replace_all(f, L"d", L"lld"); nprn = swprintf(nbuff, BUFFER_SIZE_MAX, f.c_str(), data); } else { - nprn = swprintf(nbuff, BUFFER_SIZE_MAX, dp, data); + std::wstring fmt = std::wstring(dp); + nprn = swprintf(nbuff, BUFFER_SIZE_MAX, fmt.c_str(), data); } nbuff[nprn + 1] = L'\0'; result = result + nbuff; @@ -152,7 +153,8 @@ printfFunction(const ArrayOfVector& args, std::wstring& errorMessage, std::wstri return false; } if (!isEmpty) { - nprn = swprintf(nbuff, BUFFER_SIZE_MAX, dp, data); + std::wstring fmt = std::wstring(dp); + nprn = swprintf(nbuff, BUFFER_SIZE_MAX, fmt.c_str(), data); nbuff[nprn + 1] = L'\0'; result = result + nbuff; } diff --git a/modules/stream_manager/src/fmt/include/fmt/core.h b/modules/stream_manager/src/fmt/include/fmt/core.h index f2e4abe933..c820756456 100644 --- a/modules/stream_manager/src/fmt/include/fmt/core.h +++ b/modules/stream_manager/src/fmt/include/fmt/core.h @@ -610,8 +610,7 @@ void check_format_string(S); struct error_handler { constexpr error_handler() = default; - constexpr error_handler(const error_handler&) = default; // lgtm [cpp/rule-of-two] - + constexpr error_handler(const error_handler&) = default; // This function is intentionally not constexpr to give a compile-time error. FMT_NORETURN FMT_API void on_error(const char* message); }; @@ -1381,13 +1380,13 @@ class appender : public std::back_insert_iterator> { using _Unchecked_type = appender; // Mark iterator as checked. auto operator++() -> appender& { - base::operator++(); // lgtm [cpp/useless-expression] + base::operator++(); return *this; } auto operator++(int) -> appender { auto tmp = *this; - ++*this; // lgtm [cpp/useless-expression] + ++*this; return tmp; } }; diff --git a/modules/stream_manager/src/fmt/include/fmt/os.h b/modules/stream_manager/src/fmt/include/fmt/os.h index a3facd569b..8b44bbe176 100644 --- a/modules/stream_manager/src/fmt/include/fmt/os.h +++ b/modules/stream_manager/src/fmt/include/fmt/os.h @@ -367,7 +367,7 @@ FMT_BEGIN_DETAIL_NAMESPACE struct buffer_size { buffer_size() = default; size_t value = 0; - buffer_size operator=(size_t val) const { // lgtm [cpp/assignment-does-not-return-this] + buffer_size operator=(size_t val) const { auto bs = buffer_size(); bs.value = val; return bs; diff --git a/modules/string/src/cpp/MatrixToString.cpp b/modules/string/src/cpp/MatrixToString.cpp index 0701c70708..d3c3e7d0b5 100644 --- a/modules/string/src/cpp/MatrixToString.cpp +++ b/modules/string/src/cpp/MatrixToString.cpp @@ -7,14 +7,13 @@ // SPDX-License-Identifier: LGPL-3.0-or-later // LICENCE_BLOCK_END //============================================================================= -#if _MSC_VER -#define _CRT_SECURE_NO_WARNINGS -#define _CRT_NON_CONFORMING_SWPRINTFS -#endif #include #include #include #include +#include +#include +#include #include "MatrixToString.hpp" #include "ClassName.hpp" #include "Error.hpp" @@ -25,7 +24,6 @@ template static std::wstring complexToString(T complexValue, const std::wstring& formatNumber) { - wchar_t buffer[1024]; std::wstring res; std::wstring realPartStr; std::wstring imagPartStr; @@ -39,8 +37,7 @@ complexToString(T complexValue, const std::wstring& formatNumber) realPartStr = L"-Inf"; } } else { - swprintf(buffer, 1024, formatNumber.c_str(), complexValue.real()); - realPartStr = buffer; + realPartStr = fmt::sprintf(formatNumber, complexValue.real()); } } if (std::isnan(complexValue.imag())) { @@ -53,8 +50,7 @@ complexToString(T complexValue, const std::wstring& formatNumber) imagPartStr = L"-Inf"; } } else { - swprintf(buffer, 1024, formatNumber.c_str(), complexValue.imag()); - imagPartStr = buffer; + imagPartStr = fmt::sprintf(formatNumber, complexValue.imag()); } } if (imagPartStr.compare(L"NaN") == 0 || imagPartStr.compare(L"Inf") == 0 @@ -99,7 +95,6 @@ MatrixToString(ArrayOf A, indexType precision, bool withClass) if (!A.isScalar()) { res = res + L"["; } - wchar_t buffer[1024]; switch (A.getDataClass()) { default: { Error(ERROR_TYPE_NOT_SUPPORTED); @@ -147,8 +142,7 @@ MatrixToString(ArrayOf A, indexType precision, bool withClass) res = res + L"-Inf" + L" "; } } else { - swprintf(buffer, 1024, formatNumber.c_str(), val); - res = res + buffer + L" "; + res = res + fmt::sprintf(formatNumber, val) + L" "; } } } @@ -173,8 +167,7 @@ MatrixToString(ArrayOf A, indexType precision, bool withClass) res = res + L"-Inf" + L" "; } } else { - swprintf(buffer, 1024, formatNumber.c_str(), val); - res = res + buffer + L" "; + res = res + fmt::sprintf(formatNumber, val) + L" "; } } } diff --git a/modules/text_editor/src/cpp/QtTextEdit.cpp b/modules/text_editor/src/cpp/QtTextEdit.cpp index ca838f0800..357cf1df13 100644 --- a/modules/text_editor/src/cpp/QtTextEdit.cpp +++ b/modules/text_editor/src/cpp/QtTextEdit.cpp @@ -109,14 +109,12 @@ QtTextEdit::keyPressEvent(QKeyEvent* e) complete(completionPrefix); } else { if ((e->key() == Qt::Key_Tab) - || (QApplication::keyboardModifiers() - && Qt::ControlModifier // lgtm [cpp/logical-operator-applied-to-flag] + || (QApplication::keyboardModifiers() && Qt::ControlModifier && (e->key() == Qt::Key_Space))) { QString completionPrefix = textUnderCursor(); complete(completionPrefix); } else { - if ((e->key() == Qt::Key_A) - && Qt::ControlModifier) { // lgtm [cpp/logical-operator-applied-to-flag] + if ((e->key() == Qt::Key_A) && Qt::ControlModifier) { QTextEdit::keyPressEvent(e); return; } diff --git a/modules/types/src/cpp/ArrayOf_Extract.cpp b/modules/types/src/cpp/ArrayOf_Extract.cpp index 13862900d7..28c7a54d0f 100644 --- a/modules/types/src/cpp/ArrayOf_Extract.cpp +++ b/modules/types/src/cpp/ArrayOf_Extract.cpp @@ -138,7 +138,7 @@ ArrayOf::getVectorSubset(ArrayOf& index) indexType bound = getElementCount(); for (indexType i = 0; i < length; i++) { indexType ndx = index_p[i] - 1; - if (ndx < 0 || ndx >= bound) { // lgtm [cpp/constant-comparison] + if (ndx < 0 || ndx >= bound) { Error(_W("Index exceeds variable dimensions.")); } copyElements(ndx, qp, i, 1); diff --git a/modules/types/src/cpp/Dimensions.cpp b/modules/types/src/cpp/Dimensions.cpp index 8641e28eec..7678063092 100644 --- a/modules/types/src/cpp/Dimensions.cpp +++ b/modules/types/src/cpp/Dimensions.cpp @@ -178,7 +178,7 @@ Dimensions::mapPoint(const Dimensions& point) nextCoeff = 1; testableDims = (point.length < length) ? point.length : length; for (indexType i = 0; i < testableDims; i++) { - if ((point.data[i] < 0) || (point.data[i] >= data[i])) { // lgtm [cpp/constant-comparison] + if ((point.data[i] < 0) || (point.data[i] >= data[i])) { Error(_W("Index exceeds dimensions.")); } retval += nextCoeff * point.data[i]; diff --git a/modules/webtools/src/cpp/RepositoryHelpers.cpp b/modules/webtools/src/cpp/RepositoryHelpers.cpp index fbc1e28e5c..449686df26 100644 --- a/modules/webtools/src/cpp/RepositoryHelpers.cpp +++ b/modules/webtools/src/cpp/RepositoryHelpers.cpp @@ -8,6 +8,9 @@ // LICENCE_BLOCK_END //============================================================================= #include +#include +#include +#include #include "characters_encoding.hpp" #include "RepositoryHelpers.hpp" #include "i18n.hpp" @@ -17,19 +20,16 @@ namespace Nelson { std::wstring gitErrorCodeToMessage(int errorCode) { -#define BUFFER_SIZE 4096 std::wstring errorMessage; if (errorCode != 0) { const git_error* e = giterr_last(); - wchar_t buffer[BUFFER_SIZE]; if (e) { std::wstring msg = utf8_to_wstring(e->message); - swprintf(buffer, BUFFER_SIZE, _W("repository error %d/%d: %ls").c_str(), errorCode, - e->klass, msg.c_str()); + errorMessage + = fmt::sprintf(_W("repository error %d/%d: %ls"), errorCode, e->klass, msg); } else { - swprintf(buffer, BUFFER_SIZE, _W("repository error %d").c_str(), errorCode); + errorMessage = fmt::sprintf(_W("repository error %d"), errorCode); } - errorMessage = std::wstring(buffer); } return errorMessage; }