mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-13 17:20:55 +00:00
Fix bug 55 and a crash with "./lyx -i latex"
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH-1_2_X@4304 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
16eb48a0da
commit
030e2e9765
@ -1,3 +1,10 @@
|
|||||||
|
2002-05-30 John Levon <moz@compsoc.man.ac.uk>
|
||||||
|
|
||||||
|
* lyx_main.C:
|
||||||
|
* buffer.h:
|
||||||
|
* buffer.C: fix command line crash and give useful
|
||||||
|
exit status on some errors
|
||||||
|
|
||||||
2002-05-24 Juergen Vigna <jug@sad.it>
|
2002-05-24 Juergen Vigna <jug@sad.it>
|
||||||
|
|
||||||
* undo_funcs.C (textHandleUndo): fix the cursor selection after
|
* undo_funcs.C (textHandleUndo): fix the cursor selection after
|
||||||
|
14
src/buffer.C
14
src/buffer.C
@ -3883,24 +3883,28 @@ void Buffer::markDepClean(string const & name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Buffer::dispatch(string const & command)
|
bool Buffer::dispatch(string const & command, bool * result)
|
||||||
{
|
{
|
||||||
// Split command string into command and argument
|
// Split command string into command and argument
|
||||||
string cmd;
|
string cmd;
|
||||||
string line = frontStrip(command);
|
string line = frontStrip(command);
|
||||||
string const arg = strip(frontStrip(split(line, cmd, ' ')));
|
string const arg = strip(frontStrip(split(line, cmd, ' ')));
|
||||||
|
|
||||||
return dispatch(lyxaction.LookupFunc(cmd), arg);
|
return dispatch(lyxaction.LookupFunc(cmd), arg, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Buffer::dispatch(int action, string const & argument)
|
bool Buffer::dispatch(int action, string const & argument, bool * result)
|
||||||
{
|
{
|
||||||
bool dispatched = true;
|
bool dispatched = true;
|
||||||
|
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case LFUN_EXPORT:
|
case LFUN_EXPORT: {
|
||||||
Exporter::Export(this, argument, false);
|
bool const tmp = Exporter::Export(this, argument, false);
|
||||||
|
if (result)
|
||||||
|
*result = tmp;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
dispatched = false;
|
dispatched = false;
|
||||||
|
@ -73,10 +73,10 @@ public:
|
|||||||
/** High-level interface to buffer functionality.
|
/** High-level interface to buffer functionality.
|
||||||
This function parses a command string and executes it
|
This function parses a command string and executes it
|
||||||
*/
|
*/
|
||||||
bool dispatch(string const & command);
|
bool dispatch(string const & command, bool * result = 0);
|
||||||
|
|
||||||
/// Maybe we know the function already by number...
|
/// Maybe we know the function already by number...
|
||||||
bool dispatch(int ac, string const & argument);
|
bool dispatch(int ac, string const & argument, bool * result = 0);
|
||||||
|
|
||||||
///
|
///
|
||||||
void resizeInsets(BufferView *);
|
void resizeInsets(BufferView *);
|
||||||
|
@ -102,7 +102,7 @@ LyX::LyX(int * argc, char * argv[])
|
|||||||
lyxerr << _("Wrong command line option `")
|
lyxerr << _("Wrong command line option `")
|
||||||
<< argv[argi]
|
<< argv[argi]
|
||||||
<< _("'. Exiting.") << endl;
|
<< _("'. Exiting.") << endl;
|
||||||
exit(0);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,15 +154,16 @@ LyX::LyX(int * argc, char * argv[])
|
|||||||
if (!last_loaded)
|
if (!last_loaded)
|
||||||
last_loaded = bufferlist.newFile("tmpfile", string());
|
last_loaded = bufferlist.newFile("tmpfile", string());
|
||||||
|
|
||||||
|
bool success = false;
|
||||||
|
|
||||||
// try to dispatch to last loaded buffer first
|
// try to dispatch to last loaded buffer first
|
||||||
bool dispatched = last_loaded->dispatch(batch_command);
|
bool dispatched = last_loaded->dispatch(batch_command, &success);
|
||||||
|
|
||||||
// if this was successful, return.
|
// if this was successful, return.
|
||||||
// Maybe we could do something more clever than aborting...
|
// Maybe we could do something more clever than aborting...
|
||||||
if (dispatched) {
|
if (dispatched) {
|
||||||
lyxerr << "We are done!" << endl;
|
|
||||||
QuitLyX();
|
QuitLyX();
|
||||||
return;
|
exit(!success);
|
||||||
}
|
}
|
||||||
|
|
||||||
// otherwise, let the GUI handle the batch command
|
// otherwise, let the GUI handle the batch command
|
||||||
@ -835,7 +836,7 @@ bool LyX::easyParse(int * argc, char * argv[])
|
|||||||
lyxerr << _("List of supported debug flags:")
|
lyxerr << _("List of supported debug flags:")
|
||||||
<< endl;
|
<< endl;
|
||||||
Debug::showTags(lyxerr);
|
Debug::showTags(lyxerr);
|
||||||
exit(0);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Check for "-sysdir"
|
// Check for "-sysdir"
|
||||||
@ -846,7 +847,7 @@ bool LyX::easyParse(int * argc, char * argv[])
|
|||||||
} else {
|
} else {
|
||||||
lyxerr << _("Missing directory for -sysdir switch!")
|
lyxerr << _("Missing directory for -sysdir switch!")
|
||||||
<< endl;
|
<< endl;
|
||||||
exit(0);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Check for "-userdir"
|
// Check for "-userdir"
|
||||||
@ -857,7 +858,7 @@ bool LyX::easyParse(int * argc, char * argv[])
|
|||||||
} else {
|
} else {
|
||||||
lyxerr << _("Missing directory for -userdir switch!")
|
lyxerr << _("Missing directory for -userdir switch!")
|
||||||
<< endl;
|
<< endl;
|
||||||
exit(0);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Check for --help or -help
|
// Check for --help or -help
|
||||||
@ -870,6 +871,7 @@ bool LyX::easyParse(int * argc, char * argv[])
|
|||||||
commandLineVersionInfo();
|
commandLineVersionInfo();
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
// FIXME: why is this commented out ?
|
||||||
// Check for "-nw": No XWindows as for emacs this should
|
// Check for "-nw": No XWindows as for emacs this should
|
||||||
// give a LyX that could be used in a terminal window.
|
// give a LyX that could be used in a terminal window.
|
||||||
//else if (arg == "-nw") {
|
//else if (arg == "-nw") {
|
||||||
@ -886,7 +888,8 @@ bool LyX::easyParse(int * argc, char * argv[])
|
|||||||
lyxerr << _("Missing command string after -x switch!") << endl;
|
lyxerr << _("Missing command string after -x switch!") << endl;
|
||||||
|
|
||||||
// Argh. Setting gui to false segfaults..
|
// Argh. Setting gui to false segfaults..
|
||||||
//gui = false;
|
// FIXME: when ? how ?
|
||||||
|
// gui = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (arg == "-e" || arg == "--export") {
|
else if (arg == "-e" || arg == "--export") {
|
||||||
@ -895,25 +898,34 @@ bool LyX::easyParse(int * argc, char * argv[])
|
|||||||
removeargs = 2;
|
removeargs = 2;
|
||||||
batch_command = "buffer-export " + type;
|
batch_command = "buffer-export " + type;
|
||||||
gui = false;
|
gui = false;
|
||||||
} else
|
} else {
|
||||||
lyxerr << _("Missing file type [eg latex, "
|
lyxerr << _("Missing file type [eg latex, "
|
||||||
"ps...] after ")
|
"ps...] after ")
|
||||||
<< arg << _(" switch!") << endl;
|
<< arg << _(" switch!") << endl;
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (arg == "-i" || arg == "--import") {
|
else if (arg == "-i" || arg == "--import") {
|
||||||
if (i + 1 < *argc) {
|
if (i + 1 < *argc) {
|
||||||
string const type(argv[i+1]);
|
if (!argv[i+2]) {
|
||||||
|
lyxerr << _("Missing filename for --import") << endl;
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
string const file(argv[i+2]);
|
string const file(argv[i+2]);
|
||||||
|
string const type(argv[i+1]);
|
||||||
removeargs = 3;
|
removeargs = 3;
|
||||||
|
|
||||||
batch_command = "buffer-import " + type + " " + file;
|
batch_command = "buffer-import " + type + " " + file;
|
||||||
lyxerr << "batch_command: "
|
lyxerr << "batch_command: "
|
||||||
<< batch_command << endl;
|
<< batch_command << endl;
|
||||||
|
|
||||||
} else
|
} else {
|
||||||
lyxerr << _("Missing type [eg latex, "
|
lyxerr << _("Missing type [eg latex, "
|
||||||
"ps...] after ")
|
"ps...] after ")
|
||||||
<< arg << _(" switch!") << endl;
|
<< arg << _(" switch!") << endl;
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (removeargs > 0) {
|
if (removeargs > 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user