mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
Remove the tmp dir only if it has been created and create the lyxsocket
in the right place. * src/lyx_main.C (LyX::exec): create the lyxsocket in the temporary directory. (LyX::prepareExit): remove the temporary directory only if it has been created. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16262 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
d213175b85
commit
cd5b51f4a3
@ -29,8 +29,6 @@ GENERAL
|
||||
|
||||
FILE
|
||||
|
||||
* LyX tries to delete /tmp if it is called with invalid arguments
|
||||
|
||||
* Loading de_Userguide.lyx results in two parse errors:
|
||||
Paragraph ended in line 21206
|
||||
Missing \end_layout.
|
||||
@ -564,3 +562,6 @@ CREDITS:
|
||||
* Non-ascii filenames do not work at all and result in an assertion or garbage.
|
||||
FIXED (Georg 2006-12-12).
|
||||
|
||||
* LyX tries to delete /tmp if it is called with invalid arguments
|
||||
FIXED (Enrico 2006-12-13)
|
||||
|
||||
|
@ -110,6 +110,9 @@ bool use_gui = true;
|
||||
|
||||
namespace {
|
||||
|
||||
/// Don't try to remove the temporary directory if it has not been created
|
||||
bool remove_tmpdir = false;
|
||||
|
||||
// Filled with the command line arguments "foo" of "-sysdir foo" or
|
||||
// "-userdir foo".
|
||||
string cl_system_support;
|
||||
@ -373,17 +376,6 @@ int LyX::exec(int & argc, char * argv[])
|
||||
|
||||
initGuiFont();
|
||||
|
||||
// FIXME
|
||||
/* Create a CoreApplication class that will provide the main event loop
|
||||
* and the socket callback registering. With Qt4, only QtCore
|
||||
* library would be needed.
|
||||
* When this is done, a server_mode could be created and the following two
|
||||
* line would be moved out from here.
|
||||
*/
|
||||
pimpl_->lyx_server_.reset(new LyXServer(&pimpl_->lyxfunc_, lyxrc.lyxpipes));
|
||||
pimpl_->lyx_socket_.reset(new LyXServerSocket(&pimpl_->lyxfunc_,
|
||||
support::os::internal_path(package().temp_dir() + "/lyxsocket")));
|
||||
|
||||
// Parse and remove all known arguments in the LyX singleton
|
||||
// Give an error for all remaining ones.
|
||||
int exit_status = init(argc, argv);
|
||||
@ -395,6 +387,19 @@ int LyX::exec(int & argc, char * argv[])
|
||||
return exit_status;
|
||||
}
|
||||
|
||||
// FIXME
|
||||
/* Create a CoreApplication class that will provide the main event loop
|
||||
* and the socket callback registering. With Qt4, only QtCore
|
||||
* library would be needed.
|
||||
* When this is done, a server_mode could be created and the following two
|
||||
* line would be moved out from here.
|
||||
*/
|
||||
// Note: socket callback must be registered after init(argc, argv)
|
||||
// such that package().temp_dir() is properly initialized.
|
||||
pimpl_->lyx_server_.reset(new LyXServer(&pimpl_->lyxfunc_, lyxrc.lyxpipes));
|
||||
pimpl_->lyx_socket_.reset(new LyXServerSocket(&pimpl_->lyxfunc_,
|
||||
support::os::internal_path(package().temp_dir() + "/lyxsocket")));
|
||||
|
||||
// Start the real execution loop.
|
||||
exit_status = pimpl_->application_->exec();
|
||||
|
||||
@ -417,21 +422,16 @@ void LyX::prepareExit()
|
||||
pimpl_->buffer_list_.closeAll();
|
||||
|
||||
// do any other cleanup procedures now
|
||||
lyxerr[Debug::INFO] << "Deleting tmp dir " << package().temp_dir() << endl;
|
||||
if (remove_tmpdir) {
|
||||
lyxerr[Debug::INFO] << "Deleting tmp dir "
|
||||
<< package().temp_dir() << endl;
|
||||
|
||||
// Prevent the deletion of /tmp if LyX was called with invalid
|
||||
// arguments. Does not work on windows.
|
||||
// FIXME: Fix the real bug instead.
|
||||
if (package().temp_dir() == "/tmp") {
|
||||
lyxerr << "Not deleting /tmp." << endl;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!destroyDir(FileName(package().temp_dir()))) {
|
||||
docstring const msg =
|
||||
bformat(_("Unable to remove the temporary directory %1$s"),
|
||||
from_utf8(package().temp_dir()));
|
||||
Alert::warning(_("Unable to remove temporary directory"), msg);
|
||||
if (!destroyDir(FileName(package().temp_dir()))) {
|
||||
docstring const msg =
|
||||
bformat(_("Unable to remove the temporary directory %1$s"),
|
||||
from_utf8(package().temp_dir()));
|
||||
Alert::warning(_("Unable to remove temporary directory"), msg);
|
||||
}
|
||||
}
|
||||
|
||||
if (use_gui) {
|
||||
@ -857,6 +857,7 @@ bool LyX::init()
|
||||
// trying again but simply exit.
|
||||
return false;
|
||||
}
|
||||
remove_tmpdir = true;
|
||||
|
||||
if (lyxerr.debugging(Debug::INIT)) {
|
||||
lyxerr << "LyX tmp dir: `" << package().temp_dir() << '\'' << endl;
|
||||
|
Loading…
Reference in New Issue
Block a user