Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r62659 - in branches/filesystem3: boost boost/filesystem/v2 boost/filesystem/v3 libs/filesystem/build libs/filesystem/v2/src libs/filesystem/v3/src
From: bdawes_at_[hidden]
Date: 2010-06-09 10:06:00


Author: bemandawes
Date: 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
New Revision: 62659
URL: http://svn.boost.org/trac/boost/changeset/62659

Log:
Initial source code changes to achieve integration
Added:
   branches/filesystem3/libs/filesystem/build/
   branches/filesystem3/libs/filesystem/build/Jamfile.v2 (contents, props changed)
Removed:
   branches/filesystem3/libs/filesystem/v3/src/error_code.cpp
Text files modified:
   branches/filesystem3/boost/filesystem.hpp | 37 +++++++++---
   branches/filesystem3/boost/filesystem/v2/config.hpp | 25 ++++++--
   branches/filesystem3/boost/filesystem/v2/convenience.hpp | 20 +++---
   branches/filesystem3/boost/filesystem/v2/fstream.hpp | 28 ++++----
   branches/filesystem3/boost/filesystem/v2/operations.hpp | 113 ++++++++++++++++++++++++++++-----------
   branches/filesystem3/boost/filesystem/v2/path.hpp | 86 +++++++++++++++++++++--------
   branches/filesystem3/boost/filesystem/v3/config.hpp | 21 ++++---
   branches/filesystem3/boost/filesystem/v3/convenience.hpp | 12 ++--
   branches/filesystem3/boost/filesystem/v3/fstream.hpp | 12 ++--
   branches/filesystem3/boost/filesystem/v3/operations.hpp | 67 ++++++++++++++++++++---
   branches/filesystem3/boost/filesystem/v3/path.hpp | 108 ++++++++++++++++++++++++-------------
   branches/filesystem3/boost/filesystem/v3/path_traits.hpp | 4
   branches/filesystem3/libs/filesystem/v2/src/v2_operations.cpp | 22 +++---
   branches/filesystem3/libs/filesystem/v2/src/v2_path.cpp | 8 +-
   branches/filesystem3/libs/filesystem/v2/src/v2_portability.cpp | 10 +-
   branches/filesystem3/libs/filesystem/v2/src/v2_utf8_codecvt_facet.cpp | 7 +-
   branches/filesystem3/libs/filesystem/v2/src/v2_utf8_codecvt_facet.hpp | 4
   branches/filesystem3/libs/filesystem/v3/src/codecvt_error_category.cpp | 8 +-
   branches/filesystem3/libs/filesystem/v3/src/operations.cpp | 22 +++---
   branches/filesystem3/libs/filesystem/v3/src/path.cpp | 20 +++---
   branches/filesystem3/libs/filesystem/v3/src/path_traits.cpp | 12 ++--
   branches/filesystem3/libs/filesystem/v3/src/portability.cpp | 10 +-
   branches/filesystem3/libs/filesystem/v3/src/unique_path.cpp | 4
   branches/filesystem3/libs/filesystem/v3/src/utf8_codecvt_facet.cpp | 5 -
   branches/filesystem3/libs/filesystem/v3/src/windows_file_codecvt.cpp | 2
   branches/filesystem3/libs/filesystem/v3/src/windows_file_codecvt.hpp | 7 +-
   26 files changed, 433 insertions(+), 241 deletions(-)

Modified: branches/filesystem3/boost/filesystem.hpp
==============================================================================
--- branches/filesystem3/boost/filesystem.hpp (original)
+++ branches/filesystem3/boost/filesystem.hpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -1,20 +1,37 @@
-// boost/filesystem/filesystem.hpp -----------------------------------------//
+// boost/filesystem.hpp --------------------------------------------------------------//
 
-// Copyright Beman Dawes 2005
+// Copyright Beman Dawes 2010
 
-// Use, modification, and distribution is subject to the Boost Software
-// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+// Distributed under the Boost Software License, Version 1.0.
+// See http://www.boost.org/LICENSE_1_0.txt
 
-// See library home page at http://www.boost.org/libs/filesystem
+// Library home page: http://www.boost.org/libs/filesystem
 
-//----------------------------------------------------------------------------//
+//--------------------------------------------------------------------------------------//
 
 #ifndef BOOST_FILESYSTEM_FILESYSTEM_HPP
 #define BOOST_FILESYSTEM_FILESYSTEM_HPP
 
-#include <boost/filesystem/operations.hpp> // includes path.hpp
-#include <boost/filesystem/convenience.hpp>
+# if defined(BOOST_FILESYSTEM_VERSION) \
+ && BOOST_FILESYSTEM_VERSION != 2 && BOOST_FILESYSTEM_VERSION != 3
+# error BOOST_FILESYSTEM_VERSION defined, but not as 2 or 3
+
+# if !defined(BOOST_FILESYSTEM_VERSION)
+# define BOOST_FILESYSTEM_VERSION 2
+# endif
+
+#ifdef BOOST_FILESYSTEM_VERSION == 2
+# include <boost/filesystem/v2/config.hpp>
+# include <boost/filesystem/v2/path.hpp>
+# include <boost/filesystem/v2/operations.hpp>
+# include <boost/filesystem/v2/convenience.hpp>
+
+# else
+# include <boost/filesystem/v3/config.hpp>
+# include <boost/filesystem/v3/path.hpp>
+# include <boost/filesystem/v3/operations.hpp>
+# include <boost/filesystem/v3/convenience.hpp>
 
-#endif
+# endif
 
+#endif BOOST_FILESYSTEM_FILESYSTEM_HPP

Modified: branches/filesystem3/boost/filesystem/v2/config.hpp
==============================================================================
--- branches/filesystem3/boost/filesystem/v2/config.hpp (original)
+++ branches/filesystem3/boost/filesystem/v2/config.hpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -1,4 +1,4 @@
-// boost/filesystem/config.hpp ---------------------------------------------//
+// boost/filesystem/v2/config.hpp ------------------------------------------//
 
 // Copyright Beman Dawes 2003
 
@@ -9,14 +9,22 @@
 
 //----------------------------------------------------------------------------//
 
-#ifndef BOOST_FILESYSTEM_CONFIG_HPP
-#define BOOST_FILESYSTEM_CONFIG_HPP
+#ifndef BOOST_FILESYSTEM2_CONFIG_HPP
+#define BOOST_FILESYSTEM2_CONFIG_HPP
+
+# if defined(BOOST_FILESYSTEM_VERSION) && BOOST_FILESYSTEM_VERSION != 2
+# error Compiling Filesystem version 2 file with BOOST_FILESYSTEM_VERSION defined != 2
+# endif
+
+# if !defined(BOOST_FILESYSTEM_VERSION)
+# define BOOST_FILESYSTEM_VERSION 2
+# endif
 
 #define BOOST_FILESYSTEM_I18N // aid users wishing to compile several versions
 
 // ability to change namespace aids path_table.cpp ------------------------//
-#ifndef BOOST_FILESYSTEM_NAMESPACE
-# define BOOST_FILESYSTEM_NAMESPACE filesystem
+#ifndef BOOST_FILESYSTEM2_NAMESPACE
+# define BOOST_FILESYSTEM2_NAMESPACE filesystem2
 #endif
 
 #include <boost/config.hpp>
@@ -46,7 +54,7 @@
 // narrow support only for badly broken compilers or libraries -------------//
 
 # if defined(BOOST_NO_STD_WSTRING) || defined(BOOST_NO_SFINAE) || defined(BOOST_NO_STD_LOCALE) || BOOST_WORKAROUND(__BORLANDC__, <0x610)
-# define BOOST_FILESYSTEM_NARROW_ONLY
+# define BOOST_FILESYSTEM2_NARROW_ONLY
 # endif
 
 // This header implements separate compilation features as described in
@@ -66,7 +74,8 @@
 
 // enable automatic library variant selection ------------------------------//
 
-#if !defined(BOOST_FILESYSTEM_SOURCE) && !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_FILESYSTEM_NO_LIB)
+#if !defined(BOOST_FILESYSTEM_SOURCE) && !defined(BOOST_ALL_NO_LIB) \
+ && !defined(BOOST_FILESYSTEM_NO_LIB)
 //
 // Set the name of our library, this will get undef'ed by auto_link.hpp
 // once it's done with it:
@@ -84,4 +93,4 @@
 #include <boost/config/auto_link.hpp>
 #endif // auto-linking disabled
 
-#endif // BOOST_FILESYSTEM_CONFIG_HPP
+#endif // BOOST_FILESYSTEM2_CONFIG_HPP

Modified: branches/filesystem3/boost/filesystem/v2/convenience.hpp
==============================================================================
--- branches/filesystem3/boost/filesystem/v2/convenience.hpp (original)
+++ branches/filesystem3/boost/filesystem/v2/convenience.hpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -10,8 +10,8 @@
 
 //----------------------------------------------------------------------------//
 
-#ifndef BOOST_FILESYSTEM_CONVENIENCE_HPP
-#define BOOST_FILESYSTEM_CONVENIENCE_HPP
+#ifndef BOOST_FILESYSTEM2_CONVENIENCE_HPP
+#define BOOST_FILESYSTEM2_CONVENIENCE_HPP
 
 #include <boost/filesystem/operations.hpp>
 #include <boost/system/error_code.hpp>
@@ -20,7 +20,7 @@
 
 #include <boost/config/abi_prefix.hpp> // must be the last #include
 
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
 # define BOOST_FS_FUNC(BOOST_FS_TYPE) \
       template<class Path> typename boost::enable_if<is_basic_path<Path>, \
       BOOST_FS_TYPE>::type
@@ -35,7 +35,7 @@
 
 namespace boost
 {
- namespace filesystem
+ namespace filesystem2
   {
 
     BOOST_FS_FUNC(bool) create_directories(const Path& ph)
@@ -56,7 +56,7 @@
          return true;
      }
 
-# ifndef BOOST_FILESYSTEM_NO_DEPRECATED
+# ifndef BOOST_FILESYSTEM2_NO_DEPRECATED
 
     BOOST_FS_FUNC_STRING extension(const Path& ph)
     {
@@ -85,7 +85,7 @@
 
 # endif
 
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
 
     // "do-the-right-thing" overloads ---------------------------------------//
 
@@ -94,7 +94,7 @@
     inline bool create_directories(const wpath& ph)
       { return create_directories<wpath>(ph); }
 
-# ifndef BOOST_FILESYSTEM_NO_DEPRECATED
+# ifndef BOOST_FILESYSTEM2_NO_DEPRECATED
     inline std::string extension(const path& ph)
       { return extension<path>(ph); }
     inline std::wstring extension(const wpath& ph)
@@ -199,7 +199,7 @@
     };
 
     typedef basic_recursive_directory_iterator<path> recursive_directory_iterator;
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
     typedef basic_recursive_directory_iterator<wpath> wrecursive_directory_iterator;
 # endif
 
@@ -296,11 +296,11 @@
       if ( m_imp->m_stack.empty() ) m_imp.reset(); // done, so make end iterator
     }
 
- } // namespace filesystem
+ } // namespace filesystem2
 } // namespace boost
 
 #undef BOOST_FS_FUNC_STRING
 #undef BOOST_FS_FUNC
 
 #include <boost/config/abi_suffix.hpp> // pops abi_prefix.hpp pragmas
-#endif // BOOST_FILESYSTEM_CONVENIENCE_HPP
+#endif // BOOST_FILESYSTEM2_CONVENIENCE_HPP

Modified: branches/filesystem3/boost/filesystem/v2/fstream.hpp
==============================================================================
--- branches/filesystem3/boost/filesystem/v2/fstream.hpp (original)
+++ branches/filesystem3/boost/filesystem/v2/fstream.hpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -9,8 +9,8 @@
 
 //----------------------------------------------------------------------------//
 
-#ifndef BOOST_FILESYSTEM_FSTREAM_HPP
-#define BOOST_FILESYSTEM_FSTREAM_HPP
+#ifndef BOOST_FILESYSTEM2_FSTREAM_HPP
+#define BOOST_FILESYSTEM2_FSTREAM_HPP
 
 #include <boost/filesystem/operations.hpp> // for 8.3 hack (see below)
 #include <boost/utility/enable_if.hpp>
@@ -29,19 +29,19 @@
 
 namespace boost
 {
- namespace filesystem
+ namespace filesystem2
   {
     namespace detail
     {
-# if defined(BOOST_WINDOWS_API) && !defined(BOOST_FILESYSTEM_NARROW_ONLY)
+# if defined(BOOST_WINDOWS_API) && !defined(BOOST_FILESYSTEM2_NARROW_ONLY)
 # if !defined(BOOST_DINKUMWARE_STDLIB) || BOOST_DINKUMWARE_STDLIB < 405
       // The 8.3 hack:
       // C++98 does not supply a wchar_t open, so try to get an equivalent
       // narrow char name based on the short, so-called 8.3, name.
       // Not needed for Dinkumware 405 and later as they do supply wchar_t open.
- BOOST_FILESYSTEM_DECL bool create_file_api( const std::wstring & ph,
+ BOOST_FILESYSTEM2_DECL bool create_file_api( const std::wstring & ph,
         std::ios_base::openmode mode ); // true if succeeds
- BOOST_FILESYSTEM_DECL std::string narrow_path_api(
+ BOOST_FILESYSTEM2_DECL std::string narrow_path_api(
         const std::wstring & ph ); // return is empty if fails
 
       inline std::string path_proxy( const std::wstring & file_ph,
@@ -90,7 +90,7 @@
       basic_filebuf() {}
       virtual ~basic_filebuf() {}
 
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
       template<class Path>
       typename boost::enable_if<is_basic_path<Path>,
         basic_filebuf<charT,traits> *>::type
@@ -118,7 +118,7 @@
       // use two signatures, rather than one signature with default second
       // argument, to workaround VC++ 7.1 bug (ID VSWhidbey 38416)
 
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
       template<class Path>
       explicit basic_ifstream( const Path & file_ph,
         typename boost::enable_if<is_basic_path<Path> >::type* dummy = 0 );
@@ -162,7 +162,7 @@
       // use two signatures, rather than one signature with default second
       // argument, to workaround VC++ 7.1 bug (ID VSWhidbey 38416)
 
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
 
       template<class Path>
       explicit basic_ofstream( const Path & file_ph,
@@ -207,7 +207,7 @@
       // use two signatures, rather than one signature with default second
       // argument, to workaround VC++ 7.1 bug (ID VSWhidbey 38416)
 
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
 
       template<class Path>
       explicit basic_fstream( const Path & file_ph,
@@ -246,14 +246,14 @@
     typedef basic_ofstream<char> ofstream;
     typedef basic_fstream<char> fstream;
 
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
     typedef basic_filebuf<wchar_t> wfilebuf;
     typedef basic_ifstream<wchar_t> wifstream;
     typedef basic_fstream<wchar_t> wfstream;
     typedef basic_ofstream<wchar_t> wofstream;
 # endif
     
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
 
 // basic_filebuf definitions -----------------------------------------------//
 
@@ -577,8 +577,8 @@
         file_ph.file_string().c_str(), mode );
     }
 # endif
- } // namespace filesystem
+ } // namespace filesystem2
 } // namespace boost
 
 #include <boost/config/abi_suffix.hpp> // pops abi_prefix.hpp pragmas
-#endif // BOOST_FILESYSTEM_FSTREAM_HPP
+#endif // BOOST_FILESYSTEM2_FSTREAM_HPP

Modified: branches/filesystem3/boost/filesystem/v2/operations.hpp
==============================================================================
--- branches/filesystem3/boost/filesystem/v2/operations.hpp (original)
+++ branches/filesystem3/boost/filesystem/v2/operations.hpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -11,10 +11,10 @@
 
 //----------------------------------------------------------------------------//
 
-#ifndef BOOST_FILESYSTEM_OPERATIONS_HPP
-#define BOOST_FILESYSTEM_OPERATIONS_HPP
+#ifndef BOOST_FILESYSTEM2_OPERATIONS_HPP
+#define BOOST_FILESYSTEM2_OPERATIONS_HPP
 
-#include <boost/filesystem/path.hpp>
+#include <boost/filesystem/v2/path.hpp>
 #include <boost/detail/scoped_enum_emulation.hpp>
 
 #include <boost/shared_ptr.hpp>
@@ -45,11 +45,11 @@
 
 namespace boost
 {
- namespace filesystem
+ namespace filesystem2
   {
 
 // typedef boost::filesystem::path Path; needs to be in namespace boost::filesystem
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
 # define BOOST_FS_FUNC(BOOST_FS_TYPE) \
       template<class Path> typename boost::enable_if<is_basic_path<Path>, \
       BOOST_FS_TYPE>::type
@@ -60,13 +60,13 @@
 # else
 # define BOOST_FS_FUNC(BOOST_FS_TYPE) inline BOOST_FS_TYPE
 # define BOOST_INLINE_FS_FUNC(BOOST_FS_TYPE) inline BOOST_FS_TYPE
- typedef boost::filesystem::path Path;
+ typedef boost::filesystem2::path Path;
 # define BOOST_FS_TYPENAME
 # endif
 
     template<class Path> class basic_directory_iterator;
 
- // BOOST_FILESYSTEM_NARROW_ONLY needs this:
+ // BOOST_FILESYSTEM2_NARROW_ONLY needs this:
     typedef basic_directory_iterator<path> directory_iterator;
 
     template<class Path> class basic_directory_entry;
@@ -190,9 +190,9 @@
       BOOST_FILESYSTEM_DECL system::error_code
         get_full_path_name_api( const std::string & ph, std::string & target );
 
-# if !defined(BOOST_FILESYSTEM_NARROW_ONLY)
+# if !defined(BOOST_FILESYSTEM2_NARROW_ONLY)
 
- BOOST_FILESYSTEM_DECL boost::filesystem::file_status
+ BOOST_FILESYSTEM_DECL boost::filesystem2::file_status
         status_api( const std::wstring & ph, system::error_code & ec );
       BOOST_FILESYSTEM_DECL query_pair
         is_empty_api( const std::wstring & ph );
@@ -357,7 +357,7 @@
     }
 
     // VC++ 7.0 and earlier has a serious namespace bug that causes a clash
- // between boost::filesystem::is_empty and the unrelated type trait
+ // between boost::filesystem2::is_empty and the unrelated type trait
     // boost::is_empty.
 
 # if !defined( BOOST_MSVC ) || BOOST_MSVC > 1300
@@ -554,9 +554,9 @@
 # ifndef BOOST_FILESYSTEM_NO_DEPRECATED
     // legacy support
     inline path current_path() // overload supports pre-i18n apps
- { return current_path<boost::filesystem::path>(); }
+ { return current_path<boost::filesystem2::path>(); }
     inline const path & initial_path() // overload supports pre-i18n apps
- { return initial_path<boost::filesystem::path>(); }
+ { return initial_path<boost::filesystem2::path>(); }
 # endif
 
     BOOST_FS_FUNC(Path) system_complete( const Path & ph )
@@ -610,7 +610,7 @@
           "boost::filesystem::last_write_time", ph, ec ) );
     }
 
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
 
     // "do-the-right-thing" overloads ---------------------------------------//
 
@@ -665,9 +665,9 @@
       { return is_symlink<wpath>( ph ); }
 
     inline bool is_empty( const path & ph )
- { return boost::filesystem::is_empty<path>( ph ); }
+ { return boost::filesystem2::is_empty<path>( ph ); }
     inline bool is_empty( const wpath & ph )
- { return boost::filesystem::is_empty<wpath>( ph ); }
+ { return boost::filesystem2::is_empty<wpath>( ph ); }
 
     inline bool equivalent( const path & ph1, const path & ph2 )
       { return equivalent<path>( ph1, ph2 ); }
@@ -771,7 +771,7 @@
     inline void current_path( const wpath & ph )
       { current_path<wpath>( ph ); }
 
-# endif // ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# endif // ifndef BOOST_FILESYSTEM2_NARROW_ONLY
 
     namespace detail
     {
@@ -792,16 +792,16 @@
       template<class Path>
       unsigned long remove_all_aux( const Path & ph, file_status f )
       {
- static const boost::filesystem::basic_directory_iterator<Path> end_itr;
+ static const boost::filesystem2::basic_directory_iterator<Path> end_itr;
         unsigned long count = 1;
- if ( !boost::filesystem::is_symlink( f ) // don't recurse symbolic links
- && boost::filesystem::is_directory( f ) )
+ if ( !boost::filesystem2::is_symlink( f ) // don't recurse symbolic links
+ && boost::filesystem2::is_directory( f ) )
         {
- for ( boost::filesystem::basic_directory_iterator<Path> itr( ph );
+ for ( boost::filesystem2::basic_directory_iterator<Path> itr( ph );
                 itr != end_itr; ++itr )
           {
             boost::system::error_code ec;
- boost::filesystem::file_status fn = boost::filesystem::symlink_status( itr->path(), ec );
+ boost::filesystem2::file_status fn = boost::filesystem2::symlink_status( itr->path(), ec );
             if ( ec )
               boost::throw_exception( basic_filesystem_error<Path>(
                 "boost::filesystem:remove_all", ph, ec ) );
@@ -850,7 +850,7 @@
           );
       // Effects: none if handle==0, otherwise close handle, set handle=0
 
-# if defined(BOOST_WINDOWS_API) && !defined(BOOST_FILESYSTEM_NARROW_ONLY)
+# if defined(BOOST_WINDOWS_API) && !defined(BOOST_FILESYSTEM2_NARROW_ONLY)
       BOOST_FILESYSTEM_DECL system::error_code
         dir_itr_first( void *& handle, const std::wstring & ph,
           std::wstring & target, file_status & fs, file_status & symlink_fs );
@@ -928,7 +928,7 @@
     };
 
     typedef basic_directory_iterator< path > directory_iterator;
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
     typedef basic_directory_iterator< wpath > wdirectory_iterator;
 # endif
 
@@ -1100,7 +1100,7 @@
     }; // basic_directory_status
 
     typedef basic_directory_entry<path> directory_entry;
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
     typedef basic_directory_entry<wpath> wdirectory_entry;
 # endif
 
@@ -1116,9 +1116,9 @@
         if ( status_known( m_symlink_status )
           && !is_symlink( m_symlink_status ) )
           { m_status = m_symlink_status; }
- else { m_status = boost::filesystem::status( m_path ); }
+ else { m_status = boost::filesystem2::status( m_path ); }
 # else
- m_status = boost::filesystem::status( m_path );
+ m_status = boost::filesystem2::status( m_path );
 # endif
       }
       return m_status;
@@ -1134,9 +1134,9 @@
         if ( status_known( m_symlink_status )
           && !is_symlink( m_symlink_status ) )
           { ec = boost::system::error_code();; m_status = m_symlink_status; }
- else { m_status = boost::filesystem::status( m_path, ec ); }
+ else { m_status = boost::filesystem2::status( m_path, ec ); }
 # else
- m_status = boost::filesystem::status( m_path, ec );
+ m_status = boost::filesystem2::status( m_path, ec );
 # endif
       }
       else ec = boost::system::error_code();;
@@ -1149,7 +1149,7 @@
     {
 # ifndef BOOST_WINDOWS_API
       if ( !status_known( m_symlink_status ) )
- { m_symlink_status = boost::filesystem::symlink_status( m_path ); }
+ { m_symlink_status = boost::filesystem2::symlink_status( m_path ); }
       return m_symlink_status;
 # else
       return status();
@@ -1162,18 +1162,67 @@
     {
 # ifndef BOOST_WINDOWS_API
       if ( !status_known( m_symlink_status ) )
- { m_symlink_status = boost::filesystem::symlink_status( m_path, ec ); }
+ { m_symlink_status = boost::filesystem2::symlink_status( m_path, ec ); }
       else ec = boost::system::error_code();;
       return m_symlink_status;
 # else
       return status( ec );
 # endif
     }
- } // namespace filesystem
+ } // namespace filesystem2
 } // namespace boost
 
 #undef BOOST_FS_FUNC
 
+//----------------------------------------------------------------------------//
+
+namespace boost
+{
+ namespace filesystem
+ {
+ using filesystem2::basic_directory_entry;
+ using filesystem2::basic_directory_iterator;
+ using filesystem2::complete;
+ using filesystem2::copy_file;
+ using filesystem2::copy_option;
+ using filesystem2::create_directory;
+ using filesystem2::create_hard_link;
+ using filesystem2::create_symlink;
+ using filesystem2::current_path;
+ using filesystem2::directory_entry;
+ using filesystem2::directory_iterator;
+ using filesystem2::equivalent;
+ using filesystem2::exists;
+ using filesystem2::file_size;
+ using filesystem2::file_status;
+ using filesystem2::file_type;
+ using filesystem2::initial_path;
+ using filesystem2::is_directory;
+ using filesystem2::is_directory;
+ using filesystem2::is_empty;
+ using filesystem2::is_other;
+ using filesystem2::is_regular_file;
+ using filesystem2::is_symlink;
+ using filesystem2::last_write_time;
+ using filesystem2::remove;
+ using filesystem2::remove_all;
+ using filesystem2::rename;
+ using filesystem2::space;
+ using filesystem2::space_info;
+ using filesystem2::status;
+ using filesystem2::status_known;
+ using filesystem2::symlink_status;
+ using filesystem2::system_complete;
+# ifndef BOOST_FILESYSTEM_NO_DEPRECATED
+ using filesystem2::is_regular;
+ using filesystem2::symbolic_link_exists;
+# endif
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
+ using filesystem2::wdirectory_iterator;
+ using filesystem2::wdirectory_entry;
+# endif
+ }
+}
 
 #include <boost/config/abi_suffix.hpp> // pops abi_prefix.hpp pragmas
-#endif // BOOST_FILESYSTEM_OPERATIONS_HPP
+#endif // BOOST_FILESYSTEM2_OPERATIONS_HPP

Modified: branches/filesystem3/boost/filesystem/v2/path.hpp
==============================================================================
--- branches/filesystem3/boost/filesystem/v2/path.hpp (original)
+++ branches/filesystem3/boost/filesystem/v2/path.hpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -14,10 +14,10 @@
 
 //----------------------------------------------------------------------------//
 
-#ifndef BOOST_FILESYSTEM_PATH_HPP
-#define BOOST_FILESYSTEM_PATH_HPP
+#ifndef BOOST_FILESYSTEM2_PATH_HPP
+#define BOOST_FILESYSTEM2_PATH_HPP
 
-#include <boost/filesystem/config.hpp>
+#include <boost/filesystem/v2/config.hpp>
 #include <boost/system/system_error.hpp>
 #include <boost/iterator/iterator_facade.hpp>
 #include <boost/throw_exception.hpp>
@@ -31,17 +31,15 @@
 #include <stdexcept>
 #include <cassert>
 
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
 # include <locale>
 # endif
 
 #include <boost/config/abi_prefix.hpp> // must be the last #include
 
-//----------------------------------------------------------------------------//
-
 namespace boost
 {
- namespace BOOST_FILESYSTEM_NAMESPACE
+ namespace BOOST_FILESYSTEM2_NAMESPACE
   {
     template<class String, class Traits> class basic_path;
 
@@ -58,7 +56,7 @@
         const external_string_type & src ) { return src; }
     };
 
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
 
     struct BOOST_FILESYSTEM_DECL wpath_traits;
     
@@ -84,7 +82,7 @@
       static bool imbue( const std::locale & loc, const std::nothrow_t & );
     };
 
-# endif // ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# endif // ifndef BOOST_FILESYSTEM2_NARROW_ONLY
 
     // path traits ---------------------------------------------------------//
 
@@ -92,7 +90,7 @@
       { BOOST_STATIC_CONSTANT( bool, value = false ); };
     template<> struct is_basic_path<path>
       { BOOST_STATIC_CONSTANT( bool, value = true ); };
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
     template<> struct is_basic_path<wpath>
       { BOOST_STATIC_CONSTANT( bool, value = true ); };
 # endif
@@ -109,7 +107,7 @@
     template<class Path> struct colon
       { BOOST_STATIC_CONSTANT( char, value = ':' ); };
 
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
     template<> struct slash<wpath>
       { BOOST_STATIC_CONSTANT( wchar_t, value = L'/' ); };
     template<> struct dot<wpath>
@@ -121,7 +119,7 @@
 # ifdef BOOST_WINDOWS_PATH
     template<class Path> struct path_alt_separator
       { BOOST_STATIC_CONSTANT( char, value = '\\' ); };
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
     template<> struct path_alt_separator<wpath>
       { BOOST_STATIC_CONSTANT( wchar_t, value = L'\\' ); };
 # endif
@@ -273,23 +271,23 @@
       {
       private:
         friend class boost::iterator_core_access;
- friend class boost::BOOST_FILESYSTEM_NAMESPACE::basic_path<String, Traits>;
+ friend class boost::BOOST_FILESYSTEM2_NAMESPACE::basic_path<String, Traits>;
 
         const string_type & dereference() const
           { return m_name; }
         bool equal( const iterator & rhs ) const
           { return m_path_ptr == rhs.m_path_ptr && m_pos == rhs.m_pos; }
 
- friend class boost::BOOST_FILESYSTEM_NAMESPACE::detail::iterator_helper<path_type>;
+ friend class boost::BOOST_FILESYSTEM2_NAMESPACE::detail::iterator_helper<path_type>;
 
         void increment()
         {
- boost::BOOST_FILESYSTEM_NAMESPACE::detail::iterator_helper<path_type>::do_increment(
+ boost::BOOST_FILESYSTEM2_NAMESPACE::detail::iterator_helper<path_type>::do_increment(
             *this );
         }
         void decrement()
         {
- boost::BOOST_FILESYSTEM_NAMESPACE::detail::iterator_helper<path_type>::do_decrement(
+ boost::BOOST_FILESYSTEM2_NAMESPACE::detail::iterator_helper<path_type>::do_decrement(
             *this );
         }
 
@@ -330,7 +328,7 @@
       // Was qualified; como433beta8 reports:
       // warning #427-D: qualified name is not allowed in member declaration
       friend class iterator;
- friend class boost::BOOST_FILESYSTEM_NAMESPACE::detail::iterator_helper<path_type>;
+ friend class boost::BOOST_FILESYSTEM2_NAMESPACE::detail::iterator_helper<path_type>;
 
       // Deprecated features ease transition for existing code. Don't use these
       // in new code.
@@ -408,7 +406,7 @@
                     const typename basic_path<String, Traits>::string_type::value_type * rhs )
     {
       typedef typename
- boost::BOOST_FILESYSTEM_NAMESPACE::basic_path<String, Traits> path_type;
+ boost::BOOST_FILESYSTEM2_NAMESPACE::basic_path<String, Traits> path_type;
       const typename path_type::string_type::value_type * l (lhs.string().c_str());
       while ( (*l == *rhs
 # ifdef BOOST_WINDOWS_PATH
@@ -728,7 +726,7 @@
 
     typedef basic_filesystem_error<path> filesystem_error;
 
-# ifndef BOOST_FILESYSTEM_NARROW_ONLY
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
     typedef basic_filesystem_error<wpath> wfilesystem_error;
 # endif
 
@@ -769,7 +767,7 @@
       // return 0 if str itself is filename (or empty)
       {
         typedef typename
- boost::BOOST_FILESYSTEM_NAMESPACE::basic_path<String, Traits> path_type;
+ boost::BOOST_FILESYSTEM2_NAMESPACE::basic_path<String, Traits> path_type;
 
         // case: "//"
         if ( end_pos == 2
@@ -817,7 +815,7 @@
         element_size = 0;
         if ( src.empty() ) return;
 
- typedef typename boost::BOOST_FILESYSTEM_NAMESPACE::basic_path<String, Traits> path_type;
+ typedef typename boost::BOOST_FILESYSTEM2_NAMESPACE::basic_path<String, Traits> path_type;
 
         typename String::size_type cur(0);
         
@@ -877,7 +875,7 @@
         typename String::size_type size )
       // return npos if no root_directory found
       {
- typedef typename boost::BOOST_FILESYSTEM_NAMESPACE::basic_path<String, Traits> path_type;
+ typedef typename boost::BOOST_FILESYSTEM2_NAMESPACE::basic_path<String, Traits> path_type;
 
 # ifdef BOOST_WINDOWS_PATH
         // case "c:/"
@@ -915,7 +913,7 @@
         typename String::size_type pos ) // pos is position of the slash
       {
         typedef typename
- boost::BOOST_FILESYSTEM_NAMESPACE::basic_path<String, Traits>
+ boost::BOOST_FILESYSTEM2_NAMESPACE::basic_path<String, Traits>
             path_type;
 
         assert( !str.empty() && str[pos] == slash<path_type>::value
@@ -1523,9 +1521,47 @@
       catch (...) { m_imp_ptr.reset(); }
     }
 
- } // namespace BOOST_FILESYSTEM_NAMESPACE
+ } // namespace BOOST_FILESYSTEM2_NAMESPACE
 } // namespace boost
 
+//----------------------------------------------------------------------------//
+
+namespace boost
+{
+ namespace filesystem
+ {
+ using filesystem2::basic_path;
+ using filesystem2::path_traits;
+ using filesystem2::path;
+# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
+ using filesystem2::wpath_traits;
+ using filesystem2::wpath;
+# endif
+ using filesystem2::basic_filesystem_error;
+ using filesystem2::filesystem_error;
+ using filesystem2::wfilesystem_error;
+ using filesystem2::portable_posix_name;
+ using filesystem2::windows_name;
+ using filesystem2::portable_name;
+ using filesystem2::portable_directory_name;
+ using filesystem2::portable_file_name;
+ using filesystem2::native;
+ using filesystem2::no_check;
+ using filesystem2::swap;
+ using filesystem2::operator<;
+ using filesystem2::operator==;
+ using filesystem2::operator!=;
+ using filesystem2::operator>;
+ using filesystem2::operator<=;
+ using filesystem2::operator>=;
+ using filesystem2::operator/;
+ using filesystem2::operator<<;
+ using filesystem2::operator>>;
+ }
+}
+
+//----------------------------------------------------------------------------//
+
 #include <boost/config/abi_suffix.hpp> // pops abi_prefix.hpp pragmas
 
-#endif // BOOST_FILESYSTEM_PATH_HPP
+#endif // BOOST_FILESYSTEM2_PATH_HPP

Modified: branches/filesystem3/boost/filesystem/v3/config.hpp
==============================================================================
--- branches/filesystem3/boost/filesystem/v3/config.hpp (original)
+++ branches/filesystem3/boost/filesystem/v3/config.hpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -1,4 +1,4 @@
-// boost/filesystem/config.hpp -------------------------------------------------------//
+// boost/filesystem/v3/config.hpp ----------------------------------------------------//
 
 // Copyright Beman Dawes 2003
 
@@ -9,15 +9,18 @@
 
 //--------------------------------------------------------------------------------------//
 
-#ifndef BOOST_FILESYSTEM_CONFIG_HPP
-#define BOOST_FILESYSTEM_CONFIG_HPP
+#ifndef BOOST_FILESYSTEM3_CONFIG_HPP
+#define BOOST_FILESYSTEM3_CONFIG_HPP
 
-#define BOOST_FILESYSTEM_I18N // aid users wishing to compile several versions
+# if defined(BOOST_FILESYSTEM_VERSION) && BOOST_FILESYSTEM_VERSION != 3
+# error Compiling Filesystem version 3 file with BOOST_FILESYSTEM_VERSION defined != 3
+# endif
 
-// ability to change namespace aids path_table.cpp ----------------------------------//
-#ifndef BOOST_FILESYSTEM_NAMESPACE
-# define BOOST_FILESYSTEM_NAMESPACE filesystem
-#endif
+# if !defined(BOOST_FILESYSTEM_VERSION)
+# define BOOST_FILESYSTEM_VERSION 3
+# endif
+
+#define BOOST_FILESYSTEM_I18N // aid users wishing to compile several versions
 
 // This header implements separate compilation features as described in
 // http://www.boost.org/more/separate_compilation.html
@@ -79,4 +82,4 @@
 #include <boost/config/auto_link.hpp>
 #endif // auto-linking disabled
 
-#endif // BOOST_FILESYSTEM_CONFIG_HPP
+#endif // BOOST_FILESYSTEM3_CONFIG_HPP

Modified: branches/filesystem3/boost/filesystem/v3/convenience.hpp
==============================================================================
--- branches/filesystem3/boost/filesystem/v3/convenience.hpp (original)
+++ branches/filesystem3/boost/filesystem/v3/convenience.hpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -10,17 +10,17 @@
 
 //----------------------------------------------------------------------------//
 
-#ifndef BOOST_FILESYSTEM_CONVENIENCE_HPP
-#define BOOST_FILESYSTEM_CONVENIENCE_HPP
+#ifndef BOOST_FILESYSTEM3_CONVENIENCE_HPP
+#define BOOST_FILESYSTEM3_CONVENIENCE_HPP
 
-#include <boost/filesystem/operations.hpp>
+#include <boost/filesystem/v3/operations.hpp>
 #include <boost/system/error_code.hpp>
 
 #include <boost/config/abi_prefix.hpp> // must be the last #include
 
 namespace boost
 {
- namespace filesystem
+ namespace filesystem3
   {
 
 # ifndef BOOST_FILESYSTEM_NO_DEPRECATED
@@ -45,8 +45,8 @@
 # endif
 
 
- } // namespace filesystem
+ } // namespace filesystem3
 } // namespace boost
 
 #include <boost/config/abi_suffix.hpp> // pops abi_prefix.hpp pragmas
-#endif // BOOST_FILESYSTEM_CONVENIENCE_HPP
+#endif // BOOST_FILESYSTEM3_CONVENIENCE_HPP

Modified: branches/filesystem3/boost/filesystem/v3/fstream.hpp
==============================================================================
--- branches/filesystem3/boost/filesystem/v3/fstream.hpp (original)
+++ branches/filesystem3/boost/filesystem/v3/fstream.hpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -9,10 +9,10 @@
 
 //--------------------------------------------------------------------------------------//
 
-#ifndef BOOST_FILESYSTEM_FSTREAM_HPP
-#define BOOST_FILESYSTEM_FSTREAM_HPP
+#ifndef BOOST_FILESYSTEM3_FSTREAM_HPP
+#define BOOST_FILESYSTEM3_FSTREAM_HPP
 
-#include <boost/filesystem/path.hpp>
+#include <boost/filesystem/v3/path.hpp>
 #include <boost/config.hpp>
 
 #include <iosfwd>
@@ -30,7 +30,7 @@
 
 namespace boost
 {
-namespace filesystem
+namespace filesystem3
 {
 
 //--------------------------------------------------------------------------------------//
@@ -169,8 +169,8 @@
   typedef basic_fstream<wchar_t> wfstream;
   typedef basic_ofstream<wchar_t> wofstream;
   
-} // namespace filesystem
+} // namespace filesystem3
 } // namespace boost
 
 #include <boost/config/abi_suffix.hpp> // pops abi_prefix.hpp pragmas
-#endif // BOOST_FILESYSTEM_FSTREAM_HPP
+#endif // BOOST_FILESYSTEM3_FSTREAM_HPP

Modified: branches/filesystem3/boost/filesystem/v3/operations.hpp
==============================================================================
--- branches/filesystem3/boost/filesystem/v3/operations.hpp (original)
+++ branches/filesystem3/boost/filesystem/v3/operations.hpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -12,10 +12,11 @@
 
 //--------------------------------------------------------------------------------------//
 
-#ifndef BOOST_FILESYSTEM_OPERATIONS_HPP
-#define BOOST_FILESYSTEM_OPERATIONS_HPP
+#ifndef BOOST_FILESYSTEM3_OPERATIONS_HPP
+#define BOOST_FILESYSTEM3_OPERATIONS_HPP
 
-#include <boost/filesystem/path.hpp>
+#include <boost/filesystem/v3/config.hpp>
+#include <boost/filesystem/v3/path.hpp>
 
 #include <boost/detail/scoped_enum_emulation.hpp>
 #include <boost/system/error_code.hpp>
@@ -43,7 +44,7 @@
 
 namespace boost
 {
- namespace filesystem
+ namespace filesystem3
   {
 
 //--------------------------------------------------------------------------------------//
@@ -472,9 +473,6 @@
   void replace_leaf(const boost::filesystem::path& p,
     file_status st, file_status symlink_st)
       { replace_filename(p, st, symlink_st); }
- std::string filename() const { return path().filename().string(); }
- std::string leaf() const { return path().filename().string(); }
- std::string string() const { return path().string(); }
 # endif
 
   const boost::filesystem::path& path() const {return m_path;}
@@ -913,9 +911,60 @@
     BOOST_FILESYSTEM_DECL bool possible_large_file_size_support();
   }
 
- } // namespace filesystem
+ } // namespace filesystem3
 } // namespace boost
 
+//----------------------------------------------------------------------------//
+
+namespace boost
+{
+ namespace filesystem
+ {
+ using filesystem3::resize_file;
+ using filesystem3::copy_file;
+ using filesystem3::copy_option;
+ using filesystem3::copy_symlink;
+ using filesystem3::create_directories;
+ using filesystem3::create_directory;
+ using filesystem3::create_hard_link;
+ using filesystem3::create_symlink;
+ using filesystem3::current_path;
+ using filesystem3::directory_entry;
+ using filesystem3::directory_iterator;
+ using filesystem3::equivalent;
+ using filesystem3::exists;
+ using filesystem3::file_not_found;
+ using filesystem3::file_size;
+ using filesystem3::file_status;
+ using filesystem3::file_type;
+ using filesystem3::filesystem_error;
+ using filesystem3::hard_link_count;
+ using filesystem3::initial_path;
+ using filesystem3::is_directory;
+ using filesystem3::is_directory;
+ using filesystem3::is_empty;
+ using filesystem3::is_other;
+ using filesystem3::is_regular_file;
+ using filesystem3::is_symlink;
+ using filesystem3::last_write_time;
+ using filesystem3::read_symlink;
+ using filesystem3::remove;
+ using filesystem3::remove_all;
+ using filesystem3::rename;
+ using filesystem3::space;
+ using filesystem3::space_info;
+ using filesystem3::status;
+ using filesystem3::status_known;
+ using filesystem3::symlink_status;
+ using filesystem3::system_complete;
+# ifndef BOOST_FILESYSTEM_NO_DEPRECATED
+ using filesystem3::is_regular;
+ using filesystem3::symbolic_link_exists;
+ //using filesystem3::wdirectory_iterator;
+ //using filesystem3::wdirectory_entry;
+# endif
+ }
+}
 
 #include <boost/config/abi_suffix.hpp> // pops abi_prefix.hpp pragmas
-#endif // BOOST_FILESYSTEM_OPERATIONS_HPP
+#endif // BOOST_FILESYSTEM3_OPERATIONS_HPP

Modified: branches/filesystem3/boost/filesystem/v3/path.hpp
==============================================================================
--- branches/filesystem3/boost/filesystem/v3/path.hpp (original)
+++ branches/filesystem3/boost/filesystem/v3/path.hpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -15,8 +15,8 @@
 #ifndef BOOST_FILESYSTEM_PATH_HPP
 #define BOOST_FILESYSTEM_PATH_HPP
 
-#include <boost/filesystem/config.hpp>
-#include <boost/filesystem/path_traits.hpp>
+#include <boost/filesystem/v3/config.hpp>
+#include <boost/filesystem/v3/path_traits.hpp>
 #include <boost/system/error_code.hpp>
 #include <boost/system/system_error.hpp>
 #include <boost/iterator/iterator_facade.hpp>
@@ -35,7 +35,7 @@
 
 namespace boost
 {
-namespace filesystem
+namespace filesystem3
 {
   //------------------------------------------------------------------------------------//
   // //
@@ -330,41 +330,42 @@
 
     // ----- deprecated functions -----
 
-# if !defined(BOOST_FILESYSTEM_NO_DEPRECATED)
- // Deprecated features ease transition for existing code. Don't use these
- // in new code.
+# if defined(BOOST_FILESYSTEM_DEPRECATED) && defined(BOOST_FILESYSTEM_NO_DEPRECATED)
+# error both BOOST_FILESYSTEM_DEPRECATED and BOOST_FILESYSTEM_NO_DEPRECATED are defined
+# endif
 
+# if !defined(BOOST_FILESYSTEM_NO_DEPRECATED)
+ // recently deprecated functions supplied by default
     path& normalize() { return m_normalize(); }
     path& remove_leaf() { return remove_filename(); }
+ path leaf() const { return filename(); }
+ path branch_path() const { return parent_path(); }
+ bool has_leaf() const { return !m_pathname.empty(); }
+ bool has_branch_path() const { return !parent_path().empty(); }
+ bool is_complete() const { return is_absolute(); }
+# endif
 
- typedef bool (*name_check)(const std::string & name);
- path(const std::string& str, name_check) { operator/=(str); }
- path(const std::wstring& str, name_check) { operator/=(str); }
- path(const char* s, name_check) { operator/=(s);}
- path(const wchar_t* s, name_check) { operator/=(s);}
- static bool default_name_check_writable() { return false; }
- static void default_name_check(name_check){}
- static name_check default_name_check() { return 0; }
-
+# if defined(BOOST_FILESYSTEM_DEPRECATED)
+ // deprecated functions with enough signature or semantic changes that they are
+ // not supplied by default
     const std::string file_string() const { return string(); }
     const std::string directory_string() const { return string(); }
     const std::string native_file_string() const { return string(); }
     const std::string native_directory_string() const { return string(); }
- // for functions that returned string_type, return std::string since we are
- // emulating the old path rather than the old wpath.
- const std::string external_file_string() const { return string(); }
- const std::string external_directory_string() const { return string(); }
+ const string_type external_file_string() const { return native(); }
+ const string_type external_directory_string() const { return native(); }
 
- std::string leaf() const { return filename().string(); }
- path branch_path() const { return parent_path(); }
- bool has_leaf() const { return !m_pathname.empty(); }
- bool has_branch_path() const { return !parent_path().empty(); }
- bool is_complete() const { return is_absolute(); }
+ // older functions no longer supported
+ //typedef bool (*name_check)(const std::string & name);
+ //basic_path(const string_type& str, name_check) { operator/=(str); }
+ //basic_path(const typename string_type::value_type* s, name_check)
+ // { operator/=(s);}
+ //static bool default_name_check_writable() { return false; }
+ //static void default_name_check(name_check) {}
+ //static name_check default_name_check() { return 0; }
+ //basic_path& canonize();
 # endif
 
- // older functions no longer supported
- //basic_path& canonize();
-
 //--------------------------------------------------------------------------------------//
 // class path private members //
 //--------------------------------------------------------------------------------------//
@@ -411,7 +412,7 @@
 
   }; // class path
 
-# if !defined(BOOST_FILESYSTEM_NO_DEPRECATED)
+# ifndef BOOST_FILESYSTEM_NO_DEPRECATED
   typedef path wpath;
 # endif
 
@@ -427,7 +428,7 @@
   {
   private:
     friend class boost::iterator_core_access;
- friend class boost::filesystem::path;
+ friend class boost::filesystem3::path;
     friend void m_path_iterator_increment(path::iterator & it);
     friend void m_path_iterator_decrement(path::iterator & it);
 
@@ -572,15 +573,12 @@
 
   // name_checks
 
- BOOST_FILESYSTEM_DECL bool portable_posix_name(const std::string& name);
- BOOST_FILESYSTEM_DECL bool windows_name(const std::string& name);
- BOOST_FILESYSTEM_DECL bool portable_name(const std::string& name);
- BOOST_FILESYSTEM_DECL bool portable_directory_name(const std::string& name);
- BOOST_FILESYSTEM_DECL bool portable_file_name(const std::string& name);
- BOOST_FILESYSTEM_DECL bool native(const std::string& name);
-# if !defined(BOOST_FILESYSTEM_NO_DEPRECATED)
- inline bool no_check( const std::string & ) { return true; }
-# endif
+ BOOST_FILESYSTEM_DECL bool portable_posix_name(const std::string & name);
+ BOOST_FILESYSTEM_DECL bool windows_name(const std::string & name);
+ BOOST_FILESYSTEM_DECL bool portable_name(const std::string & name);
+ BOOST_FILESYSTEM_DECL bool portable_directory_name(const std::string & name);
+ BOOST_FILESYSTEM_DECL bool portable_file_name(const std::string & name);
+ BOOST_FILESYSTEM_DECL bool native(const std::string & name);
  
 //--------------------------------------------------------------------------------------//
 // class path member template implementation //
@@ -629,9 +627,41 @@
   std::wstring path::generic_string<std::wstring>() const { return generic_wstring(); }
 
 
-} // namespace filesystem
+} // namespace filesystem3
 } // namespace boost
 
+//----------------------------------------------------------------------------//
+
+namespace boost
+{
+ namespace filesystem
+ {
+ using filesystem3::path;
+# ifndef BOOST_FILESYSTEM_NO_DEPRECATED
+ using filesystem3::wpath;
+# endif
+ using filesystem3::lexicographical_compare;
+ using filesystem3::portable_posix_name;
+ using filesystem3::windows_name;
+ using filesystem3::portable_name;
+ using filesystem3::portable_directory_name;
+ using filesystem3::portable_file_name;
+ using filesystem3::native;
+ using filesystem3::swap;
+ using filesystem3::operator<;
+ using filesystem3::operator==;
+ using filesystem3::operator!=;
+ using filesystem3::operator>;
+ using filesystem3::operator<=;
+ using filesystem3::operator>=;
+ using filesystem3::operator/;
+ using filesystem3::operator<<;
+ using filesystem3::operator>>;
+ }
+}
+
+//----------------------------------------------------------------------------//
+
 #include <boost/config/abi_suffix.hpp> // pops abi_prefix.hpp pragmas
 
 #endif // BOOST_FILESYSTEM_PATH_HPP

Modified: branches/filesystem3/boost/filesystem/v3/path_traits.hpp
==============================================================================
--- branches/filesystem3/boost/filesystem/v3/path_traits.hpp (original)
+++ branches/filesystem3/boost/filesystem/v3/path_traits.hpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -10,7 +10,7 @@
 #ifndef BOOST_FILESYSTEM_PATH_TRAITS_HPP
 #define BOOST_FILESYSTEM_PATH_TRAITS_HPP
 
-#include <boost/filesystem/config.hpp>
+#include <boost/filesystem/v3/config.hpp>
 #include <string>
 #include <vector>
 #include <iterator>
@@ -20,7 +20,7 @@
 
 #include <boost/config/abi_prefix.hpp> // must be the last #include
 
-namespace boost { namespace filesystem {
+namespace boost { namespace filesystem3 {
 
   BOOST_FILESYSTEM_DECL const system::error_category& codecvt_error_category();
   // uses std::codecvt_base::result used for error codes:

Added: branches/filesystem3/libs/filesystem/build/Jamfile.v2
==============================================================================
--- (empty file)
+++ branches/filesystem3/libs/filesystem/build/Jamfile.v2 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -0,0 +1,49 @@
+# Boost Filesystem Library Build Jamfile
+
+# (C) Copyright Beman Dawes 2002-2006
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or www.boost.org/LICENSE_1_0.txt)
+
+
+# See library home page at http://www.boost.org/libs/filesystem
+
+project boost/filesystem
+ : source-location ..
+ : usage-requirements # pass these requirement to dependents (i.e. users)
+ <link>shared:<define>BOOST_FILESYSTEM_DYN_LINK=1
+ ;
+
+SOURCES2 =
+ v2/src/operations v2/src/path v2/src/portability v2/src/utf8_codecvt_facet ;
+
+SOURCES3 =
+ v3/src/operations v3/src/path v3/src/path_traits v3/src/portability v3/src/unique_path
+ v3/src/utf8_codecvt_facet v3/src/windows_file_codecvt v3/src/codecvt_error_category ;
+
+lib boost_filesystem2
+ : $(SOURCES).cpp ../../system/build//boost_system
+ : <link>shared:<define>BOOST_FILESYSTEM_DYN_LINK=1 # tell source we're building dll's
+ :
+ : # Boost.Filesystem uses some of Boost.System functions in inlined/templated
+ # functions, so clients that use Boost.Filesystem will have direct references
+ # to Boost.System symbols. On Windows, Darwin, and some other platforms, this
+ # means those clients have to be directly linked to Boost.System. For static
+ # linking this happens anyway, but for shared we need to make it happen. Since
+ # doing so is harmless even when not needed, we do it for all platforms.
+ <link>shared:<library>../../system/build//boost_system
+ ;
+
+#lib boost_filesystem
+# : $(SOURCES).cpp ../../system/build//boost_system
+# : <link>shared:<define>BOOST_FILESYSTEM_DYN_LINK=1 # tell source we're building dll's
+# :
+# : # Boost.Filesystem uses some of Boost.System functions in inlined/templated
+ # functions, so clients that use Boost.Filesystem will have direct references
+ # to Boost.System symbols. On Windows, Darwin, and some other platforms, this
+ # means those clients have to be directly linked to Boost.System. For static
+ # linking this happens anyway, but for shared we need to make it happen. Since
+ # doing so is harmless even when not needed, we do it for all platforms.
+ <link>shared:<library>../../system/build//boost_system
+# ;
+
+boost-install boost_filesystem2 ;
\ No newline at end of file

Modified: branches/filesystem3/libs/filesystem/v2/src/v2_operations.cpp
==============================================================================
--- branches/filesystem3/libs/filesystem/v2/src/v2_operations.cpp (original)
+++ branches/filesystem3/libs/filesystem/v2/src/v2_operations.cpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -38,13 +38,13 @@
 #endif
 
 
-#include <boost/filesystem/operations.hpp>
+#include <boost/filesystem/v2/operations.hpp>
 #include <boost/scoped_array.hpp>
 #include <boost/throw_exception.hpp>
 #include <boost/detail/workaround.hpp>
 #include <cstdlib> // for malloc, free
 
-namespace fs = boost::filesystem;
+namespace fs = boost::filesystem2;
 using boost::system::error_code;
 using boost::system::system_category;
 
@@ -217,7 +217,7 @@
   { return ::GetFileAttributesExA( ph, ::GetFileExInfoStandard, &fad ); }
 
   template< class String >
- boost::filesystem::detail::query_pair
+ boost::filesystem2::detail::query_pair
   is_empty_template( const String & ph )
   {
     WIN32_FILE_ATTRIBUTE_DATA fad;
@@ -255,7 +255,7 @@
   };
 
   template< class String >
- boost::filesystem::detail::query_pair
+ boost::filesystem2::detail::query_pair
   equivalent_template( const String & ph1, const String & ph2 )
   {
     // Note well: Physical location on external media is part of the
@@ -316,7 +316,7 @@
   }
 
   template< class String >
- boost::filesystem::detail::uintmax_pair
+ boost::filesystem2::detail::uintmax_pair
   file_size_template( const String & ph )
   {
     WIN32_FILE_ATTRIBUTE_DATA fad;
@@ -336,11 +336,11 @@
     { return ::GetDiskFreeSpaceExA( ph.c_str(), avail, total, free ) != 0; }
 
   template< class String >
- boost::filesystem::detail::space_pair
+ boost::filesystem2::detail::space_pair
   space_template( String & ph )
   {
     ULARGE_INTEGER avail, total, free;
- boost::filesystem::detail::space_pair result;
+ boost::filesystem2::detail::space_pair result;
     if ( get_free_disk_space( ph, &avail, &total, &free ) )
     {
       result.first = ok;
@@ -483,7 +483,7 @@
   }
 
   template<class String>
- boost::filesystem::detail::time_pair
+ boost::filesystem2::detail::time_pair
   last_write_time_template( const String & ph )
   {
     FILETIME lwt;
@@ -535,7 +535,7 @@
     { return ::CreateDirectoryA( dir.c_str(), 0 ) != 0; }
          
   template<class String>
- boost::filesystem::detail::query_pair
+ boost::filesystem2::detail::query_pair
   create_directory_template( const String & dir_ph )
   {
     error_code error, dummy;
@@ -588,7 +588,7 @@
 
 namespace boost
 {
- namespace filesystem
+ namespace filesystem2
   {
     namespace detail
     {
@@ -1364,5 +1364,5 @@
 
 # endif
     } // namespace detail
- } // namespace filesystem
+ } // namespace filesystem2
 } // namespace boost

Modified: branches/filesystem3/libs/filesystem/v2/src/v2_path.cpp
==============================================================================
--- branches/filesystem3/libs/filesystem/v2/src/v2_path.cpp (original)
+++ branches/filesystem3/libs/filesystem/v2/src/v2_path.cpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -13,11 +13,11 @@
 // the library is being built (possibly exporting rather than importing code)
 #define BOOST_FILESYSTEM_SOURCE
 
-#include <boost/filesystem/config.hpp>
+#include <boost/filesystem/v2/config.hpp>
 
 #ifndef BOOST_FILESYSTEM_NARROW_ONLY
 
-#include <boost/filesystem/path.hpp>
+#include <boost/filesystem/v2/path.hpp>
 #include <boost/scoped_array.hpp>
 
 #include <locale>
@@ -68,7 +68,7 @@
 
 namespace boost
 {
- namespace filesystem
+ namespace filesystem2
   {
     bool wpath_traits::imbue( const std::locale & new_loc, const std::nothrow_t & )
     {
@@ -167,7 +167,7 @@
     }
 # endif // BOOST_POSIX_API
 
- } // namespace filesystem
+ } // namespace filesystem2
 } // namespace boost
 
 #endif // ifndef BOOST_FILESYSTEM_NARROW_ONLY

Modified: branches/filesystem3/libs/filesystem/v2/src/v2_portability.cpp
==============================================================================
--- branches/filesystem3/libs/filesystem/v2/src/v2_portability.cpp (original)
+++ branches/filesystem3/libs/filesystem/v2/src/v2_portability.cpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -13,10 +13,10 @@
 // the library is being built (possibly exporting rather than importing code)
 #define BOOST_FILESYSTEM_SOURCE
 
-#include <boost/filesystem/config.hpp>
-#include <boost/filesystem/path.hpp>
+#include <boost/filesystem/v2/config.hpp>
+#include <boost/filesystem/v2/path.hpp>
 
-namespace fs = boost::filesystem;
+namespace fs = boost::filesystem2;
 
 #include <cstring> // SGI MIPSpro compilers need this
 
@@ -43,7 +43,7 @@
 
 namespace boost
 {
- namespace filesystem
+ namespace filesystem2
   {
 
     // name_check functions ----------------------------------------------//
@@ -111,5 +111,5 @@
         ;
     }
 
- } // namespace filesystem
+ } // namespace filesystem2
 } // namespace boost

Modified: branches/filesystem3/libs/filesystem/v2/src/v2_utf8_codecvt_facet.cpp
==============================================================================
--- branches/filesystem3/libs/filesystem/v2/src/v2_utf8_codecvt_facet.cpp (original)
+++ branches/filesystem3/libs/filesystem/v2/src/v2_utf8_codecvt_facet.cpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -4,17 +4,16 @@
 // or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #define BOOST_FILESYSTEM_SOURCE
-#include <boost/filesystem/config.hpp>
+#include <boost/filesystem/v2/config.hpp>
 
 #define BOOST_UTF8_BEGIN_NAMESPACE \
- namespace boost { namespace filesystem { namespace detail {
+ namespace boost { namespace filesystem2 { namespace detail {
 
 #define BOOST_UTF8_END_NAMESPACE }}}
 #define BOOST_UTF8_DECL BOOST_FILESYSTEM_DECL
 
 #include "libs/detail/utf8_codecvt_facet.cpp"
 
-
-#undef BOOST_UTF8_BEGIN_NAMESPACE
+ #undef BOOST_UTF8_BEGIN_NAMESPACE
 #undef BOOST_UTF8_END_NAMESPACE
 #undef BOOST_UTF8_DECL

Modified: branches/filesystem3/libs/filesystem/v2/src/v2_utf8_codecvt_facet.hpp
==============================================================================
--- branches/filesystem3/libs/filesystem/v2/src/v2_utf8_codecvt_facet.hpp (original)
+++ branches/filesystem3/libs/filesystem/v2/src/v2_utf8_codecvt_facet.hpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -7,10 +7,10 @@
 #ifndef BOOST_FILESYSTEM_UTF8_CODECVT_FACET_HPP
 #define BOOST_FILESYSTEM_UTF8_CODECVT_FACET_HPP
 
-#include <boost/filesystem/config.hpp>
+#include <boost/filesystem/v2/config.hpp>
 
 #define BOOST_UTF8_BEGIN_NAMESPACE \
- namespace boost { namespace filesystem { namespace detail {
+ namespace boost { namespace filesystem2 { namespace detail {
 
 #define BOOST_UTF8_END_NAMESPACE }}}
 #define BOOST_UTF8_DECL BOOST_FILESYSTEM_DECL

Modified: branches/filesystem3/libs/filesystem/v3/src/codecvt_error_category.cpp
==============================================================================
--- branches/filesystem3/libs/filesystem/v3/src/codecvt_error_category.cpp (original)
+++ branches/filesystem3/libs/filesystem/v3/src/codecvt_error_category.cpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -15,8 +15,8 @@
 // the library is being built (possibly exporting rather than importing code)
 #define BOOST_FILESYSTEM_SOURCE
 
-#include <boost/filesystem/config.hpp>
-#include <boost/filesystem/path_traits.hpp>
+#include <boost/filesystem/v3/config.hpp>
+#include <boost/filesystem/v3/path_traits.hpp>
 #include <boost/system/error_code.hpp>
 #include <locale>
 #include <vector>
@@ -67,7 +67,7 @@
 
 namespace boost
 {
- namespace filesystem
+ namespace filesystem3
   {
 
     BOOST_FILESYSTEM_DECL const boost::system::error_category& codecvt_error_category()
@@ -76,5 +76,5 @@
       return codecvt_error_cat_const;
     }
 
- } // namespace system
+ } // namespace filesystem3
 } // namespace boost

Deleted: branches/filesystem3/libs/filesystem/v3/src/error_code.cpp
==============================================================================
--- branches/filesystem3/libs/filesystem/v3/src/error_code.cpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
+++ (empty file)
@@ -1,421 +0,0 @@
-// error_code support implementation file ----------------------------------//
-
-// Copyright Beman Dawes 2002, 2006
-
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See library home page at http://www.boost.org/libs/system
-
-//----------------------------------------------------------------------------//
-
-#include <boost/config/warning_disable.hpp>
-
-// define BOOST_SYSTEM_SOURCE so that <boost/system/config.hpp> knows
-// the library is being built (possibly exporting rather than importing code)
-#define BOOST_SYSTEM_SOURCE
-
-#include <boost/system/config.hpp>
-#include <boost/system/error_code.hpp>
-#include <boost/cerrno.hpp>
-#include <vector>
-#include <cstdlib>
-#include <cassert>
-
-using namespace boost::system;
-using namespace boost::system::posix_error;
-
-#include <cstring> // for strerror/strerror_r
-
-# if defined( BOOST_WINDOWS_API )
-# include <windows.h>
-# ifndef ERROR_INCORRECT_SIZE
-# define ERROR_INCORRECT_SIZE ERROR_BAD_ARGUMENTS
-# endif
-# endif
-
-//----------------------------------------------------------------------------//
-
-namespace
-{
-
- // standard error categories ---------------------------------------------//
-
- class generic_error_category : public error_category
- {
- public:
- generic_error_category(){}
- const char * name() const;
- std::string message( int ev ) const;
- };
-
- class system_error_category : public error_category
- {
- public:
- system_error_category(){}
- const char * name() const;
- std::string message( int ev ) const;
- error_condition default_error_condition( int ev ) const;
- };
-
- // generic_error_category implementation ---------------------------------//
-
- const char * generic_error_category::name() const
- {
- return "GENERIC";
- }
-
- std::string generic_error_category::message( int ev ) const
- {
- // strerror_r is preferred because it is always thread safe,
- // however, we fallback to strerror in certain cases because:
- // -- Windows doesn't provide strerror_r.
- // -- HP and Sundo provide strerror_r on newer systems, but there is
- // no way to tell if is available at runtime and in any case their
- // versions of strerror are thread safe anyhow.
- // -- Linux only sometimes provides strerror_r.
- // -- Tru64 provides strerror_r only when compiled -pthread.
- // -- VMS doesn't provide strerror_r, but on this platform, strerror is
- // thread safe.
- # if defined(BOOST_WINDOWS_API) || defined(__hpux) || defined(__sun)\
- || (defined(__linux) && (!defined(__USE_XOPEN2K) || defined(BOOST_SYSTEM_USE_STRERROR)))\
- || (defined(__osf__) && !defined(_REENTRANT))\
- || (defined(__vms))
- const char * c_str = std::strerror( ev );
- return std::string( c_str ? c_str : "Unknown error" );
- # else
- char buf[64];
- char * bp = buf;
- std::size_t sz = sizeof(buf);
- # if defined(__CYGWIN__) || defined(__USE_GNU)
- // Oddball version of strerror_r
- const char * c_str = strerror_r( ev, bp, sz );
- return std::string( c_str ? c_str : "Unknown error" );
- # else
- // POSIX version of strerror_r
- int result;
- for (;;)
- {
- // strerror_r returns 0 on success, otherwise ERANGE if buffer too small,
- // invalid_argument if ev not a valid error number
- # if defined (__sgi)
- const char * c_str = strerror( ev );
- result = 0;
- return std::string( c_str ? c_str : "Unknown error" );
- # else
- result = strerror_r( ev, bp, sz );
- # endif
- if (result == 0 )
- break;
- else
- {
- # if defined(__linux)
- // Linux strerror_r returns -1 on error, with error number in errno
- result = errno;
- # endif
- if ( result != ERANGE ) break;
- if ( sz > sizeof(buf) ) std::free( bp );
- sz *= 2;
- if ( (bp = static_cast<char*>(std::malloc( sz ))) == 0 )
- return std::string( "ENOMEM" );
- }
- }
- try
- {
- std::string msg( ( result == invalid_argument ) ? "Unknown error" : bp );
- if ( sz > sizeof(buf) ) std::free( bp );
- sz = 0;
- return msg;
- }
- catch(...)
- {
- if ( sz > sizeof(buf) ) std::free( bp );
- throw;
- }
- # endif
- # endif
- }
- // system_error_category implementation --------------------------------//
-
- const char * system_error_category::name() const
- {
- return "system";
- }
-
- error_condition system_error_category::default_error_condition( int ev ) const
- {
- switch ( ev )
- {
- case 0: return make_error_condition( success );
- # if defined(BOOST_POSIX_API)
- // POSIX-like O/S -> posix_errno decode table ---------------------------//
- case E2BIG: return make_error_condition( argument_list_too_long );
- case EACCES: return make_error_condition( permission_denied );
- case EADDRINUSE: return make_error_condition( address_in_use );
- case EADDRNOTAVAIL: return make_error_condition( address_not_available );
- case EAFNOSUPPORT: return make_error_condition( address_family_not_supported );
- case EAGAIN: return make_error_condition( resource_unavailable_try_again );
- case EALREADY: return make_error_condition( connection_already_in_progress );
- case EBADF: return make_error_condition( bad_file_descriptor );
- case EBADMSG: return make_error_condition( bad_message );
- case EBUSY: return make_error_condition( device_or_resource_busy );
- case ECANCELED: return make_error_condition( operation_canceled );
- case ECHILD: return make_error_condition( no_child_process );
- case ECONNABORTED: return make_error_condition( connection_aborted );
- case ECONNREFUSED: return make_error_condition( connection_refused );
- case ECONNRESET: return make_error_condition( connection_reset );
- case EDEADLK: return make_error_condition( resource_deadlock_would_occur );
- case EDESTADDRREQ: return make_error_condition( destination_address_required );
- case EDOM: return make_error_condition( argument_out_of_domain );
- case EEXIST: return make_error_condition( file_exists );
- case EFAULT: return make_error_condition( bad_address );
- case EFBIG: return make_error_condition( file_too_large );
- case EHOSTUNREACH: return make_error_condition( host_unreachable );
- case EIDRM: return make_error_condition( identifier_removed );
- case EILSEQ: return make_error_condition( illegal_byte_sequence );
- case EINPROGRESS: return make_error_condition( operation_in_progress );
- case EINTR: return make_error_condition( interrupted );
- case EINVAL: return make_error_condition( invalid_argument );
- case EIO: return make_error_condition( io_error );
- case EISCONN: return make_error_condition( already_connected );
- case EISDIR: return make_error_condition( is_a_directory );
- case ELOOP: return make_error_condition( too_many_synbolic_link_levels );
- case EMFILE: return make_error_condition( too_many_files_open );
- case EMLINK: return make_error_condition( too_many_links );
- case EMSGSIZE: return make_error_condition( message_size );
- case ENAMETOOLONG: return make_error_condition( filename_too_long );
- case ENETDOWN: return make_error_condition( network_down );
- case ENETRESET: return make_error_condition( network_reset );
- case ENETUNREACH: return make_error_condition( network_unreachable );
- case ENFILE: return make_error_condition( too_many_files_open_in_system );
- case ENOBUFS: return make_error_condition( no_buffer_space );
- case ENODATA: return make_error_condition( no_message_available );
- case ENODEV: return make_error_condition( no_such_device );
- case ENOENT: return make_error_condition( no_such_file_or_directory );
- case ENOEXEC: return make_error_condition( executable_format_error );
- case ENOLCK: return make_error_condition( no_lock_available );
- case ENOLINK: return make_error_condition( no_link );
- case ENOMEM: return make_error_condition( not_enough_memory );
- case ENOMSG: return make_error_condition( no_message );
- case ENOPROTOOPT: return make_error_condition( no_protocol_option );
- case ENOSPC: return make_error_condition( no_space_on_device );
- case ENOSR: return make_error_condition( no_stream_resources );
- case ENOSTR: return make_error_condition( not_a_stream );
- case ENOSYS: return make_error_condition( function_not_supported );
- case ENOTCONN: return make_error_condition( not_connected );
- case ENOTDIR: return make_error_condition( not_a_directory );
- # if ENOTEMPTY != EEXIST // AIX treats ENOTEMPTY and EEXIST as the same value
- case ENOTEMPTY: return make_error_condition( directory_not_empty );
- # endif // ENOTEMPTY != EEXIST
- case ENOTRECOVERABLE: return make_error_condition( state_not_recoverable );
- case ENOTSOCK: return make_error_condition( not_a_socket );
- case ENOTSUP: return make_error_condition( not_supported );
- case ENOTTY: return make_error_condition( inappropriate_io_control_operation );
- case ENXIO: return make_error_condition( no_such_device_or_address );
- # if EOPNOTSUPP != ENOTSUP
- case EOPNOTSUPP: return make_error_condition( operation_not_supported );
- # endif // EOPNOTSUPP != ENOTSUP
- case EOVERFLOW: return make_error_condition( value_too_large );
- case EOWNERDEAD: return make_error_condition( owner_dead );
- case EPERM: return make_error_condition( operation_not_permitted );
- case EPIPE: return make_error_condition( broken_pipe );
- case EPROTO: return make_error_condition( protocol_error );
- case EPROTONOSUPPORT: return make_error_condition( protocol_not_supported );
- case EPROTOTYPE: return make_error_condition( wrong_protocol_type );
- case ERANGE: return make_error_condition( result_out_of_range );
- case EROFS: return make_error_condition( read_only_file_system );
- case ESPIPE: return make_error_condition( invalid_seek );
- case ESRCH: return make_error_condition( no_such_process );
- case ETIME: return make_error_condition( stream_timeout );
- case ETIMEDOUT: return make_error_condition( timed_out );
- case ETXTBSY: return make_error_condition( text_file_busy );
- # if EAGAIN != EWOULDBLOCK
- case EWOULDBLOCK: return make_error_condition( operation_would_block );
- # endif // EAGAIN != EWOULDBLOCK
- case EXDEV: return make_error_condition( cross_device_link );
- #else
- // Windows system -> posix_errno decode table ---------------------------//
- // see WinError.h comments for descriptions of errors
- case ERROR_ACCESS_DENIED: return make_error_condition( permission_denied );
- case ERROR_ALREADY_EXISTS: return make_error_condition( file_exists );
- case ERROR_BAD_UNIT: return make_error_condition( no_such_device );
- case ERROR_BUFFER_OVERFLOW: return make_error_condition( filename_too_long );
- case ERROR_BUSY: return make_error_condition( device_or_resource_busy );
- case ERROR_BUSY_DRIVE: return make_error_condition( device_or_resource_busy );
- case ERROR_CANNOT_MAKE: return make_error_condition( permission_denied );
- case ERROR_CANTOPEN: return make_error_condition( io_error );
- case ERROR_CANTREAD: return make_error_condition( io_error );
- case ERROR_CANTWRITE: return make_error_condition( io_error );
- case ERROR_CURRENT_DIRECTORY: return make_error_condition( permission_denied );
- case ERROR_DEV_NOT_EXIST: return make_error_condition( no_such_device );
- case ERROR_DEVICE_IN_USE: return make_error_condition( device_or_resource_busy );
- case ERROR_DIR_NOT_EMPTY: return make_error_condition( directory_not_empty );
- case ERROR_DIRECTORY: return make_error_condition( invalid_argument ); // WinError.h: "The directory name is invalid"
- case ERROR_DISK_FULL: return make_error_condition( no_space_on_device );
- case ERROR_FILE_EXISTS: return make_error_condition( file_exists );
- case ERROR_FILE_NOT_FOUND: return make_error_condition( no_such_file_or_directory );
- case ERROR_HANDLE_DISK_FULL: return make_error_condition( no_space_on_device );
- case ERROR_INVALID_ACCESS: return make_error_condition( permission_denied );
- case ERROR_INVALID_DRIVE: return make_error_condition( no_such_device );
- case ERROR_INVALID_FUNCTION: return make_error_condition( function_not_supported );
- case ERROR_INVALID_HANDLE: return make_error_condition( invalid_argument );
- case ERROR_INVALID_NAME: return make_error_condition( invalid_argument );
- case ERROR_LOCK_VIOLATION: return make_error_condition( no_lock_available );
- case ERROR_LOCKED: return make_error_condition( no_lock_available );
- case ERROR_NEGATIVE_SEEK: return make_error_condition( invalid_argument );
- case ERROR_NOACCESS: return make_error_condition( permission_denied );
- case ERROR_NOT_ENOUGH_MEMORY: return make_error_condition( not_enough_memory );
- case ERROR_NOT_READY: return make_error_condition( resource_unavailable_try_again );
- case ERROR_NOT_SAME_DEVICE: return make_error_condition( cross_device_link );
- case ERROR_OPEN_FAILED: return make_error_condition( io_error );
- case ERROR_OPEN_FILES: return make_error_condition( device_or_resource_busy );
- case ERROR_OPERATION_ABORTED: return make_error_condition( operation_canceled );
- case ERROR_OUTOFMEMORY: return make_error_condition( not_enough_memory );
- case ERROR_PATH_NOT_FOUND: return make_error_condition( no_such_file_or_directory );
- case ERROR_READ_FAULT: return make_error_condition( io_error );
- case ERROR_RETRY: return make_error_condition( resource_unavailable_try_again );
- case ERROR_SEEK: return make_error_condition( io_error );
- case ERROR_SHARING_VIOLATION: return make_error_condition( permission_denied );
- case ERROR_TOO_MANY_OPEN_FILES: return make_error_condition( too_many_files_open );
- case ERROR_WRITE_FAULT: return make_error_condition( io_error );
- case ERROR_WRITE_PROTECT: return make_error_condition( permission_denied );
- case WSAEACCES: return make_error_condition( permission_denied );
- case WSAEADDRINUSE: return make_error_condition( address_in_use );
- case WSAEADDRNOTAVAIL: return make_error_condition( address_not_available );
- case WSAEAFNOSUPPORT: return make_error_condition( address_family_not_supported );
- case WSAEALREADY: return make_error_condition( connection_already_in_progress );
- case WSAEBADF: return make_error_condition( bad_file_descriptor );
- case WSAECONNABORTED: return make_error_condition( connection_aborted );
- case WSAECONNREFUSED: return make_error_condition( connection_refused );
- case WSAECONNRESET: return make_error_condition( connection_reset );
- case WSAEDESTADDRREQ: return make_error_condition( destination_address_required );
- case WSAEFAULT: return make_error_condition( bad_address );
- case WSAEHOSTUNREACH: return make_error_condition( host_unreachable );
- case WSAEINPROGRESS: return make_error_condition( operation_in_progress );
- case WSAEINTR: return make_error_condition( interrupted );
- case WSAEINVAL: return make_error_condition( invalid_argument );
- case WSAEISCONN: return make_error_condition( already_connected );
- case WSAEMFILE: return make_error_condition( too_many_files_open );
- case WSAEMSGSIZE: return make_error_condition( message_size );
- case WSAENAMETOOLONG: return make_error_condition( filename_too_long );
- case WSAENETDOWN: return make_error_condition( network_down );
- case WSAENETRESET: return make_error_condition( network_reset );
- case WSAENETUNREACH: return make_error_condition( network_unreachable );
- case WSAENOBUFS: return make_error_condition( no_buffer_space );
- case WSAENOPROTOOPT: return make_error_condition( no_protocol_option );
- case WSAENOTCONN: return make_error_condition( not_connected );
- case WSAENOTSOCK: return make_error_condition( not_a_socket );
- case WSAEOPNOTSUPP: return make_error_condition( operation_not_supported );
- case WSAEPROTONOSUPPORT: return make_error_condition( protocol_not_supported );
- case WSAEPROTOTYPE: return make_error_condition( wrong_protocol_type );
- case WSAETIMEDOUT: return make_error_condition( timed_out );
- case WSAEWOULDBLOCK: return make_error_condition( operation_would_block );
- #endif
- default: return error_condition( ev, system_category );
- }
- }
-
-# if !defined( BOOST_WINDOWS_API )
-
- std::string system_error_category::message( int ev ) const
- {
- return generic_category.message( ev );
- }
-# else
-// TODO:
-
-//Some quick notes on the implementation (sorry for the noise if
-//someone has already mentioned them):
-//
-//- The ::LocalFree() usage isn't exception safe.
-//
-//See:
-//
-//<http://boost.cvs.sourceforge.net/boost/boost/boost/asio/system_exception.hpp?revision=1.1&view=markup>
-//
-//in the implementation of what() for an example.
-//
-//Cheers,
-//Chris
- std::string system_error_category::message( int ev ) const
- {
-# ifndef BOOST_NO_ANSI_APIS
- LPVOID lpMsgBuf;
- DWORD retval = ::FormatMessageA(
- FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL,
- ev,
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
- (LPSTR) &lpMsgBuf,
- 0,
- NULL
- );
- if (retval == 0)
- return std::string("Unknown error");
-
- std::string str( static_cast<LPCSTR>(lpMsgBuf) );
- ::LocalFree( lpMsgBuf ); // free the buffer
-# else // WinCE workaround
- LPVOID lpMsgBuf;
- DWORD retval = ::FormatMessageW(
- FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL,
- ev,
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
- (LPWSTR) &lpMsgBuf,
- 0,
- NULL
- );
- if (retval == 0)
- return std::string("Unknown error");
-
- int num_chars = (wcslen( static_cast<LPCWSTR>(lpMsgBuf) ) + 1) * 2;
- LPSTR narrow_buffer = (LPSTR)_alloca( num_chars );
- if (::WideCharToMultiByte(CP_ACP, 0, static_cast<LPCWSTR>(lpMsgBuf), -1, narrow_buffer, num_chars, NULL, NULL) == 0)
- return std::string("Unknown error");
-
- std::string str( narrow_buffer );
- ::LocalFree( lpMsgBuf ); // free the buffer
-# endif
- while ( str.size()
- && (str[str.size()-1] == '\n' || str[str.size()-1] == '\r') )
- str.erase( str.size()-1 );
- if ( str.size() && str[str.size()-1] == '.' )
- { str.erase( str.size()-1 ); }
- return str;
- }
-# endif
-
-} // unnamed namespace
-
-namespace boost
-{
- namespace system
- {
-
-
-
- BOOST_SYSTEM_DECL error_code throws; // "throw on error" special error_code;
- // note that it doesn't matter if this
- // isn't initialized before use since
- // the only use is to take its
- // address for comparison purposes
-
- BOOST_SYSTEM_DECL const error_category & get_system_category()
- {
- static const system_error_category system_category_const;
- return system_category_const;
- }
-
- BOOST_SYSTEM_DECL const error_category & get_generic_category()
- {
- static const generic_error_category generic_category_const;
- return generic_category_const;
- }
-
- } // namespace system
-} // namespace boost

Modified: branches/filesystem3/libs/filesystem/v3/src/operations.cpp
==============================================================================
--- branches/filesystem3/libs/filesystem/v3/src/operations.cpp (original)
+++ branches/filesystem3/libs/filesystem/v3/src/operations.cpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -31,7 +31,7 @@
       // That is required at least on Solaris, and possibly on other
       // systems as well.
 
-#include <boost/filesystem/operations.hpp>
+#include <boost/filesystem/v3/operations.hpp>
 #include <boost/scoped_array.hpp>
 #include <boost/detail/workaround.hpp>
 #include <cstdlib> // for malloc, free
@@ -40,9 +40,9 @@
 # include <iostream>
 #endif
 
-namespace fs = boost::filesystem;
-using boost::filesystem::path;
-using boost::filesystem::filesystem_error;
+namespace fs = boost::filesystem3;
+using boost::filesystem3::path;
+using boost::filesystem3::filesystem_error;
 using boost::system::error_code;
 using boost::system::error_category;
 using boost::system::system_category;
@@ -220,7 +220,7 @@
   const wchar_t dot = L'.';
 # endif
 
- boost::filesystem::directory_iterator end_dir_itr;
+ boost::filesystem3::directory_iterator end_dir_itr;
 
   const std::size_t buf_size(128);
   const error_code ok;
@@ -571,7 +571,7 @@
 
 namespace boost
 {
-namespace filesystem
+namespace filesystem3
 {
 namespace detail
 {
@@ -650,13 +650,13 @@
     if (error(!create_symbolic_link_api,
         error_code(BOOST_ERROR_NOT_SUPPORTED, system_category()),
         to, from, ec,
- "boost::filesystem::copy_symlink"))
+ "boost::filesystem3::copy_symlink"))
       return;
 
           // preconditions met, so attempt the copy
           error(!::CopyFileExW(from.c_str(), to.c_str(), 0, 0, 0,
                   COPY_FILE_COPY_SYMLINK | COPY_FILE_FAIL_IF_EXISTS), to, from, ec,
- "boost::filesystem::copy_symlink");
+ "boost::filesystem3::copy_symlink");
 # endif
 
   }
@@ -1473,7 +1473,7 @@
   }
 
 } // namespace path_traits
-} // namespace filesystem
+} // namespace filesystem3
 } // namespace boost
 
 //--------------------------------------------------------------------------------------//
@@ -1652,7 +1652,7 @@
 
 namespace boost
 {
-namespace filesystem
+namespace filesystem3
 {
 
 namespace detail
@@ -1765,5 +1765,5 @@
     }
   }
 } // namespace detail
-} // namespace filesystem
+} // namespace filesystem3
 } // namespace boost

Modified: branches/filesystem3/libs/filesystem/v3/src/path.cpp
==============================================================================
--- branches/filesystem3/libs/filesystem/v3/src/path.cpp (original)
+++ branches/filesystem3/libs/filesystem/v3/src/path.cpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -11,8 +11,8 @@
 // the library is being built (possibly exporting rather than importing code)
 #define BOOST_FILESYSTEM_SOURCE
 
-#include <boost/filesystem/config.hpp>
-#include <boost/filesystem/path.hpp>
+#include <boost/filesystem/v3/config.hpp>
+#include <boost/filesystem/v3/path.hpp>
 #include <boost/scoped_array.hpp>
 #include <boost/system/error_code.hpp>
 #include <boost/assert.hpp>
@@ -32,9 +32,9 @@
 # include <iomanip>
 #endif
 
-namespace fs = boost::filesystem;
+namespace fs = boost::filesystem3;
 
-using fs::path;
+using boost::filesystem3::path;
 
 using std::string;
 using std::wstring;
@@ -129,7 +129,7 @@
 
 namespace boost
 {
-namespace filesystem
+namespace filesystem3
 {
 
   path & path::operator/=(const path & p)
@@ -467,7 +467,7 @@
     return *this;
   }
 
-} // namespace filesystem
+} // namespace filesystem3
 } // namespace boost
   
 //--------------------------------------------------------------------------------------//
@@ -639,7 +639,7 @@
 
 namespace boost
 {
-namespace filesystem
+namespace filesystem3
 {
 
   path::iterator path::begin() const
@@ -753,7 +753,7 @@
       it.m_element.m_pathname = separator_string; // needed for Windows, harmless on POSIX
   }
 
-} // namespace filesystem
+} // namespace filesystem3
 } // namespace boost
 
 //--------------------------------------------------------------------------------------//
@@ -822,7 +822,7 @@
 
 namespace boost
 {
-namespace filesystem
+namespace filesystem3
 {
 
   const path::codecvt_type *&
@@ -844,5 +844,5 @@
     return temp;
   }
 
-} // namespace filesystem
+} // namespace filesystem3
 } // namespace boost

Modified: branches/filesystem3/libs/filesystem/v3/src/path_traits.cpp
==============================================================================
--- branches/filesystem3/libs/filesystem/v3/src/path_traits.cpp (original)
+++ branches/filesystem3/libs/filesystem/v3/src/path_traits.cpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -11,16 +11,16 @@
 // the library is being built (possibly exporting rather than importing code)
 #define BOOST_FILESYSTEM_SOURCE
 
-#include <boost/filesystem/path_traits.hpp>
-#include <boost/filesystem/config.hpp>
+#include <boost/filesystem/v3/config.hpp>
+#include <boost/filesystem/v3/path_traits.hpp>
 #include <boost/system/system_error.hpp>
 #include <boost/scoped_array.hpp>
 #include <locale> // for codecvt_base::result
 #include <cstring> // for strlen
 #include <cwchar> // for wcslen
 
-namespace pt = boost::filesystem::path_traits;
-namespace fs = boost::filesystem;
+namespace pt = boost::filesystem3::path_traits;
+namespace fs = boost::filesystem3;
 namespace bs = boost::system;
 
 //--------------------------------------------------------------------------------------//
@@ -117,7 +117,7 @@
 // path_traits //
 //--------------------------------------------------------------------------------------//
 
-namespace boost { namespace filesystem { namespace path_traits {
+namespace boost { namespace filesystem3 { namespace path_traits {
 
 //--------------------------------------------------------------------------------------//
 // convert const char* to wstring //
@@ -191,4 +191,4 @@
       convert_aux(from, from_end, buf, buf+default_codecvt_buf_size, to, cvt);
     }
   }
-}}} // namespace boost::filesystem::path_traits
+}}} // namespace boost::filesystem3::path_traits

Modified: branches/filesystem3/libs/filesystem/v3/src/portability.cpp
==============================================================================
--- branches/filesystem3/libs/filesystem/v3/src/portability.cpp (original)
+++ branches/filesystem3/libs/filesystem/v3/src/portability.cpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -13,10 +13,10 @@
 // the library is being built (possibly exporting rather than importing code)
 #define BOOST_FILESYSTEM_SOURCE
 
-#include <boost/filesystem/config.hpp>
-#include <boost/filesystem/path.hpp>
+#include <boost/filesystem/v3/config.hpp>
+#include <boost/filesystem/v3/path.hpp>
 
-namespace fs = boost::filesystem;
+namespace fs = boost::filesystem3;
 
 #include <cstring> // SGI MIPSpro compilers need this
 
@@ -43,7 +43,7 @@
 
 namespace boost
 {
- namespace filesystem
+ namespace filesystem3
   {
 
     // name_check functions ----------------------------------------------//
@@ -111,5 +111,5 @@
         ;
     }
 
- } // namespace filesystem
+ } // namespace filesystem3
 } // namespace boost

Modified: branches/filesystem3/libs/filesystem/v3/src/unique_path.cpp
==============================================================================
--- branches/filesystem3/libs/filesystem/v3/src/unique_path.cpp (original)
+++ branches/filesystem3/libs/filesystem/v3/src/unique_path.cpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -13,7 +13,7 @@
 // the library is being built (possibly exporting rather than importing code)
 #define BOOST_FILESYSTEM_SOURCE
 
-#include <boost/filesystem/operations.hpp>
+#include <boost/filesystem/v3/operations.hpp>
 
 # ifdef BOOST_POSIX_API
 # include <fcntl.h>
@@ -101,7 +101,7 @@
 
 } // unnamed namespace
 
-namespace boost { namespace filesystem { namespace detail {
+namespace boost { namespace filesystem3 { namespace detail {
 
 BOOST_FILESYSTEM_DECL
 path unique_path(const path& model, system::error_code* ec)

Modified: branches/filesystem3/libs/filesystem/v3/src/utf8_codecvt_facet.cpp
==============================================================================
--- branches/filesystem3/libs/filesystem/v3/src/utf8_codecvt_facet.cpp (original)
+++ branches/filesystem3/libs/filesystem/v3/src/utf8_codecvt_facet.cpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -4,17 +4,16 @@
 // or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #define BOOST_FILESYSTEM_SOURCE
-#include <boost/filesystem/config.hpp>
+#include <boost/filesystem/v3/config.hpp>
 
 #define BOOST_UTF8_BEGIN_NAMESPACE \
- namespace boost { namespace filesystem { namespace detail {
+ namespace boost { namespace filesystem3 { namespace detail {
 
 #define BOOST_UTF8_END_NAMESPACE }}}
 #define BOOST_UTF8_DECL BOOST_FILESYSTEM_DECL
 
 #include "libs/detail/utf8_codecvt_facet.cpp"
 
-
 #undef BOOST_UTF8_BEGIN_NAMESPACE
 #undef BOOST_UTF8_END_NAMESPACE
 #undef BOOST_UTF8_DECL

Modified: branches/filesystem3/libs/filesystem/v3/src/windows_file_codecvt.cpp
==============================================================================
--- branches/filesystem3/libs/filesystem/v3/src/windows_file_codecvt.cpp (original)
+++ branches/filesystem3/libs/filesystem/v3/src/windows_file_codecvt.cpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -11,7 +11,7 @@
 // the library is being built (possibly exporting rather than importing code)
 #define BOOST_FILESYSTEM_SOURCE
 
-#include <boost/filesystem/config.hpp>
+#include <boost/filesystem/v3/config.hpp>
 
 #ifdef BOOST_WINDOWS_API
 

Modified: branches/filesystem3/libs/filesystem/v3/src/windows_file_codecvt.hpp
==============================================================================
--- branches/filesystem3/libs/filesystem/v3/src/windows_file_codecvt.hpp (original)
+++ branches/filesystem3/libs/filesystem/v3/src/windows_file_codecvt.hpp 2010-06-09 10:05:57 EDT (Wed, 09 Jun 2010)
@@ -7,9 +7,10 @@
 
 // Library home page: http://www.boost.org/libs/filesystem
 
-#ifndef BOOST_FILESYSTEM_WIN_FILE_CODECVT_HPP
-#define BOOST_FILESYSTEM_WIN_FILE_CODECVT_HPP
+#ifndef BOOST_FILESYSTEM3_WIN_FILE_CODECVT_HPP
+#define BOOST_FILESYSTEM3_WIN_FILE_CODECVT_HPP
 
+#include <boost/filesystem/v3/config.hpp>
 #include <locale>
 
   //------------------------------------------------------------------------------------//
@@ -52,4 +53,4 @@
     virtual int do_max_length() const throw () { return 0; }
   };
 
-#endif // BOOST_FILESYSTEM_WIN_FILE_CODECVT_HPP
+#endif // BOOST_FILESYSTEM3_WIN_FILE_CODECVT_HPP


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk