void mmg_app::handle_command_line_arguments() { if (1 >= app->argc) return; std::vector<std::string> args; size_t i; for (i = 1; static_cast<size_t>(app->argc) > i; ++i) args.push_back(wxMB(wxString(app->argv[i]))); handle_common_cli_args(args, ""); if (args.empty()) return; std::vector<wxString> wargs; for (i = 0; args.size() > i; ++i) wargs.push_back(wxU(args[i])); if (wargs[0] == wxT("--edit-headers")) { if (wargs.size() == 1) wxMessageBox(Z("Missing file name after for the option '--edit-headers'."), Z("Missing file name"), wxOK | wxCENTER | wxICON_ERROR); else mdlg->create_header_editor_window(wargs[1]); return; } for (auto &file : wargs) if (!wxFileExists(file) || wxDirExists(file)) wxMessageBox(wxString::Format(Z("The file '%s' does not exist."), file.c_str()), Z("Error loading settings"), wxOK | wxCENTER | wxICON_ERROR); else { #ifdef SYS_WINDOWS if ((file.Length() > 3) && (file.c_str()[1] != wxT(':')) && (file.c_str()[0] != wxT('\\'))) file = wxGetCwd() + wxT("\\") + file; #else if ((file.Length() > 0) && (file.c_str()[0] != wxT('/'))) file = wxGetCwd() + wxT("/") + file; #endif if (wxFileName(file).GetExt() == wxU("mmg")) mdlg->load(file); else mdlg->input_page->add_file(file, false); } }
int main(int argc, char **argv) { mtx_common_init("mpls_dump", argv[0]); auto args = command_line_utf8(argc, argv); while (handle_common_cli_args(args, "-r")) ; auto file_name = parse_args(args); try { parse_file(file_name); } catch (mtx::mm_io::exception &) { mxerror(Y("File not found\n")); } mxexit(0); }