diff options
author | Andras Timar <atimar@suse.com> | 2012-11-20 15:03:34 +0100 |
---|---|---|
committer | Andras Timar <atimar@suse.com> | 2012-11-20 15:03:34 +0100 |
commit | fa88b3717d58410f6318c520b0397000f86b9720 (patch) | |
tree | ad8f1b2135ebe8045de55e5af233ff442d901444 /l10ntools/source/cfgmerge.cxx | |
parent | 54cd57e03e115d6b009409e6df374603452b1378 (diff) | |
parent | a7261b424716463a7bb157f0d79084c868e10015 (diff) |
Merge branch 'feature/killsdf'
Conflicts:
desktop/prj/build.lst
helpcontent2
l10ntools/Executable_gsicheck.mk
l10ntools/Executable_uiex.mk
regexp/inc/regexp/reclass.hxx
solenv/gbuild/AllLangResTarget.mk
Change-Id: I398f0cd9e7daefa8d2e04fd977d5bc2e9708169b
Diffstat (limited to 'l10ntools/source/cfgmerge.cxx')
-rw-r--r-- | l10ntools/source/cfgmerge.cxx | 95 |
1 files changed, 17 insertions, 78 deletions
diff --git a/l10ntools/source/cfgmerge.cxx b/l10ntools/source/cfgmerge.cxx index 41db0973fb47..1d0a819b3d4c 100644 --- a/l10ntools/source/cfgmerge.cxx +++ b/l10ntools/source/cfgmerge.cxx @@ -38,105 +38,44 @@ namespace { namespace global { -bool mergeMode = false; -char const * prj = 0; -char const * prjRoot = 0; -char const * inputPathname = 0; -char const * outputPathname = 0; -char const * mergeSrc; +OString inputPathname; boost::scoped_ptr< CfgParser > parser; } - -void handleArguments(int argc, char ** argv) { - for (int i = 1; i != argc; ++i) { - if (std::strcmp(argv[i], "-e") == 0) { - // ignored, used to be "Disable writing errorlog" - } else if (std::strcmp(argv[i], "-i") == 0) { - if (++i == argc) { - global::inputPathname = 0; // no valid command line - break; - } - global::inputPathname = argv[i]; - } else if (std::strcmp(argv[i], "-l") == 0) { - if (++i == argc) { - global::inputPathname = 0; // no valid command line - break; - } - Export::sLanguages = argv[i]; - } else if (std::strcmp(argv[i], "-m") == 0) { - if (++i == argc) { - global::inputPathname = 0; // no valid command line - break; - } - global::mergeSrc = argv[i]; - global::mergeMode = true; - } else if (std::strcmp(argv[i], "-o") == 0) { - if (++i == argc) { - global::inputPathname = 0; // no valid command line - break; - } - global::outputPathname = argv[i]; - } else if (std::strcmp(argv[i], "-p") == 0) { - if (++i == argc) { - global::inputPathname = 0; // no valid command line - break; - } - global::prj = argv[i]; - } else if (std::strcmp(argv[i], "-r") == 0) { - if (++i == argc) { - global::inputPathname = 0; // no valid command line - break; - } - global::prjRoot = argv[i]; - } else { - global::inputPathname = 0; // no valid command line - break; - } - } - if (global::inputPathname == 0 || global::outputPathname == 0) { - std::fprintf( - stderr, - ("Syntax: cfgex [-p Prj] [-r PrjRoot] -i FileIn -o FileOut" - " [-m DataBase] [-e] [-l l1,l2,...]\n" - " Prj: Project\n" - " PrjRoot: Path to project root (../.. etc.)\n" - " FileIn: Source files (*.src)\n" - " FileOut: Destination file (*.*)\n" - " DataBase: Mergedata (*.sdf)\n" - " -e: ignored\n" - " -l: Restrict the handled languages; l1, l2, ... are elements of" - " (de, en-US, ...)\n")); - std::exit(EXIT_FAILURE); - } - Export::InitLanguages(); -} - } extern "C" { FILE * init(int argc, char ** argv) { - handleArguments(argc, argv); - FILE * pFile = std::fopen(global::inputPathname, "r"); + HandledArgs aArgs; + if ( !Export::handleArguments(argc, argv, aArgs) ) + { + Export::writeUsage("cfgex","xcu"); + std::exit(EXIT_FAILURE); + } + Export::InitLanguages(); + global::inputPathname = aArgs.m_sInputFile; + + FILE * pFile = std::fopen(global::inputPathname.getStr(), "r"); if (pFile == 0) { std::fprintf( stderr, "Error: Cannot open file \"%s\"\n", - global::inputPathname); + global::inputPathname.getStr() ); std::exit(EXIT_FAILURE); } - if (global::mergeMode) { + if (aArgs.m_bMergeMode) { global::parser.reset( new CfgMerge( - global::mergeSrc, global::outputPathname, + aArgs.m_sMergeSrc.getStr(), aArgs.m_sOutputFile.getStr(), global::inputPathname)); } else { global::parser.reset( new CfgExport( - global::outputPathname, global::prj, - common::pathnameToken(global::inputPathname, global::prjRoot))); + aArgs.m_sOutputFile.getStr(), aArgs.m_sPrj.getStr(), + common::pathnameToken(global::inputPathname.getStr(), + aArgs.m_sPrjRoot.getStr()))); } return pFile; |