diff options
author | Vladimir Glazounov <vg@openoffice.org> | 2009-01-22 17:12:19 +0000 |
---|---|---|
committer | Vladimir Glazounov <vg@openoffice.org> | 2009-01-22 17:12:19 +0000 |
commit | 51b12a98aee4a1ef807a9ec47385b5fe64ccf80f (patch) | |
tree | 1b86ddd79ee4ed0b403e3f4be86bff5b8fec487c /desktop/source/pkgchk | |
parent | f98558ffbd8cf93e4f443d26b3b8854c30c27caf (diff) |
#i10000# missing changes from jl111
Diffstat (limited to 'desktop/source/pkgchk')
-rw-r--r-- | desktop/source/pkgchk/unopkg/unopkg_app.cxx | 106 | ||||
-rw-r--r-- | desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx | 77 | ||||
-rw-r--r-- | desktop/source/pkgchk/unopkg/unopkg_shared.h | 40 |
3 files changed, 121 insertions, 102 deletions
diff --git a/desktop/source/pkgchk/unopkg/unopkg_app.cxx b/desktop/source/pkgchk/unopkg/unopkg_app.cxx index 805ea3ea7d00..a5d1fd2f746e 100644 --- a/desktop/source/pkgchk/unopkg/unopkg_app.cxx +++ b/desktop/source/pkgchk/unopkg/unopkg_app.cxx @@ -30,6 +30,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove +#include "dp_misc.h" #include "unopkg_main.h" #include "unopkg_shared.h" #include "dp_identifier.hxx" @@ -53,8 +54,6 @@ #include <stdio.h> #include <vector> -#define APP_NAME "unopkg" - using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -94,8 +93,8 @@ const char s_usingText [] = " --deployment-context expert feature: explicit deployment context\n" " <context>\n" "\n" -"For details concerning deployment and this tool, please read the developer's\n" -"guide: http://api.openoffice.org/DevelopersGuide/" APP_NAME ".html\n"; +"To learn more about the Extension Manager and extensions, see:\n" +"http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Extensions/Extensions\n\n"; //------------------------------------------------------------------------------ const OptionInfo s_option_infos [] = { @@ -205,7 +204,6 @@ extern "C" int unopkg_main() { tools::extendApplicationEnvironment(); DisposeGuard disposeGuard; - rtl_TextEncoding textenc = osl_getThreadTextEncoding(); bool bNoOtherErrorMsg = false; OUString subCommand; bool option_shared = false; @@ -244,15 +242,15 @@ extern "C" int unopkg_main() sal_uInt32 nCount = osl_getCommandArgCount(); if (nCount == 0 || isOption( info_help, &nPos )) { - printf( "%s\n", s_usingText ); + dp_misc::writeConsole(s_usingText); return 0; } else if (isOption( info_version, &nPos )) { - printf( "\n%s Version 1.0\n", APP_NAME ); + dp_misc::writeConsole("\n"APP_NAME" Version 3.0\n"); return 0; } //consume all bootstrap variables which may occur before the subcommannd - while(isBootstrapVariable(&nPos)) ; + while(isBootstrapVariable(&nPos)); if(nPos >= nCount) return 0; @@ -287,13 +285,13 @@ extern "C" int unopkg_main() if (cmdArg[ 0 ] == '-') { // is option: - fprintf( stderr, - "\nERROR: unexpected option %s!\n" - " Use " APP_NAME - " %s to print all options.\n", - ::rtl::OUStringToOString( - cmdArg, textenc ).getStr(), - toString( info_help ).getStr() ); + dp_misc::writeConsoleError( + OUSTR("\nERROR: unexpected option ") + + cmdArg + + OUSTR("!\n") + + OUSTR(" Use " APP_NAME " ") + + toString(info_help) + + OUSTR(" to print all options.\n")); return 1; } else @@ -312,7 +310,7 @@ extern "C" int unopkg_main() //make sure the bundled option was provided together with shared if (option_bundled && !option_shared) { - fprintf( stderr, + dp_misc::writeConsoleError( "\nERROR: option --bundled can only be used together with --shared!"); return 1; } @@ -332,10 +330,11 @@ extern "C" int unopkg_main() option_shared = true; } else if (option_shared) { - fprintf( stderr, - "WARNING: explicit context given! " - "Ignoring option %s!\n", - toString( info_shared ).getStr() ); + dp_misc::writeConsoleError( + OUSTR("WARNING: explicit context given! ") + + OUSTR("Ignoring option ") + + toString( info_shared ) + + OUSTR("!\n") ); } } @@ -404,9 +403,8 @@ extern "C" int unopkg_main() { packages = xPackageManager->getDeployedPackages( Reference<task::XAbortChannel>(), xCmdEnv ); - printf( "all deployed %s packages:\n", - ::rtl::OUStringToOString( - deploymentContext, textenc ).getStr() ); + dp_misc::writeConsole( + OUSTR("all deployed ") + deploymentContext + OUSTR(" packages:\n")); } else { @@ -445,49 +443,59 @@ extern "C" int unopkg_main() } else { - fprintf( stderr, - "\nERROR: unknown sub-command %s!\n" - " Use " APP_NAME " %s to print all options.\n", - ::rtl::OUStringToOString( subCommand, textenc ).getStr(), - toString( info_help ).getStr() ); + dp_misc::writeConsoleError( + OUSTR("\nERROR: unknown sub-command ") + + subCommand + + OUSTR("!\n") + + OUSTR(" Use " APP_NAME " ") + + toString(info_help) + + OUSTR(" to print all options.\n")); return 1; } if (option_verbose) - printf( "\n%s done.\n", APP_NAME ); + dp_misc::writeConsole(OUSTR("\n"APP_NAME" done.\n")); //Force to release all bridges which connect us to the child processes disposeBridges(xLocalComponentContext); return 0; } - catch (ucb::CommandFailedException &e) { - fprintf(stderr, "%s\n", ::rtl::OUStringToOString(e.Message, textenc).getStr()); + catch (ucb::CommandFailedException &e) + { + dp_misc::writeConsoleError(e.Message + OUSTR("\n")); bNoOtherErrorMsg = true; } - catch (ucb::CommandAbortedException &) { - fprintf( stderr, "\n%s aborted!\n", APP_NAME ); + catch (ucb::CommandAbortedException &) + { + dp_misc::writeConsoleError("\n"APP_NAME" aborted!\n"); } - catch (deployment::DeploymentException & exc) { - fprintf( stderr, - "\nERROR: %s\n" - " Cause: %s\n", - ::rtl::OUStringToOString( - exc.Message, textenc ).getStr(), - ::rtl::OUStringToOString( - option_verbose - ? ::comphelper::anyToString(exc.Cause) - : reinterpret_cast< - ::com::sun::star::uno::Exception const *>( - exc.Cause.getValue())->Message, textenc).getStr() ); + catch (deployment::DeploymentException & exc) + { + dp_misc::writeConsoleError( + OUSTR("\nERROR: ") + + exc.Message + OUSTR("\n") + + OUSTR(" Cause: ") + + OUString(option_verbose ? ::comphelper::anyToString(exc.Cause): + reinterpret_cast< css::uno::Exception const *>( + exc.Cause.getValue())->Message) + + OUSTR("\n")); + } + catch (LockFileException & e) + { + if (!subcmd_gui) + dp_misc::writeConsoleError(e.Message); + bNoOtherErrorMsg = true; } catch (::com::sun::star::uno::Exception & e ) { Any exc( ::cppu::getCaughtException() ); - fprintf( stderr, "\nERROR: %s\n", ::rtl::OUStringToOString( - option_verbose ? e.Message + OUSTR("\nException details: \n") + - ::comphelper::anyToString(exc) : e.Message, textenc).getStr() ); + dp_misc::writeConsoleError( + OUSTR("\nERROR: ") + + OUString(option_verbose ? e.Message + OUSTR("\nException details: \n") + + ::comphelper::anyToString(exc) : e.Message) + + OUSTR("\n")); } if (!bNoOtherErrorMsg) - fprintf( stderr, "\n%s failed.\n", APP_NAME ); + dp_misc::writeConsoleError("\n"APP_NAME" failed.\n"); disposeBridges(xLocalComponentContext); return 1; } diff --git a/desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx b/desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx index 5434e06f16cf..ea0659c63874 100644 --- a/desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx +++ b/desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: unopkg_cmdenv.cxx,v $ - * $Revision: 1.12 $ + * $Revision: 1.12.8.3 $ * * This file is part of OpenOffice.org. * @@ -67,17 +67,6 @@ using ::rtl::OUString; namespace { -inline ::com::sun::star::lang::Locale toLocale( ::rtl::OUString const & slang ) -{ - ::com::sun::star::lang::Locale locale; - sal_Int32 nIndex = 0; - locale.Language = slang.getToken( 0, '-', nIndex ); - locale.Country = slang.getToken( 0, '-', nIndex ); - locale.Variant = slang.getToken( 0, '-', nIndex ); - return locale; -} - - //============================================================================== struct OfficeLocale : public rtl::StaticWithInit<const lang::Locale, OfficeLocale> { @@ -176,24 +165,20 @@ void CommandEnvironmentImpl::printLicense(const OUString& sLicense, bool & accep { ResMgr * pResMgr = DeploymentResMgr::get(); OUString s1 = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_1, *pResMgr)); - ::rtl::OString os1 = ::rtl::OUStringToOString(s1, osl_getThreadTextEncoding()); OUString s2 = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_2, *pResMgr)); - ::rtl::OString os2 = ::rtl::OUStringToOString(s2, osl_getThreadTextEncoding()); OUString s3 = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_3, *pResMgr)); - ::rtl::OString os3 = ::rtl::OUStringToOString(s3, osl_getThreadTextEncoding()); OUString s4 = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_4, *pResMgr)); - ::rtl::OString os4 = ::rtl::OUStringToOString(s4, osl_getThreadTextEncoding()); OUString sYES = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_YES, *pResMgr)); OUString sY = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_Y, *pResMgr)); OUString sNO = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_NO, *pResMgr)); OUString sN = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_N, *pResMgr)); - fprintf(stdout, "\n\n%s\n\n", os1.getStr()); - fprintf(stdout, "%s\n\n", OUStringToOString(sLicense, osl_getThreadTextEncoding()).getStr()); - fprintf(stdout, "%s\n", os2.getStr()); - fprintf(stdout, "%s", os3.getStr()); - fflush(stdout); + OUString sNewLine(RTL_CONSTASCII_USTRINGPARAM("\n")); + dp_misc::writeConsole(sNewLine + sNewLine + s1 + sNewLine + sNewLine); + dp_misc::writeConsole(sLicense + sNewLine + sNewLine); + dp_misc::writeConsole(s2 + sNewLine); + dp_misc::writeConsole(s3); //the user may enter "yes" or "no", we compare in a case insensitive way Reference< css::i18n::XCollator > xCollator( @@ -206,13 +191,7 @@ void CommandEnvironmentImpl::printLicense(const OUString& sLicense, bool & accep do { - char buf[16]; - rtl_zeroMemory(buf, 16); - // read one char less so that the last char in buf is always zero - fgets(buf, 15, stdin); - OUString sAnswer = ::rtl::OStringToOUString(::rtl::OString(buf), osl_getThreadTextEncoding()); - sAnswer = sAnswer.trim(); - + OUString sAnswer = dp_misc::readConsole(); if (xCollator->compareString(sAnswer, sYES) == 0 || xCollator->compareString(sAnswer, sY) == 0) { @@ -227,8 +206,7 @@ void CommandEnvironmentImpl::printLicense(const OUString& sLicense, bool & accep } else { - fprintf(stdout, "\n\n%s\n", os4.getStr()); - fflush(stdout); + dp_misc::writeConsole(sNewLine + sNewLine + s4 + sNewLine); } } while(true); @@ -257,11 +235,8 @@ void CommandEnvironmentImpl::handle( { Any request( xRequest->getRequest() ); OSL_ASSERT( request.getValueTypeClass() == TypeClass_EXCEPTION ); -#if OSL_DEBUG_LEVEL > 1 - OSL_TRACE( "[unopkg_cmdenv.cxx] incoming request:\n%s\n", - ::rtl::OUStringToOString( ::comphelper::anyToString(request), - RTL_TEXTENCODING_UTF8 ).getStr() ); -#endif + dp_misc::TRACE(OUSTR("[unopkg_cmdenv.cxx] incoming request:\n") + + ::comphelper::anyToString(request) + OUSTR("\n\n")); // selections: bool approve = false; @@ -309,8 +284,7 @@ void CommandEnvironmentImpl::handle( { String sResMsg( ResId( RID_STR_UNOPKG_NO_SHARED_ALLOWED, *DeploymentResMgr::get() ) ); sResMsg.SearchAndReplaceAllAscii( "%NAME", licAgreementExc.ExtensionName ); - ::rtl::OString oMsg = ::rtl::OUStringToOString(sResMsg, osl_getThreadTextEncoding()); - fprintf(stdout, "\n%s\n\n", oMsg.getStr()); + dp_misc::writeConsole(OUSTR("\n") + sResMsg + OUSTR("\n\n")); abort = true; } else if (request >>= licExc) @@ -328,9 +302,7 @@ void CommandEnvironmentImpl::handle( { String sMsg(ResId(RID_STR_UNSUPPORTED_PLATFORM, *dp_gui::DeploymentGuiResMgr::get())); sMsg.SearchAndReplaceAllAscii("%Name", platExc.package->getDisplayName()); - ::rtl::OString oMsg = ::rtl::OUStringToOString(sMsg, osl_getThreadTextEncoding()); - - fprintf(stdout, "\n%s\n\n", oMsg.getStr()); + dp_misc::writeConsole(OUSTR("\n") + sMsg + OUSTR("\n\n")); approve = true; } else { @@ -350,9 +322,8 @@ void CommandEnvironmentImpl::handle( if (abort && m_option_verbose && !bLicenseException) { OUString msg = ::comphelper::anyToString(request); - fprintf( stderr, "\nERROR: %s\n", - ::rtl::OUStringToOString( - msg, osl_getThreadTextEncoding() ).getStr() ); + dp_misc::writeConsoleError( + OUSTR("\nERROR: ") + msg + OUSTR("\n")); } // select: @@ -400,13 +371,11 @@ void CommandEnvironmentImpl::update_( Any const & Status ) { if (! Status.hasValue()) return; - - FILE * stream; + bool bUseErr = false; OUString msg; if (Status >>= msg) { if (! m_option_verbose) return; - stream = stdout; } else { ::rtl::OUStringBuffer buf; @@ -421,13 +390,21 @@ void CommandEnvironmentImpl::update_( Any const & Status ) buf.append( ::comphelper::anyToString(Status) ); } msg = buf.makeStringAndClear(); - stream = stderr; + bUseErr = true; } OSL_ASSERT( m_logLevel >= 0 ); for ( sal_Int32 n = 0; n < m_logLevel; ++n ) - fprintf( stream, " " ); - fprintf( stream, "%s\n", ::rtl::OUStringToOString( - msg, osl_getThreadTextEncoding() ).getStr() ); + { + if (bUseErr) + dp_misc::writeConsoleError(" "); + else + dp_misc::writeConsole(" "); + } + + if (bUseErr) + dp_misc::writeConsoleError(msg + OUSTR("\n")); + else + dp_misc::writeConsole(msg + OUSTR("\n")); } //______________________________________________________________________________ diff --git a/desktop/source/pkgchk/unopkg/unopkg_shared.h b/desktop/source/pkgchk/unopkg/unopkg_shared.h index 01d100f2a742..18314811f63f 100644 --- a/desktop/source/pkgchk/unopkg/unopkg_shared.h +++ b/desktop/source/pkgchk/unopkg/unopkg_shared.h @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: unopkg_shared.h,v $ - * $Revision: 1.9 $ + * $Revision: 1.9.8.3 $ * * This file is part of OpenOffice.org. * @@ -29,22 +29,50 @@ ************************************************************************/ #include "dp_misc.h" +#include "com/sun/star/uno/Exception.hpp" #include "com/sun/star/lang/XComponent.hpp" #include "com/sun/star/uno/XComponentContext.hpp" #include "com/sun/star/ucb/XCommandEnvironment.hpp" #include "com/sun/star/deployment/XPackage.hpp" #include "tools/resmgr.hxx" +#include "rtl/ustring.hxx" +#include "unotools/configmgr.hxx" +#define APP_NAME "unopkg" namespace css = ::com::sun::star; namespace unopkg { + inline ::com::sun::star::lang::Locale toLocale( ::rtl::OUString const & slang ) + { + ::com::sun::star::lang::Locale locale; + sal_Int32 nIndex = 0; + locale.Language = slang.getToken( 0, '-', nIndex ); + locale.Country = slang.getToken( 0, '-', nIndex ); + locale.Variant = slang.getToken( 0, '-', nIndex ); + return locale; + } + + + struct OfficeLocale : + public rtl::StaticWithInit<const css::lang::Locale, OfficeLocale> { + const css::lang::Locale operator () () { + ::rtl::OUString slang; + if (! (::utl::ConfigManager::GetDirectConfigProperty( + ::utl::ConfigManager::LOCALE ) >>= slang)) + throw css::uno::RuntimeException( OUSTR("Cannot determine language!"), 0 ); + if (slang.getLength() == 0) + slang = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en-US")); + return toLocale(slang); + } +}; + struct DeploymentResMgr : public rtl::StaticWithInit< ResMgr *, DeploymentResMgr > { ResMgr * operator () () { - return ResMgr::CreateResMgr( "deployment" ); + return ResMgr::CreateResMgr( "deployment", OfficeLocale::get()); } }; @@ -56,8 +84,14 @@ struct OptionInfo bool m_has_argument; }; +struct LockFileException : public css::uno::Exception +{ + LockFileException(::rtl::OUString const & sMessage) : + css::uno::Exception(sMessage, css::uno::Reference< css::uno::XInterface > ()) {} +}; + //============================================================================== -::rtl::OString toString( OptionInfo const * info ); +::rtl::OUString toString( OptionInfo const * info ); //============================================================================== OptionInfo const * getOptionInfo( |