diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-11-06 10:15:10 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-11-06 12:16:05 +0000 |
commit | fb1a18d6c1cb315defc1f7cd20167015274f296e (patch) | |
tree | 8ce37c4409b86ffe9fcb003237ffb8d9d7ec5f92 /l10ntools | |
parent | a8d95baea41f8bc91024429fa08e09a35a5c1e08 (diff) |
coverity#1338261 Uncaught exception
Change-Id: I3e818ed5ccf395f0fbaf82f8e62870b847fc41c9
Diffstat (limited to 'l10ntools')
-rw-r--r-- | l10ntools/source/helpex.cxx | 126 |
1 files changed, 67 insertions, 59 deletions
diff --git a/l10ntools/source/helpex.cxx b/l10ntools/source/helpex.cxx index e68abb53f9c4..e805ade1c1b9 100644 --- a/l10ntools/source/helpex.cxx +++ b/l10ntools/source/helpex.cxx @@ -47,85 +47,93 @@ void WriteUsage() " (de, en-US, ...) or all\n"); } -SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) { - - bool bMultiMerge = false; - for (int nIndex = 1; nIndex != argc; ++nIndex) +SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) +{ + bool hasNoError = true; + try { - if (std::strcmp(argv[nIndex], "-mi") == 0) + bool bMultiMerge = false; + for (int nIndex = 1; nIndex != argc; ++nIndex) { - argv[nIndex][1] = 'i'; - argv[nIndex][2] = '\0'; - bMultiMerge = true; - break; + if (std::strcmp(argv[nIndex], "-mi") == 0) + { + argv[nIndex][1] = 'i'; + argv[nIndex][2] = '\0'; + bMultiMerge = true; + break; + } } - } - common::HandledArgs aArgs; - if ( !common::handleArguments( argc, argv, aArgs) ) - { - WriteUsage(); - return 1; - } - bool hasNoError = true; + common::HandledArgs aArgs; + if ( !common::handleArguments( argc, argv, aArgs) ) + { + WriteUsage(); + return 1; + } - if ( aArgs.m_bMergeMode ) - { - if( bMultiMerge ) + if ( aArgs.m_bMergeMode ) { - std::ifstream aInput( aArgs.m_sInputFile.getStr() ); - if( !aInput.is_open() ) + if( bMultiMerge ) { - std::cerr << "Helpex error: cannot open input file\n"; - return 1; - } - MergeDataFile* pMergeDataFile = 0; - if( aArgs.m_sLanguage != "qtz") - { - pMergeDataFile = new MergeDataFile(aArgs.m_sMergeSrc, OString(), false, false ); + std::ifstream aInput( aArgs.m_sInputFile.getStr() ); + if( !aInput.is_open() ) + { + std::cerr << "Helpex error: cannot open input file\n"; + return 1; + } + MergeDataFile* pMergeDataFile = 0; + if( aArgs.m_sLanguage != "qtz") + { + pMergeDataFile = new MergeDataFile(aArgs.m_sMergeSrc, OString(), false, false ); + } + std::string sTemp; + aInput >> sTemp; + while( !aInput.eof() ) + { + // coverity[tainted_data] - this is a build time tool + const OString sXhpFile( sTemp.data(), (sal_Int32)sTemp.length() ); + HelpParser aParser( sXhpFile ); + const OString sOutput( + aArgs.m_sOutputFile + + sXhpFile.copy( sXhpFile.lastIndexOf('/') )); + if( !aParser.Merge( aArgs.m_sMergeSrc, sOutput, + aArgs.m_sLanguage, pMergeDataFile )) + { + hasNoError = false; + } + aInput >> sTemp; + } + aInput.close(); + delete pMergeDataFile; } - std::string sTemp; - aInput >> sTemp; - while( !aInput.eof() ) + else { - // coverity[tainted_data] - this is a build time tool - const OString sXhpFile( sTemp.data(), (sal_Int32)sTemp.length() ); - HelpParser aParser( sXhpFile ); - const OString sOutput( - aArgs.m_sOutputFile + - sXhpFile.copy( sXhpFile.lastIndexOf('/') )); - if( !aParser.Merge( aArgs.m_sMergeSrc, sOutput, - aArgs.m_sLanguage, pMergeDataFile )) + HelpParser aParser( aArgs.m_sInputFile ); + MergeDataFile* pMergeDataFile = 0; + if( aArgs.m_sLanguage != "qtz") { - hasNoError = false; + pMergeDataFile = new MergeDataFile(aArgs.m_sMergeSrc, aArgs.m_sInputFile, false, false ); } - aInput >> sTemp; + hasNoError = + aParser.Merge( + aArgs.m_sMergeSrc, aArgs.m_sOutputFile, + aArgs.m_sLanguage, pMergeDataFile ); + delete pMergeDataFile; } - aInput.close(); - delete pMergeDataFile; } else { HelpParser aParser( aArgs.m_sInputFile ); - MergeDataFile* pMergeDataFile = 0; - if( aArgs.m_sLanguage != "qtz") - { - pMergeDataFile = new MergeDataFile(aArgs.m_sMergeSrc, aArgs.m_sInputFile, false, false ); - } hasNoError = - aParser.Merge( - aArgs.m_sMergeSrc, aArgs.m_sOutputFile, - aArgs.m_sLanguage, pMergeDataFile ); - delete pMergeDataFile; + HelpParser::CreatePO( + aArgs.m_sOutputFile, aArgs.m_sInputFile, + new XMLFile( OString('0') ), "help" ); } } - else + catch (std::exception& e) { - HelpParser aParser( aArgs.m_sInputFile ); - hasNoError = - HelpParser::CreatePO( - aArgs.m_sOutputFile, aArgs.m_sInputFile, - new XMLFile( OString('0') ), "help" ); + std::cerr << "Helpex exception: " << e.what() << std::endl; + hasNoError = true; } if( hasNoError ) |