summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/exception.h8
-rw-r--r--lib/exception.cc10
2 files changed, 16 insertions, 2 deletions
diff --git a/include/opkele/exception.h b/include/opkele/exception.h
index 2ac0661..c5f5811 100644
--- a/include/opkele/exception.h
+++ b/include/opkele/exception.h
@@ -28,7 +28,8 @@
*/
# define OPKELE_RETHROW catch(konforka::exception& e) { e.see(CODEPOINT); throw }
#else /* OPKELE_HAVE_KONFORKA */
-# include <stdexcept>
+# include <exception>
+# include <string>
/**
* the exception parameter declaration
*/
@@ -74,9 +75,12 @@ namespace opkele {
exception(const string& fi,const string& fu,int l,const string& w)
: konforka::exception(fi,fu,l,w) { }
# else /* OPKELE_HAVE_KONFORKA */
+ string _what;
explicit
exception(const string& w)
- : std::exception(w) { }
+ : _what(w) { }
+ virtual ~exception() throw();
+ virtual const char * what() const throw();
# endif /* OPKELE_HAVE_KONFORKA */
};
diff --git a/lib/exception.cc b/lib/exception.cc
index b7c1702..4fe6c87 100644
--- a/lib/exception.cc
+++ b/lib/exception.cc
@@ -4,6 +4,16 @@
namespace opkele {
+# ifndef OPKELE_HAVE_KONFORKA
+
+ exception::~exception() throw() {
+ }
+ const char *exception::what() const throw() {
+ return _what.c_str();
+ }
+
+# endif
+
exception_openssl::exception_openssl(OPKELE_E_PARS)
: _error(ERR_peek_last_error()),
_ssl_string(ERR_error_string(_error,0)),