Bugs item #776146, was opened at 2003-07-23 02:42
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=107586&aid=776146&group_id=7586

Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Nobody/Anonymous (nobody)
Assigned to: Nobody/Anonymous (nobody)
Summary: boost::filesystem fails in posix with files containing ':'

Initial Comment:
(Too bad one can't mail to the mailing lists without
registering first. My email is [EMAIL PROTECTED])

I have Boost 1.30.0-4 from Debian GNU/Linux.

The exception I'm getting for merely handling such a path:

  boost::filesystem::path: invalid name "foo:_Kuu" in
path: "foo:_Kuu"

The problem seems to stem from
libs/filesystem/path_posix_windows.cpp, where a
function called generic_name checks against a ton of
letters that pose a problem in Windows - however, the
only characters not legal in a Unix-filename are / and
\0.         

Is it really a job of this class to check for
path-validity anyway?    Well I suppose that has been
discussed already ;).

The function checks also for spaces at the beginning
and at the end of  a segment, surely one would imagine
they are legal in Windows too?-o

I didn't fully investigate the matter, but ///tmp///foo
is also a legal unix-path, albeit redundant, I hope
that doesn't pose a problem?

My hackish fix:
               
    bool generic_name( const std::string & name )
    {                                            
#ifdef BOOST_WINDOWS
      return name.size() != 0
        && name.find_first_of( invalid_generic ) ==
std::string::npos
        && name != "."
        && name != ".."
        && *name.begin() != ' '
        && *(name.end()-1) != ' ';
#else
      return name.size() != 0
        && name != "."
        && name != "..";
#endif
    } 


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=107586&aid=776146&group_id=7586


-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
_______________________________________________
Boost-bugs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/boost-bugs
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to