From e1e6a0ae93e883443c83b24b33c3a2519a0bf774 Mon Sep 17 00:00:00 2001 From: coppro Date: Thu, 12 Jul 2007 00:29:01 +0000 Subject: [PATCH] Added robustness to command-line options. Fixed minor bugs in installer git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@556 0fc631ac-6414-0410-93d0-97cfa31319b6 --- src/data/installer.cpp | 4 ++-- src/main.cpp | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/data/installer.cpp b/src/data/installer.cpp index dc2182ed..52bfda67 100644 --- a/src/data/installer.cpp +++ b/src/data/installer.cpp @@ -29,7 +29,7 @@ void Installer::installFrom(const String& filename, bool message_on_success) { i.open(filename); i.install(); 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); } } @@ -56,7 +56,7 @@ void Installer::install(const String& package) { void Installer::addPackage(const String& package) { wxFileName fn(package); - if (fn.GetExt() == _(".mse-installer")) { + if (fn.GetExt() == _("mse-installer")) { prefered_filename = package; } else { PackagedP p = ::packages.openAny(package); diff --git a/src/main.cpp b/src/main.cpp index d711d332..36304566 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -86,19 +86,23 @@ bool MSE::OnInit() { // Show the symbol editor Window* wnd = new SymbolWindow(nullptr, argv[1]); wnd->Show(); + packages.destroy(); return true; } else if (f.GetExt() == _("mse-set") || f.GetExt() == _("mse") || f.GetExt() == _("set")) { // Show the set window Window* wnd = new SetWindow(nullptr, import_set(argv[1])); wnd->Show(); + packages.destroy(); return true; } else if (f.GetExt() == _("mse-installer")) { // Installer; install it Installer::installFrom(argv[1], true); + packages.destroy(); return false; } else if (arg == _("--symbol-editor")) { Window* wnd = new SymbolWindow(nullptr); wnd->Show(); + packages.destroy(); return true; } else if (arg == _("--create-installer")) { // create an installer @@ -111,6 +115,7 @@ bool MSE::OnInit() { } else { inst.saveAs(inst.prefered_filename, false); } + packages.destroy(); return false; } else if (arg == _("--help") || arg == _("-?")) { // command line help @@ -130,6 +135,7 @@ bool MSE::OnInit() { } else if (arg == _("--version") || arg == _("-v")) { // dump version write_stdout( _("Magic Set Editor\nVersion ") + app_version.toString() + version_suffix ); + packages.destroy(); return false; } else { handle_error(_("Invalid command line argument:\n") + String(argv[1])); @@ -141,6 +147,7 @@ bool MSE::OnInit() { // no command line arguments, or error, show welcome window (new WelcomeWindow())->Show(); + packages.destroy(); return true; } catch (const Error& e) {