mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-29 13:04:58 +00:00
OS Abstraction of "HOME" and the null device.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9376 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
b7e87f4b11
commit
4b7891d873
@ -1,3 +1,11 @@
|
|||||||
|
2004-12-14 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
|
* LaTeX.C: (startscript): use os::nulldev() rather than "/dev/null".
|
||||||
|
|
||||||
|
* bufferlist.C (emergencyWrite):
|
||||||
|
* lyx_main.C (queryUserLyXDir): use os::homepath(), not
|
||||||
|
GetEnvPath("HOME").
|
||||||
|
|
||||||
2004-12-14 Angus Leeming <leeming@lyx.org>
|
2004-12-14 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
* main.C: (main): no longer pass pointers to os::init.
|
* main.C: (main): no longer pass pointers to os::init.
|
||||||
|
@ -384,11 +384,7 @@ int LaTeX::run(TeXErrors & terr)
|
|||||||
|
|
||||||
int LaTeX::startscript()
|
int LaTeX::startscript()
|
||||||
{
|
{
|
||||||
#ifndef __EMX__
|
string tmp = cmd + ' ' + QuoteName(file) + " > " + os::nulldev();
|
||||||
string tmp = cmd + ' ' + QuoteName(file) + " > /dev/null";
|
|
||||||
#else // cmd.exe (OS/2) causes SYS0003 error at "/dev/null"
|
|
||||||
string tmp = cmd + ' ' + file + " > nul";
|
|
||||||
#endif
|
|
||||||
Systemcall one;
|
Systemcall one;
|
||||||
return one.startscript(Systemcall::Wait, tmp);
|
return one.startscript(Systemcall::Wait, tmp);
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#include "frontends/Alert.h"
|
#include "frontends/Alert.h"
|
||||||
|
|
||||||
#include "support/filetools.h"
|
#include "support/filetools.h"
|
||||||
|
#include "support/os.h"
|
||||||
|
|
||||||
#include <boost/bind.hpp>
|
#include <boost/bind.hpp>
|
||||||
|
|
||||||
@ -55,6 +56,7 @@ using std::vector;
|
|||||||
using std::back_inserter;
|
using std::back_inserter;
|
||||||
using std::transform;
|
using std::transform;
|
||||||
|
|
||||||
|
namespace os = lyx::support::os;
|
||||||
|
|
||||||
BufferList::BufferList()
|
BufferList::BufferList()
|
||||||
{}
|
{}
|
||||||
@ -309,7 +311,7 @@ void BufferList::emergencyWrite(Buffer * buf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 2) In HOME directory.
|
// 2) In HOME directory.
|
||||||
string s = AddName(GetEnvPath("HOME"), buf->fileName());
|
string s = AddName(os::homepath(), buf->fileName());
|
||||||
s += ".emergency";
|
s += ".emergency";
|
||||||
lyxerr << ' ' << s << endl;
|
lyxerr << ' ' << s << endl;
|
||||||
if (buf->writeFile(s)) {
|
if (buf->writeFile(s)) {
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2004-12-14 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
|
* FormFiledialog.C: (FileDlgCB): use os::homepath(), not
|
||||||
|
GetEnvPath("HOME").
|
||||||
|
|
||||||
2004-12-05 Angus Leeming <leeming@lyx.org>
|
2004-12-05 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
* pch.h: s@<X11/forms.h>@"lyx_forms.h"@
|
* pch.h: s@<X11/forms.h>@"lyx_forms.h"@
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include "support/globbing.h"
|
#include "support/globbing.h"
|
||||||
#include "support/lstrings.h"
|
#include "support/lstrings.h"
|
||||||
#include "support/lyxlib.h"
|
#include "support/lyxlib.h"
|
||||||
|
#include "support/os.h"
|
||||||
#include "support/tostr.h"
|
#include "support/tostr.h"
|
||||||
|
|
||||||
#include "lyx_forms.h"
|
#include "lyx_forms.h"
|
||||||
@ -82,6 +83,7 @@ using std::map;
|
|||||||
using std::vector;
|
using std::vector;
|
||||||
|
|
||||||
using namespace lyx::frontend;
|
using namespace lyx::frontend;
|
||||||
|
namespace os = lyx::support::os;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
@ -617,7 +619,7 @@ void FileDialog::Private::FileDlgCB(FL_OBJECT *, long arg)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 11: // home
|
case 11: // home
|
||||||
current_dlg_->SetDirectory(GetEnvPath("HOME"));
|
current_dlg_->SetDirectory(os::homepath());
|
||||||
current_dlg_->SetFilters(fl_get_input(file_dlg_form_->PatBox));
|
current_dlg_->SetFilters(fl_get_input(file_dlg_form_->PatBox));
|
||||||
current_dlg_->Reread();
|
current_dlg_->Reread();
|
||||||
break;
|
break;
|
||||||
|
@ -77,6 +77,8 @@ using lyx::support::user_lyxdir;
|
|||||||
using lyx::support::os::getTmpDir;
|
using lyx::support::os::getTmpDir;
|
||||||
using lyx::support::os::setTmpDir;
|
using lyx::support::os::setTmpDir;
|
||||||
|
|
||||||
|
namespace os = lyx::support::os;
|
||||||
|
|
||||||
using std::endl;
|
using std::endl;
|
||||||
using std::string;
|
using std::string;
|
||||||
using std::vector;
|
using std::vector;
|
||||||
@ -552,7 +554,7 @@ void LyX::queryUserLyXDir(bool explicit_userdir)
|
|||||||
|
|
||||||
if (!createDirectory(user_lyxdir(), 0755)) {
|
if (!createDirectory(user_lyxdir(), 0755)) {
|
||||||
// Failed, let's use $HOME instead.
|
// Failed, let's use $HOME instead.
|
||||||
user_lyxdir(GetEnvPath("HOME"));
|
user_lyxdir(os::homepath());
|
||||||
lyxerr << bformat(_("Failed. Will use %1$s instead."),
|
lyxerr << bformat(_("Failed. Will use %1$s instead."),
|
||||||
user_lyxdir()) << endl;
|
user_lyxdir()) << endl;
|
||||||
return;
|
return;
|
||||||
|
@ -1,3 +1,15 @@
|
|||||||
|
2004-12-14 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
|
* os.h, os_os2.C, os_unix.C, os_win32.C:
|
||||||
|
(binpath, binname, getTmpDir): return a const reference rather than
|
||||||
|
a copy of the data.
|
||||||
|
(homepath, nulldev): new functions returning the name of "HOME" and
|
||||||
|
the null device, respectively.
|
||||||
|
|
||||||
|
* filetools.C: (ExpandPath, MakeDisplayPath):
|
||||||
|
* path_defines.C.in (setLyxPaths): use os::homepath(), not
|
||||||
|
GetEnvPath("HOME").
|
||||||
|
|
||||||
2004-12-14 Angus Leeming <leeming@lyx.org>
|
2004-12-14 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
* os.h, os_{os2,unix,win32}.C (init): change interface to no longer
|
* os.h, os_{os2,unix,win32}.C (init): change interface to no longer
|
||||||
|
@ -690,7 +690,7 @@ string const ExpandPath(string const & path)
|
|||||||
return getcwd() + '/' + RTemp;
|
return getcwd() + '/' + RTemp;
|
||||||
}
|
}
|
||||||
if (Temp == "~") {
|
if (Temp == "~") {
|
||||||
return GetEnvPath("HOME") + '/' + RTemp;
|
return os::homepath() + '/' + RTemp;
|
||||||
}
|
}
|
||||||
if (Temp == "..") {
|
if (Temp == "..") {
|
||||||
return MakeAbsPath(copy);
|
return MakeAbsPath(copy);
|
||||||
@ -1111,7 +1111,7 @@ string const MakeDisplayPath(string const & path, unsigned int threshold)
|
|||||||
{
|
{
|
||||||
string str = path;
|
string str = path;
|
||||||
|
|
||||||
string const home(GetEnvPath("HOME"));
|
string const home(os::homepath());
|
||||||
|
|
||||||
// replace /home/blah with ~/
|
// replace /home/blah with ~/
|
||||||
if (prefixIs(str, home))
|
if (prefixIs(str, home))
|
||||||
|
@ -30,13 +30,17 @@ enum shell_type {
|
|||||||
// do some work just once
|
// do some work just once
|
||||||
void init(int argc, char * argv[]);
|
void init(int argc, char * argv[]);
|
||||||
// returns path of LyX binary
|
// returns path of LyX binary
|
||||||
std::string binpath();
|
std::string const & binpath();
|
||||||
// returns name of LyX binary
|
// returns name of LyX binary
|
||||||
std::string binname();
|
std::string const & binname();
|
||||||
//
|
//
|
||||||
void setTmpDir(std::string const & p);
|
void setTmpDir(std::string const & p);
|
||||||
//
|
//
|
||||||
std::string getTmpDir();
|
std::string const & getTmpDir();
|
||||||
|
// Returns the user's home directory ($HOME in the unix world).
|
||||||
|
std::string const & homepath();
|
||||||
|
// Returns the name of the NULL device (/dev/null, null).
|
||||||
|
std::string const & nulldev();
|
||||||
//
|
//
|
||||||
std::string current_root();
|
std::string current_root();
|
||||||
//
|
//
|
||||||
|
@ -30,6 +30,9 @@ namespace {
|
|||||||
string binpath_;
|
string binpath_;
|
||||||
string binname_;
|
string binname_;
|
||||||
string tmpdir_;
|
string tmpdir_;
|
||||||
|
string homepath_;
|
||||||
|
string nulldev_;
|
||||||
|
|
||||||
os::shell_type shell_ = os::UNIX;
|
os::shell_type shell_ = os::UNIX;
|
||||||
unsigned long cp_ = 0;
|
unsigned long cp_ = 0;
|
||||||
|
|
||||||
@ -86,6 +89,10 @@ void init(int argc, char * argv[])
|
|||||||
// CPList[1] == system default codepage, the rest are auxilary.
|
// CPList[1] == system default codepage, the rest are auxilary.
|
||||||
// Once cp_ is correctly set, you can call other routines.
|
// Once cp_ is correctly set, you can call other routines.
|
||||||
cp_ = CPList[1];
|
cp_ = CPList[1];
|
||||||
|
|
||||||
|
tmpdir_ = "/tmp";
|
||||||
|
homepath_ = GetEnvPath("HOME");
|
||||||
|
nulldev_ = "null";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -217,13 +224,13 @@ char const * popen_read_mode()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string binpath()
|
string const & binpath()
|
||||||
{
|
{
|
||||||
return binpath_;
|
return binpath_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string binname()
|
string const & binname()
|
||||||
{
|
{
|
||||||
return binname_;
|
return binname_;
|
||||||
}
|
}
|
||||||
@ -235,12 +242,24 @@ void setTmpDir(string const & p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string getTmpDir()
|
string const & getTmpDir()
|
||||||
{
|
{
|
||||||
return tmpdir_;
|
return tmpdir_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
string const & homepath()
|
||||||
|
{
|
||||||
|
return homepath_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
string const & nulldev()
|
||||||
|
{
|
||||||
|
return nulldev_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
shell_type shell()
|
shell_type shell()
|
||||||
{
|
{
|
||||||
return shell_;
|
return shell_;
|
||||||
|
@ -25,6 +25,8 @@ namespace {
|
|||||||
string binpath_;
|
string binpath_;
|
||||||
string binname_;
|
string binname_;
|
||||||
string tmpdir_;
|
string tmpdir_;
|
||||||
|
string homepath_;
|
||||||
|
string nulldev_;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,6 +57,10 @@ void init(int /*argc*/, char * argv[])
|
|||||||
if (suffixIs(tmp, "/.libs/"))
|
if (suffixIs(tmp, "/.libs/"))
|
||||||
tmp.erase(tmp.length() - 6, string::npos);
|
tmp.erase(tmp.length() - 6, string::npos);
|
||||||
binpath_ = tmp;
|
binpath_ = tmp;
|
||||||
|
|
||||||
|
tmpdir_ = "/tmp";
|
||||||
|
homepath_ = GetEnvPath("HOME");
|
||||||
|
nulldev_ = "/dev/null";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -120,13 +126,13 @@ char const * popen_read_mode()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string binpath()
|
string const & binpath()
|
||||||
{
|
{
|
||||||
return binpath_;
|
return binpath_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string binname()
|
string const & binname()
|
||||||
{
|
{
|
||||||
return binname_;
|
return binname_;
|
||||||
}
|
}
|
||||||
@ -138,12 +144,24 @@ void setTmpDir(string const & p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string getTmpDir()
|
string const & getTmpDir()
|
||||||
{
|
{
|
||||||
return tmpdir_;
|
return tmpdir_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
string const & homepath()
|
||||||
|
{
|
||||||
|
return homepath_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
string const & nulldev()
|
||||||
|
{
|
||||||
|
return nulldev_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
shell_type shell()
|
shell_type shell()
|
||||||
{
|
{
|
||||||
return UNIX;
|
return UNIX;
|
||||||
|
@ -32,6 +32,8 @@ namespace {
|
|||||||
string binpath_;
|
string binpath_;
|
||||||
string binname_;
|
string binname_;
|
||||||
string tmpdir_;
|
string tmpdir_;
|
||||||
|
string homepath_;
|
||||||
|
string nulldev_;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,6 +67,16 @@ void init(int /* argc */, char * argv[])
|
|||||||
if (suffixIs(tmp, "/.libs/"))
|
if (suffixIs(tmp, "/.libs/"))
|
||||||
tmp.erase(tmp.length()-6, string::npos);
|
tmp.erase(tmp.length()-6, string::npos);
|
||||||
binpath_ = tmp;
|
binpath_ = tmp;
|
||||||
|
|
||||||
|
#ifdef __CYGWIN__
|
||||||
|
tmpdir_ = "/tmp";
|
||||||
|
homepath_ = GetEnvPath("HOME");
|
||||||
|
nulldev_ = "/dev/null";
|
||||||
|
#else
|
||||||
|
tmpdir_ = string();
|
||||||
|
homepath_ = GetEnvPath("HOMEDRIVE") + GetEnvPath("HOMEPATH");
|
||||||
|
nulldev_ = "nul";
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -190,9 +202,25 @@ string getTmpDir()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
string const & homepath()
|
||||||
|
{
|
||||||
|
return homepath_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
string const & nulldev()
|
||||||
|
{
|
||||||
|
return nulldev_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
shell_type shell()
|
shell_type shell()
|
||||||
{
|
{
|
||||||
|
#ifdef __CYGWIN__
|
||||||
return UNIX;
|
return UNIX;
|
||||||
|
#else
|
||||||
|
return CMD_EXE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace os
|
} // namespace os
|
||||||
|
@ -356,10 +356,10 @@ bool setLyxPaths()
|
|||||||
// default behaviour
|
// default behaviour
|
||||||
if (user_lyxdir_.empty())
|
if (user_lyxdir_.empty())
|
||||||
if (inOSXBundle)
|
if (inOSXBundle)
|
||||||
user_lyxdir_ = AddPath(GetEnvPath("HOME"),
|
user_lyxdir_ = AddPath(os::homepath(),
|
||||||
"Library/Preferences/LyX");
|
"Library/Preferences/LyX");
|
||||||
else
|
else
|
||||||
user_lyxdir_ = AddPath(GetEnvPath("HOME"),
|
user_lyxdir_ = AddPath(os::homepath(),
|
||||||
string(".") + PACKAGE);
|
string(".") + PACKAGE);
|
||||||
explicit_userdir = false;
|
explicit_userdir = false;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user