#include "version.h"
#include "lyx_main.h"
#include "lyx_gui.h"
+#include "LyXView.h"
+#include "lyxfunc.h"
#include "lyx_gui_misc.h"
#include "lyxrc.h"
#include "support/path.h"
#include "gettext.h"
#include "kbmap.h"
+using std::endl;
+
extern void LoadLyXFile(string const &);
string system_lyxdir;
}
// Execute batch commands if available
- if (!batch_command.empty() && last_loaded) {
+ if (!batch_command.empty()) {
lyxerr << "About to handle -x '" << batch_command << "'" << endl;
- //Buffer buffer("Script Buffer");
- //buffer.Dispatch(batch_command);
- last_loaded->Dispatch(batch_command);
- lyxerr << "We are done!" << endl;
- return; // Maybe we could do something more clever than aborting..
+
+ // no buffer loaded, create one
+ if (!last_loaded)
+ last_loaded = bufferlist.newFile("tmpfile", string());
+
+ // try to dispatch to last loaded buffer first
+ bool dispatched = last_loaded->Dispatch(batch_command);
+
+ // if this was successful, return.
+ // Maybe we could do something more clever than aborting...
+ if (dispatched) {
+ lyxerr << "We are done!" << endl;
+ return;
+ }
+
+ // otherwise, let the GUI handle the batch command
+ lyxGUI->regBuf(last_loaded);
+ lyxGUI->getLyXView()->getLyXFunc()->Dispatch(batch_command);
+
+ // fall through...
}
// Let the ball begin...
lyxerr[Debug::INIT]
<< "Checking whether LyX is run in place... no"
<< endl;
- build_lyxdir.clear();
+ build_lyxdir.erase();
}
bool FollowLink;
lyxrc.lastfiles = AddName(user_lyxdir, "lastfiles");
}
- // Calculate screen dpi as average of x-DPI and y-DPI:
// Disable gui when either lyxrc or easyparse says so
if (!gui)
lyxrc.use_gui = false;
// Calculate screen dpi as average of x-DPI and y-DPI:
if (lyxrc.use_gui) {
- Screen * scr = DefaultScreenOfDisplay(fl_get_display());
- lyxrc.dpi = ((HeightOfScreen(scr)* 25.4 / HeightMMOfScreen(scr)) +
- (WidthOfScreen(scr)* 25.4 / WidthMMOfScreen(scr))) / 2;
+ lyxrc.dpi = getScreenDPI();
lyxerr[Debug::INFO] << "DPI setting detected to be "
<< lyxrc.dpi + 0.5 << endl;
} else {
Debug::showTags(lyxerr);
exit(0);
}
-
}
// Check for "-sysdir"
else if (arg == "-sysdir") {
commandLineHelp();
exit(0);
}
- // Check for "-nw": No window
- else if (arg == "-nw") {
- gui = false;
- }
+ // Check for "-nw": No XWindows as for emacs this should
+ // give a LyX that could be used in a terminal window.
+ //else if (arg == "-nw") {
+ // gui = false;
+ //}
// Check for "-x": Execute commands
else if (arg == "-x" || arg == "--execute") {
lyxerr << _("Unknown file type '")
<< type << _("' after ")
<< arg << _(" switch!") << endl;
- }
- else
+ } else
lyxerr << _("Missing file type [eg latex, "
"ps...] after ")
<< arg << _(" switch!") << endl;
}
+
+ else if (arg == "--import") {
+ if (i + 1 < *argc) {
+ string type(argv[i+1]);
+ string file(argv[i+2]);
+
+ (*argc) -= 3;
+ for (int j = i; j < (*argc); ++j)
+ argv[j] = argv[j + 3];
+ --i; // After shift, check this number again.
+
+ batch_command = "buffer-import " + type + " " + file;
+ lyxerr << "batch_command: "
+ << batch_command << endl;
+
+ } else
+ lyxerr << _("Missing type [eg latex, "
+ "ps...] after ")
+ << arg << _(" switch!") << endl;
+ }
}
+
return gui;
}
+extern "C"
void error_handler(int err_sig)
{
switch (err_sig) {