
On Fri, Feb 6, 2009 at 1:22 PM, Ulrich Eckhardt <doomster@knuut.de> wrote:
On Sunday 01 February 2009 18:53:11 Beman Dawes wrote:
A prototype implementation of version 3 of Boost.Filesystem is available for comment.
I have one specific question which I wonder how your proposal handles it: Imagine a system where strings for filesystems are by default encoded in a certain encoding like e.g. Latin-1. Now, I mount a CD that is encoded in UTF-8. The system itself neither enforces Latin-1 nor does it in any way validate the mounted filesystem, so I might have a path that contains parts in Latin-1 and parts in UTF-8.
Yes, and I think that is possible whether you are using Boost.Filesystem or native API calls.
How does your proposed filesystem library handle such a beast?
You could decompose the path, setting the appropriate locale/codecvt facet at each step of the way. That assumes you know how each element of the path is encoded. Alternately, you could decompose the path into elements of path::string_type, and then convert the elements that need it to whatever other encoding you wish. So Boost.Filesystem helps with some of the details, but it is still really up to you to know what encodings are involved. Did that answer your question? --Beman