diff --git a/modules/io/src/tools/vpParseArgv.cpp b/modules/io/src/tools/vpParseArgv.cpp index b4f265c4d1..2b6c7ae999 100644 --- a/modules/io/src/tools/vpParseArgv.cpp +++ b/modules/io/src/tools/vpParseArgv.cpp @@ -387,7 +387,7 @@ void vpParseArgv::printUsage(vpArgvInfo *argTable, int flags) continue; } FPRINTF(stderr, "\n %s:", infoPtr->key); - numSpaces = ((width + 1) >= strlen(infoPtr->key) ? width + 1 - strlen(infoPtr->key) : 0); + numSpaces = ((width + 1) >= strlen(infoPtr->key) ? ((width + 1) - strlen(infoPtr->key)) : 0); while (numSpaces > 0) { if (numSpaces >= NUM_SPACES) { FPRINTF(stderr, "%s", spaces); diff --git a/modules/io/test/parser/catchParseArgv.cpp b/modules/io/test/parser/catchParseArgv.cpp index 742d68e482..3c49dba2d2 100644 --- a/modules/io/test/parser/catchParseArgv.cpp +++ b/modules/io/test/parser/catchParseArgv.cpp @@ -91,9 +91,11 @@ class ArgvHolder for (auto &s : m_storage) { m_ptrs.push_back(s.c_str()); } + + m_ptrs.push_back(nullptr); // A conventional C argv array is normally terminated with a null pointer } - int argc() const { return static_cast(m_ptrs.size()); } + int argc() const { return (static_cast(m_ptrs.size()) - 1); /* minus one not to count the nullptr*/ } const char **argv() { return m_ptrs.data(); } private: