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