Commit bcc26f1a authored by coppro's avatar coppro

Added robustness to command-line options.

Fixed minor bugs in installer
parent df463eb0
...@@ -29,7 +29,7 @@ void Installer::installFrom(const String& filename, bool message_on_success) { ...@@ -29,7 +29,7 @@ void Installer::installFrom(const String& filename, bool message_on_success) {
i.open(filename); i.open(filename);
i.install(); i.install();
if (message_on_success) { if (message_on_success) {
wxMessageBox(String::Format(_("'%s' successfully installed %d package%s."), i.name(), i.packages.size(), i.packages.size() == 1 ? _("") : _("s")), wxMessageBox(String::Format(_("'%s' successfully installed %d package%s."), i.name().c_str(), i.packages.size(), i.packages.size() == 1 ? _("") : _("s")),
_("Magic Set Editor"), wxOK | wxICON_INFORMATION); _("Magic Set Editor"), wxOK | wxICON_INFORMATION);
} }
} }
...@@ -56,7 +56,7 @@ void Installer::install(const String& package) { ...@@ -56,7 +56,7 @@ void Installer::install(const String& package) {
void Installer::addPackage(const String& package) { void Installer::addPackage(const String& package) {
wxFileName fn(package); wxFileName fn(package);
if (fn.GetExt() == _(".mse-installer")) { if (fn.GetExt() == _("mse-installer")) {
prefered_filename = package; prefered_filename = package;
} else { } else {
PackagedP p = ::packages.openAny(package); PackagedP p = ::packages.openAny(package);
......
...@@ -86,19 +86,23 @@ bool MSE::OnInit() { ...@@ -86,19 +86,23 @@ bool MSE::OnInit() {
// Show the symbol editor // Show the symbol editor
Window* wnd = new SymbolWindow(nullptr, argv[1]); Window* wnd = new SymbolWindow(nullptr, argv[1]);
wnd->Show(); wnd->Show();
packages.destroy();
return true; return true;
} else if (f.GetExt() == _("mse-set") || f.GetExt() == _("mse") || f.GetExt() == _("set")) { } else if (f.GetExt() == _("mse-set") || f.GetExt() == _("mse") || f.GetExt() == _("set")) {
// Show the set window // Show the set window
Window* wnd = new SetWindow(nullptr, import_set(argv[1])); Window* wnd = new SetWindow(nullptr, import_set(argv[1]));
wnd->Show(); wnd->Show();
packages.destroy();
return true; return true;
} else if (f.GetExt() == _("mse-installer")) { } else if (f.GetExt() == _("mse-installer")) {
// Installer; install it // Installer; install it
Installer::installFrom(argv[1], true); Installer::installFrom(argv[1], true);
packages.destroy();
return false; return false;
} else if (arg == _("--symbol-editor")) { } else if (arg == _("--symbol-editor")) {
Window* wnd = new SymbolWindow(nullptr); Window* wnd = new SymbolWindow(nullptr);
wnd->Show(); wnd->Show();
packages.destroy();
return true; return true;
} else if (arg == _("--create-installer")) { } else if (arg == _("--create-installer")) {
// create an installer // create an installer
...@@ -111,6 +115,7 @@ bool MSE::OnInit() { ...@@ -111,6 +115,7 @@ bool MSE::OnInit() {
} else { } else {
inst.saveAs(inst.prefered_filename, false); inst.saveAs(inst.prefered_filename, false);
} }
packages.destroy();
return false; return false;
} else if (arg == _("--help") || arg == _("-?")) { } else if (arg == _("--help") || arg == _("-?")) {
// command line help // command line help
...@@ -130,6 +135,7 @@ bool MSE::OnInit() { ...@@ -130,6 +135,7 @@ bool MSE::OnInit() {
} else if (arg == _("--version") || arg == _("-v")) { } else if (arg == _("--version") || arg == _("-v")) {
// dump version // dump version
write_stdout( _("Magic Set Editor\nVersion ") + app_version.toString() + version_suffix ); write_stdout( _("Magic Set Editor\nVersion ") + app_version.toString() + version_suffix );
packages.destroy();
return false; return false;
} else { } else {
handle_error(_("Invalid command line argument:\n") + String(argv[1])); handle_error(_("Invalid command line argument:\n") + String(argv[1]));
...@@ -141,6 +147,7 @@ bool MSE::OnInit() { ...@@ -141,6 +147,7 @@ bool MSE::OnInit() {
// no command line arguments, or error, show welcome window // no command line arguments, or error, show welcome window
(new WelcomeWindow())->Show(); (new WelcomeWindow())->Show();
packages.destroy();
return true; return true;
} catch (const Error& e) { } catch (const Error& e) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment