]> git.mxchange.org Git - simgear.git/commitdiff
Make sure that a directory name containing a '.' doesn't screw up the ::base() and...
authorehofman <ehofman>
Mon, 5 Jul 2004 16:39:02 +0000 (16:39 +0000)
committerehofman <ehofman>
Mon, 5 Jul 2004 16:39:02 +0000 (16:39 +0000)
simgear/misc/sg_path.cxx

index 7dc1cb7fb2219fd4737da1ae89b7acc307d0b4c9..101cf290502193cbd52d1625936a5de8cc64a827 100644 (file)
@@ -154,7 +154,7 @@ string SGPath::dir() const {
 // get the base part of the path (everything but the extension.)
 string SGPath::base() const {
     int index = path.rfind(".");
-    if (index >= 0) {
+    if ((index >= 0) && (path.find("/", index) == string::npos)) {
        return path.substr(0, index);
     } else {
        return "";
@@ -162,9 +162,11 @@ string SGPath::base() const {
 }
 
 // get the extention (everything after the final ".")
+// but make sure no "/" follows the "." character (otherwise it
+// is has to be a directory name containing a ".").
 string SGPath::extension() const {
     int index = path.rfind(".");
-    if (index >= 0) {
+    if ((index >= 0)  && (path.find("/", index) == string::npos)) {
        return path.substr(index + 1);
     } else {
        return "";