]> git.lyx.org Git - lyx.git/blobdiff - src/support/FileName.h
tiger support on mac snow leopard, include Qt4 frameworks, smart build script with...
[lyx.git] / src / support / FileName.h
index 3d64ad091f5e40d41b74895936e4aef2c9b61595..bb17de411f20f61a6843900bec2c25ed1b5f97f5 100644 (file)
@@ -12,6 +12,7 @@
 #ifndef FILENAME_H
 #define FILENAME_H
 
+#include "support/os.h"
 #include "support/strfwd.h"
 
 #include <ctime>
@@ -72,10 +73,25 @@ public:
 
        /**
         * Get the file name in the encoding used by the file system.
-        * Only use this for accessing the file, e.g. with an fstream.
+        * Only use this for passing file names to external commands.
+        * Warning: On Windows this is not unicode safe and should not
+        * be used for accessing files with an fstream, for example.
         */
        std::string toFilesystemEncoding() const;
 
+       /**
+        * Get the file name in a unicode safe encoding used by the file system.
+        * Only use this for accessing the file with standard I/O functions
+        * non explicitly unicode aware, e.g. with an fstream. This can also
+        * be used for passing file names to external commands, but only if
+        * you are sure that the stem of the name will not be used for
+        * producing derivative files. For example, don't use this for passing
+        * file names to LaTeX, as the stem of the .dvi file will not correspond
+        * to the stem of the .tex file anymore.
+        * Use os::CREATE if the file is to be accessed for writing.
+        */
+       std::string toSafeFilesystemEncoding(os::file_access how = os::EXISTING) const;
+
        /// returns true if the file exists
        bool exists() const;
        /// refreshes the file info