mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +00:00
merge in the class Path changes
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@196 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
0b2b65ee42
commit
535dd32c4c
12
ChangeLog
12
ChangeLog
@ -1,5 +1,17 @@
|
|||||||
1999-10-13 Lars Gullik Bjønnes <larsbj@lyx.org>
|
1999-10-13 Lars Gullik Bjønnes <larsbj@lyx.org>
|
||||||
|
|
||||||
|
* src/LaTeXLog.C (ShowLatexLog): reordered som statements so that
|
||||||
|
Path would fit in more nicely.
|
||||||
|
|
||||||
|
* all files that used to use pathstack: uses now Path instead.
|
||||||
|
This change was a lot easier than expected.
|
||||||
|
|
||||||
|
* src/support/path.h: new file
|
||||||
|
|
||||||
|
* src/support/Makefile.am (libsupport_a_SOURCES): added path.h
|
||||||
|
|
||||||
|
* src/Makefile.am (lyx_SOURCES): removed pathstack.[Ch]
|
||||||
|
|
||||||
* src/support/lyxstring.C (getline): Default arg was given for
|
* src/support/lyxstring.C (getline): Default arg was given for
|
||||||
para 3. removed.
|
para 3. removed.
|
||||||
|
|
||||||
|
@ -72,11 +72,11 @@ src/menus.C
|
|||||||
src/minibuffer.C
|
src/minibuffer.C
|
||||||
src/minibuffer.h
|
src/minibuffer.h
|
||||||
src/paragraph.C
|
src/paragraph.C
|
||||||
src/pathstack.C
|
|
||||||
src/print_form.C
|
src/print_form.C
|
||||||
src/sp_form.C
|
src/sp_form.C
|
||||||
src/spellchecker.C
|
src/spellchecker.C
|
||||||
src/support/filetools.C
|
src/support/filetools.C
|
||||||
src/support/lyxlib.h
|
src/support/lyxlib.h
|
||||||
|
src/support/path.h
|
||||||
src/text.C
|
src/text.C
|
||||||
src/text2.C
|
src/text2.C
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "support/syscall.h"
|
#include "support/syscall.h"
|
||||||
#include "support/syscontr.h"
|
#include "support/syscontr.h"
|
||||||
#include "pathstack.h"
|
#include "support/path.h"
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
#include "support/lyxlib.h"
|
#include "support/lyxlib.h"
|
||||||
#include "support/syscall.h"
|
#include "support/syscall.h"
|
||||||
#include "support/syscontr.h"
|
#include "support/syscontr.h"
|
||||||
#include "pathstack.h"
|
#include "support/path.h"
|
||||||
#include "bufferlist.h"
|
#include "bufferlist.h"
|
||||||
#include "minibuffer.h"
|
#include "minibuffer.h"
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
@ -682,7 +682,7 @@ void LaTeX::deplog(DepTable & head)
|
|||||||
// found in the same dir
|
// found in the same dir
|
||||||
// as the .lyx file and
|
// as the .lyx file and
|
||||||
// should be inserted.
|
// should be inserted.
|
||||||
PathPush(path);
|
Path p(path);
|
||||||
if (FileInfo(foundfile).exist()) {
|
if (FileInfo(foundfile).exist()) {
|
||||||
lyxerr << "LyX Strange: this should actually never"
|
lyxerr << "LyX Strange: this should actually never"
|
||||||
" happen anymore, this it should be"
|
" happen anymore, this it should be"
|
||||||
@ -691,10 +691,8 @@ void LaTeX::deplog(DepTable & head)
|
|||||||
lyxerr[Debug::LATEX] << "Same Directory file: "
|
lyxerr[Debug::LATEX] << "Same Directory file: "
|
||||||
<< foundfile << endl;
|
<< foundfile << endl;
|
||||||
head.insert(foundfile);
|
head.insert(foundfile);
|
||||||
PathPop();
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
PathPop();
|
|
||||||
|
|
||||||
lyxerr[Debug::LATEX]
|
lyxerr[Debug::LATEX]
|
||||||
<< "Not a file or we are unable to find it."
|
<< "Not a file or we are unable to find it."
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#include "LString.h"
|
#include "LString.h"
|
||||||
#include "support/FileInfo.h"
|
#include "support/FileInfo.h"
|
||||||
#include "support/filetools.h"
|
#include "support/filetools.h"
|
||||||
#include "pathstack.h"
|
#include "support/path.h"
|
||||||
#include "lyxrc.h"
|
#include "lyxrc.h"
|
||||||
#include "BufferView.h"
|
#include "BufferView.h"
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
@ -18,37 +18,39 @@ extern BufferView *current_view;
|
|||||||
|
|
||||||
void ShowLatexLog()
|
void ShowLatexLog()
|
||||||
{
|
{
|
||||||
string filename, fname, bname, path;
|
string filename, fname, bname, path;
|
||||||
bool use_build = false;
|
bool use_build = false;
|
||||||
|
|
||||||
filename = current_view->currentBuffer()->getFileName();
|
filename = current_view->currentBuffer()->getFileName();
|
||||||
if (!filename.empty()) {
|
if (!filename.empty()) {
|
||||||
fname = SpaceLess(ChangeExtension(filename, ".log", true));
|
fname = SpaceLess(ChangeExtension(filename, ".log", true));
|
||||||
bname = SpaceLess(ChangeExtension(filename, lyxrc->literate_extension + ".out", true));
|
bname = SpaceLess(ChangeExtension(filename,
|
||||||
path = OnlyPath(filename);
|
lyxrc->literate_extension + ".out", true));
|
||||||
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)) {
|
path = OnlyPath(filename);
|
||||||
path = current_view->currentBuffer()->tmppath;
|
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)) {
|
||||||
|
path = current_view->currentBuffer()->tmppath;
|
||||||
|
}
|
||||||
|
FileInfo f_fi(path + fname), b_fi(path + bname);
|
||||||
|
if (b_fi.exist())
|
||||||
|
if (!f_fi.exist()
|
||||||
|
|| f_fi.getModificationTime() < b_fi.getModificationTime())
|
||||||
|
use_build = true; // If no Latex log or Build log is newer, show Build log
|
||||||
|
Path p(path); // path to LaTeX file
|
||||||
|
if (!fl_load_browser(fd_latex_log->browser_latexlog,
|
||||||
|
use_build ? bname.c_str() : fname.c_str()))
|
||||||
|
fl_add_browser_line(fd_latex_log->browser_latexlog,
|
||||||
|
_("Unable to show log file!"));
|
||||||
|
} else {
|
||||||
|
fl_add_browser_line(fd_latex_log->browser_latexlog,
|
||||||
|
_("NO LATEX LOG FILE!"));
|
||||||
|
}
|
||||||
|
if (fd_latex_log->LaTeXLog->visible) {
|
||||||
|
fl_raise_form(fd_latex_log->LaTeXLog);
|
||||||
|
} else {
|
||||||
|
fl_show_form(fd_latex_log->LaTeXLog,
|
||||||
|
FL_PLACE_MOUSE | FL_FREE_SIZE,FL_FULLBORDER,
|
||||||
|
use_build ? _("Build Program Log") : _("LaTeX Log"));
|
||||||
}
|
}
|
||||||
FileInfo f_fi(path + fname), b_fi(path + bname);
|
|
||||||
if (b_fi.exist())
|
|
||||||
if ( ! f_fi.exist()
|
|
||||||
|| f_fi.getModificationTime() < b_fi.getModificationTime())
|
|
||||||
use_build = true; // If no Latex log or Build log is newer, show Build log
|
|
||||||
PathPush(path); // path to LaTeX file
|
|
||||||
}
|
|
||||||
if (!fl_load_browser(fd_latex_log->browser_latexlog,
|
|
||||||
(use_build)?bname.c_str():fname.c_str()))
|
|
||||||
fl_add_browser_line(fd_latex_log->browser_latexlog, _("NO LATEX LOG FILE!"));
|
|
||||||
if (fd_latex_log->LaTeXLog->visible) {
|
|
||||||
fl_raise_form(fd_latex_log->LaTeXLog);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
fl_show_form(fd_latex_log->LaTeXLog,
|
|
||||||
FL_PLACE_MOUSE | FL_FREE_SIZE,FL_FULLBORDER,
|
|
||||||
(use_build)?_("Build Program Log"):_("LaTeX Log"));
|
|
||||||
}
|
|
||||||
if (!filename.empty())
|
|
||||||
PathPop();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LatexLogClose(FL_OBJECT *, long)
|
void LatexLogClose(FL_OBJECT *, long)
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#include "support/lyxlib.h"
|
#include "support/lyxlib.h"
|
||||||
#include "support/syscall.h"
|
#include "support/syscall.h"
|
||||||
#include "support/syscontr.h"
|
#include "support/syscontr.h"
|
||||||
#include "pathstack.h"
|
#include "support/path.h"
|
||||||
#include "bufferlist.h"
|
#include "bufferlist.h"
|
||||||
#include "minibuffer.h"
|
#include "minibuffer.h"
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
#include "lyxrc.h"
|
#include "lyxrc.h"
|
||||||
#include "LString.h"
|
#include "LString.h"
|
||||||
#include "support/filetools.h"
|
#include "support/filetools.h"
|
||||||
#include "pathstack.h"
|
#include "support/path.h"
|
||||||
#include "buffer.h"
|
#include "buffer.h"
|
||||||
#include "lyx_gui_misc.h"
|
#include "lyx_gui_misc.h"
|
||||||
#include "support/syscall.h"
|
#include "support/syscall.h"
|
||||||
@ -82,7 +82,7 @@ void SendtoApplyCB(FL_OBJECT *, long)
|
|||||||
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)){
|
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)){
|
||||||
path = buffer->tmppath;
|
path = buffer->tmppath;
|
||||||
}
|
}
|
||||||
PathPush(path);
|
Path p(path);
|
||||||
// save the .lyx file in tmp_dir if this filetype is requested
|
// save the .lyx file in tmp_dir if this filetype is requested
|
||||||
if (fl_get_button(fd_form_sendto->radio_ftype_lyx))
|
if (fl_get_button(fd_form_sendto->radio_ftype_lyx))
|
||||||
buffer->writeFile(fname,true);
|
buffer->writeFile(fname,true);
|
||||||
@ -94,7 +94,6 @@ void SendtoApplyCB(FL_OBJECT *, long)
|
|||||||
if (fl_get_button(fd_form_sendto->radio_ftype_ascii))
|
if (fl_get_button(fd_form_sendto->radio_ftype_ascii))
|
||||||
buffer->writeFileAscii(fname, lyxrc->ascii_linelen);
|
buffer->writeFileAscii(fname, lyxrc->ascii_linelen);
|
||||||
Systemcalls one(Systemcalls::System, command);
|
Systemcalls one(Systemcalls::System, command);
|
||||||
PathPop();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SendtoCancelCB(FL_OBJECT *, long)
|
void SendtoCancelCB(FL_OBJECT *, long)
|
||||||
|
@ -140,8 +140,6 @@ lyx_SOURCES = \
|
|||||||
os2_defines.h \
|
os2_defines.h \
|
||||||
os2_errortable.h \
|
os2_errortable.h \
|
||||||
paragraph.C \
|
paragraph.C \
|
||||||
pathstack.C \
|
|
||||||
pathstack.h \
|
|
||||||
print_form.C \
|
print_form.C \
|
||||||
print_form.h \
|
print_form.h \
|
||||||
screen.C \
|
screen.C \
|
||||||
|
14
src/buffer.C
14
src/buffer.C
@ -63,7 +63,7 @@
|
|||||||
#include "insets/insetspecialchar.h"
|
#include "insets/insetspecialchar.h"
|
||||||
#include "insets/figinset.h"
|
#include "insets/figinset.h"
|
||||||
#include "support/filetools.h"
|
#include "support/filetools.h"
|
||||||
#include "pathstack.h"
|
#include "support/path.h"
|
||||||
#include "LaTeX.h"
|
#include "LaTeX.h"
|
||||||
#include "Literate.h"
|
#include "Literate.h"
|
||||||
#include "Chktex.h"
|
#include "Chktex.h"
|
||||||
@ -3132,7 +3132,7 @@ int Buffer::runLaTeX()
|
|||||||
path = tmppath;
|
path = tmppath;
|
||||||
}
|
}
|
||||||
|
|
||||||
PathPush(path); // path to LaTeX file
|
Path p(path); // path to LaTeX file
|
||||||
users->getOwner()->getMiniBuffer()->Set(_("Running LaTeX..."));
|
users->getOwner()->getMiniBuffer()->Set(_("Running LaTeX..."));
|
||||||
|
|
||||||
// Remove all error insets
|
// Remove all error insets
|
||||||
@ -3179,7 +3179,6 @@ int Buffer::runLaTeX()
|
|||||||
users->updateScrollbar();
|
users->updateScrollbar();
|
||||||
}
|
}
|
||||||
AllowInput();
|
AllowInput();
|
||||||
PathPop(); // path to LaTeX file
|
|
||||||
|
|
||||||
return latex.getNumErrors();
|
return latex.getNumErrors();
|
||||||
}
|
}
|
||||||
@ -3203,7 +3202,7 @@ int Buffer::runLiterate()
|
|||||||
path = tmppath;
|
path = tmppath;
|
||||||
}
|
}
|
||||||
|
|
||||||
PathPush(path); // path to Literate file
|
Path p(path); // path to Literate file
|
||||||
users->getOwner()->getMiniBuffer()->Set(_("Running Literate..."));
|
users->getOwner()->getMiniBuffer()->Set(_("Running Literate..."));
|
||||||
|
|
||||||
// Remove all error insets
|
// Remove all error insets
|
||||||
@ -3248,7 +3247,6 @@ int Buffer::runLiterate()
|
|||||||
users->updateScrollbar();
|
users->updateScrollbar();
|
||||||
}
|
}
|
||||||
AllowInput();
|
AllowInput();
|
||||||
PathPop(); // path to LaTeX file
|
|
||||||
|
|
||||||
return literate.getNumErrors();
|
return literate.getNumErrors();
|
||||||
}
|
}
|
||||||
@ -3272,7 +3270,7 @@ int Buffer::buildProgram()
|
|||||||
path = tmppath;
|
path = tmppath;
|
||||||
}
|
}
|
||||||
|
|
||||||
PathPush(path); // path to Literate file
|
Path p(path); // path to Literate file
|
||||||
users->getOwner()->getMiniBuffer()->Set(_("Building Program..."));
|
users->getOwner()->getMiniBuffer()->Set(_("Building Program..."));
|
||||||
|
|
||||||
// Remove all error insets
|
// Remove all error insets
|
||||||
@ -3316,7 +3314,6 @@ int Buffer::buildProgram()
|
|||||||
users->updateScrollbar();
|
users->updateScrollbar();
|
||||||
}
|
}
|
||||||
AllowInput();
|
AllowInput();
|
||||||
PathPop(); // path to LaTeX file
|
|
||||||
|
|
||||||
return literate.getNumErrors();
|
return literate.getNumErrors();
|
||||||
}
|
}
|
||||||
@ -3340,7 +3337,7 @@ int Buffer::runChktex()
|
|||||||
path = tmppath;
|
path = tmppath;
|
||||||
}
|
}
|
||||||
|
|
||||||
PathPush(path); // path to LaTeX file
|
Path p(path); // path to LaTeX file
|
||||||
users->getOwner()->getMiniBuffer()->Set(_("Running chktex..."));
|
users->getOwner()->getMiniBuffer()->Set(_("Running chktex..."));
|
||||||
|
|
||||||
// Remove all error insets
|
// Remove all error insets
|
||||||
@ -3372,7 +3369,6 @@ int Buffer::runChktex()
|
|||||||
users->updateScrollbar();
|
users->updateScrollbar();
|
||||||
}
|
}
|
||||||
AllowInput();
|
AllowInput();
|
||||||
PathPop(); // path to LaTeX file
|
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
33
src/lyx_cb.C
33
src/lyx_cb.C
@ -42,7 +42,7 @@
|
|||||||
#include "combox.h"
|
#include "combox.h"
|
||||||
#include "bufferlist.h"
|
#include "bufferlist.h"
|
||||||
#include "support/filetools.h"
|
#include "support/filetools.h"
|
||||||
#include "pathstack.h"
|
#include "support/path.h"
|
||||||
#include "filedlg.h"
|
#include "filedlg.h"
|
||||||
#include "lyx_gui_misc.h"
|
#include "lyx_gui_misc.h"
|
||||||
#include "LyXView.h" // only because of form_main
|
#include "LyXView.h" // only because of form_main
|
||||||
@ -549,9 +549,8 @@ int MakeDVIOutput(Buffer *buffer)
|
|||||||
path = buffer->tmppath;
|
path = buffer->tmppath;
|
||||||
}
|
}
|
||||||
if (!buffer->isDviClean()) {
|
if (!buffer->isDviClean()) {
|
||||||
PathPush(path);
|
Path p(path);
|
||||||
ret = MenuRunLaTeX(buffer);
|
ret = MenuRunLaTeX(buffer);
|
||||||
PathPop();
|
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -581,7 +580,7 @@ bool RunScript(Buffer *buffer, bool wait,
|
|||||||
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)) {
|
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)) {
|
||||||
path = buffer->tmppath;
|
path = buffer->tmppath;
|
||||||
}
|
}
|
||||||
PathPush(path);
|
Path p(path);
|
||||||
|
|
||||||
cmd = command + ' ' + SpaceLess(name);
|
cmd = command + ' ' + SpaceLess(name);
|
||||||
Systemcalls one;
|
Systemcalls one;
|
||||||
@ -622,7 +621,6 @@ bool RunScript(Buffer *buffer, bool wait,
|
|||||||
result = one.startscript(wait ? Systemcalls::Wait
|
result = one.startscript(wait ? Systemcalls::Wait
|
||||||
: Systemcalls::DontWait, cmd);
|
: Systemcalls::DontWait, cmd);
|
||||||
}
|
}
|
||||||
PathPop();
|
|
||||||
return (result==0);
|
return (result==0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -706,10 +704,9 @@ bool MenuRunDvips(Buffer *buffer, bool wait=false)
|
|||||||
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)){
|
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)){
|
||||||
path = buffer->tmppath;
|
path = buffer->tmppath;
|
||||||
}
|
}
|
||||||
PathPush(path);
|
Path p(path);
|
||||||
bool ret = RunScript(buffer, wait, command);
|
bool ret = RunScript(buffer, wait, command);
|
||||||
AllowInput();
|
AllowInput();
|
||||||
PathPop();
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -734,9 +731,8 @@ bool MenuPreviewPS(Buffer *buffer)
|
|||||||
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)){
|
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)){
|
||||||
path = buffer->tmppath;
|
path = buffer->tmppath;
|
||||||
}
|
}
|
||||||
PathPush(path);
|
Path p(path);
|
||||||
bool ret = RunScript(buffer, false, lyxrc->view_ps_command, ps);
|
bool ret = RunScript(buffer, false, lyxrc->view_ps_command, ps);
|
||||||
PathPop();
|
|
||||||
AllowInput();
|
AllowInput();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -758,7 +754,7 @@ void MenuFax(Buffer *buffer)
|
|||||||
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)) {
|
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)) {
|
||||||
path = buffer->tmppath;
|
path = buffer->tmppath;
|
||||||
}
|
}
|
||||||
PathPush(path);
|
Path p(path);
|
||||||
if (!lyxrc->fax_program.empty()) {
|
if (!lyxrc->fax_program.empty()) {
|
||||||
string help2 = lyxrc->fax_program;
|
string help2 = lyxrc->fax_program;
|
||||||
subst(help2, "$$FName",ps);
|
subst(help2, "$$FName",ps);
|
||||||
@ -766,7 +762,6 @@ void MenuFax(Buffer *buffer)
|
|||||||
Systemcalls one(Systemcalls::System, help2);
|
Systemcalls one(Systemcalls::System, help2);
|
||||||
} else
|
} else
|
||||||
send_fax(ps,lyxrc->fax_command);
|
send_fax(ps,lyxrc->fax_command);
|
||||||
PathPop();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -824,11 +819,10 @@ bool MenuPreview(Buffer *buffer)
|
|||||||
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)){
|
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)){
|
||||||
path = buffer->tmppath;
|
path = buffer->tmppath;
|
||||||
}
|
}
|
||||||
PathPush(path);
|
Path p(path);
|
||||||
// Run dvi-viewer
|
// Run dvi-viewer
|
||||||
string command = lyxrc->view_dvi_command + paper ;
|
string command = lyxrc->view_dvi_command + paper ;
|
||||||
bool ret = RunScript(buffer, false, command);
|
bool ret = RunScript(buffer, false, command);
|
||||||
PathPop();
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1254,7 +1248,7 @@ int RunLinuxDoc(int flag, string const & filename)
|
|||||||
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)) {
|
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)) {
|
||||||
path = current_view->currentBuffer()->tmppath;
|
path = current_view->currentBuffer()->tmppath;
|
||||||
}
|
}
|
||||||
PathPush (path);
|
Path p(path);
|
||||||
|
|
||||||
if (flag != -1) {
|
if (flag != -1) {
|
||||||
if (!current_view->available())
|
if (!current_view->available())
|
||||||
@ -1300,7 +1294,6 @@ int RunLinuxDoc(int flag, string const & filename)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
PathPop();
|
|
||||||
AllowInput();
|
AllowInput();
|
||||||
|
|
||||||
current_view->currentBuffer()->redraw();
|
current_view->currentBuffer()->redraw();
|
||||||
@ -1326,7 +1319,7 @@ int RunDocBook(int flag, string const & filename)
|
|||||||
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)) {
|
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)) {
|
||||||
path = current_view->currentBuffer()->tmppath;
|
path = current_view->currentBuffer()->tmppath;
|
||||||
}
|
}
|
||||||
PathPush (path);
|
Path p(path);
|
||||||
|
|
||||||
if (!current_view->available())
|
if (!current_view->available())
|
||||||
return 0;
|
return 0;
|
||||||
@ -1357,7 +1350,6 @@ int RunDocBook(int flag, string const & filename)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
PathPop();
|
|
||||||
AllowInput();
|
AllowInput();
|
||||||
|
|
||||||
current_view->currentBuffer()->redraw();
|
current_view->currentBuffer()->redraw();
|
||||||
@ -3391,7 +3383,7 @@ void PrintApplyCB(FL_OBJECT *, long)
|
|||||||
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)){
|
if (lyxrc->use_tempdir || (IsDirWriteable(path) < 1)){
|
||||||
path = buffer->tmppath;
|
path = buffer->tmppath;
|
||||||
}
|
}
|
||||||
PathPush(path);
|
Path p(path);
|
||||||
|
|
||||||
bool result;
|
bool result;
|
||||||
if (!lyxrc->print_spool_command.empty() &&
|
if (!lyxrc->print_spool_command.empty() &&
|
||||||
@ -3406,7 +3398,6 @@ void PrintApplyCB(FL_OBJECT *, long)
|
|||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
result = RunScript(buffer, false, command);
|
result = RunScript(buffer, false, command);
|
||||||
PathPop();
|
|
||||||
|
|
||||||
if (!result)
|
if (!result)
|
||||||
WriteAlert(_("Error:"),
|
WriteAlert(_("Error:"),
|
||||||
@ -3561,10 +3552,10 @@ void Reconfigure()
|
|||||||
minibuffer->Set(_("Running configure..."));
|
minibuffer->Set(_("Running configure..."));
|
||||||
|
|
||||||
// Run configure in user lyx directory
|
// Run configure in user lyx directory
|
||||||
PathPush(user_lyxdir);
|
Path p(user_lyxdir);
|
||||||
Systemcalls one(Systemcalls::System,
|
Systemcalls one(Systemcalls::System,
|
||||||
AddName(system_lyxdir,"configure"));
|
AddName(system_lyxdir,"configure"));
|
||||||
PathPop();
|
p.pop();
|
||||||
minibuffer->Set(_("Reloading configuration..."));
|
minibuffer->Set(_("Reloading configuration..."));
|
||||||
lyxrc->Read(LibFileSearch(string(), "lyxrc.defaults"));
|
lyxrc->Read(LibFileSearch(string(), "lyxrc.defaults"));
|
||||||
WriteAlert(_("The system has been reconfigured."),
|
WriteAlert(_("The system has been reconfigured."),
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#include "lyx_gui.h"
|
#include "lyx_gui.h"
|
||||||
#include "lyx_gui_misc.h"
|
#include "lyx_gui_misc.h"
|
||||||
#include "lyxrc.h"
|
#include "lyxrc.h"
|
||||||
#include "pathstack.h"
|
#include "support/path.h"
|
||||||
#include "support/filetools.h"
|
#include "support/filetools.h"
|
||||||
#include "bufferlist.h"
|
#include "bufferlist.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
@ -411,9 +411,8 @@ void LyX::queryUserLyXDir()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Run configure in user lyx directory
|
// Run configure in user lyx directory
|
||||||
PathPush(user_lyxdir);
|
Path p(user_lyxdir);
|
||||||
system(AddName(system_lyxdir,"configure").c_str());
|
system(AddName(system_lyxdir,"configure").c_str());
|
||||||
PathPop();
|
|
||||||
lyxerr << "LyX: " << _("Done!") << endl;
|
lyxerr << "LyX: " << _("Done!") << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include "lyx_main.h"
|
#include "lyx_main.h"
|
||||||
#include "intl.h"
|
#include "intl.h"
|
||||||
#include "tex-strings.h"
|
#include "tex-strings.h"
|
||||||
#include "pathstack.h"
|
#include "support/path.h"
|
||||||
#include "support/filetools.h"
|
#include "support/filetools.h"
|
||||||
#include "lyxtext.h"
|
#include "lyxtext.h"
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
#include "lyx_gui_misc.h"
|
#include "lyx_gui_misc.h"
|
||||||
#include "bufferlist.h"
|
#include "bufferlist.h"
|
||||||
#include "support/syscall.h"
|
#include "support/syscall.h"
|
||||||
#include "pathstack.h"
|
#include "support/path.h"
|
||||||
#include "support/filetools.h"
|
#include "support/filetools.h"
|
||||||
#include "support/FileInfo.h"
|
#include "support/FileInfo.h"
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
@ -385,8 +385,7 @@ int LyXVC::doVCCommand(string const & cmd)
|
|||||||
{
|
{
|
||||||
lyxerr[Debug::LYXVC] << "doVCCommand: " << cmd << endl;
|
lyxerr[Debug::LYXVC] << "doVCCommand: " << cmd << endl;
|
||||||
Systemcalls one;
|
Systemcalls one;
|
||||||
PathPush(_owner->filepath);
|
Path p(_owner->filepath);
|
||||||
int ret = one.startscript(Systemcalls::System, cmd);
|
int ret = one.startscript(Systemcalls::System, cmd);
|
||||||
PathPop();
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,10 @@ enum {
|
|||||||
///
|
///
|
||||||
typedef FL_OBJECT* FL_OBJECTP;
|
typedef FL_OBJECT* FL_OBJECTP;
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
int peek_event(FL_FORM *, void *);
|
||||||
|
}
|
||||||
|
|
||||||
/// Class to manage bitmap menu bars
|
/// Class to manage bitmap menu bars
|
||||||
class BitmapMenu {
|
class BitmapMenu {
|
||||||
///
|
///
|
||||||
|
@ -232,6 +232,7 @@ int BitmapMenu::GetIndex(FL_OBJECT* ob)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
int peek_event(FL_FORM * /*form*/, void *xev)
|
int peek_event(FL_FORM * /*form*/, void *xev)
|
||||||
{
|
{
|
||||||
if (BitmapMenu::active==0)
|
if (BitmapMenu::active==0)
|
||||||
@ -257,6 +258,7 @@ int peek_event(FL_FORM * /*form*/, void *xev)
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void math_cb(FL_OBJECT* ob, long data)
|
static void math_cb(FL_OBJECT* ob, long data)
|
||||||
{
|
{
|
||||||
|
@ -1,86 +0,0 @@
|
|||||||
// lyx-stack.C : implementation of PathStack class
|
|
||||||
// this file is part of LyX, the High Level Word Processor
|
|
||||||
// copyright (C) 1995-1996, Matthias Ettrich and the LyX Team
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
|
||||||
#pragma implementation "pathstack.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "pathstack.h"
|
|
||||||
#include "support/filetools.h"
|
|
||||||
#include "debug.h"
|
|
||||||
#include "LString.h"
|
|
||||||
#include "gettext.h"
|
|
||||||
|
|
||||||
// temporary hack
|
|
||||||
#include "lyx_gui_misc.h"
|
|
||||||
|
|
||||||
// global path stack
|
|
||||||
PathStack lyxPathStack;
|
|
||||||
|
|
||||||
// Standard constructor
|
|
||||||
PathStack::PathStack(string const & string)
|
|
||||||
: Path(string)
|
|
||||||
{
|
|
||||||
Next = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Destructor
|
|
||||||
PathStack::~PathStack()
|
|
||||||
{
|
|
||||||
if (Next)
|
|
||||||
delete Next;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Changes to directory
|
|
||||||
int PathStack::PathPush(string const & Path)
|
|
||||||
{
|
|
||||||
// checks path string validity
|
|
||||||
if (Path.empty()) return 1;
|
|
||||||
|
|
||||||
PathStack *NewNode;
|
|
||||||
|
|
||||||
// gets current directory and switch to new one
|
|
||||||
string CurrentPath = GetCWD();
|
|
||||||
if ((CurrentPath.empty()) || chdir(Path.c_str())) {
|
|
||||||
WriteFSAlert(_("Error: Could not change to directory: "),
|
|
||||||
Path);
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
lyxerr.debug() << "PathPush: " << Path << endl;
|
|
||||||
// adds new node
|
|
||||||
NewNode = new PathStack(CurrentPath);
|
|
||||||
NewNode->Next = Next;
|
|
||||||
Next = NewNode;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Goes back to previous directory
|
|
||||||
int PathStack::PathPop()
|
|
||||||
{
|
|
||||||
// checks stack validity and extracts old node
|
|
||||||
PathStack *OldNode = Next;
|
|
||||||
if (!OldNode) {
|
|
||||||
WriteAlert (_("LyX Internal Error:"), _("Path Stack underflow."));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
Next = OldNode->Next;
|
|
||||||
OldNode->Next = 0;
|
|
||||||
|
|
||||||
// switches to old directory
|
|
||||||
int Result = 0;
|
|
||||||
if (chdir(OldNode->Path.c_str())) {
|
|
||||||
WriteFSAlert(_("Error: Could not change to directory: "),
|
|
||||||
Path);
|
|
||||||
Result = 2;
|
|
||||||
}
|
|
||||||
lyxerr.debug() << "PathPop: " << OldNode->Path << endl;
|
|
||||||
delete OldNode;
|
|
||||||
|
|
||||||
return Result;
|
|
||||||
}
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
|||||||
// -*- C++ -*-
|
|
||||||
// lyx-stack.H : definition of PathStack class
|
|
||||||
// this file is part of LyX, the High Level Word Processor
|
|
||||||
// copyright (C) 1995-1996, Matthias Ettrich and the LyX Team
|
|
||||||
|
|
||||||
#ifndef __LYX_STACK_H__
|
|
||||||
#define __LYX_STACK_H__
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
|
||||||
#pragma interface
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "LString.h"
|
|
||||||
|
|
||||||
/// Path stack class definition
|
|
||||||
class PathStack {
|
|
||||||
public:
|
|
||||||
///
|
|
||||||
PathStack() {
|
|
||||||
Next = 0;
|
|
||||||
}
|
|
||||||
///
|
|
||||||
PathStack(string const & Path);
|
|
||||||
///
|
|
||||||
~PathStack();
|
|
||||||
///
|
|
||||||
int PathPush(string const & Path);
|
|
||||||
///
|
|
||||||
int PathPop();
|
|
||||||
private:
|
|
||||||
///
|
|
||||||
string Path;
|
|
||||||
///
|
|
||||||
PathStack *Next;
|
|
||||||
};
|
|
||||||
|
|
||||||
// global path stack
|
|
||||||
extern PathStack lyxPathStack;
|
|
||||||
|
|
||||||
/// some global wrapper functions
|
|
||||||
inline int PathPush(string const & szPath) {
|
|
||||||
return lyxPathStack.PathPush(szPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
///
|
|
||||||
inline int PathPop() {
|
|
||||||
return lyxPathStack.PathPop();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -17,6 +17,7 @@ libsupport_a_SOURCES = \
|
|||||||
lyxstring.C \
|
lyxstring.C \
|
||||||
lyxstring.h \
|
lyxstring.h \
|
||||||
lyxsum.C \
|
lyxsum.C \
|
||||||
|
path.h \
|
||||||
syscall.C \
|
syscall.C \
|
||||||
syscall.h \
|
syscall.h \
|
||||||
syscontr.C \
|
syscontr.C \
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#include "filetools.h"
|
#include "filetools.h"
|
||||||
#include "lyx_gui_misc.h"
|
#include "lyx_gui_misc.h"
|
||||||
#include "FileInfo.h"
|
#include "FileInfo.h"
|
||||||
#include "pathstack.h" // I know it's OS/2 specific (SMiyata)
|
#include "support/path.h" // I know it's OS/2 specific (SMiyata)
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
#include "LAssert.h"
|
#include "LAssert.h"
|
||||||
|
|
||||||
|
55
src/support/path.h
Normal file
55
src/support/path.h
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
// -*- C++ -*-
|
||||||
|
#ifndef PATH_H
|
||||||
|
#define PATH_H
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
#include "LString.h"
|
||||||
|
#include "gettext.h"
|
||||||
|
#include "support/filetools.h"
|
||||||
|
#include "lyx_gui_misc.h"
|
||||||
|
|
||||||
|
class Path {
|
||||||
|
public:
|
||||||
|
///
|
||||||
|
Path(string const & path)
|
||||||
|
: popped_(false)
|
||||||
|
{
|
||||||
|
if (!path.empty()) {
|
||||||
|
pushedDir_ = GetCWD();
|
||||||
|
if (pushedDir_.empty() || chdir(path.c_str())) {
|
||||||
|
WriteFSAlert(_("Error: Could not change to directory: "),
|
||||||
|
path);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
popped_ = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
///
|
||||||
|
~Path()
|
||||||
|
{
|
||||||
|
if (!popped_) pop();
|
||||||
|
}
|
||||||
|
///
|
||||||
|
int pop()
|
||||||
|
{
|
||||||
|
if (popped_) {
|
||||||
|
WriteFSAlert(_("Error: Dir already popped: "),
|
||||||
|
pushedDir_);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (chdir(pushedDir_.c_str())) {
|
||||||
|
WriteFSAlert(
|
||||||
|
_("Error: Could not change to directory: "),
|
||||||
|
pushedDir_);
|
||||||
|
}
|
||||||
|
popped_ = true;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
///
|
||||||
|
bool popped_;
|
||||||
|
///
|
||||||
|
string pushedDir_;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user