summaryrefslogtreecommitdiff
path: root/src/versionstr.cc
diff options
context:
space:
mode:
authorAndré Nusser <andre.nusser@googlemail.com>2018-06-07 17:26:49 +0200
committerAndré Nusser <andre.nusser@googlemail.com>2018-06-07 17:26:49 +0200
commit93fe142f21e501a9ff12432d35fbf89b87135f9c (patch)
tree45b79d80073f429e7315ca1a2a8de61ed74d664d /src/versionstr.cc
parentf9541d8b78bb59713eede3748a4e1bb5776ef87c (diff)
Actually remove throw in versionstr and replace C-array by std::array.
Diffstat (limited to 'src/versionstr.cc')
-rw-r--r--src/versionstr.cc16
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());
}