981 Commits

Author SHA1 Message Date
Beman
60d51ab0b9 Clear some warnings. Looking good on GCC and MSVC for Windows. 2017-10-07 15:19:35 -04:00
Beman
253105caeb Quiet GCC warning "boost::filesystem::path::filename() const' redeclared without dllimport attribute after being referenced with dll linkage inline path path::filename() const" 2017-10-06 20:53:46 -04:00
Beman
817d05f79c Fix bug detected by tests from Nico; root-names on Windows need to be treated specially by path::compare() because leading directory-separators may be either preferred-separator or fallback-separator. Add path_test.cpp test cases to detect this problem. 2017-10-06 10:37:32 -04:00
Beman
68bccdeb8e Add comment to indicate relative_path() has been checked against c++17. 2017-10-05 11:30:34 -04:00
Beman
9950b03ec1 Fix a bug in create_directories() caused by change in C++17 parent_path() spec when there is no parent path. Update a couple of test cases that changed for C++17. 2017-10-04 15:42:19 -04:00
Beman
87a97600c0 Bring deprecated_test.cpp behavior into C++17 compliance. 2017-10-03 15:08:53 -04:00
Beman
88d7785f63 Change lexically_proximate() imp to more closely follow the standard. Move all remaining lexically_normal and lexically_relative tests from path_test.cpp to path_generation_test.cpp. 2017-10-03 11:48:17 -04:00
Beman
78ee622f9c Bring expected results into compliance with C++17. 2017-10-03 11:32:55 -04:00
Beman
4544f7e4d4 Rename relative_test to path_generation_test. The old name didn't misidentified what is being tested due to function name changes during standardization. 2017-10-03 11:11:05 -04:00
Beman
a655451b29 Fix lexically_relative implementation. Correct relative_test expected results to match C++17. 2017-10-03 08:05:38 -04:00
Beman
a0c3833b95 Rewrite path::lexically_normal implementation to make the code easier to reason about and thus debug. Update path_test.cpp lexically_normal test cases to meet the C++17 standard library specification. path_test.cpp passing on Visual C++ 2017 / Windows, some other tests still failing. 2017-10-01 13:12:03 -04:00
Beman
bc599d27f1 Re-implement lexically_relative per C++17 standard. 2017-09-29 18:59:39 -04:00
Beman
06d124ea1b Add decomposition.html, with clearer path decomposition semantics. Bring all path decomposition functions into compliance with those clearer semantics. Update tests accordingly. 2017-09-29 12:27:35 -04:00
Beman
41ae265aad At to_generic template in hopes of cleaning up generic strings eventually. Fix bug in path::remove_filename. Continue to expand table driven tests in path_test.cpp. 2017-09-23 17:12:56 -04:00
Beman
20fda66e63 Refactor relative_path and parent_path. Note: these can be made much simpler if generic_string were implemented with a range-based API; added to TODO list. After a couple of corrections, all path_test.cpp table-driven decomposition tests now passing. 2017-09-21 08:04:25 -04:00
Beman
4005870f9c Commit work-in-progress prior to merging into branch v4. (It is clear the class path refactoring is resulting in a cleaner, more correct implementation. So merge now even though the work is currently incomplete.) 2017-09-20 09:27:06 -04:00
Beman
e39b71be1d Refactor path::being() implementation. 2017-09-19 08:11:18 -04:00
Beman
bd4bb0fc0c Bring path::filename implementation into conformance with the standard. Fix bug in m_root_name_size(). 2017-09-17 17:22:23 -04:00
Beman
3a19d97b5e Bring parent_path() into std compliance. Fix decomp_table boo boos. All decomposition_table_tests() now passing. 2017-09-17 11:37:09 -04:00
Beman
1750152680 path.hpp: refactor path::has_root_name(), has_root_directory(), and has relative_path().
path.cpp: refactor path::root_name(), root_directory(), and root_path().
path_test.cpp: bring decomposition_table into compliance with C++ Std WP. The decomposition tests for parent_path() are now failing, indicating that code needs to be brought into std compliance. There are many traditional tests failing, but these will be reviewed later.
2017-09-17 11:24:55 -04:00
Beman
080c99c425 Unstable work-in-progress. Commit before creating path-refactor branch. 2017-09-16 17:08:48 -04:00
Beman
02914c8a14 Fix path "//" being incorrectly seen as a root-name rather than a root-directory. Tests not adjusted yet. 2017-09-14 17:32:29 -04:00
Beman
d767a3e947 Add a table driven decomposition test. The plan is to migrate a lot of the handwritten decomposition and query tests to the table driven test. 2017-09-14 17:27:22 -04:00
Beman
5652949497 Add Visual Studio project for example/path_info 2017-09-14 14:57:59 -04:00
Beman
21d390354d Remove p.make_preferred(); it was skewing other results. 2017-09-12 13:44:16 -04:00
Beman
e13d60104f Bring lexically_normal() into sync with C++ WP, N4687. Commit and push as backup in advance of hurricane Irma. 2017-09-10 10:56:27 -04:00
Beman
ef74d32ef8 Initial commit. Extracted from N4687. 2017-09-09 12:51:17 -04:00
Beman
d0910d003c Merge branch 'develop' into v4 after resolving a couple of minor conflicts and retesting. 2017-09-03 11:54:36 -04:00
Beman
5229425643 reformat excessively long lines 2017-09-03 11:13:42 -04:00
Beman
07619fb370 Add Beman's local test results to aid tracking changes over time. 2017-08-24 08:00:38 -04:00
Beman
bf2f23efc5 C++17 20.4.2.1.4 [bitmask.types] complete and passing all tests. 2017-08-23 21:41:11 -04:00
Beman
a019f35df1 Unstable work-in-progress. operations.hpp updated to reflect C++17 fs.enum (with class enum's rather than workarounds). Next step is to fix the fallout from those changes. 2017-08-20 11:44:13 -04:00
Beman
be6f4d5248 Initial commit 2017-08-19 08:54:04 -04:00
Beman
be85855eb3 Rename doc/v4_plans.html to doc/v4-plans.html 2017-08-19 08:42:35 -04: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
23b79b9459 Clear two -Wconversion warnings 2017-04-03 09:47:32 -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
12bcf2e6ea Merge branch 'Dani-Hub-develop' into develop 2017-04-02 16:44:25 -04:00
Beman
355e57f706 Upgrade to Visual Studio 2017 2017-04-02 08:00:04 -04:00
drgler
0e831d5c2d Extended patch for ticket #10731 and ticket #9480: Replace expensive call of RtlInitUnicodeString by wcslen and get rid of CompareStringOrdinal completely, because it has no longer any advantages. Also, replace Windows TEXT macro by selecting GetModuleHandleW with wide character argument to prevent any additional conversions. 2017-03-19 16:21:46 +01:00
drgler
14935c4c6d Extended patch for ticket #10731 and ticket #9480: Replace usage of non-portable _wcsicmp by appropriate Windows functions to realize a locale invariant case-insensitive binary Unicode comparison that match the underlying file name comparison. 2017-03-18 22:28:29 +01:00
drgler
755766a053 Patch for ticket #10731 and ticket #9480: Evaluate path.extension only once, perform (case-insensitive) string comparisons using the wchar_t variants from the CRT to prevent code conversions via path.string() calls. 2017-03-14 21:46:12 +01:00
Beman
3a8554803f Add lexically_normal cases Nico suggested we concentrate on to resolve questions about invariants 2017-03-09 14:46:34 -05:00
Beman
65cc9b6aec Add the filename_tests() examples from the C++17 standard. 2017-02-16 09:21:46 -05:00
Beman
a2b6af6191 Tweak lexically_normal comments. 2017-02-07 07:42:09 -05:00
Beman
e5c8e732aa Reorder and number the lexically_normal tests so that they correspond to P0492R1. 2017-02-07 07:21:25 -05:00
Beman
d466406388 Update path.cpp to meet lexically_normal c++17 specs. Add test cases, including some from Nico. Add lexically_normal output to example/path_info.cpp 2017-01-29 08:35:14 -05:00
Beman
2a367711aa Fix a couple of POSIX invalid code problems. 2017-01-26 09:31:20 -05:00
Beman
66fe8f657b Same fix for symlink_status_helper 2017-01-25 17:17:41 -05:00