]> git.lyx.org Git - lyx.git/blobdiff - src/support/os_cygwin.C
hopefully fix tex2lyx linking.
[lyx.git] / src / support / os_cygwin.C
index 094b50788a450ffb62826a43aa5efeb683621a8a..fafbaccf5cbe86fd1e5b56f4a41d884190c8b59a 100644 (file)
@@ -39,7 +39,7 @@ namespace os {
 
 namespace {
 
-bool cygwin_path_fix_ = false;
+bool windows_style_tex_paths_ = false;
 
 // In both is_posix_path() and is_windows_path() it is assumed that
 // a valid posix or pseudo-windows path is passed. They simply tell
@@ -55,8 +55,7 @@ bool is_posix_path(string const & p)
 
 bool is_windows_path(string const & p)
 {
-       return p.empty() ||
-               (!contains(p, '\\') && (p.length() <= 1 || p[1] == ':'));
+       return p.empty() || (!contains(p, '\\') && p[0] != '/');
 }
 
 
@@ -87,6 +86,9 @@ string convert_path(string const & p, PathStyle const & target)
 
 string convert_path_list(string const & p, PathStyle const & target)
 {
+       if (p.empty())
+               return p;
+
        char const * const pc = p.c_str();
        PathStyle const actual = cygwin_posix_path_list_p(pc) ? posix : windows;
 
@@ -186,8 +188,11 @@ string::size_type common_path(string const & p1, string const & p2)
 
 string external_path(string const & p)
 {
-       return convert_path(p, cygwin_path_fix_ ? PathStyle(windows)
-                                               : PathStyle(posix));
+#ifdef X_DISPLAY_MISSING
+       return convert_path(p, PathStyle(windows));
+#else
+       return convert_path(p, PathStyle(posix));
+#endif
 }
 
 
@@ -199,8 +204,11 @@ string internal_path(string const & p)
 
 string external_path_list(string const & p)
 {
-       return convert_path_list(p, cygwin_path_fix_ ? PathStyle(windows)
-                                                    : PathStyle(posix));
+#ifdef X_DISPLAY_MISSING
+       return convert_path_list(p, PathStyle(windows));
+#else
+       return convert_path_list(p, PathStyle(posix));
+#endif
 }
 
 
@@ -213,13 +221,13 @@ string internal_path_list(string const & p)
 string latex_path(string const & p)
 {
        // We may need a posix style path or a windows style path (depending
-       // on cygwin_path_fix_), but we use always forward slashes, since it
-       // gets written into a .tex file.
+       // on windows_style_tex_paths_), but we use always forward slashes,
+       // since it gets written into a .tex file.
 
-       if (cygwin_path_fix_ && is_absolute_path(p)) {
+       if (windows_style_tex_paths_ && is_absolute_path(p)) {
                string dos_path = convert_path(p, PathStyle(windows));
                lyxerr[Debug::LATEX]
-                       << "<Cygwin path correction> ["
+                       << "<Path correction for LaTeX> ["
                        << p << "]->>["
                        << dos_path << ']' << endl;
                return dos_path;
@@ -268,9 +276,9 @@ char path_separator()
 }
 
 
-void cygwin_path_fix(bool use_cygwin_paths)
+void windows_style_tex_paths(bool use_windows_paths)
 {
-       cygwin_path_fix_ = use_cygwin_paths;
+       windows_style_tex_paths_ = use_windows_paths;
 }
 
 
@@ -278,11 +286,8 @@ bool canAutoOpenFile(string const & ext, auto_open_mode const mode)
 {
        if (ext.empty())
                return false;
-       
-       string full_ext = ext;
-       // if the extension is passed without leading dot
-       if (full_ext[0] != '.')
-               full_ext = "." + ext;
+
+       string const full_ext = "." + ext;
 
        DWORD bufSize = MAX_PATH + 100;
        TCHAR buf[MAX_PATH + 100];
@@ -298,10 +303,9 @@ bool autoOpenFile(string const & filename, auto_open_mode const mode)
 {
        // reference: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc
        //                 /platform/shell/reference/functions/shellexecute.asp
-       string const win_path =
-               os::convert_path(filename, os::PathStyle(os::windows));
+       string const win_path = convert_path(filename, PathStyle(windows));
        char const * action = (mode == VIEW) ? "open" : "edit";
-       return reinterpret_cast<int>(ShellExecute(NULL, action, 
+       return reinterpret_cast<int>(ShellExecute(NULL, action,
                win_path.c_str(), NULL, NULL, 1)) > 32;
 }