213 Commits

Author SHA1 Message Date
gulrak
461a6c0154 Updated readme and version bump to v1.2.8 2019-11-15 09:05:17 +01:00
Renaud Lepage
3a6c550dc0
Typo 2019-11-09 16:40:09 -08:00
Steffen Schuemann
c1a2fb5d17 refs #36, fix for warnings on xcode 11.2 due to unhelpful use of references 2019-11-07 09:10:09 +01:00
Jean Guyomarc'h
b5df8c5942 fix: TOCTOU race when creating directories
When create_directories() is called to create a chain of directories,
path components are created one by one. For each path component, ghc
checks if the directory exists. If not it attempts to create it. In
case of failure to create this directory, the function fails.

This behavior exhibits a TOCTOU (Time Of Check/Time Of Use) race when
different threads of execution (e.g. different processes) attempt to
create the same paths (or paths that contain a common hierarchy).
The following sequence of events between threads T1 and T2 illustrates
the issue:

  T1: checks path P exists: no. Will attempt to create P...
  T2: checks path P exists: no. Will attempt to create P...
  T1: creates P, no error
  T2: fails to create P: raises an error

It is not desirable for create_directories() to fail in this case. This
commit mirrors the GNU libstdc++ implementation of the c++ filesystem
library: if the creation of a directory fails, we will inspect the path
that should have been created as a directory. If it is indeed a
directory (another thread of execution created it for us), the error is
now reset and the function continues to iterate to the next path
component.
2019-11-06 15:09:52 +01:00
Steffen Schuemann
9db85faf14 refs #33, fix for lexically_normal 2019-10-23 23:08:15 +02:00
Steffen Schuemann
cf5188899b refs #33, added test for trailing preferred seperator on last '..' for path::lexically_normal 2019-10-23 22:21:10 +02:00
gulrak
21fc37b0e2
Merge pull request #31 from jwnimmer-tri/deprecated-static-constexpr-storage
Fix storage deprecation warning when in C++17 mode
2019-09-30 20:37:22 +02:00
Jeremy Nimmer
8f4ea166a2 Fix old-style-cast warnings
Fixes "error: use of old-style cast [-Werror=old-style-cast]" when compiling
with GCC 7.4.
2019-09-30 10:05:01 -04:00
Jeremy Nimmer
ee8dd08c6c Fix storage deprecation warning when in C++17 mode
Fixes "error: redundant redeclaration of 'constexpr' static data member
'ghc::filesystem::path_helper_base<char_type>::preferred_separator'
[-Werror=deprecated]" when compiling with GCC 7.4 in -std=c++17 mode.
2019-09-30 09:45:59 -04:00
Steffen Schuemann
9de8ce5b38 wip version bump 2019-09-27 19:42:12 +02:00
Steffen Schuemann
15a82e9098 Version bump to v1.2.6 2019-09-21 17:06:54 +02:00
Steffen Schuemann
fbdee68f21 refs #27, Squashed commit of the following:
commit aabbf8f3d880dcd0aeaa97f014d91d54dfa24ed4
Author: Steffen Schümann <s.schuemann@pobox.com>
Date:   Sat Sep 21 16:22:25 2019 +0200

    refs #27, ghc::filesystem::path::preferred_seperator fix for VS2015

commit 03b437cefb39746127b34ce6c9d47df7209a27c7
Merge: cbe0c61 589219b
Author: Steffen Schümann <s.schuemann@pobox.com>
Date:   Fri Sep 20 13:42:31 2019 +0200

    Merge branch 'master' into feature-27-mingw-preferred_separator

commit cbe0c61492f3a6817f03343bb16d73211625a9cb
Author: Steffen Schuemann <s.schuemann@pobox.com>
Date:   Sat Aug 24 22:20:10 2019 +0200

    Test for workaround of static constexpr issue
2019-09-21 16:46:00 +02:00
Steffen Schuemann
589219bb0d refs #29, fixes for MinGW warnings 2019-09-01 09:23:39 +02:00
Steffen Schuemann
d12bdbed99 refs #29, work on stricter warning set 2019-09-01 08:27:23 +02:00
Steffen Schuemann
135015f20b Fix for wchar_t issue introduced with last commit. 2019-08-15 15:19:48 +02:00
Steffen Schuemann
1da2158ed1 Version bump to wip version, updated readme, some cleanup on defines. 2019-08-15 14:56:11 +02:00
Jonas Karlsson
af3d35cc1d Fix missing string_view path method 2019-08-14 16:33:31 +02:00
Steffen Schuemann
e980ed0dc4 Version bump and updated readme for v1.2.4. 2019-08-11 09:53:36 +02:00
Steffen Schuemann
8906e8ce91 refs #22, copy_options now forwarded to copy_file, added test. 2019-08-09 16:37:15 +02:00
Steffen Schuemann
17bad8c51d Updated readme and wip version. 2019-08-05 12:10:00 +02:00
Steffen Schuemann
c2c74695d2 More warning fixes to support -Wextra on MingW. 2019-07-05 07:28:21 +02:00
Steffen Schuemann
8dee4d7731 Fix for -Wshadow warning, and some issues when compiling tests against std::filesystem on GCC 9.1 2019-07-04 08:00:35 +02:00
Steffen Schuemann
7c8fb02574 Version bump, updated readme. 2019-06-23 16:45:43 +02:00
Steffen Schuemann
8e824cedef refs #21, dropping macro based detection and using generic aproach. 2019-06-17 20:45:14 +02:00
Steffen Schuemann
eec82f8de6 Version bump, release v1.2.0 2019-06-02 12:53:34 +02:00
Steffen Schuemann
98dad7f0a1 refs #18, unicode error raise can now be enabled with define GHC_RAISE_UNICODE_ERRORS 2019-06-02 11:52:07 +02:00
Steffen Schuemann
2969bad152 refs #17, fixed another issue on mingw when using wchar_t/wstring 2019-06-02 11:31:44 +02:00
Steffen Schuemann
2aa08c17c1 refs 17, copy & paste error broke the build 2019-06-02 11:01:01 +02:00
Steffen Schuemann
d80948287e refs #17, fix for issues with mingw 2019-06-02 10:53:16 +02:00
Steffen Schuemann
3fcb3f51e1 optional Windows wchar_t/wstring support
Squashed commit of the following:

commit f4a85d2070bb62bdca644f81faa953ba5fb5e491
Author: Steffen Schümann <s.schuemann@pobox.com>
Date:   Sun May 19 10:02:22 2019 +0200

    refs #17, refs #18, Missing use of alloc in fromUtf8 (fixed on master) and initialization order issue.

commit aa1cb7081630393659204641792bc7641f0c72aa
Author: Steffen Schümann <s.schuemann@pobox.com>
Date:   Sun May 19 09:46:02 2019 +0200

    refs #18, fighting VS2015 sfinae issues

commit 15788d8eb9972965ec4562c6e672a8a460e5b655
Author: Steffen Schümann <s.schuemann@pobox.com>
Date:   Sat May 18 10:35:25 2019 +0200

    refs #17, work on wchar_t/wstring support on Windows.
2019-05-31 07:08:48 +02:00
Steffen Schuemann
235a594240 Squashed commit of the following:
commit 9cc8cbf731375fbedac9e76f883664a27814bff0
Author: Steffen Schuemann <s.schuemann@pobox.com>
Date:   Mon May 27 09:36:09 2019 +0200

    Workaround for bug in clangs libc++ std::filesystem::path::format.

commit 72285d01f2a269247084dddb8fe8d9da66f082a1
Author: Steffen Schuemann <s.schuemann@pobox.com>
Date:   Mon May 27 09:17:49 2019 +0200

    Test coverage.

commit f3ab2af99fda2dad26334d2a4884faa7463f7edb
Author: Steffen Schuemann <s.schuemann@pobox.com>
Date:   Sun May 26 12:35:39 2019 +0200

    Fixed std builds, removed non-standard conforming swap in directory_iterator/recursive_directory_iterator.

commit 3ae76b29a0745319d2a64e34bdbcb35264ad3e99
Author: gulrak <s.schuemann@pobox.com>
Date:   Sun May 26 11:08:52 2019 +0200

    Additional tests.

commit af4bbe14e192b464d3fece68c5dbcf3bf1c4e214
Author: gulrak <s.schuemann@pobox.com>
Date:   Fri May 24 21:52:15 2019 +0200

    Added more tests.
2019-05-31 00:46:29 +02:00
Steffen Schuemann
962df76d10 Merge branch 'master' of github.com:gulrak/filesystem 2019-05-23 08:39:16 +02:00
Steffen Schuemann
22de93ac45 Fix for error handling issue in utf8 converter and additional tests for enhanced coverage. 2019-05-23 08:39:04 +02:00
actboy168
4a749c02b8
Fix a fd leak 2019-05-23 09:46:21 +08:00
Steffen Schuemann
082e606591 refs #18, revert change due to VS2015 compilation issues. 2019-05-18 18:14:51 +02:00
Steffen Schuemann
6d173c50a9 refs #18, added missing allocator parameter to std::string case of fromUtf8 2019-05-18 10:47:49 +02:00
Steffen Schuemann
40ef125494 refs #18, missing small fix 2019-05-18 10:31:42 +02:00
Steffen Schuemann
9d5bc604c9 refs #18, some refactoring on unicode handling and a fix for a VS2019 warning. 2019-05-18 10:19:00 +02:00
Steffen Schuemann
61182d039f Added missing header for better VS2019 support. 2019-05-15 06:18:25 +02:00
Steffen Schuemann
91e02dc2c4 Work on CI support for MingW, fixing some MingW issues 2019-05-14 08:42:29 +02:00
Steffen Schümann
38b9192d3a Version bump to wip version. 2019-05-11 15:51:17 +02:00
Steffen Schümann
16a5fbb86e Small changes for MingW compiles concerning unsupported error code and clarified test in utf8 decoder. 2019-05-11 15:49:26 +02:00
Steffen Schuemann
fe3d15f449 Version bump, bugfix release v1.1.4 2019-05-07 22:31:24 +02:00
Steffen Schuemann
163d401f99 Added missing include for the fwd/impl use case. 2019-05-07 22:25:41 +02:00
Steffen Schuemann
275a1b714c Clearer non inverted logic for primitive case insensitive compare, updated readme. 2019-05-07 22:02:38 +02:00
gulrak
04b6fa278b wip version bump 2019-05-07 19:52:38 +02:00
gulrak
cc476ac1fd refs #13, rework of POSIX directory_iterator handling, performance optimization 2019-05-07 19:49:01 +02:00
Steffen Schuemann
280a8590f9 Version bump, bugfix release v1.1.2 2019-05-05 09:28:03 +02:00
Steffen Schuemann
dc37276a9a Squashed commit of the following:
commit 8d9f245e379d373942c0f49be19dacc9293cdcf0
Merge: 3ceb4b0 857a355
Author: gulrak <s.schuemann@pobox.com>
Date:   Fri May 3 23:52:57 2019 +0200

    Merge branch 'development-v1.1' of https://github.com/gulrak/filesystem into development-v1.1

commit 3ceb4b0e4fe90be46b1fdbdfb7e2b3f160cccf3c
Author: gulrak <s.schuemann@pobox.com>
Date:   Fri May 3 23:51:48 2019 +0200

    Less noisy interoperability testing on weakly_canonial()

commit 38f82a90ef5f4ec1fa341ce3ab34f3836a6bd9ea
Author: gulrak <s.schuemann@pobox.com>
Date:   Fri May 3 23:50:43 2019 +0200

    Additional fix for recursive_directory_iterator

commit 857a3558fb13e8fae76e29b5b91cb76b5e98ea20
Merge: 9da5784 b557b5b
Author: Steffen Schuemann <s.schuemann@pobox.com>
Date:   Fri May 3 23:47:20 2019 +0200

    Merge branch 'development-v1.1' of github.com:gulrak/filesystem into development-v1.1

    # Conflicts:
    #	test/filesystem_test.cpp

commit 9da57846ac4de06c4b0521ab69ea42816fd6a029
Merge: 96e89ae 43e75c3
Author: Steffen Schuemann <s.schuemann@pobox.com>
Date:   Fri May 3 23:42:31 2019 +0200

    Merge remote-tracking branch 'origin/master' into development-v1.1

commit 96e89ae7f9e983cb3d0977d9ba77f421a0c06b0f
Merge: 9d71161 882c60b
Author: Steffen Schuemann <s.schuemann@pobox.com>
Date:   Fri May 3 23:40:18 2019 +0200

    Merge remote-tracking branch 'origin/master' into development-v1.1

commit b557b5b476c085183bd3da72cc9f511df3b52272
Merge: 263a2d2 9d71161
Author: Steffen Schümann <s.schuemann@pobox.com>
Date:   Fri May 3 22:44:25 2019 +0200

    Merge branch 'development-v1.1' of https://github.com/gulrak/filesystem into development-v1.1

commit 263a2d2c5b9f25631513271a6e26a9cb66e8f9da
Author: Steffen Schümann <s.schuemann@pobox.com>
Date:   Fri May 3 22:44:01 2019 +0200

    Work on Windows tests.

commit 9d71161323f22e994b51fda73ebc19af9e67d6e6
Author: Steffen Schuemann <s.schuemann@pobox.com>
Date:   Fri May 3 08:30:40 2019 +0200

    Fix for issues with recursive_directory_iterator not behaving like an input iterator and regarding pop()/depth().

commit 2ac1352b4a37fdb247b56fb63c1e2c3f56761649
Author: gulrak <s.schuemann@pobox.com>
Date:   Thu May 2 09:12:42 2019 +0200

    Refactored builds with std::fs to a CMake macro, added du example, added behaviour switch

commit 624a6f63e5639504c2b554ba89985ef9c01c6fa9
Author: Steffen Schümann <s.schuemann@pobox.com>
Date:   Thu May 2 09:01:15 2019 +0200

    Add path parameters to filesystem_error::what
2019-05-05 08:51:53 +02:00
Steffen Schuemann
5ea334899a refs #12, added more tests to recursive directory iterator, fixed additional issue with pop(). 2019-05-04 08:47:41 +02:00