| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- // This file is part of libigl, a simple c++ geometry processing library.
- //
- // Copyright (C) 2013 Alec Jacobson <[email protected]>
- //
- // This Source Code Form is subject to the terms of the Mozilla Public License
- // v. 2.0. If a copy of the MPL was not distributed with this file, You can
- // obtain one at http://mozilla.org/MPL/2.0/.
- #ifndef IGL_PATHINFO_H
- #define IGL_PATHINFO_H
- #include "igl_inline.h"
- #include <string>
- namespace igl
- {
- //// Decided not to use these
- //const int PATHINFO_DIRNAME 01
- //const int PATHINFO_BASENAME 02
- //const int PATHINFO_EXTENSION 04
- //const int PATHINFO_FILENAME 08
- /// Function like PHP's pathinfo to return information about path
- ///
- /// @param[in] path string containing input path
- /// @param[out] dirname string containing dirname (see dirname.h)
- /// @param[out] basename string containing basename (see basename.h)
- /// @param[out] extension string containing extension (characters after last '.')
- /// @param[out] filename string containing filename (characters of basename
- /// before last '.')
- ///
- ///
- /// #### Examples
- ///
- /// input | dirname basename ext filename
- /// "/" | "/" "" "" ""
- /// "//" | "/" "" "" ""
- /// "/foo" | "/" "foo" "" "foo"
- /// "/foo/" | "/" "foo" "" "foo"
- /// "/foo//" | "/" "foo" "" "foo"
- /// "/foo/./" | "/foo" "." "" ""
- /// "/foo/bar" | "/foo" "bar" "" "bar"
- /// "/foo/bar." | "/foo" "bar." "" "bar"
- /// "/foo/bar.txt" | "/foo" "bar.txt" "txt" "bar"
- /// "/foo/bar.txt.zip" | "/foo" "bar.txt.zip" "zip" "bar.txt"
- /// "/foo/bar.dir/" | "/foo" "bar.dir" "dir" "bar"
- /// "/foo/bar.dir/file" | "/foo/bar.dir" "file" "" "file"
- /// "/foo/bar.dir/file.txt" | "/foo/bar.dir" "file.txt" "txt" "file"
- ///
- /// \see basename, dirname
- IGL_INLINE void pathinfo(
- const std::string & path,
- std::string & dirname,
- std::string & basename,
- std::string & extension,
- std::string & filename);
- }
- #ifndef IGL_STATIC_LIBRARY
- # include "pathinfo.cpp"
- #endif
- #endif
|