]> git.mxchange.org Git - simgear.git/blobdiff - simgear/misc/sg_path.hxx
Mac OS X fixes from Markus Morawitz
[simgear.git] / simgear / misc / sg_path.hxx
index 4b92f033344d14aef68168d4dee52faa2e346908..263024934faa07f26cbb1c8aede570ef7d512cca 100644 (file)
@@ -6,7 +6,7 @@
 
 // Written by Curtis L. Olson, started April 1999.
 //
-// Copyright (C) 1999  Curtis L. Olson - curt@flightgear.org
+// Copyright (C) 1999  Curtis L. Olson - http://www.flightgear.org/~curt
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Library General Public
 
 
 #include <simgear/compiler.h>
-
 #include STL_STRING
 
-SG_USING_STD(string);
-
+#include <simgear/math/sg_types.hxx>
 
-#ifdef macintosh
-#  define SG_PATH_SEP ':'
-#  define SG_BAD_PATH_SEP '/'
-#else
-#  define SG_PATH_SEP '/'
-#  define SG_BAD_PATH_SEP ':'
-#endif
+SG_USING_STD(string);
 
 
 /**
@@ -87,6 +79,12 @@ public:
      * @param p additional path component */
     void append( const string& p );
 
+    /**
+     * Append a new piece to the existing path.  Inserts a search path
+     * separator to the existing path and the new patch component.
+     * @param p additional path component */
+    void add( const string& p );
+
     /**
      * Concatenate a string to the end of the path without inserting a
      * path separator.
@@ -94,12 +92,30 @@ public:
      */
     void concat( const string& p );
 
+    /**
+     * Get the file part of the path (everything after the last path sep)
+     * @return file string
+     */
+    string file() const;
+  
     /**
      * Get the directory part of the path.
      * @return directory string
      */
-    string dir();
+    string dir() const;
   
+    /**
+     * Get the base part of the path (everything but the extension.)
+     * @return the base string
+     */
+    string base() const;
+
+    /**
+     * Get the extention part of the path (everything after the final ".")
+     * @return the extention string
+     */
+    string extension() const;
+
     /** Get the path string
      * @return path string
      */
@@ -123,6 +139,12 @@ private:
 };
 
 
+/**
+ * Split a directory search path into a vector of individual paths
+ */
+string_list sgPathSplit( const string &search_path );
+
+
 #endif // _SG_PATH_HXX