mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 18:08:10 +00:00
* Replace all use of 'slashify_path' with 'internal_path'.
* Specialise 'internal_path' and 'external_path' for Windows and Cygwin. * Enable LyX to find its system_lyxdir on Windows. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9401 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
f6d14695d4
commit
f1e9f57553
@ -1,3 +1,7 @@
|
|||||||
|
2004-12-19 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
|
* buffer.C (save): s/slashify_path/internal_path/.
|
||||||
|
|
||||||
2004-12-20 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
|
2004-12-20 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
|
||||||
|
|
||||||
* lyxfind.C (findChange): do not search for end of pars, because
|
* lyxfind.C (findChange): do not search for end of pars, because
|
||||||
|
@ -681,7 +681,7 @@ bool Buffer::save() const
|
|||||||
s = fileName() + '~';
|
s = fileName() + '~';
|
||||||
if (!lyxrc.backupdir_path.empty())
|
if (!lyxrc.backupdir_path.empty())
|
||||||
s = AddName(lyxrc.backupdir_path,
|
s = AddName(lyxrc.backupdir_path,
|
||||||
subst(os::slashify_path(s),'/','!'));
|
subst(os::internal_path(s),'/','!'));
|
||||||
|
|
||||||
// Rename is the wrong way of making a backup,
|
// Rename is the wrong way of making a backup,
|
||||||
// this is the correct way.
|
// this is the correct way.
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2004-12-19 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
|
* lyx_gui.C (start): s/slashify_path/internal_path/
|
||||||
|
|
||||||
2004-12-19 Georg Baum <Georg.Baum@post.rwth-aachen.de>
|
2004-12-19 Georg Baum <Georg.Baum@post.rwth-aachen.de>
|
||||||
|
|
||||||
* ghelpers.C (getDefaultUnit): add return statement to shut up the
|
* ghelpers.C (getDefaultUnit): add return statement to shut up the
|
||||||
|
@ -345,7 +345,7 @@ void lyx_gui::start(string const & batch, std::vector<string> const & files)
|
|||||||
|
|
||||||
lyxserver = new LyXServer(&view.getLyXFunc(), lyxrc.lyxpipes);
|
lyxserver = new LyXServer(&view.getLyXFunc(), lyxrc.lyxpipes);
|
||||||
lyxsocket = new LyXServerSocket(&view.getLyXFunc(),
|
lyxsocket = new LyXServerSocket(&view.getLyXFunc(),
|
||||||
os::slashify_path(os::getTmpDir() + "/lyxsocket"));
|
os::internal_path(os::getTmpDir() + "/lyxsocket"));
|
||||||
|
|
||||||
for_each(files.begin(), files.end(),
|
for_each(files.begin(), files.end(),
|
||||||
bind(&BufferView::loadLyXFile, view.view(), _1, true));
|
bind(&BufferView::loadLyXFile, view.view(), _1, true));
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2004-12-19 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
|
* lyx_gui.C (start): s/slashify_path/internal_path/
|
||||||
|
|
||||||
2004-12-16 Angus Leeming <leeming@lyx.org>
|
2004-12-16 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
* qt_helpers.C (fromqstr): Don't use std::string(0) to construct
|
* qt_helpers.C (fromqstr): Don't use std::string(0) to construct
|
||||||
|
@ -229,7 +229,7 @@ void start(string const & batch, vector<string> const & files)
|
|||||||
|
|
||||||
lyxserver = new LyXServer(&view.getLyXFunc(), lyxrc.lyxpipes);
|
lyxserver = new LyXServer(&view.getLyXFunc(), lyxrc.lyxpipes);
|
||||||
lyxsocket = new LyXServerSocket(&view.getLyXFunc(),
|
lyxsocket = new LyXServerSocket(&view.getLyXFunc(),
|
||||||
os::slashify_path(os::getTmpDir() + "/lyxsocket"));
|
os::internal_path(os::getTmpDir() + "/lyxsocket"));
|
||||||
|
|
||||||
for_each(files.begin(), files.end(),
|
for_each(files.begin(), files.end(),
|
||||||
bind(&BufferView::loadLyXFile, view.view(), _1, true));
|
bind(&BufferView::loadLyXFile, view.view(), _1, true));
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2004-12-19 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
|
* lyx_gui.C (start): s/slashify_path/internal_path/
|
||||||
|
|
||||||
2004-12-16 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
|
2004-12-16 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
|
||||||
|
|
||||||
* FormMathsBitmap.C: Do not split strings with blank into two
|
* FormMathsBitmap.C: Do not split strings with blank into two
|
||||||
|
@ -302,7 +302,7 @@ void start(string const & batch, vector<string> const & files)
|
|||||||
|
|
||||||
lyxserver = new LyXServer(&view->getLyXFunc(), lyxrc.lyxpipes);
|
lyxserver = new LyXServer(&view->getLyXFunc(), lyxrc.lyxpipes);
|
||||||
lyxsocket = new LyXServerSocket(&view->getLyXFunc(),
|
lyxsocket = new LyXServerSocket(&view->getLyXFunc(),
|
||||||
os::slashify_path(os::getTmpDir() + "/lyxsocket"));
|
os::internal_path(os::getTmpDir() + "/lyxsocket"));
|
||||||
|
|
||||||
for_each(files.begin(), files.end(),
|
for_each(files.begin(), files.end(),
|
||||||
bind(&BufferView::loadLyXFile, view->view(), _1, true));
|
bind(&BufferView::loadLyXFile, view->view(), _1, true));
|
||||||
|
@ -1,3 +1,23 @@
|
|||||||
|
2004-12-19 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
|
* path_defines.C.in (setLyxPaths): on a Windows build,
|
||||||
|
remove the ".exe" extension from the name of the LyX binary when
|
||||||
|
trying to ascertain the name of the LyX system directory.
|
||||||
|
(Usually, <path to binary>/../share/<name of binary>/).
|
||||||
|
|
||||||
|
* os.h, os_os2.C, os_unix.C, os_win32.C (slashify_path): remove.
|
||||||
|
|
||||||
|
* os_win32.C (init): ensure that the name of the lyx executable is
|
||||||
|
stored internally with a unix-style path.
|
||||||
|
|
||||||
|
* os_win32.C (internal_path, external_path): differentiate between
|
||||||
|
cygwin and windows builds.
|
||||||
|
|
||||||
|
* filetools.C (FileOpenSearch, GetEnvPath, createDirectory,
|
||||||
|
MakeAbsPath, AddName, MakeRelPath, ChangeExtension):
|
||||||
|
* filename.C (mangledFilename):
|
||||||
|
s/slashify_path/internal_path/.
|
||||||
|
|
||||||
2004-12-16 Angus Leeming <leeming@lyx.org>
|
2004-12-16 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
* filename.C (mangledFilename): Given a Windows-style path, don't
|
* filename.C (mangledFilename): Given a Windows-style path, don't
|
||||||
|
@ -77,7 +77,7 @@ string const FileName::mangledFilename() const
|
|||||||
return (*it).second;
|
return (*it).second;
|
||||||
|
|
||||||
// Now the real work
|
// Now the real work
|
||||||
string mname = os::slashify_path(name_);
|
string mname = os::internal_path(name_);
|
||||||
// Remove the extension.
|
// Remove the extension.
|
||||||
mname = ChangeExtension(name_, string());
|
mname = ChangeExtension(name_, string());
|
||||||
// Replace '/' in the file name with '_'
|
// Replace '/' in the file name with '_'
|
||||||
|
@ -185,7 +185,7 @@ string const FileOpenSearch(string const & path, string const & name,
|
|||||||
string tmppath = split(path, path_element, ';');
|
string tmppath = split(path, path_element, ';');
|
||||||
|
|
||||||
while (notfound && !path_element.empty()) {
|
while (notfound && !path_element.empty()) {
|
||||||
path_element = os::slashify_path(path_element);
|
path_element = os::internal_path(path_element);
|
||||||
if (!suffixIs(path_element, '/'))
|
if (!suffixIs(path_element, '/'))
|
||||||
path_element+= '/';
|
path_element+= '/';
|
||||||
path_element = subst(path_element, "$$LyX", system_lyxdir());
|
path_element = subst(path_element, "$$LyX", system_lyxdir());
|
||||||
@ -394,7 +394,7 @@ string const GetEnvPath(string const & name)
|
|||||||
#ifndef __EMX__
|
#ifndef __EMX__
|
||||||
string const pathlist = subst(GetEnv(name), ':', ';');
|
string const pathlist = subst(GetEnv(name), ':', ';');
|
||||||
#else
|
#else
|
||||||
string const pathlist = os::slashify_path(GetEnv(name));
|
string const pathlist = os::internal_path(GetEnv(name));
|
||||||
#endif
|
#endif
|
||||||
return rtrim(pathlist, ";");
|
return rtrim(pathlist, ";");
|
||||||
}
|
}
|
||||||
@ -538,7 +538,7 @@ string const createLyXTmpDir(string const & deflt)
|
|||||||
|
|
||||||
bool createDirectory(string const & path, int permission)
|
bool createDirectory(string const & path, int permission)
|
||||||
{
|
{
|
||||||
string temp(rtrim(os::slashify_path(path), "/"));
|
string temp(rtrim(os::internal_path(path), "/"));
|
||||||
|
|
||||||
BOOST_ASSERT(!temp.empty());
|
BOOST_ASSERT(!temp.empty());
|
||||||
|
|
||||||
@ -573,7 +573,7 @@ string const MakeAbsPath(string const & RelPath, string const & BasePath)
|
|||||||
return RelPath;
|
return RelPath;
|
||||||
|
|
||||||
// Copies given paths
|
// Copies given paths
|
||||||
string TempRel(os::slashify_path(RelPath));
|
string TempRel(os::internal_path(RelPath));
|
||||||
// Since TempRel is NOT absolute, we can safely replace "//" with "/"
|
// Since TempRel is NOT absolute, we can safely replace "//" with "/"
|
||||||
TempRel = subst(TempRel, "//", "/");
|
TempRel = subst(TempRel, "//", "/");
|
||||||
|
|
||||||
@ -624,7 +624,7 @@ string const MakeAbsPath(string const & RelPath, string const & BasePath)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// returns absolute path
|
// returns absolute path
|
||||||
return os::slashify_path(TempBase);
|
return os::internal_path(TempBase);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -639,7 +639,7 @@ string const AddName(string const & path, string const & fname)
|
|||||||
string buf;
|
string buf;
|
||||||
|
|
||||||
if (path != "." && path != "./" && !path.empty()) {
|
if (path != "." && path != "./" && !path.empty()) {
|
||||||
buf = os::slashify_path(path);
|
buf = os::internal_path(path);
|
||||||
if (!suffixIs(path, '/'))
|
if (!suffixIs(path, '/'))
|
||||||
buf += '/';
|
buf += '/';
|
||||||
}
|
}
|
||||||
@ -840,10 +840,10 @@ string const MakeRelPath(string const & abspath, string const & basepath)
|
|||||||
string const AddPath(string const & path, string const & path_2)
|
string const AddPath(string const & path, string const & path_2)
|
||||||
{
|
{
|
||||||
string buf;
|
string buf;
|
||||||
string const path2 = os::slashify_path(path_2);
|
string const path2 = os::internal_path(path_2);
|
||||||
|
|
||||||
if (!path.empty() && path != "." && path != "./") {
|
if (!path.empty() && path != "." && path != "./") {
|
||||||
buf = os::slashify_path(path);
|
buf = os::internal_path(path);
|
||||||
if (path[path.length() - 1] != '/')
|
if (path[path.length() - 1] != '/')
|
||||||
buf += '/';
|
buf += '/';
|
||||||
}
|
}
|
||||||
@ -877,7 +877,7 @@ string const ChangeExtension(string const & oldname, string const & extension)
|
|||||||
else
|
else
|
||||||
ext = extension;
|
ext = extension;
|
||||||
|
|
||||||
return os::slashify_path(oldname.substr(0, last_dot) + ext);
|
return os::internal_path(oldname.substr(0, last_dot) + ext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -47,8 +47,6 @@ std::string current_root();
|
|||||||
shell_type shell();
|
shell_type shell();
|
||||||
// DBCS aware!
|
// DBCS aware!
|
||||||
std::string::size_type common_path(std::string const & p1, std::string const & p2);
|
std::string::size_type common_path(std::string const & p1, std::string const & p2);
|
||||||
// no-op on UNIX, '\\'->'/' on OS/2 and Win32, ':'->'/' on MacOS, etc.
|
|
||||||
std::string slashify_path(std::string const & p);
|
|
||||||
// Converts a unix style path to host OS style.
|
// Converts a unix style path to host OS style.
|
||||||
std::string external_path(std::string const & p);
|
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.
|
||||||
|
@ -56,7 +56,7 @@ void init(int argc, char * argv[])
|
|||||||
if (rc != NO_ERROR)
|
if (rc != NO_ERROR)
|
||||||
exit(rc);
|
exit(rc);
|
||||||
string p = tmp.get();
|
string p = tmp.get();
|
||||||
p = slashify_path(p);
|
p = internal_path(p);
|
||||||
binname_ = OnlyFilename(p);
|
binname_ = OnlyFilename(p);
|
||||||
binname_.erase(binname_.length()-4, string::npos);
|
binname_.erase(binname_.length()-4, string::npos);
|
||||||
binpath_ = OnlyPath(p);
|
binpath_ = OnlyPath(p);
|
||||||
@ -128,8 +128,8 @@ string::size_type common_path(string const & p1, string const & p2)
|
|||||||
COUNTRYCODE cntry;
|
COUNTRYCODE cntry;
|
||||||
cntry.country = 0;
|
cntry.country = 0;
|
||||||
cntry.codepage = cp_;
|
cntry.codepage = cp_;
|
||||||
string temp1 = slashify_path(p1);
|
string temp1 = internal_path(p1);
|
||||||
string temp2 = slashify_path(p2);
|
string temp2 = internal_path(p2);
|
||||||
char * tmp1 = const_cast<char *> (temp1.c_str());
|
char * tmp1 = const_cast<char *> (temp1.c_str());
|
||||||
char * tmp2 = const_cast<char *> (temp2.c_str());
|
char * tmp2 = const_cast<char *> (temp2.c_str());
|
||||||
/* rc = */ DosMapCase(p1.length(), &cntry, tmp1);
|
/* rc = */ DosMapCase(p1.length(), &cntry, tmp1);
|
||||||
@ -157,7 +157,7 @@ string::size_type common_path(string const & p1, string const & p2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string slashify_path(string const & p)
|
string internal_path(string const & p)
|
||||||
{
|
{
|
||||||
static bool initialized = false;
|
static bool initialized = false;
|
||||||
static bool leadbyte[256] = {false};
|
static bool leadbyte[256] = {false};
|
||||||
@ -202,12 +202,6 @@ string external_path(string const & p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string internal_path(string const & p)
|
|
||||||
{
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool is_absolute_path(string const & p)
|
bool is_absolute_path(string const & p)
|
||||||
{
|
{
|
||||||
return (p.length() > 1
|
return (p.length() > 1
|
||||||
|
@ -96,12 +96,6 @@ string::size_type common_path(string const & p1, string const & p2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string slashify_path(string const & p)
|
|
||||||
{
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
string external_path(string const & p)
|
string external_path(string const & p)
|
||||||
{
|
{
|
||||||
return p;
|
return p;
|
||||||
|
@ -49,7 +49,7 @@ void init(int /* argc */, char * argv[])
|
|||||||
return;
|
return;
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
|
||||||
string tmp = argv[0];
|
string tmp = internal_path(argv[0]);
|
||||||
binname_ = OnlyFilename(tmp);
|
binname_ = OnlyFilename(tmp);
|
||||||
tmp = ExpandPath(tmp); // This expands ./ and ~/
|
tmp = ExpandPath(tmp); // This expands ./ and ~/
|
||||||
|
|
||||||
@ -57,7 +57,7 @@ void init(int /* argc */, char * argv[])
|
|||||||
string binsearchpath = GetEnvPath("PATH");
|
string binsearchpath = GetEnvPath("PATH");
|
||||||
// This will make "src/lyx" work always :-)
|
// This will make "src/lyx" work always :-)
|
||||||
binsearchpath += ";.";
|
binsearchpath += ";.";
|
||||||
tmp = argv[0];
|
tmp = internal_path(argv[0]);
|
||||||
tmp = FileOpenSearch(binsearchpath, tmp);
|
tmp = FileOpenSearch(binsearchpath, tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -113,20 +113,25 @@ string::size_type common_path(string const & p1, string const & p2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string slashify_path(string const & p)
|
|
||||||
{
|
|
||||||
return subst(p, '\\', '/');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
string external_path(string const & p)
|
string external_path(string const & p)
|
||||||
{
|
{
|
||||||
string dos_path = p;
|
string dos_path;
|
||||||
|
#ifdef __CYGWIN__
|
||||||
|
// Translate from cygwin path syntax to dos path syntax
|
||||||
if (is_absolute_path(p)) {
|
if (is_absolute_path(p)) {
|
||||||
char dp[255];
|
char dp[MAX_PATH];
|
||||||
cygwin_conv_to_full_win32_path(p.c_str(), dp);
|
cygwin_conv_to_full_win32_path(p.c_str(), dp);
|
||||||
dos_path = subst(dp,'\\','/');
|
dos_path = !dp ? "" : dp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else return p;
|
||||||
|
#else // regular Win32
|
||||||
|
dos_path = p;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//No backslashes in LaTeX files
|
||||||
|
dos_path = subst(dos_path,'\\','/');
|
||||||
|
|
||||||
lyxerr[Debug::LATEX]
|
lyxerr[Debug::LATEX]
|
||||||
<< "<Win32 path correction> ["
|
<< "<Win32 path correction> ["
|
||||||
<< p << "]->>["
|
<< p << "]->>["
|
||||||
@ -141,9 +146,13 @@ string external_path(string const & p)
|
|||||||
// the Win32/DOS pathnames into Cygwin pathnames.
|
// the Win32/DOS pathnames into Cygwin pathnames.
|
||||||
string internal_path(string const & p)
|
string internal_path(string const & p)
|
||||||
{
|
{
|
||||||
char pp[256];
|
#ifdef __CYGWIN__
|
||||||
|
char pp[MAX_PATH];
|
||||||
cygwin_conv_to_posix_path(p.c_str(), pp);
|
cygwin_conv_to_posix_path(p.c_str(), pp);
|
||||||
string const posix_path = MakeLatexName(pp);
|
string const posix_path = MakeLatexName(pp);
|
||||||
|
#else
|
||||||
|
string const posix_path = subst(p,"\\","/");
|
||||||
|
#endif
|
||||||
lyxerr[Debug::DEPEND]
|
lyxerr[Debug::DEPEND]
|
||||||
<< "<Win32 path correction> ["
|
<< "<Win32 path correction> ["
|
||||||
<< p << "]->>["
|
<< p << "]->>["
|
||||||
|
@ -217,8 +217,18 @@ bool setLyxPaths()
|
|||||||
bool followlink;
|
bool followlink;
|
||||||
do {
|
do {
|
||||||
// Path of binary/../share/name of binary/
|
// Path of binary/../share/name of binary/
|
||||||
searchpath += NormalizePath(AddPath(binpath, "../share/") +
|
string const exe_name = OnlyFilename(binname);
|
||||||
OnlyFilename(binname)) + ';';
|
#ifdef _WIN32
|
||||||
|
string const lyx_system_dir_name =
|
||||||
|
suffixIs(exe_name, ".exe") ?
|
||||||
|
ChangeExtension(exe_name, "") :
|
||||||
|
exe_name;
|
||||||
|
#else
|
||||||
|
string const lyx_system_dir_name = exe_name;
|
||||||
|
#endif
|
||||||
|
string const shared_dir_name =
|
||||||
|
NormalizePath(AddPath(binpath, "../share/"));
|
||||||
|
searchpath += shared_dir_name + lyx_system_dir_name + ';';
|
||||||
|
|
||||||
// Follow Symlinks
|
// Follow Symlinks
|
||||||
FileInfo file(fullbinpath, true);
|
FileInfo file(fullbinpath, true);
|
||||||
|
Loading…
Reference in New Issue
Block a user