X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Ffs%2Fpath.cpp;h=241b2f8aeb938493f006d735f36a9f8f4c41e6ec;hp=93805277749d96ed35cccaa86ecd130774f9174e;hb=a0d162e53034a6ef2ef8cfc310a3ee18a6a3872e;hpb=05f7e9b4c6f804102f261517c8ecdd338e1f67d3 diff --git a/source/fs/path.cpp b/source/fs/path.cpp index 9380527..241b2f8 100644 --- a/source/fs/path.cpp +++ b/source/fs/path.cpp @@ -32,14 +32,14 @@ Path::Path(const char *p) void Path::init(const string &p) { + if(p.empty()) + return; string::size_type start = 0; - if(p[0]=='/' || p[0]=='\\') - add_component(string(1, DIRSEP)); - while(1) + while(startstart) - add_component(p.substr(start, slash-start)); + if(slash>start || start==0) + add_component(p.substr(start, max(slash-start, 1U))); if(slash==string::npos) break; start = slash+1; @@ -100,9 +100,7 @@ Path &Path::operator/=(const Path &p) void Path::add_component(const string &comp) { - if(comp.empty()) - ; - else if(comp.size()==1 && comp[0]==DIRSEP) + if(comp.size()==1 && comp[0]==DIRSEP) { // Replace the path with the root directory #ifdef WIN32