#include <config.h>
+#include "LyX.h"
#include "LyXRC.h"
#include "support/filetools.h"
#endif
#include <cerrno>
+#include <climits>
#include <cstdlib>
#include <cstdio>
}
-// Create absolute path. If impossible, don't do anything
-// Supports ./ and ~/. Later we can add support for ~logname/. (Asger)
-string const expandPath(string const & path)
-{
- // checks for already absolute path
- string rTemp = replaceEnvironmentPath(path);
- if (FileName::isAbsolute(rTemp))
- return rTemp;
-
- string temp;
- string const copy = rTemp;
-
- // Split by next /
- rTemp = split(rTemp, temp, '/');
-
- if (temp == ".")
- return FileName::getcwd().absFileName() + '/' + rTemp;
-
- if (temp == "~")
- return Package::get_home_dir().absFileName() + '/' + rTemp;
-
- if (temp == "..")
- return makeAbsPath(copy).absFileName();
-
- // Don't know how to handle this
- return copy;
-}
-
-
// Search the string for ${VAR} and $VAR and replace VAR using getenv.
string const replaceEnvironmentPath(string const & path)
{
// pstream (process stream), with the
// variants ipstream, opstream
+ if (verbose)
+ lyxerr << "\nRunning: " << cmd << endl;
+ else
+ LYXERR(Debug::INFO,"Running: " << cmd);
+
#if defined (_WIN32)
STARTUPINFO startup;
PROCESS_INFORMATION process;
0, 0, &startup, &process)) {
CloseHandle(process.hThread);
- int fno = _open_osfhandle(static_cast<intptr_t>(in), _O_RDONLY);
+ int fno = _open_osfhandle((intptr_t)in, _O_RDONLY);
CloseHandle(out);
inf = _fdopen(fno, "r");
}
#if defined (_WIN32)
WaitForSingleObject(process.hProcess, INFINITE);
+ DWORD pret;
+ if (!GetExitCodeProcess(process.hProcess, &pret))
+ pret = -1;
if (!infile.empty())
CloseHandle(startup.hStdInput);
CloseHandle(process.hProcess);
- int const pret = fclose(inf);
+ if (fclose(inf) != 0)
+ pret = -1;
#elif defined (HAVE_PCLOSE)
int const pret = pclose(inf);
#elif defined (HAVE__PCLOSE)