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())

Reply via email to