Commit Graph

230 Commits

Author SHA1 Message Date
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