]> git.lyx.org Git - lyx.git/blobdiff - src/support/FileName.h
add onoff support for "inset-modify changetype xxx" in include inset
[lyx.git] / src / support / FileName.h
index af35575286786212c78dd9142a7da367420beb50..0a433d278fe811dba290fb0db45f44496f6b0490 100644 (file)
@@ -60,10 +60,16 @@ public:
        /// Is this filename empty?
        bool empty() const;
        /// Is the filename absolute?
-       bool isAbsolute() const;
+       static bool isAbsolute(std::string const & name);
 
        /// get the absolute file name in UTF-8 encoding
        std::string absFilename() const;
+
+       /** returns an absolute pathname (whose resolution does not involve
+         * '.', '..', or symbolic links) in UTF-8 encoding
+         */
+       std::string realPath() const;
+
        /**
         * Get the file name in the encoding used by the file system.
         * Only use this for accessing the file, e.g. with an fstream.
@@ -80,7 +86,7 @@ public:
        std::time_t lastModified() const;
        /// generates a checksum of a file
        virtual unsigned long checksum() const;
-       /// return true when file is readable but not writabel
+       /// return true when file is readable but not writable
        bool isReadOnly() const;
        /// return true when it names a directory
        bool isDirectory() const;
@@ -170,8 +176,13 @@ public:
 
        /// filename without path
        std::string onlyFileName() const;
-        /// filename without path and without extension
-        std::string onlyFileNameWithoutExt() const;
+       /// filename without path and without extension
+       std::string onlyFileNameWithoutExt() const;
+       /// only extension after the last dot.
+       std::string extension() const;
+       /** checks if the file has the given extension
+               on Windows and Mac it compares case insensitive */
+       bool hasExtension(const std::string & ext);
        /// path without file name
        FileName onlyPath() const;
        /// used for display in the Gui
@@ -186,12 +197,14 @@ public:
        docstring const absoluteFilePath() const;
 
 private:
+       friend bool equivalent(FileName const &, FileName const &);
        ///
        struct Private;
        Private * const d;
 };
 
 
+bool equivalent(FileName const &, FileName const &);
 bool operator==(FileName const &, FileName const &);
 bool operator!=(FileName const &, FileName const &);
 bool operator<(FileName const &, FileName const &);