Fix latex_path on cygwin:

* src/support/os.h
        * src/support/os_unix.C
        * src/support/os_win32.C
        * src/support/os_cygwin.C
        (latex_path): new function, handle the OS-specific part of
        lyx::support::latex_path

        * src/support/filetools.C
        (latex_path): use lyx::os::support::latex_path (bug 2409)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_4_X@13475 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Georg Baum 2006-03-24 12:53:46 +00:00
parent 9426c1d394
commit 6370b5ca98
6 changed files with 33 additions and 0 deletions

View File

@ -87,6 +87,8 @@ string const latex_path(string const & original_path,
latex_path_dots dots) latex_path_dots dots)
{ {
string path = subst(original_path, "\\", "/"); string path = subst(original_path, "\\", "/");
// On cygwin, we may need windows or posix style paths.
path = os::latex_path(path);
path = subst(path, "~", "\\string~"); path = subst(path, "~", "\\string~");
if (path.find(' ') != string::npos) { if (path.find(' ') != string::npos) {
// We can't use '"' because " is sometimes active (e.g. if // We can't use '"' because " is sometimes active (e.g. if

View File

@ -47,6 +47,14 @@ std::string external_path(std::string const & p);
/// Converts a host OS style path to unix style. /// Converts a host OS style path to unix style.
std::string internal_path(std::string const & p); 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? /// Is the path absolute?
bool is_absolute_path(std::string const & p); bool is_absolute_path(std::string const & p);

View File

@ -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) bool is_absolute_path(string const & p)
{ {
if (p.empty()) if (p.empty())

View File

@ -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) bool is_absolute_path(string const & p)
{ {
return !p.empty() && p[0] == '/'; return !p.empty() && p[0] == '/';

View File

@ -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. // (Claus H.) On Win32 both Unix and Win32/DOS pathnames are used.
// Therefore an absolute path could be either a pathname starting // Therefore an absolute path could be either a pathname starting
// with a slash (Unix) or a pathname starting with a drive letter // with a slash (Unix) or a pathname starting with a drive letter

View File

@ -40,6 +40,8 @@ What's new
- Convert old LyX documents with a float list at the end correctly in - Convert old LyX documents with a float list at the end correctly in
lyx2lyx (bug 2245). lyx2lyx (bug 2245).
- Set search path for included files correctly on Cygwin (bug 2409)
* User Interface: * User Interface:
- Convert line endings for external copy/paste on OS X (bug 1955). - Convert line endings for external copy/paste on OS X (bug 1955).