]> git.lyx.org Git - lyx.git/blobdiff - src/support/os_win32.C
fix typo that put too many include paths for most people
[lyx.git] / src / support / os_win32.C
index a248f04a97aec679e75af7a16304da09c7be59bd..8d2b848732bd059772b7132de27b91348f0823cc 100644 (file)
@@ -5,6 +5,8 @@
 
 #include "os.h"
 #include "support/filetools.h"
+#include "support/lstrings.h"
+#include "debug.h"
 
 #include <windows.h>
 #include <io.h>
@@ -17,7 +19,9 @@ string os::tmpdir_ = string();
 os::shell_type os::_shell = os::UNIX;
 unsigned long os::cp_ = 0;
 
-void os::init(int * argc, char ** argv[]) {
+using std::endl;
+
+void os::init(int * /* argc */, char ** argv[]) {
        static bool initialized = false;
        if (initialized) return;
        initialized = true;
@@ -25,7 +29,7 @@ void os::init(int * argc, char ** argv[]) {
        binname_ = OnlyFilename(tmp);
        tmp = ExpandPath(tmp); // This expands ./ and ~/
 
-       if (!AbsolutePath(tmp)) {
+       if (!is_absolute_path(tmp)) {
                string binsearchpath = GetEnvPath("PATH");
                // This will make "src/lyx" work always :-)
                binsearchpath += ";.";
@@ -68,9 +72,9 @@ string os::slashify_path(string p) {
                return subst(p, '\\', '/');
 }
 
-string os::external_path(string p) {
+string os::external_path(string const & p) {
        string dos_path=p;
-       if (AbsolutePath(p)) {
+       if (is_absolute_path(p)) {
                char dp[255];
                cygwin_conv_to_full_win32_path(p.c_str(), dp);
                dos_path=subst(dp,'\\','/');
@@ -82,11 +86,12 @@ string os::external_path(string p) {
        return dos_path;
 }
 
+
 // (Claus H.) Parsing the latex log file in an Win32 environment all
 // files are mentioned in Win32/DOS syntax. Because LyX uses the dep file
 // entries to check if any file has been changed we must retranslate
 // the Win32/DOS pathnames into Cygwin pathnames.
-string os::internal_path(string p) {
+string os::internal_path(string const &p) {
        char pp[256];
        cygwin_conv_to_posix_path(p.c_str(), pp);
        string const posix_path = MakeLatexName(pp);
@@ -96,3 +101,27 @@ string os::internal_path(string p) {
                << posix_path << "]" << endl;
        return posix_path;
 }
+
+// (Claus H.) On Win32 both Unix and Win32/DOS pathnames are used.
+// Therefore an absolute path could be either a pathname starting
+// with a slash (Unix) or a pathname starting with a drive letter
+// followed by a colon. Because a colon is not valid in pathes in Unix
+// and at another location in Win32 testing just for the existance
+// of the colon in the 2nd position seems to be enough!
+bool os::is_absolute_path(string const & p)
+{
+       if (p.empty())
+               return false;
+
+       bool isDosPath = (p.length() > 1 && p[1] == ':');
+       bool isUnixPath = (p[0] == '/');
+
+       return isDosPath | isUnixPath;
+}
+
+// returns a string suitable to be passed to fopen/popen when
+// reading a file
+char const * os::read_mode()
+{
+       return "rb";
+}