106 Commits

Author SHA1 Message Date
Steffen Schümann
c8cfcf823f refs #73, performance optimizations 2020-09-30 08:33:29 +02:00
Steffen Schuemann
d8abf146a4 Release ghc::filesystem v1.3.4 2020-08-30 09:59:53 +02:00
Steffen Schuemann
80543b681b refs #66, removed shared_ptr guards in copy_file 2020-08-30 09:47:27 +02:00
Steffen Schuemann
3131e9735d Merge branch 'master' into feature-68-experimental-emscripten-support 2020-08-21 08:22:48 +02:00
zero9178
0e40179aeb Changed preprocessors checks for wchar_t constructs of iostreams from __GNUC__ to __GLIBCXX__ as libc++ provides these on Windows as well 2020-08-21 03:01:50 +02:00
Steffen Schuemann
1d41167941 refs #68, experimental support for emscripten 2020-08-20 22:26:56 +02:00
Steffen Schuemann
2ea00170e1 refs #68, better permission error handling for directory_iteratior with skip_permissions_denied 2020-08-20 21:58:34 +02:00
Steffen Schuemann
3f1c185ab4 fixes #63, Squashed commit of the following:
commit fdcb3ce89ba676d3e06b30c18c04e926a775366c
Author: Steffen Schuemann <s.schuemann@pobox.com>
Date:   Thu Apr 9 12:59:13 2020 +0200

    refs #63, fix typo

commit a5cadd2e5060da75315f79971dae56a0e91a8023
Author: Steffen Schuemann <s.schuemann@pobox.com>
Date:   Thu Apr 9 11:45:36 2020 +0200

    refs #63, work on issues with wchar and clang in windows.
2020-04-10 11:26:04 +02:00
Steffen Schuemann
9a047b9f8d Updated readme, added error handling for conflicting options. 2020-04-08 10:44:54 +02:00
gulrak
6b30995e41
Merge pull request #62 from okhowang/android
Fix android compatibility
2020-04-07 19:49:25 +02:00
gulrak
2ad75e1ff0
Merge pull request #61 from okhowang/no-exception
fixes #60, refs #43, support for usage in projects with exceptions disabled
2020-04-07 19:48:30 +02:00
Steffen Schuemann
4bf0160a15 Bump to wip version. 2020-04-07 18:27:49 +02:00
okhowang(王沛文)
a0f28a93bc Fix android compatibility 2020-04-07 22:55:13 +08:00
okhowang(王沛文)
ee9b432e3f Fixed MinGW no-exception logic 2020-04-07 19:09:54 +08:00
okhowang(王沛文)
498dd371fa merge all ifdef 2020-04-07 15:40:27 +08:00
okhowang(王沛文)
4fe99da720 Fix VS2015 compatibility 2020-04-07 14:07:47 +08:00
okhowang(王沛文)
a0ef036074 use marcro protect all code with exception 2020-04-07 11:40:42 +08:00
okhowang(王沛文)
2671c2f83b use macro protect all throw function directly 2020-04-07 10:30:36 +08:00
Steffen Schuemann
3605e86915 Updated readme and v1.3.2 version bump. 2020-03-31 00:01:31 +02:00
Steffen Schuemann
683ed6838e Merge branch 'master' of github.com:gulrak/filesystem 2020-03-23 19:17:58 +01:00
Steffen Schuemann
56827ea52d refs #58, compile error on MinGW 2020-03-23 19:17:19 +01:00
Michael M
e3201da883 lexically_relative: ignore trailing slash on base
Previously,

    fs::path("a/b").lexically_relative("a/")

would incorrectly return "../b". Now it returns "b".
2020-03-22 16:26:59 -07:00
Steffen Schuemann
26077f272e refs #54, directory_entry methods now reset error_code, when returning cached result 2020-03-06 09:19:46 +01:00
Steffen Schuemann
d93ccea812 refs #55, fs::create_directories reported true if it didn't need to create anything. 2020-03-05 06:48:54 +01:00
Steffen Schuemann
70a0085a47 Fix issues introduced with PR 53. 2020-03-04 08:41:15 +01:00
gulrak
bd30737e81
Merge pull request #53 from jnhyatt/leading-whitespace
Bugfix - Leading Whitespace On Stream In
2020-03-04 08:26:26 +01:00
jnhyatt
a778e6d76e Remove leading whitespace when first character is whitespace 2020-03-04 04:54:15 -07:00
gulrak
1d85ec3572
Merge pull request #50 from nightlark/fix-conversion-warning-32bit-target
Static cast to fix conversion error on 32-bit processors
2020-03-04 07:38:48 +01:00
Steffen Schuemann
21b1fb9d1d Next wip version. 2020-03-04 07:38:00 +01:00
Ryan Mast
94738c9065 Static cast to fix conversion error on 32-bit processors 2020-02-29 14:10:13 -08:00
Rick V
c193676fe9 define targets for generic BSD and oracle machines 2020-02-13 18:51:29 -06:00
Sean Portal
84c905016f Fix typo
"C++147" ==> "C++14"
2020-02-11 17:39:50 +00:00
Steffen Schuemann
c428aba39d Merge branch 'master' of github.com:gulrak/filesystem 2020-02-08 18:29:56 +01:00
Steffen Schuemann
0989fd1ca1 Version Bump to v1.3.0, switch to MIT license 2020-02-08 18:22:37 +01:00
Tobias Hammer
7b9e8a5894 Suppress unused parameter warning on android 2020-01-23 09:27:12 +01:00
Steffen Schuemann
c96bc30a3f refs #44, warnings on Xcode 11.3 2019-12-21 12:38:57 +01:00
Steffen Schuemann
f5bfb98aea minor refactorings and work on ci integration 2019-12-08 13:49:15 +01:00
Steffen Schuemann
8facfa0044 Updated readme and version bump to v1.2.10 2019-11-24 16:33:29 +01:00
Steffen Schuemann
07b7d46e8b refs #38, added check for older GCCs 2019-11-24 00:30:12 +01:00
Steffen Schuemann
2c3242a38e refs #38, switched to pragma based fix, as it seams the most widely accepted way. 2019-11-23 23:53:36 +01:00
Steffen Schümann
c37d756a7f refs #41, fs::rename now overwrites existing files on windows, extended tests 2019-11-22 18:48:10 +01:00
Steffen Schümann
5a933d5c52 refs #39, remove DWORD dependency in forwarding mode and change test to trigger an error if there is a dependency to windows.h 2019-11-22 18:46:21 +01:00
gulrak
73da6e1a95 refs #38, work on warning about GetProcAddress cast on MSYS2 GCC9.2 2019-11-17 21:20:19 +01:00
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