From 18c3a1eaaf7577fb210f08a73a12f93316d5583c Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Fri, 12 Feb 2016 13:36:03 +1100 Subject: [PATCH] io: record path in path_error --- io.cpp | 15 +++++++++++++++ io.hpp | 11 +++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/io.cpp b/io.cpp index fcc77ec7..fb159f0c 100644 --- a/io.cpp +++ b/io.cpp @@ -201,3 +201,18 @@ scoped_cwd::~scoped_cwd () if (!chdir (m_original.c_str ())) errno_error::throw_code (); } + + +/////////////////////////////////////////////////////////////////////////////// +path_error::path_error (const boost::filesystem::path &_path): + runtime_error (format::render ("Unknown path: %!", m_path)), + m_path (_path) +{ ; } + + +//----------------------------------------------------------------------------- +const char* +path_error::path (void) const noexcept +{ + return m_path.c_str (); +} diff --git a/io.hpp b/io.hpp index 95725087..5c3c26c5 100644 --- a/io.hpp +++ b/io.hpp @@ -134,10 +134,13 @@ namespace util { //------------------------------------------------------------------------- class path_error : public std::runtime_error { - public: - path_error (const boost::filesystem::path &path): - runtime_error ("Invalid path " + path.string ()) - { ; } + public: + path_error (const boost::filesystem::path &path); + + const char* path (void) const noexcept; + + private: + const boost::filesystem::path m_path; }; }