summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2011-03-14 18:35:17 (GMT)
committerRemko Tronçon <git@el-tramo.be>2011-03-14 18:35:17 (GMT)
commita135c6ff4dcded5661a2321512960b14cf8c15c8 (patch)
treeb0017ecfe702304f592b9d4e8b943784cff26fb2 /3rdParty/Boost/src/boost/filesystem
parent02d6188ab335e6c62b8341b84579d9549d215118 (diff)
downloadswift-contrib-a135c6ff4dcded5661a2321512960b14cf8c15c8.zip
swift-contrib-a135c6ff4dcded5661a2321512960b14cf8c15c8.tar.bz2
Updated Boost to 1.46.1.
This should hopefuily fix a hang on shutdown on Mac OS X. Resolves: #782 Release-Notes: Fixed a potential hang on shutdown on Mac OS X.
Diffstat (limited to '3rdParty/Boost/src/boost/filesystem')
-rw-r--r--3rdParty/Boost/src/boost/filesystem/config.hpp5
-rw-r--r--3rdParty/Boost/src/boost/filesystem/exception.hpp5
-rw-r--r--3rdParty/Boost/src/boost/filesystem/fstream.hpp5
-rw-r--r--3rdParty/Boost/src/boost/filesystem/operations.hpp5
-rw-r--r--3rdParty/Boost/src/boost/filesystem/path.hpp5
-rw-r--r--3rdParty/Boost/src/boost/filesystem/v2/config.hpp10
-rw-r--r--3rdParty/Boost/src/boost/filesystem/v2/convenience.hpp11
-rw-r--r--3rdParty/Boost/src/boost/filesystem/v2/fstream.hpp1
-rw-r--r--3rdParty/Boost/src/boost/filesystem/v2/operations.hpp57
-rw-r--r--3rdParty/Boost/src/boost/filesystem/v2/path.hpp9
-rw-r--r--3rdParty/Boost/src/boost/filesystem/v3/fstream.hpp3
-rw-r--r--3rdParty/Boost/src/boost/filesystem/v3/operations.hpp103
-rw-r--r--3rdParty/Boost/src/boost/filesystem/v3/path.hpp3
13 files changed, 147 insertions, 75 deletions
diff --git a/3rdParty/Boost/src/boost/filesystem/config.hpp b/3rdParty/Boost/src/boost/filesystem/config.hpp
index 9d12bce..c813bf5 100644
--- a/3rdParty/Boost/src/boost/filesystem/config.hpp
+++ b/3rdParty/Boost/src/boost/filesystem/config.hpp
@@ -12,13 +12,16 @@
#ifndef BOOST_FILESYSTEM_CONFIGX_HPP
#define BOOST_FILESYSTEM_CONFIGX_HPP
+#include <boost/config.hpp> // for <boost/config/user.hpp>, in case
+ // BOOST_FILESYSTEM_VERSION defined there
+
# if defined(BOOST_FILESYSTEM_VERSION) \
&& BOOST_FILESYSTEM_VERSION != 2 && BOOST_FILESYSTEM_VERSION != 3
# error BOOST_FILESYSTEM_VERSION defined, but not as 2 or 3
# endif
# if !defined(BOOST_FILESYSTEM_VERSION)
-# define BOOST_FILESYSTEM_VERSION 2
+# define BOOST_FILESYSTEM_VERSION 3
# endif
#if BOOST_FILESYSTEM_VERSION == 2
diff --git a/3rdParty/Boost/src/boost/filesystem/exception.hpp b/3rdParty/Boost/src/boost/filesystem/exception.hpp
index cced257..6ba8466 100644
--- a/3rdParty/Boost/src/boost/filesystem/exception.hpp
+++ b/3rdParty/Boost/src/boost/filesystem/exception.hpp
@@ -12,13 +12,16 @@
#ifndef BOOST_FILESYSTEM_EXCEPTIONX_HPP
#define BOOST_FILESYSTEM_EXCEPTIONX_HPP
+#include <boost/config.hpp> // for <boost/config/user.hpp>, in case
+ // BOOST_FILESYSTEM_VERSION defined there
+
# if defined(BOOST_FILESYSTEM_VERSION) \
&& BOOST_FILESYSTEM_VERSION != 2 && BOOST_FILESYSTEM_VERSION != 3
# error BOOST_FILESYSTEM_VERSION defined, but not as 2 or 3
# endif
# if !defined(BOOST_FILESYSTEM_VERSION)
-# define BOOST_FILESYSTEM_VERSION 2
+# define BOOST_FILESYSTEM_VERSION 3
# endif
#if BOOST_FILESYSTEM_VERSION == 2
diff --git a/3rdParty/Boost/src/boost/filesystem/fstream.hpp b/3rdParty/Boost/src/boost/filesystem/fstream.hpp
index ae44cd9..e159e58 100644
--- a/3rdParty/Boost/src/boost/filesystem/fstream.hpp
+++ b/3rdParty/Boost/src/boost/filesystem/fstream.hpp
@@ -12,13 +12,16 @@
#ifndef BOOST_FILESYSTEM_FSTREAMX_HPP
#define BOOST_FILESYSTEM_FSTREAMX_HPP
+#include <boost/config.hpp> // for <boost/config/user.hpp>, in case
+ // BOOST_FILESYSTEM_VERSION defined there
+
# if defined(BOOST_FILESYSTEM_VERSION) \
&& BOOST_FILESYSTEM_VERSION != 2 && BOOST_FILESYSTEM_VERSION != 3
# error BOOST_FILESYSTEM_VERSION defined, but not as 2 or 3
# endif
# if !defined(BOOST_FILESYSTEM_VERSION)
-# define BOOST_FILESYSTEM_VERSION 2
+# define BOOST_FILESYSTEM_VERSION 3
# endif
#if BOOST_FILESYSTEM_VERSION == 2
diff --git a/3rdParty/Boost/src/boost/filesystem/operations.hpp b/3rdParty/Boost/src/boost/filesystem/operations.hpp
index 7dc94e9..db7b123 100644
--- a/3rdParty/Boost/src/boost/filesystem/operations.hpp
+++ b/3rdParty/Boost/src/boost/filesystem/operations.hpp
@@ -12,13 +12,16 @@
#ifndef BOOST_FILESYSTEM_OPERATIONSX_HPP
#define BOOST_FILESYSTEM_OPERATIONSX_HPP
+#include <boost/config.hpp> // for <boost/config/user.hpp>, in case
+ // BOOST_FILESYSTEM_VERSION defined there
+
# if defined(BOOST_FILESYSTEM_VERSION) \
&& BOOST_FILESYSTEM_VERSION != 2 && BOOST_FILESYSTEM_VERSION != 3
# error BOOST_FILESYSTEM_VERSION defined, but not as 2 or 3
# endif
# if !defined(BOOST_FILESYSTEM_VERSION)
-# define BOOST_FILESYSTEM_VERSION 2
+# define BOOST_FILESYSTEM_VERSION 3
# endif
#if BOOST_FILESYSTEM_VERSION == 2
diff --git a/3rdParty/Boost/src/boost/filesystem/path.hpp b/3rdParty/Boost/src/boost/filesystem/path.hpp
index bf12174..3bed7d2 100644
--- a/3rdParty/Boost/src/boost/filesystem/path.hpp
+++ b/3rdParty/Boost/src/boost/filesystem/path.hpp
@@ -12,13 +12,16 @@
#ifndef BOOST_FILESYSTEM_PATHX_HPP
#define BOOST_FILESYSTEM_PATHX_HPP
+#include <boost/config.hpp> // for <boost/config/user.hpp>, in case
+ // BOOST_FILESYSTEM_VERSION defined there
+
# if defined(BOOST_FILESYSTEM_VERSION) \
&& BOOST_FILESYSTEM_VERSION != 2 && BOOST_FILESYSTEM_VERSION != 3
# error BOOST_FILESYSTEM_VERSION defined, but not as 2 or 3
# endif
# if !defined(BOOST_FILESYSTEM_VERSION)
-# define BOOST_FILESYSTEM_VERSION 2
+# define BOOST_FILESYSTEM_VERSION 3
# endif
#if BOOST_FILESYSTEM_VERSION == 2
diff --git a/3rdParty/Boost/src/boost/filesystem/v2/config.hpp b/3rdParty/Boost/src/boost/filesystem/v2/config.hpp
index 62656ef..7116de5 100644
--- a/3rdParty/Boost/src/boost/filesystem/v2/config.hpp
+++ b/3rdParty/Boost/src/boost/filesystem/v2/config.hpp
@@ -51,6 +51,16 @@
# endif
# endif
+// throw an exception ----------------------------------------------------------------//
+//
+// Exceptions were originally thrown via boost::throw_exception().
+// As throw_exception() became more complex, it caused user error reporting
+// to be harder to interpret, since the exception reported became much more complex.
+// The immediate fix was to throw directly, wrapped in a macro to make any later change
+// easier.
+
+#define BOOST_FILESYSTEM_THROW(EX) throw EX
+
// 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)
diff --git a/3rdParty/Boost/src/boost/filesystem/v2/convenience.hpp b/3rdParty/Boost/src/boost/filesystem/v2/convenience.hpp
index 4695a01..30b6ade 100644
--- a/3rdParty/Boost/src/boost/filesystem/v2/convenience.hpp
+++ b/3rdParty/Boost/src/boost/filesystem/v2/convenience.hpp
@@ -13,7 +13,8 @@
#ifndef BOOST_FILESYSTEM2_CONVENIENCE_HPP
#define BOOST_FILESYSTEM2_CONVENIENCE_HPP
-#include <boost/filesystem/operations.hpp>
+#include <boost/filesystem/v2/config.hpp>
+#include <boost/filesystem/v2/operations.hpp>
#include <boost/system/error_code.hpp>
#include <vector>
#include <stack>
@@ -85,11 +86,11 @@ namespace boost
# if !defined(_STLPORT_VERSION)
return ph.parent_path() / (basename(ph) + new_extension);
# else
- typedef BOOST_FS_TYPENAME Path::string_type string_type;
- string_type filename = basename(ph) + new_extension;
- return ph.parent_path() / filename;
+ typedef BOOST_FS_TYPENAME Path::string_type string_type;
+ string_type filename = basename(ph) + new_extension;
+ return ph.parent_path() / filename;
# endif
- }
+ }
# endif
# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
diff --git a/3rdParty/Boost/src/boost/filesystem/v2/fstream.hpp b/3rdParty/Boost/src/boost/filesystem/v2/fstream.hpp
index bdcd485..887d59d 100644
--- a/3rdParty/Boost/src/boost/filesystem/v2/fstream.hpp
+++ b/3rdParty/Boost/src/boost/filesystem/v2/fstream.hpp
@@ -12,6 +12,7 @@
#ifndef BOOST_FILESYSTEM2_FSTREAM_HPP
#define BOOST_FILESYSTEM2_FSTREAM_HPP
+#include <boost/filesystem/v2/config.hpp>
#include <boost/filesystem/v2/operations.hpp> // for 8.3 hack (see below)
#include <boost/utility/enable_if.hpp>
#include <boost/detail/workaround.hpp>
diff --git a/3rdParty/Boost/src/boost/filesystem/v2/operations.hpp b/3rdParty/Boost/src/boost/filesystem/v2/operations.hpp
index c60046f..57c406d 100644
--- a/3rdParty/Boost/src/boost/filesystem/v2/operations.hpp
+++ b/3rdParty/Boost/src/boost/filesystem/v2/operations.hpp
@@ -14,6 +14,7 @@
#ifndef BOOST_FILESYSTEM2_OPERATIONS_HPP
#define BOOST_FILESYSTEM2_OPERATIONS_HPP
+#include <boost/filesystem/v2/config.hpp>
#include <boost/filesystem/v2/path.hpp>
#include <boost/detail/scoped_enum_emulation.hpp>
@@ -258,7 +259,7 @@ namespace boost
system::error_code ec;
file_status result( detail::status_api( ph.external_file_string(), ec ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::status", ph, ec ) );
return result;
}
@@ -277,7 +278,7 @@ namespace boost
system::error_code ec;
file_status result( symlink_status( ph, ec ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::symlink_status", ph, ec ) );
return result;
}
@@ -292,7 +293,7 @@ namespace boost
system::error_code ec;
file_status result( detail::status_api( ph.external_file_string(), ec ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::exists", ph, ec ) );
return exists( result );
}
@@ -302,7 +303,7 @@ namespace boost
system::error_code ec;
file_status result( detail::status_api( ph.external_file_string(), ec ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::is_directory", ph, ec ) );
return is_directory( result );
}
@@ -312,7 +313,7 @@ namespace boost
system::error_code ec;
file_status result( detail::status_api( ph.external_file_string(), ec ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::is_regular_file", ph, ec ) );
return is_regular_file( result );
}
@@ -323,7 +324,7 @@ namespace boost
system::error_code ec;
file_status result( detail::status_api( ph.external_file_string(), ec ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::is_regular", ph, ec ) );
return is_regular( result );
}
@@ -334,7 +335,7 @@ namespace boost
system::error_code ec;
file_status result( detail::status_api( ph.external_file_string(), ec ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::is_other", ph, ec ) );
return is_other( result );
}
@@ -350,7 +351,7 @@ namespace boost
system::error_code ec;
file_status result( detail::symlink_status_api( ph.external_file_string(), ec ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::is_symlink", ph, ec ) );
return is_symlink( result );
# endif
@@ -369,7 +370,7 @@ namespace boost
detail::query_pair result(
detail::is_empty_api( ph.external_file_string() ) );
if ( result.first )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::is_empty", ph, result.first ) );
return result.second;
}
@@ -379,7 +380,7 @@ namespace boost
detail::query_pair result( detail::equivalent_api(
ph1.external_file_string(), ph2.external_file_string() ) );
if ( result.first )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::equivalent", ph1, ph2, result.first ) );
return result.second;
}
@@ -389,7 +390,7 @@ namespace boost
detail::uintmax_pair result
( detail::file_size_api( ph.external_file_string() ) );
if ( result.first )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::file_size", ph, result.first ) );
return result.second;
}
@@ -399,7 +400,7 @@ namespace boost
detail::space_pair result
( detail::space_api( ph.external_file_string() ) );
if ( result.first )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::space", ph, result.first ) );
return result.second;
}
@@ -409,7 +410,7 @@ namespace boost
detail::time_pair result
( detail::last_write_time_api( ph.external_file_string() ) );
if ( result.first )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::last_write_time", ph, result.first ) );
return result.second;
}
@@ -422,7 +423,7 @@ namespace boost
detail::query_pair result(
detail::create_directory_api( dir_ph.external_directory_string() ) );
if ( result.first )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::create_directory",
dir_ph, result.first ) );
return result.second;
@@ -437,7 +438,7 @@ namespace boost
to_ph.external_file_string(),
from_ph.external_file_string() ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::create_hard_link",
to_ph, from_ph, ec ) );
}
@@ -461,7 +462,7 @@ namespace boost
to_ph.external_file_string(),
from_ph.external_file_string() ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::create_symlink",
to_ph, from_ph, ec ) );
}
@@ -481,7 +482,7 @@ namespace boost
system::error_code ec;
file_status f = symlink_status( ph, ec );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::remove", ph, ec ) );
return detail::remove_aux( ph, f );
}
@@ -491,7 +492,7 @@ namespace boost
system::error_code ec;
file_status f = symlink_status( ph, ec );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::remove_all", ph, ec ) );
return exists( f ) ? detail::remove_all_aux( ph, f ) : 0;
}
@@ -502,7 +503,7 @@ namespace boost
from_path.external_directory_string(),
to_path.external_directory_string() ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::rename",
from_path, to_path, ec ) );
}
@@ -518,7 +519,7 @@ namespace boost
from_path.external_directory_string(),
to_path.external_directory_string(), option == copy_option::fail_if_exists ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::copy_file",
from_path, to_path, ec ) );
}
@@ -529,7 +530,7 @@ namespace boost
typename Path::external_string_type ph;
system::error_code ec( detail::get_current_path_api( ph ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::current_path", ec ) );
return Path( Path::traits_type::to_internal( ph ) );
}
@@ -539,7 +540,7 @@ namespace boost
system::error_code ec( detail::set_current_path_api(
ph.external_directory_string() ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::current_path", ph, ec ) );
}
@@ -567,7 +568,7 @@ namespace boost
system::error_code ec( detail::get_full_path_name_api( ph.external_file_string(),
sys_ph ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::system_complete", ph, ec ) );
return Path( Path::traits_type::to_internal( sys_ph ) );
# else
@@ -606,7 +607,7 @@ namespace boost
system::error_code ec( detail::last_write_time_api( ph.external_file_string(),
new_time ) );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::last_write_time", ph, ec ) );
}
@@ -782,7 +783,7 @@ namespace boost
{
system::error_code ec = remove_api( ph.external_file_string() );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::remove", ph, ec ) );
return true;
}
@@ -803,7 +804,7 @@ namespace boost
boost::system::error_code ec;
boost::filesystem2::file_status fn = boost::filesystem2::symlink_status( itr->path(), ec );
if ( ec )
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem:remove_all", ph, ec ) );
count += remove_all_aux( itr->path(), fn );
}
@@ -980,7 +981,7 @@ namespace boost
system::error_code ec( m_init(dir_path) );
if ( ec )
{
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::basic_directory_iterator constructor",
dir_path, ec ) );
}
@@ -1013,7 +1014,7 @@ namespace boost
name, fs, symlink_fs );
if ( ec )
{
- boost::throw_exception( basic_filesystem_error<Path>(
+ BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(
"boost::filesystem::basic_directory_iterator increment",
m_imp->m_directory_entry.path().parent_path(), ec ) );
}
diff --git a/3rdParty/Boost/src/boost/filesystem/v2/path.hpp b/3rdParty/Boost/src/boost/filesystem/v2/path.hpp
index 16d67ca..615b89c 100644
--- a/3rdParty/Boost/src/boost/filesystem/v2/path.hpp
+++ b/3rdParty/Boost/src/boost/filesystem/v2/path.hpp
@@ -20,16 +20,15 @@
#include <boost/filesystem/v2/config.hpp>
#include <boost/system/system_error.hpp>
#include <boost/iterator/iterator_facade.hpp>
-#include <boost/throw_exception.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/static_assert.hpp>
+#include <boost/assert.hpp>
#include <string>
#include <algorithm> // for lexicographical_compare
#include <iosfwd> // needed by basic_path inserter and extractor
#include <stdexcept>
-#include <cassert>
# ifndef BOOST_FILESYSTEM2_NARROW_ONLY
# include <locale>
@@ -916,7 +915,7 @@ namespace boost
boost::BOOST_FILESYSTEM2_NAMESPACE::basic_path<String, Traits>
path_type;
- assert( !str.empty() && str[pos] == slash<path_type>::value
+ BOOST_ASSERT( !str.empty() && str[pos] == slash<path_type>::value
&& "precondition violation" );
// subsequent logic expects pos to be for leftmost slash of a set
@@ -1380,7 +1379,7 @@ namespace boost
typedef typename Path::string_type string_type;
typedef typename Path::traits_type traits_type;
- assert( itr.m_pos < itr.m_path_ptr->m_path.size() && "basic_path::iterator increment past end()" );
+ BOOST_ASSERT( itr.m_pos < itr.m_path_ptr->m_path.size() && "basic_path::iterator increment past end()" );
bool was_net( itr.m_name.size() > 2
&& itr.m_name[0] == slash<Path>::value
@@ -1439,7 +1438,7 @@ namespace boost
template<class Path>
void iterator_helper<Path>::do_decrement( iterator & itr )
{
- assert( itr.m_pos && "basic_path::iterator decrement past begin()" );
+ BOOST_ASSERT( itr.m_pos && "basic_path::iterator decrement past begin()" );
typedef typename Path::string_type string_type;
typedef typename Path::traits_type traits_type;
diff --git a/3rdParty/Boost/src/boost/filesystem/v3/fstream.hpp b/3rdParty/Boost/src/boost/filesystem/v3/fstream.hpp
index 235aa79..60a2a3b 100644
--- a/3rdParty/Boost/src/boost/filesystem/v3/fstream.hpp
+++ b/3rdParty/Boost/src/boost/filesystem/v3/fstream.hpp
@@ -27,7 +27,8 @@
// on Windows, except for standard libaries known to have wchar_t overloads for
// file stream I/O, use path::string() to get a narrow character c_str()
#if defined(BOOST_WINDOWS_API) \
- && !(defined(_CPPLIB_VER) && _CPPLIB_VER >= 405) // not (Dinkumware with overloads)
+ && (!defined(_CPPLIB_VER) || _CPPLIB_VER < 405 || defined(_STLPORT_VERSION))
+ // !Dinkumware || early Dinkumware || STLPort masquerading as Dinkumware
# define BOOST_FILESYSTEM_C_STR string().c_str() // use narrow, since wide not available
#else // use the native c_str, which will be narrow on POSIX, wide on Windows
# define BOOST_FILESYSTEM_C_STR c_str()
diff --git a/3rdParty/Boost/src/boost/filesystem/v3/operations.hpp b/3rdParty/Boost/src/boost/filesystem/v3/operations.hpp
index cf47c56..7d1608d 100644
--- a/3rdParty/Boost/src/boost/filesystem/v3/operations.hpp
+++ b/3rdParty/Boost/src/boost/filesystem/v3/operations.hpp
@@ -25,6 +25,7 @@
#include <boost/filesystem/v3/path.hpp>
#include <boost/detail/scoped_enum_emulation.hpp>
+#include <boost/detail/bitmask.hpp>
#include <boost/system/error_code.hpp>
#include <boost/system/system_error.hpp>
#include <boost/shared_ptr.hpp>
@@ -75,8 +76,8 @@ namespace boost
fifo_file,
socket_file,
reparse_file, // Windows: FILE_ATTRIBUTE_REPARSE_POINT that is not a symlink
- type_unknown, // file does exist, but isn't one of the above types or
- // we don't have strong enough permission to find its type
+ type_unknown, // file does exist, but isn't one of the above types or
+ // we don't have strong enough permission to find its type
_detail_directory_symlink // internal use only; never exposed to users
};
@@ -84,7 +85,8 @@ namespace boost
class BOOST_FILESYSTEM_DECL file_status
{
public:
- explicit file_status(file_type v = status_error) : m_value(v) {}
+ file_status() : m_value(status_error) {}
+ explicit file_status(file_type v) : m_value(v) {}
void type(file_type v) { m_value = v; }
file_type type() const { return m_value; }
@@ -122,7 +124,7 @@ namespace boost
};
BOOST_SCOPED_ENUM_START(copy_option)
- {fail_if_exists, overwrite_if_exists};
+ {none, fail_if_exists = none, overwrite_if_exists};
BOOST_SCOPED_ENUM_END
//--------------------------------------------------------------------------------------//
@@ -191,6 +193,8 @@ namespace boost
BOOST_FILESYSTEM_DECL
path system_complete(const path& p, system::error_code* ec=0);
BOOST_FILESYSTEM_DECL
+ path temp_directory_path(system::error_code* ec=0);
+ BOOST_FILESYSTEM_DECL
path unique_path(const path& p, system::error_code* ec=0);
} // namespace detail
@@ -258,9 +262,7 @@ namespace boost
// forward declarations
path current_path(); // fwd declaration
-# ifndef BOOST_FILESYSTEM_NO_DEPRECATED
path initial_path();
-# endif
BOOST_FILESYSTEM_DECL
path absolute(const path& p, const path& base=current_path());
@@ -331,17 +333,17 @@ namespace boost
void create_directory_symlink(const path& to, const path& from, system::error_code& ec)
{detail::create_directory_symlink(to, from, &ec);}
inline
- void create_hard_link(const path& to, const path& from) {detail::create_hard_link(to, from);}
+ void create_hard_link(const path& to, const path& new_hard_link) {detail::create_hard_link(to, new_hard_link);}
inline
- void create_hard_link(const path& to, const path& from, system::error_code& ec)
- {detail::create_hard_link(to, from, &ec);}
+ void create_hard_link(const path& to, const path& new_hard_link, system::error_code& ec)
+ {detail::create_hard_link(to, new_hard_link, &ec);}
inline
- void create_symlink(const path& to, const path& from) {detail::create_symlink(to, from);}
+ void create_symlink(const path& to, const path& new_symlink) {detail::create_symlink(to, new_symlink);}
inline
- void create_symlink(const path& to, const path& from, system::error_code& ec)
- {detail::create_symlink(to, from, &ec);}
+ void create_symlink(const path& to, const path& new_symlink, system::error_code& ec)
+ {detail::create_symlink(to, new_symlink, &ec);}
inline
path current_path() {return detail::current_path();}
@@ -372,7 +374,6 @@ namespace boost
inline
boost::uintmax_t hard_link_count(const path& p, system::error_code& ec)
{return detail::hard_link_count(p, &ec);}
-# ifndef BOOST_FILESYSTEM_NO_DEPRECATED
inline
path initial_path() {return detail::initial_path();}
@@ -383,7 +384,6 @@ namespace boost
path initial_path() {return initial_path();}
template <class Path>
path initial_path(system::error_code& ec) {return detail::initial_path(&ec);}
-# endif
inline
std::time_t last_write_time(const path& p) {return detail::last_write_time(p);}
@@ -446,6 +446,12 @@ namespace boost
path system_complete(const path& p, system::error_code& ec)
{return detail::system_complete(p, &ec);}
inline
+ path temp_directory_path() {return detail::temp_directory_path();}
+
+ inline
+ path temp_directory_path(system::error_code& ec)
+ {return detail::temp_directory_path(&ec);}
+ inline
path unique_path(const path& p="%%%%-%%%%-%%%%-%%%%")
{ return detail::unique_path(p); }
inline
@@ -633,6 +639,17 @@ namespace detail
// //
//--------------------------------------------------------------------------------------//
+ BOOST_SCOPED_ENUM_START(symlink_option)
+ {
+ none,
+ no_recurse = none, // don't follow directory symlinks (default behavior)
+ recurse, // follow directory symlinks
+ _detail_no_push = recurse << 1 // internal use only
+ };
+ BOOST_SCOPED_ENUM_END
+
+ BOOST_BITMASK(BOOST_SCOPED_ENUM(symlink_option))
+
namespace detail
{
struct recur_dir_itr_imp
@@ -640,9 +657,9 @@ namespace detail
typedef directory_iterator element_type;
std::stack< element_type, std::vector< element_type > > m_stack;
int m_level;
- bool m_no_push_request;
+ BOOST_SCOPED_ENUM(symlink_option) m_options;
- recur_dir_itr_imp() : m_level(0), m_no_push_request(false) {}
+ recur_dir_itr_imp() : m_level(0), m_options(symlink_option::none) {}
void increment(system::error_code* ec); // ec == 0 means throw on error
@@ -658,9 +675,11 @@ namespace detail
void recur_dir_itr_imp::increment(system::error_code* ec)
// ec == 0 means throw on error
{
- if (m_no_push_request)
- { m_no_push_request = false; }
- else if (is_directory(m_stack.top()->status()))
+ if ((m_options & symlink_option::_detail_no_push) == symlink_option::_detail_no_push)
+ m_options &= ~symlink_option::_detail_no_push;
+ else if (is_directory(m_stack.top()->status())
+ && (!is_symlink(m_stack.top()->symlink_status())
+ || (m_options & symlink_option::recurse) == symlink_option::recurse))
{
if (ec == 0)
m_stack.push(directory_iterator(m_stack.top()->path()));
@@ -714,27 +733,41 @@ namespace detail
recursive_directory_iterator(){} // creates the "end" iterator
- explicit recursive_directory_iterator(const path& dir_path)
+ explicit recursive_directory_iterator(const path& dir_path,
+ BOOST_SCOPED_ENUM(symlink_option) opt = symlink_option::none)
: m_imp(new detail::recur_dir_itr_imp)
{
+ m_imp->m_options = opt;
m_imp->m_stack.push(directory_iterator(dir_path));
if (m_imp->m_stack.top() == directory_iterator())
{ m_imp.reset (); }
}
recursive_directory_iterator(const path& dir_path,
+ BOOST_SCOPED_ENUM(symlink_option) opt,
+ system::error_code & ec)
+ : m_imp(new detail::recur_dir_itr_imp)
+ {
+ m_imp->m_options = opt;
+ m_imp->m_stack.push(directory_iterator(dir_path, ec));
+ if (m_imp->m_stack.top() == directory_iterator())
+ { m_imp.reset (); }
+ }
+
+ recursive_directory_iterator(const path& dir_path,
system::error_code & ec)
: m_imp(new detail::recur_dir_itr_imp)
{
+ m_imp->m_options = symlink_option::none;
m_imp->m_stack.push(directory_iterator(dir_path, ec));
if (m_imp->m_stack.top() == directory_iterator())
{ m_imp.reset (); }
}
- recursive_directory_iterator& increment(system::error_code* ec)
+ recursive_directory_iterator& increment(system::error_code& ec)
{
BOOST_ASSERT(m_imp.get() && "increment() on end recursive_directory_iterator");
- m_imp->increment(ec);
+ m_imp->increment(&ec);
return *this;
}
@@ -744,12 +777,17 @@ namespace detail
return m_imp->m_level;
}
- bool no_push_request() const
+ bool no_push_pending() const
{
- BOOST_ASSERT(m_imp.get() && "no_push_request() on end recursive_directory_iterator");
- return m_imp->m_no_push_request;
+ BOOST_ASSERT(m_imp.get() && "is_no_push_requested() on end recursive_directory_iterator");
+ return (m_imp->m_options & symlink_option::_detail_no_push)
+ == symlink_option::_detail_no_push;
}
+# ifndef BOOST_FILESYSTEM_NO_DEPRECATED
+ bool no_push_request() const { return no_push_pending(); }
+# endif
+
void pop()
{
BOOST_ASSERT(m_imp.get() && "pop() on end recursive_directory_iterator");
@@ -757,10 +795,13 @@ namespace detail
if (m_imp->m_stack.empty()) m_imp.reset(); // done, so make end iterator
}
- void no_push()
+ void no_push(bool value=true)
{
BOOST_ASSERT(m_imp.get() && "no_push() on end recursive_directory_iterator");
- m_imp->m_no_push_request = true;
+ if (value)
+ m_imp->m_options |= symlink_option::_detail_no_push;
+ else
+ m_imp->m_options &= ~symlink_option::_detail_no_push;
}
file_status status() const
@@ -799,7 +840,8 @@ namespace detail
{
BOOST_ASSERT(m_imp.get() && "increment of end recursive_directory_iterator");
m_imp->increment(0);
- if (m_imp->m_stack.empty()) m_imp.reset(); // done, so make end iterator
+ if (m_imp->m_stack.empty())
+ m_imp.reset(); // done, so make end iterator
}
bool equal(const recursive_directory_iterator& rhs) const
@@ -963,6 +1005,7 @@ namespace boost
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;
@@ -973,6 +1016,7 @@ namespace boost
using filesystem3::read_symlink;
using filesystem3::recursive_directory_iterator;
using filesystem3::regular_file;
+ using filesystem3::reparse_file;
using filesystem3::remove;
using filesystem3::remove_all;
using filesystem3::rename;
@@ -984,12 +1028,13 @@ namespace boost
using filesystem3::status_error;
using filesystem3::status_known;
using filesystem3::symlink_file;
+ using filesystem3::symlink_option;
using filesystem3::symlink_status;
using filesystem3::system_complete;
+ using filesystem3::temp_directory_path;
using filesystem3::type_unknown;
using filesystem3::unique_path;
# ifndef BOOST_FILESYSTEM_NO_DEPRECATED
- using filesystem3::initial_path;
using filesystem3::is_regular;
using filesystem3::status_unknown;
using filesystem3::symbolic_link_exists;
diff --git a/3rdParty/Boost/src/boost/filesystem/v3/path.hpp b/3rdParty/Boost/src/boost/filesystem/v3/path.hpp
index 1cd1522..f81b631 100644
--- a/3rdParty/Boost/src/boost/filesystem/v3/path.hpp
+++ b/3rdParty/Boost/src/boost/filesystem/v3/path.hpp
@@ -452,7 +452,6 @@ namespace filesystem3
void m_erase_redundant_separator(string_type::size_type sep_pos);
string_type::size_type m_parent_path_end() const;
- void m_portable();
path& m_normalize();
@@ -479,7 +478,7 @@ namespace filesystem3
class path::iterator
: public boost::iterator_facade<
- iterator,
+ path::iterator,
path const,
boost::bidirectional_traversal_tag >
{