Jean-Marc Lasgouttes wrote:
> I think I agree with it. Could you repost it please? I am lost in the
> thread :)
Sure, here it is.
Georg
Index: src/support/os_unix.C
===================================================================
--- src/support/os_unix.C (Revision 13467)
+++ src/support/os_unix.C (Arbeitskopie)
@@ -63,6 +63,12 @@ string internal_path(string const & p)
}
+string latex_path(string const & p)
+{
+ return p;
+}
+
+
bool is_absolute_path(string const & p)
{
return !p.empty() && p[0] == '/';
Index: src/support/os.h
===================================================================
--- src/support/os.h (Revision 13467)
+++ src/support/os.h (Arbeitskopie)
@@ -47,6 +47,14 @@ std::string external_path(std::string co
/// Converts a host OS style path to unix style.
std::string internal_path(std::string const & p);
+/**
+ * Converts a unix style path into a form suitable for inclusion in a LaTeX
+ * document.
+ * Caution: This function handles only the OS specific part of that task.
+ * Never use it directly, use lyx::support::latex_path instead.
+ */
+std::string latex_path(std::string const & p);
+
/// Is the path absolute?
bool is_absolute_path(std::string const & p);
Index: src/support/filetools.C
===================================================================
--- src/support/filetools.C (Revision 13467)
+++ src/support/filetools.C (Arbeitskopie)
@@ -87,6 +87,8 @@ string const latex_path(string const & o
latex_path_dots dots)
{
string path = subst(original_path, "\\", "/");
+ // On cygwin, we may need windows or posix style paths.
+ path = os::latex_path(path);
path = subst(path, "~", "\\string~");
if (path.find(' ') != string::npos) {
// We can't use '"' because " is sometimes active (e.g. if
Index: src/support/os_win32.C
===================================================================
--- src/support/os_win32.C (Revision 13467)
+++ src/support/os_win32.C (Arbeitskopie)
@@ -216,6 +216,12 @@ string internal_path(string const & p)
}
+string latex_path(string const & p)
+{
+ return p;
+}
+
+
// (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
Index: src/support/os_cygwin.C
===================================================================
--- src/support/os_cygwin.C (Revision 13467)
+++ src/support/os_cygwin.C (Arbeitskopie)
@@ -102,6 +102,15 @@ string internal_path(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.
+ return external_path(p);
+}
+
+
bool is_absolute_path(string const & p)
{
if (p.empty())