Andrey Semashev
06d8d660a1
Fixed path::lexically_relative to handle empty, dot and dot-dot elements.
...
The algorithm implementation now ignores empty and dot path elements in the
argument path and accounts dot-dot elements by decreasing the number of
dot-dot elements to generate in the resulting relative path. This is
according to C++17 std::path specification [fs.path.gen]/4.
Fixes https://github.com/boostorg/filesystem/issues/76 .
2019-10-05 19:14:21 +03:00
Andrey Semashev
03c797998f
Added directory_options::skip_dangling_symlinks.
...
The new option allows to skip dangling directory symlinks when iterating
over a directory using recursive_directory_iterator.
This also updates the operations_test, which failed spuriously because
the test created dangling symlinks for some of its checks. Since the order
of iteration is undefined, the tests sometimes passed, when the dangling
symlinks were encountered late during the iteration.
2019-08-20 19:02:56 +03:00
Andrey Semashev
9a14c37d6f
Added directory_options. Set recursive_dir_iterator to end or pop on errors.
...
The directory_options enum reflects the same-named enum from C++20. It is now
supported by both directory_iterator and recursive_directory_iterator. In
particular, both iterators now support skip_permission_denied option.
recursive_directory_iterator is now set to end by default on errors, as
required by C++20. An additional directory_options::pop_on_error policy
is added to allow the iterator recover from an error. When this option is
specified and an error occurs, the iterator repeatedly pops the recursion level
until the pop completes successfully or the end state is reached.
recursive_directory_iterator that have standard counterparts (level,
no_push_pending, no_push_request and no_push) are now deprecated and can be
removed by defining BOOST_FILESYSTEM_NO_DEPRECATED. These members will be
removed in a future release.
Docs and tests updated accordingly. Also, in docs reconstructed release history
for the past releases from Boost release notes.
Fixes https://github.com/boostorg/filesystem/issues/112
Fixes https://github.com/boostorg/filesystem/issues/113
2019-08-02 19:43:46 +03:00
Beman
49218481e5
Clean up some tutorial example code and fix the wording for it in the tutorial. Thanks to Anmol-Singh-Jaggi for pull request #11 .
2017-08-07 20:01:08 -04:00
Beman
7fd4214912
is_empty()overload with error_code parameter should not throw on error. Thanks to ldqrk for pull request #42
2017-04-03 09:36:43 -04:00
Beman
9144a8ebd7
Update release history.
2017-04-03 08:29:00 -04:00
Beman
4ccb6c38f2
Start release history for 1.64
2016-12-30 14:52:52 -05:00
Beman
93429f24a1
Update release_history.html for pull request #31 .
2016-11-26 14:27:33 -05:00
Beman
4e4374336c
Fix #7307 , remove_all(dirname,ec) throws on write protected directories. This is a tough one to test. There are three internal function calls where errors might arise, and it would take too much time to write tests for each of those cases. Someday we will have Titus Winter's mock installable file system, but for now are relying on code inspection rather than testing.
2016-11-23 12:02:09 -05:00
Beman
e34b838041
Document a couple of pull requests.
2016-11-23 10:51:47 -05:00
Beman
216720de55
Fix #12495 , create_directories() crashes when passed empty string as path, from Samantha Ritter. Also affected create_directory(). Charles Olivi submitted a pull request with some particularly helpful test cases.
2016-11-23 09:58:43 -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
a3c1014b21
Tweak release history.
2016-11-23 05:33:53 -05:00
Beman
48faf2b1ee
Add deprecated path::generic()
2016-11-22 16:51:45 -05: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
7b31aa0259
Fix typo in issue # and link (Daniel Krügler)
2015-11-21 08:06:49 -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
8c179bf1df
Add 1.58.0 BOOST_SCOPED_ENUM fix history
2015-10-25 05:47:45 -04:00
Beman
7e3e5ef60c
Fix #11733 , Missing unistd.h include in boost/libs/filesystem/src/unique_path.cpp by apply a patch from Idar Tollefsen.
2015-10-16 16:03:45 -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
a5ecdd44d2
Acknowledge minor fixes.
2015-09-17 07:50:28 -04: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
4f0afc361f
Add #11062 to list of resolved tickets.
2015-09-10 15:48:07 -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
b5eba804c1
Add some links.
2015-09-05 16:02:00 -04:00
Beman
9910eccc13
Documentation for functions lexically_normal, lexically_relative, relative, and weakly_canonical.
2015-09-05 12:02:31 -04:00
Beman
a6900bf517
Update release history and add tests.
2015-09-04 13:41:20 -04:00
Beman
2af843f782
Add list of closed tickets.
2015-09-04 10:25:18 -04:00
Beman
e6d10cf716
Fix #10766 , parent_path() with redundant separator returns wrong value, by adding examples and notes to the reference documentation to show why the returned value is in fact correct, and to provide rationale for that behavior. See [path.itr], and [path.decompose] parent_path() and filename() sections of the reference docs.
2015-09-03 10:44:20 -04:00
Beman
011522bd42
Fix #7258 , create_directories returns false if the path ends with a slash. Also fix related issues if path contains dot or dot-dot elements, and add test cases to the test suite.
2015-09-02 08:24:41 -04:00
Beman
a2d4f99cc8
Resolve #11166 by mitigating (i.e. reducing the likelihood of) a possible external file system race in remove(), using a slight refinement of the patch supplied by Jeff Epler. Made no attempt to fix or mitigate the thread data race in the test program provided.
2015-09-01 11:34:24 -04:00
Beman
b2774a00a5
Fix #11175 , out-of-date documentation causing users to incorrectly expect that the library could be used with exceptions disabled.
2015-08-31 14:37:36 -04:00
Beman
f6aa067256
Minor code and comment tweaks.
2015-08-31 10:23:41 -04:00
Beman
90517e4596
Fix #11447 , __OpenBSD__ macro name misspelled, by applying a patch submitted by Jasper Lievisse Adriaanse.
2015-08-29 10:13:36 -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
5e5b529dc2
Fix #10591 , boost::filesystem does not build on iOS 8, by applying a patch submitted by Daniel Seither.
2015-08-28 16:41:13 -04:00
Beman
d80e67f4b6
Start release history for 1.60.0
2015-08-28 10:11:35 -04:00
Beman
4487aa4200
Update the Release History for 1.59.0
2015-07-26 20:55:25 -04:00
Beman
706cf988a9
Revise get_temp_directory() test cases. Drive-by warning removal and partial fix for TortoiseGit-related test harness crashes.
2015-02-03 12:11:44 -05:00
Beman
335a70ca22
Change charset to utf-8 and use © for copyright symbol.
2014-12-29 07:38:57 -05:00
Beman
277180e4f9
Add "Bug Reports" to links bar, and reorder existing links.
2014-12-29 07:32:56 -05:00
Beman
aa94a72fc4
Add style sheet from Boost.Endian. Copy so it can be customized for Boost.Filesystem as needed without worrying about impact on other libraries.
2014-12-26 10:41:22 -05:00
Beman
c8d720f6e9
Add history for latest changes.
2014-10-29 11:32:56 -04:00
Beman
898c8c5265
Update release history.
2014-10-24 12:12:37 -04:00
Beman
245341aaa9
Update release history.
2014-08-17 15:40:56 -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
cc99cc6ceb
Merge branch 'develop' into ts-develop
2014-07-31 17:24:34 -04:00
Beman
d774842f39
Initial directory junction support. See release_history.html
2014-07-25 11:00:54 -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
8f08e1e2d8
Update revision history.
2014-07-24 11:30:37 -04:00
Beman
ea7ab16ea3
Add "Purpose of this release ..." to release history.
2014-07-24 10:16:26 -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
07baa588e5
Update release history.
2014-07-22 17:07:31 -04:00
Beman Dawes
7f7769d16d
Document the reimplementation of path::codecvt() and path::imbue(), adding a section on path usage concerns.
...
[SVN r83062]
2013-02-21 14:27:10 +00:00
Beman Dawes
08c11663d9
Fix #7239 , Stack overflow when calling create_directories(":D"). The reported problem was a symptom of an internal bug that caused path::filename() and path::parent_path() to fail on Windows for path(":"), and that in turn caused other functions that depend on filename() or parent_path() to fail, such as create_directories().
...
[SVN r80279]
2012-08-28 12:57:02 +00:00
Beman Dawes
6d73e629b8
Fix #6659 and #7051 , fchmodat supported only on Solaris 11. Disable fchmodat for both Sun and GCC compilers regardless of OS version; a runtime check is too much trouble.
...
[SVN r79484]
2012-07-13 21:02:36 +00:00
Beman Dawes
999ab2ff4b
Fix a Linux fchmodat problem affecting symlink permissions reported during discussion of 6659. Patch supplied by Duncan Exon Smith. Does not fix the original problem.
...
[SVN r79481]
2012-07-13 19:43:33 +00: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
4ae83b8570
Fix link to wrong ticket.
...
[SVN r78979]
2012-06-18 11:43:00 +00:00
Beman Dawes
c0b7979013
Filesystem: fix #6932 , create_directories throws exception even if error_code is specified.
...
[SVN r78721]
2012-05-28 15:47:59 +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
221b7cf7c6
Filesystem: Fix #6809 , Implementation of filesystem::rename() method for MS Windows is wrong, by adding MOVEFILE_COPY_ALLOWED to deal with renames across drives, volumes, file systems. Fix has no effect on non-Windows systems.
...
[SVN r78078]
2012-04-19 12:45:42 +00:00
Beman Dawes
0662681e3a
Add mention of "and others" whose names I can't recall.
...
[SVN r78067]
2012-04-18 14:48:05 +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
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
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
4910fe6e64
Fix #3737 , Boost.Filesystem does not compile on Windows Mobile
...
[SVN r77585]
2012-03-27 14:40:56 +00:00
Beman Dawes
494b34027e
Fix #5118 , replace_extension doesn't work as specified in documentation
...
[SVN r77571]
2012-03-26 21:19:36 +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