Beman
170f483655
Add test/config_info.cpp to increase macro state reporting in hopes of easing debugging on remote machines.
2017-01-08 15:23:42 -05:00
Beman
5004d7b177
Fix #12578 - Bug in directory_iterator, recursive_directory_iterator, equality testing of copied iterator also at end.
2016-11-23 09:21:32 -05:00
Beman
48faf2b1ee
Add deprecated path::generic()
2016-11-22 16:51:45 -05:00
Felix Bruns
fcb98ee37e
Rename generic() to generic_path(), since generic is a keyword in C++/CX.
...
When using Boost.Filesystem from a project compiled as C++/CX code,
compilation fails with a syntax error, because generic is a keyword.
error C2059: syntax error: 'generic'
See section "Generic interfaces" in C++/CX here:
https://msdn.microsoft.com/en-us/library/hh755792.aspx
2016-04-27 14:11:08 +02:00
Beman
de527c6862
Refactor push_directory() logic so it is easier to reason about.
2016-04-18 10:41:07 -04:00
Beman
2f6391b931
Add class path constexpr constants separator and dot of the type appropriate for the platform, and add class path member query functions filename_is_dot() and filename_is_dot_dot(). These add convenience and the implementations may be more efficient that user coded equivalent functions. Also add detail functions is_directory_separator() and is_element_separator(), and replace all uses of local is_separator() in path.cpp with detail::is_directory_separator().
2015-12-01 10:17:45 -05:00
Beman
3c344a5f0b
Revert to lexical functions back to being members of class path. This is not the time to redesign the library's lexical vs operational conventions. It would break existing users mental model of lexical vs operational.
...
See doc/relative_proposal.html#Add-lexical-functions for additional rationale.
2015-10-25 13:28:49 -04:00
Beman
06968ee032
Fix pull request 17, 'some_function() noexcept = default;' from Antony Polukhin, by never relying on "= default". Antony's pull request would have fixed the problem interaction with noexcept by eliminating the noexcept. I preferred to retain the noexcept rather than the "= default", as applying "= default" has been exceedingly troublesome for both VC++ and GCC due to interactions between the two C++11 features. GCC interactions varied not just for the version, but also for the platform.
2015-10-08 07:19:55 -04:00
Beman
c026d612f2
String file feature cleanup: Add string_file.hpp to filesystem.hpp. Change string_file.hpp to use boost/filesystem/fstream.hpp for I/O. Add string_file_tests function to operations_unit_test.cpp.
2015-10-07 10:11:18 -04:00
Beman Dawes
719fc1f18d
Merge pull request #16 from MarcelRaad/patch-1
...
Remove unused deprecated include
2015-09-16 15:28:00 -04:00
Beman
f4644ef881
Define BOOST_FILESYSTEM_NO_CXX11_DEFAULTED_RVALUE_REFS for GCC <= 4; GCC 4.8.5 was failing on FreeBSD although not on other platforms. Since move semantics is an optimization, it doesn't break anything to be conservative.
2015-09-15 07:38:28 -04:00
Marcel Raad
53c502cb47
Remove unused deprecated include
...
The comment in boost/iterator.hpp mentions that the file is obsolete and will be deprecated, and it is not used anyway.
2015-09-13 21:40:29 +02:00
Beman
9befbd2448
Fix bug in file_status and recursive_directory_iterator: C++ turns an explicit constructor with all arguments except first defaulted into non-explicit single argument constructor.
2015-09-12 09:27:39 -04:00
Beman
2d4035269b
Add GCC 4.4 to compilers that did not support defaulted rvalue refs.
2015-09-11 15:11:46 -04:00
Beman
320423af98
Added size() function to class path. Resolves #6874 , Path should have a size() member function.
2015-09-08 16:46:05 -04:00
Beman
9d5415d579
Add move constructor, move assignment, where called for in Filesystem TS.
2015-09-06 21:18:01 -04:00
Beman
353851e144
First pass of applying BOOST_NOEXCEPT. For recursive_directory_iterator only, began process of supporting both old and new names for functions whose name changed in the Filesystem TS. Planning started for adding move constructors and move assignments per the TS.
2015-09-06 08:30:58 -04:00
Beman
1c82e5d39e
Apply BOOST_NOEXCEPT, and a few other drive by corrections.
2015-09-05 17:55:14 -04:00
Beman
5610f974be
Merge branch 'feature/relative2' into develop
2015-09-04 15:24:22 -04:00
Beman
8cd5522161
Initial implementation and docs for path::reverse_iterator.
2015-09-04 11:25:22 -04:00
Beman
efe50fad52
Work issue, but no fix yet
2015-08-30 16:32:44 -04:00
Beman
0ab46a3315
Fix #9454 , Boost Filesystem [library build] not compiling when BOOST_FILESYSTEM_NO_DEPRECATED is defined, by applying a patch submitted by Makesim
2015-08-29 09:57:09 -04:00
Beman
23759ba8ec
Add lexically_proximate and proximate functions.
2015-08-25 15:05:17 -04:00
Beman
732609a2da
Change member normal() and relative() to non-member lexically_normal() and lexically_relative(). See doc/relative_proposal.html#Add-lexical-functions-as-non-members for rationale.
2015-08-23 09:33:21 -04:00
Beman
cb11081a7d
Finish initial proposed wording section of relative_proposal.html. Drive-by tweaks to other stuff. Add example/directory_symlink_parent_resolution.cpp, include/boost/filesystem/string_file.hpp, and related infrastructure.
2015-08-12 17:26:03 -04:00
Beman
7d6429554a
Bring operational functions weakly_canonical() and relative() up to production quality: move implementations to operations.cpp, add error handling, replace tail recursion with iteration, rename weak_canonical to weakly_canonical. The weak_canonical name grated on me every type I used it.
2015-08-10 07:10:59 -04:00
Beman
2101376680
Replace tail recursion with iteration.
2015-08-09 09:53:05 -04:00
Beman
34dd2c7718
Add a new path member function: "path normal() const;" and change the old deprecated normalize() non-const function to be implemented in terms of the new function. The implementation remains the same, except for returning by value rather than modifying in place. Motivation: Jamie Alsop has identified removal of redundant .. and . elements (i.e. normalization) as a need closely related to the relative path functionality requested by numerous Boost issue requests, the C++ LWG, and NB comments to the Filesystem TS. Given that both lexical and operational relative functionality is needed, there is less risk in providing a well-documented path::normal() lexical function.
2015-08-08 16:29:44 -04:00
Beman
6e92c9a8b2
Add experimental path::generic() function returning generic formatted (i.e. separators are forward slashes). Motivation: may be simpler than having a family of generic_*string functions.
2015-08-08 12:11:35 -04:00
Beman
5b8b9db1c9
Cleanup missed edits.
2015-08-08 06:18:08 -04:00
Beman
8a8c8abecc
Rename semi_canonical() to weak_canonical. The STL uses "weak" to denote reduced requirements.
2015-08-08 05:56:55 -04:00
Beman
9706dbb9b1
Revert "Change the name of path::relative to path::relative_to to distinguish it a bit from path::relative_path."
...
This reverts commit d5fb8323f8 .
Leave possible renaming for bikeshed discussions. KISS.
2015-08-08 05:44:30 -04:00
Beman
d5fb8323f8
Change the name of path::relative to path::relative_to to distinguish it a bit from path::relative_path.
2015-08-07 16:50:47 -04:00
Beman
6da5f657fb
Remove lexically_relative() free function. Add path::rel
2015-08-07 16:41:06 -04:00
Beman
dc794ea95b
Merge branch 'feature/relative' into feature/relative2
2015-08-06 08:08:46 -04:00
Beman
eb9cac384e
Edit comments to clarify dependencies.
2015-01-10 11:35:47 -05:00
Beman
c0b5754ab8
Fix ticket #10388 , an occasional failure of temp_directory_path to deal correctly with the trailing separator. A path member function remove_trailing_separator() was added publicly since this may be useful to users.
2015-01-10 09:31:44 -05:00
Beman
bb5a0ff09d
Clear warnings, including new warnings from VC++ 2015 preview.
2015-01-05 10:34:24 -05:00
Beman
0dfb7171fb
Finalize issue reporting before requesting comments. Also fix some inspect issues.
2014-12-29 09:18:12 -05:00
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