Commit Graph

56 Commits

Author SHA1 Message Date
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
5610f974be Merge branch 'feature/relative2' into develop 2015-09-04 15:24:22 -04:00
Beman
810f40becf Add a quote from the standard 2015-08-30 16:33:39 -04:00
Beman
efe50fad52 Work issue, but no fix yet 2015-08-30 16:32:44 -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
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
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
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
Adrien Destugues
3a02e54625 haiku: don't crash because of unsupported locale in libstdc++
See https://svn.boost.org/trac/boost/ticket/4688
We do the same as on Mac OS X and assume the filesystem uses utf-8.

Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>
2015-03-17 22:26:31 +00: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
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
0041ea9646 Removed unused codecvt buffer size definitions long since moved to path_traits. Quiets clang warning. 2014-09-04 09:13:57 -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
5b4e1b5580 Remove comments about mutexes. They are a distraction and less relevant as C++11 support becomes widespread. 2014-08-18 09:01:16 -04:00
Beman
35096ca056 Add 9219.cpp plus infrastructure and path.cpp logging 2014-08-17 10:55:01 -04:00
Beman
8ef629c906 Add __OpenBSD__ to the operating systems that "expect their string parameters to be in UTF-8 encoding and nothing else." Fixes #8352 2014-08-06 12:24:44 -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
fcb9600f91 Merge updates from Beman's Github repo. Unstable. 2014-07-09 14:47:13 -04:00
Beman
b1b1cea3c4 Rename relative to lexically_relative. Add semi_canonical() and relative(). 2014-05-29 15:42:11 -04:00
Beman
aa89af3387 Add test cases, correct typo 2014-05-05 14:23:59 -04:00
Beman
7cfff1821e initial implementation of relative(). 2014-05-05 11:54:27 -04:00
Beman
0ddac9e962 Jürgen Hunold reports 'colon' const causes clang warning because it isn't used. Closes pull request #2 2014-05-01 17:34:47 -04:00
Beman Dawes
7bb19f9604 Add FreeBSD support. Fix #4688
[SVN r83083]
2013-02-22 14:32:50 +00:00
Beman Dawes
f74de6c268 Revert mutex locking attempt. VC++ static builds failed in the C runtime because Microsoft staticly initializes some stuff that should be dynamically initialized.
[SVN r83034]
2013-02-19 21:09:10 +00:00
Beman Dawes
ce4dcdac91 Add locale_mutex to prevent race condition within path_locale(), either during initialization or use.
[SVN r83032]
2013-02-19 21:08:14 +00:00
Beman Dawes
5311e8139d After path.cpp mess cleanup but before adding mutex
[SVN r83031]
2013-02-19 21:07:52 +00:00
Beman Dawes
842f91ada2 Revert mutex locking attempt. VC++ static builds failed in the C runtime because Microsoft staticly initializes some stuff that should be dynamically initialized.
[SVN r83027]
2013-02-19 21:06:16 +00:00
Beman Dawes
c0f470b916 Add locale_mutex to prevent race condition within path_locale(), either during initialization or use.
[SVN r83022]
2013-02-19 21:04:03 +00:00
Beman Dawes
2c0d73967d After path.cpp mess cleanup but before adding mutex
[SVN r83021]
2013-02-19 20:39:26 +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
1207aac116 filesystem: Move compare() implementation to path.cpp, thus clearing gcc warning about header implementation of class with dll interface.
[SVN r78006]
2012-04-16 13:36:28 +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
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
Beman Dawes
fa515c07f5 Move files into new v2 + v3 directory structure
[SVN r62653]
2010-06-09 13:00:15 +00:00
Beman Dawes
91715967a5 Upgrade system and filesystem to conform system_category and generic_category interface to N3090, the current C++0x working paper, section 19.5, System error support.
Refactor API macros into a new header, boost/system/api_config.hpp.

Prohibit user definition of API macros. Rationale: ensure all translation units use same definitions, cut number of environments that need to be tested.

[SVN r62313]
2010-05-30 15:38:32 +00:00
Daniel James
a77e191a25 Use full filesystem namespace as there isn't an alias at this point.
[SVN r59709]
2010-02-16 22:33:27 +00:00
Beman Dawes
9beb3923e1 Fix #3928
[SVN r59695]
2010-02-15 21:23:05 +00:00
Beman Dawes
0858d28868 Filesystem: fix #1452
[SVN r52383]
2009-04-14 13:27:44 +00:00
Beman Dawes
5a43bcd288 Add #include <cwchar> to fix ticket #1589
[SVN r46481]
2008-06-18 15:55:53 +00:00
Beman Dawes
959dfd8ab7 clear # 1230, mbstate uninitialized
[SVN r41357]
2007-11-25 15:08:28 +00:00
Beman Dawes
85ed046d40 Turns out the --dep_name errors were due to functions in the wrong namespace (Chris Kohlhoff)
[SVN r39553]
2007-09-26 17:48:27 +00:00
Beman Dawes
ac94c31ac1 POSIX fix from Neal Becker
[SVN r39220]
2007-09-12 18:31:25 +00:00
Beman Dawes
969eb8a6c0 Posix and Linux fixes
[SVN r39174]
2007-09-09 17:48:17 +00:00