diff options
author | André Nusser <andre.nusser@googlemail.com> | 2018-06-07 17:26:49 +0200 |
---|---|---|
committer | André Nusser <andre.nusser@googlemail.com> | 2018-06-07 17:26:49 +0200 |
commit | 93fe142f21e501a9ff12432d35fbf89b87135f9c (patch) | |
tree | 45b79d80073f429e7315ca1a2a8de61ed74d664d /src/versionstr.cc | |
parent | f9541d8b78bb59713eede3748a4e1bb5776ef87c (diff) |
Actually remove throw in versionstr and replace C-array by std::array.
Diffstat (limited to 'src/versionstr.cc')
-rw-r--r-- | src/versionstr.cc | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/versionstr.cc b/src/versionstr.cc index a46f221..be6913b 100644 --- a/src/versionstr.cc +++ b/src/versionstr.cc @@ -1,5 +1,4 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set et sw=2 ts=2: */ /*************************************************************************** * versionstr.cc * @@ -31,6 +30,8 @@ #include <stdlib.h> #include <stdio.h> +#include <hugin.hpp> + // Workaround - major, minor and patch are defined as macros when using // _GNU_SOURCES #ifdef major @@ -45,7 +46,6 @@ VersionStr::VersionStr(const std::string& v) { - memset(version, 0, sizeof(version)); set(v); } @@ -66,7 +66,9 @@ void VersionStr::set(const std::string& v) { if(idx > 2) { - throw "Version string is too long."; + version = {0, 0, 0}; + ERR(version, "Version string is too long."); + return; } version[idx] = atoi(num.c_str()); idx++; @@ -78,12 +80,16 @@ void VersionStr::set(const std::string& v) } else { - throw "Version string contains illegal character."; + version = {0, 0, 0}; + ERR(version, "Version string contains illegal character."); + return; } } if(idx > 2) { - throw "Version string is too long."; + version = {0, 0, 0}; + ERR(version, "Version string is too long."); + return; } version[idx] = atoi(num.c_str()); } |