Commit Graph

189 Commits

Author SHA1 Message Date
Beman
490c2c3298 For all path_traits convert() and dispatch() functions provide two overloads, one with a "const codecvt_type&" argument, and one without. The overload without a codecvt argument calls path::codecvt() iff a conversion actually needs to be performed. Change all uses of path_traits convert() and dispatch() functions call the appropriate overload, rather than calling with path::codecvt() as a default. This limits the impact of locale("") initialization failures on Linux and other non-BSD POSIX systems to programs that actually depend on locale(""). It further ensures that exceptions thrown as a result of such failures occur after main() has started, and so can be caught. 2014-10-27 19:20:17 -04:00
Beman
1262a9f0d2 Fix C++03 compile failures for previous commit. 2014-10-24 11:46:50 -04:00
Beman
d57509c558 For compiled operational function detail::copy_file, pass detail::copy_options, a plain-old enum, rather than a BOOST_SCOPED_ENUM. We cannot pass a BOOST_SCOPED_ENUM to a compled function because it will result in an undefined reference if the library is compiled with -std=c++0x but the use is compiled in C++03 mode, or vise versa. Fixes tickets #6124, #6779, and #10038. 2014-10-24 10:58:42 -04:00
Beman
76d209567f Refactor dot_path and dot_dot_path into functions, to prevent path constructor being called before main() starts. In theory that is harmless when path::value_type is the same as value_type of the ctor Source, but eliminating it simplifies reasoning about program correctness. 2014-08-22 11:31:42 -04:00
Beman
4d64f34c01 Add non-const overloads for the value_type and string_type to avoid calling codecvt(). Fixes ticket #9219. 2014-08-17 09:22:32 -04:00
Beman
750a82e20d Revert "Merge branch 'develop' of github.com:boostorg/filesystem into develop"
This reverts commit 4610afc49e, reversing
changes made to 6623bde4fe.
2014-08-05 09:16:57 -04:00
Beman
4635e93d02 Add move semantics to file_status per DTS. Fix incorrect synonym in perms. Add file_status constructor test cases. 2014-07-24 15:38:48 -04:00
Beman
f0ce9bd649 Missed a few perms value changes that were on next DTS page. 2014-07-23 15:58:04 -04:00
Beman
038bce7e2d DTS: enum perms changed to enum class perms. Constant names have changed; synonyms provided. 2014-07-23 15:35:44 -04:00
Beman
21a66a331a Update enum class file_type constant values per DTS. 2014-07-23 14:16:53 -04:00
Beman
98b29a72e5 Fix-up of prior merge conflict resolution from develop. 2014-07-23 09:39:26 -04:00
Beman
99a94662b2 Merge branch 'develop' into ts-develop
Conflicts:
	include/boost/filesystem/operations.hpp
	test/operations_test.cpp
2014-07-22 20:55:58 -04:00
Beman
040be88815 Rework the recursive_directory_iterator::increment function to always make progress, even when errors occur. 2014-07-20 16:44:28 -04:00
Beman
2774f0e927 Merge comments from abandoned revision; they were helpful even though the code changes were premature. 2014-07-20 09:31:06 -04:00
Beman
ecce3f06d7 Revert "Merge branch 'avdv-fix-5403' into develop"
This reverts commit eaa5f27fc1, reversing
changes made to 23d2fcb9e0.

Although the changes made by the pull request fixed the presenting symptom, the lack of an "always makes progress" invariant is the real problem. The plan is to attack the lack of invariant first, then make further changes are needed.
2014-07-20 09:15:17 -04:00
Beman
eaa5f27fc1 Merge branch 'avdv-fix-5403' into develop 2014-07-19 14:42:08 -04:00
Beman
044b98373c All char16_t/char32_t dependencies #ifdef'ed out. All test/msvc/filesystem.sln tests pass. 2014-07-10 14:43:22 -04:00
Beman
fcb9600f91 Merge updates from Beman's Github repo. Unstable. 2014-07-09 14:47:13 -04:00
Claudio Bley
2cf9db8570 Fix trac ticket 5403
This resolves a bug where the directory_iterator at the top of the stack
is invalid (ie. an end iterator) if an error occurs. So, you cannot
dereference it, and you cannot use any other method (e.g. no_push) on
it, otherwise std::abort will be called.

Avoid pushing an end iterator onto the directory stack.

[1] https://svn.boost.org/trac/boost/ticket/5403
[2] https://svn.boost.org/trac/boost/ticket/6821#comment:5
2014-07-09 07:57:45 +02:00
Beman
eb153b72dc Change perms::all_all and perms::perms_mask to absolute values to quiet intellisense warnings. 2014-05-09 13:45:55 -04:00
Beman
c73dab3e56 Add BOOST_NOEXCEPT to filesystem_error 2014-05-09 09:27:56 -04:00
Beman
5697539c5b Sync operations.hpp with TS. 2014-05-05 08:07:46 -04:00
Beman
c5b34af36a Revert "Create first merge point for Git"
This reverts commit 907260eea3, reversing
changes made to f45977684a.

The reverted commit undid a number of previous (i.e. svn) merges from trunk to branches/release. I don't know why it went wrong, although it may have been operator error on my part.
2013-12-28 08:25:42 -05:00
Beman Dawes
bb0fe7585c Add BOOST_FOREACH support. Correct C++11 range-based for statement enabler signatures. Improve test coverage. Clears feature requests #5896 and #6521.
[SVN r79451]
2012-07-12 13:53:17 +00:00
Beman Dawes
af67382a81 Add directory_iterator and recursive_directory_iterator free functions begin and end so that these iterators can be used with range-based for statements.
[SVN r79409]
2012-07-10 21:17:20 +00:00
Beman Dawes
d1a72fd781 Revert to BOOST_FILESYSTEM_STATIC_LINK as the default if no linkage macros supplied. See http://www.boost.org/doc/libs/1_49_0/libs/config/doc/html/boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code
Add test to verify correct default.

[SVN r78273]
2012-04-30 15:00:21 +00:00
Beman Dawes
6115c31640 Filesystem: Fix #6819; A path operand with a source that was a one character array was treated as empty, even if it wasn't empty. Such arrays can occur and be non-empty in unions or in code using C variable length array idioms.
[SVN r78136]
2012-04-22 15:07:08 +00:00
Beman Dawes
5ee2bb4189 Filesystem: Add path::operator+= and concat functions to tack on things like suffixes or numbers. Suggested by Ed Smith-Rowland and others.
[SVN r78065]
2012-04-18 14:46:15 +00:00
Beman Dawes
1207aac116 filesystem: Move compare() implementation to path.cpp, thus clearing gcc warning about header implementation of class with dll interface.
[SVN r78006]
2012-04-16 13:36:28 +00:00
Beman Dawes
da4f223c5b Fix #6690 and #6737, resolving static linking related problems with VC++ 8 through 11. Note that this fix may reintroduce codecvt thread safety problems #4889, #6320, for these compilers if static linking is used.
[SVN r78000]
2012-04-15 20:34:19 +00:00
Beman Dawes
43c13a59d6 Make BOOST_x_DYN_LINK tbe default
[SVN r77999]
2012-04-15 20:16:18 +00:00
Beman Dawes
03195bfb17 Tighten config.hpp and Jamfile logic before attaching static build problems.
[SVN r77997]
2012-04-15 19:16:49 +00:00
Beman Dawes
82c5b7533b Fix #4065, Boost Filesystem lexicographic path comparison inconsistent. The fix included adding path::compare functions, and cleanup and refactoring of the path relational operators code. Some of the code fixed is used by other functions, so some unrelated bugs may also have been fixed.
[SVN r77669]
2012-03-31 15:53:24 +00:00
Beman Dawes
e946c54f07 Fix missing file
[SVN r77556]
2012-03-26 13:11:43 +00:00
Beman Dawes
7941871477 Filesystem - Delete v3 directories no longer needed. Cleanup links, namespaces, and other residue from dual v2/v3 support.
[SVN r77555]
2012-03-26 12:44:24 +00:00
Beman Dawes
16099b4c7d Filesystem - Move V3 files and directories into place
[SVN r77554]
2012-03-26 12:31:06 +00:00
Beman Dawes
883ba9b788 Filesystem - delete v2 directories, forwarding files.
[SVN r77553]
2012-03-26 12:27:17 +00:00
Beman Dawes
052300e0fb Revert changes made to trunk by mistake.
[SVN r77496]
2012-03-23 12:01:07 +00:00
Beman Dawes
91f1359280 Delete boost/filesystem/*.hpp
[SVN r77495]
2012-03-23 11:52:58 +00:00
Beman Dawes
4558bd2cb7 Add class path preferred_separator
[SVN r77357]
2012-03-17 12:53:25 +00:00
Beman Dawes
21a1d5b384 Fix #5653, recursive_directory_iterator(error_code) can still throw filesystem_error.
Fix a second bug, discovered while testing 5653; recursive_directory_iterator::increment with error_code argument was not reporting the end iterator.

[SVN r76667]
2012-01-24 19:43:11 +00:00
Beman Dawes
ce92bed563 Apply recursive_directory_iterator patch contributed by Daniel Aarno, fixing #5652 for cyclic symlinks
[SVN r76556]
2012-01-17 16:00:22 +00:00
Beman Dawes
19fba833e1 Add test cases and fixes for class path errors when assignment or appends used self or portion of self as source. Fixes ticket #3714
[SVN r76541]
2012-01-16 15:59:27 +00:00
Beman Dawes
ca788b18fd Remove spurious semicolon causing problem for gcc in pedantic mode.
[SVN r76423]
2012-01-12 00:22:45 +00:00
Beman Dawes
60e042752e Fix for old Sun compilers __SUNPRO_CC <= 0x5100 that don't fully support fchmodat. Fix test failure on some POSIX systems that grant write permission to group and others.
[SVN r75133]
2011-10-27 15:37:11 +00:00
Beman Dawes
67c7b055e3 Add support for permissions. Docs to follow.
[SVN r74950]
2011-10-15 16:02:20 +00:00
Beman Dawes
9d28593943 Added operational function canonical(), suggested by David Svoboda, who also provided pseudo-code.
[SVN r74683]
2011-10-04 01:10:17 +00:00
Daniel James
57d50f3f99 Remove some unnecessary checks in path equality.
[SVN r74530]
2011-09-22 23:56:12 +00:00
Daniel James
2e6cc63e65 Filesystem: add hash_value.
[SVN r73827]
2011-08-16 22:15:55 +00:00
Beman Dawes
94420d4b61 Fix #5764 - add template qualified; reported to be required on QNX6.3.2 host (gcc-3.3.5)
[SVN r73795]
2011-08-15 19:29:26 +00:00