int cpp_main(int argc, char* argv[]) { // // Before anything else replace Boost.filesystem's file // name checker with one that does nothing (we only deal // with files that already exist, if they're not portable // names it's too late for us to do anything about it). // boost::filesystem::path::default_name_check(filesystem_name_check); // // without arguments just show help: // if(argc < 2) { show_usage(); return 0; } // // create the application object: // pbcp_application papp(bcp_application::create()); // // work through args, and tell the application // object what ir needs to do: // bool list_mode = false; std::list<const char*> positional_args; for(int i = 1; i < argc; ++i) { if(0 == std::strcmp("-h", argv[i]) || 0 == std::strcmp("--help", argv[i])) { show_usage(); return 0; } if(0 == std::strcmp("-v", argv[i]) || 0 == std::strcmp("--version", argv[i])) { std::cout << "bcp " << (BOOST_VERSION / 100000) << "." << (BOOST_VERSION / 100 % 1000) << "." << (BOOST_VERSION % 100) << std::endl; std::cout << __DATE__ << std::endl; return 0; } else if(0 == std::strcmp("--list", argv[i])) { list_mode = true; papp->enable_list_mode(); } else if(0 == std::strcmp("--list-short", argv[i])) { list_mode = true; papp->enable_summary_list_mode(); } else if(0 == std::strcmp("--report", argv[i])) { papp->enable_license_mode(); } else if(0 == std::strcmp("--cvs", argv[i])) { papp->enable_cvs_mode(); } else if(0 == std::strcmp("--svn", argv[i])) { papp->enable_svn_mode(); } else if(0 == std::strcmp("--scan", argv[i])) { papp->enable_scan_mode(); } else if(0 == std::strcmp("--bsl-convert", argv[i])) { papp->enable_bsl_convert_mode(); } else if(0 == std::strcmp("--bsl-summary", argv[i])) { papp->enable_bsl_summary_mode(); } else if(0 == std::strcmp("--unix-lines", argv[i])) { papp->enable_unix_lines(); } else if(0 == std::strncmp("--boost=", argv[i], 8)) { papp->set_boost_path(argv[i] + 8); } else if(argv[i][0] == '-') { show_usage(); return 1; } else { positional_args.push_back(argv[i]); } } // // Handle positional args last: // for(std::list<const char*>::const_iterator i = positional_args.begin(); i != positional_args.end(); ++i) { if(!list_mode && (i == --positional_args.end())) papp->set_destination(*i); else papp->add_module(*i); } // // run the application object: // return papp->run(); }
int main(int argc, char** argv) { QApplication app(argc, argv); app.setApplicationName(CLIENT_FANCY_NAME); app.setApplicationVersion(CLIENT_VERSION); QString locale = QLocale::system().name(); #ifdef Q_OS_WIN32 app.setStyle(QStyleFactory::create("Fusion")); #endif QString settingsFile; QStringList args = app.arguments(); if (args.count() > 1) { QString arg(args[1]); if (arg == "testmarkup") return testMarkup(argc > 2 ? args[2] : ""); else if (arg == "testfeedint") { qDebug() << PumpaSettingsDialog::feedIntToComboIndex(args[2].toInt()); return 0; } else if (arg == "autotestfeedint") { int (*f)(int) = PumpaSettingsDialog::feedIntToComboIndex; (void) f; Q_ASSERT(f(0) == 0); Q_ASSERT(f(1) == 0); Q_ASSERT(f(2) == 1); Q_ASSERT(f(3) == 0); Q_ASSERT(f(4) == 0); Q_ASSERT(f(5) == 0); Q_ASSERT(f(6) == 2); Q_ASSERT(f(11) == 0); Q_ASSERT(f(12) == 0); Q_ASSERT(f(14) == 3); Q_ASSERT(f(15) == 4); Q_ASSERT(f(16) == 0); Q_ASSERT(f(255) == 0); return 0; } else if (arg == "autotestcomboindex") { int (*f)(int) = PumpaSettingsDialog::comboIndexToFeedInt; (void) f; Q_ASSERT(f(0) == 0); Q_ASSERT(f(1) == 2); Q_ASSERT(f(2) == 6); Q_ASSERT(f(3) == 14); Q_ASSERT(f(4) == 15); Q_ASSERT(f(255) == 0); return 0; } else if (arg == "-l" && argc == 3) { locale = args[2]; } else if (arg == "-c" && argc == 3) { settingsFile = args[2]; } else { qDebug() << "Usage: ./pumpa [-c alternative.conf] [-l locale]"; return 0; } } qDebug() << "Using locale" << locale; QTranslator qtTranslator; qtTranslator.load("qt_" + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath)); app.installTranslator(&qtTranslator); QTranslator translator; bool ok = translator.load(QString("pumpa_%1").arg(locale), ":/translations"); app.installTranslator(&translator); if (ok) qDebug() << "Successfully loaded translation"; PumpApp papp(settingsFile, locale); return app.exec(); }