commit 40b1a6f9b1d8974b543a79ca77de19d01476eab7
Author: Juergen Spitzmueller <[email protected]>
Date: Wed Feb 12 16:11:01 2020 +0100
Revert "Fix bug #11712."
This breaks on Linux
This reverts commit fdf81a9bab2f4f50a3eaf22cc0e09ac454f470ed.
---
src/support/filetools.cpp | 4 ++--
src/support/os.cpp | 40 +++++++++++++++++++++++++++++-----------
2 files changed, 31 insertions(+), 13 deletions(-)
diff --git a/src/support/filetools.cpp b/src/support/filetools.cpp
index bca242d..e811995 100644
--- a/src/support/filetools.cpp
+++ b/src/support/filetools.cpp
@@ -635,7 +635,7 @@ string const addName(string const & path, string const &
fname)
if (path != "." && path != "./" && !path.empty()) {
buf = os::internal_path(path);
- if (!suffixIs(buf, '/'))
+ if (!suffixIs(path, '/'))
buf += '/';
}
@@ -1039,7 +1039,7 @@ cmd_ret const runCommand(string const & cmd)
command = rtrim(command, "2>&1");
err2out = true;
}
- string const cmdarg = "/d /c \"" + command+"\"";
+ string const cmdarg = "/d /c " + command;
string const comspec = getEnv("COMSPEC");
security.nLength = sizeof(SECURITY_ATTRIBUTES);
diff --git a/src/support/os.cpp b/src/support/os.cpp
index b1e4e09..10430bf 100644
--- a/src/support/os.cpp
+++ b/src/support/os.cpp
@@ -48,7 +48,7 @@ int timeout_min()
static string const python23_call(string const & binary, bool verbose = false)
{
- const string version_info = " -c \"from __future__ import
print_function;import sys; print(sys.version_info[:2], end=\\\"\\\")\"";
+ const string version_info = " -c 'from __future__ import
print_function;import sys; print(sys.version_info[:2], end=\"\")'";
// Default to "python" if no binary is given.
if (binary.empty())
return "python -tt";
@@ -89,31 +89,49 @@ static string const find_python_binary()
// PEP 397 -- Python launcher for Windows
// https://www.python.org/dev/peps/pep-0397/
- // Check through python launcher whether python3 is
- // installed on computer.
- string command = python23_call("py -3");
+ // Check whether python3 in PATH is the right one.
+ string command = python23_call("python3");
if (!command.empty())
return command;
+ // python3 does not exists, let us try to find python3.x in PATH
+ // the search is probably broader than required
+ // but we are trying hard to find a valid python binary
+ vector<string> const path = getEnvPath("PATH");
+ lyxerr << "Looking for python 3.x ...\n";
+ for (auto bin : path) {
+ QString const dir = toqstr(bin);
+ string const localdir = dir.toLocal8Bit().constData();
+ QDir qdir(dir);
+ qdir.setFilter(QDir::Files | QDir::Executable);
+ QStringList list = qdir.entryList(QStringList("python3*"));
+ for (auto bin2 : list) {
+ string const binary = addName(localdir,
+ bin2.toLocal8Bit().constData());
+ command = python23_call(binary, true);
+ if (!command.empty())
+ return command;
+ }
+ }
+
// python 3 was not found let us look for python 2
- command = python23_call("py -2");
+ command = python23_call("python2");
if (!command.empty())
return command;
- // python3 does not exists, let us try to find python3.x in PATH
+ // python2 does not exists, let us try to find python2.x in PATH
// the search is probably broader than required
// but we are trying hard to find a valid python binary
- vector<string> const path = getEnvPath("PATH");
- lyxerr << "Looking for python in PATH ...\n";
+ lyxerr << "Looking for python 2.x ...\n";
for (auto bin : path) {
QString const dir = toqstr(bin);
string const localdir = dir.toLocal8Bit().constData();
QDir qdir(dir);
qdir.setFilter(QDir::Files | QDir::Executable);
- QStringList list = qdir.entryList(QStringList("python*"));
+ QStringList list = qdir.entryList(QStringList("python2*"));
for (auto bin2 : list) {
- string const binary = "\"" + addName(localdir,
- bin2.toLocal8Bit().constData()) + "\"";
+ string const binary = addName(localdir,
+ bin2.toLocal8Bit().constData());
command = python23_call(binary, true);
if (!command.empty())
return command;
--
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs