From 3f8aab22cfaf49d5e462696adaba67bd15d87d07 Mon Sep 17 00:00:00 2001 From: qPCR4vir Date: Sun, 14 Feb 2016 04:49:22 +0100 Subject: [PATCH] filesystem inline v1 + generic_string --- include/nana/filesystem/filesystem.hpp | 19 ++++++++++++++----- source/filesystem/filesystem.cpp | 21 ++++++++++++++++++++- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/include/nana/filesystem/filesystem.hpp b/include/nana/filesystem/filesystem.hpp index dc86d1e0..5a308e9c 100644 --- a/include/nana/filesystem/filesystem.hpp +++ b/include/nana/filesystem/filesystem.hpp @@ -36,12 +36,13 @@ #include #include #include +#include #include // namespace std { namespace experimental { namespace filesystem { inline namespace v1 { -namespace nana { namespace experimental +namespace nana { namespace experimental { inline namespace v1 { namespace filesystem { @@ -149,6 +150,14 @@ namespace filesystem std::string string() const; std::wstring wstring() const; std::string u8string() const; + // std::u16string u16string() const; + // std::u32string u32string() const; + + std::string generic_string() const ; + std::wstring generic_wstring() const; + std::string generic_u8string() const; + // std::u16string generic_u16string() const; + // std::u32string generic_u32string() const; //appends path& operator/=(const path& other); @@ -359,11 +368,11 @@ namespace filesystem return index ? path.substr(0, index + 1) : std::basic_string(); } - -}//end namespace filesystem +} //end namespace v1 +} //end namespace filesystem } //end namespace experimental - namespace filesystem = experimental::filesystem; -}//end namespace nana + //namespace filesystem = experimental::filesystem; +} //end namespace nana #endif diff --git a/source/filesystem/filesystem.cpp b/source/filesystem/filesystem.cpp index 59c848cf..b79b9000 100644 --- a/source/filesystem/filesystem.cpp +++ b/source/filesystem/filesystem.cpp @@ -38,6 +38,7 @@ namespace nana { namespace experimental { + inline namespace v1 { namespace filesystem { //class filesystem_error @@ -249,7 +250,24 @@ namespace nana { namespace experimental { { return to_utf8(pathstr_); } - + std::string path::generic_string() const + { + auto str = string(); + std::replace(str.begin(), str.end(), '\\', '/'); + return str; + } + std::wstring path::generic_wstring() const + { + auto str = wstring(); + std::replace(str.begin(), str.end(), L'\\', L'/'); + return str; + } + std::string path::generic_u8string() const // uppss ... + { + auto str = pathstr_; + std::replace(str.begin(), str.end(), '\\', '/'); // uppss ... revise this !!!!! + return to_utf8(str); + } path & path::operator/=(const path& p) { if (p.empty()) @@ -852,6 +870,7 @@ namespace nana { namespace experimental { ::chdir(p.c_str()); #endif } + } //end namespace v1 }//end namespace filesystem } //end namespace experimental }//end namespace nana