diff options
author | Mikhail Voytenko <mav@openoffice.org> | 2011-03-24 14:30:07 +0100 |
---|---|---|
committer | Mikhail Voytenko <mav@openoffice.org> | 2011-03-24 14:30:07 +0100 |
commit | a0af6240b3cc56af2ca9f250bf1d97e3a2df846a (patch) | |
tree | bb847270f30ad2f6a53c05f3326f64723dde95f4 | |
parent | mav60: #164341# fix problems with the new implementation (diff) | |
parent | CWS-TOOLING: integrate CWS jl164 (diff) | |
download | core-a0af6240b3cc56af2ca9f250bf1d97e3a2df846a.tar.gz core-a0af6240b3cc56af2ca9f250bf1d97e3a2df846a.zip |
mav60: rebase to DEV300_m103
409 files changed, 2851 insertions, 4599 deletions
diff --git a/cli_ure/version/version.txt b/cli_ure/version/version.txt index 8cbdedf654d4..b5ec562837f6 100644..100755 --- a/cli_ure/version/version.txt +++ b/cli_ure/version/version.txt @@ -25,23 +25,23 @@ # #************************************************************************* -CLI_URETYPES_NEW_VERSION=1.0.7.0 -CLI_URETYPES_OLD_VERSION=1.0.0.0-1.0.6.0 -CLI_URETYPES_POLICY_VERSION=7.0.0.0 +CLI_URETYPES_NEW_VERSION=1.0.8.0 +CLI_URETYPES_OLD_VERSION=1.0.0.0-1.0.7.0 +CLI_URETYPES_POLICY_VERSION=8.0.0.0 CLI_URETYPES_POLICY_ASSEMBLY=policy.1.0.cli_uretypes -CLI_BASETYPES_NEW_VERSION=1.0.18.0 -CLI_BASETYPES_OLD_VERSION=1.0.0.0-1.0.17.0 -CLI_BASETYPES_POLICY_VERSION=18.0.0.0 +CLI_BASETYPES_NEW_VERSION=1.0.19.0 +CLI_BASETYPES_OLD_VERSION=1.0.0.0-1.0.18.0 +CLI_BASETYPES_POLICY_VERSION=19.0.0.0 CLI_BASETYPES_POLICY_ASSEMBLY=policy.1.0.cli_basetypes -CLI_URE_NEW_VERSION=1.0.21.0 -CLI_URE_OLD_VERSION=1.0.0.0-1.0.20.0 -CLI_URE_POLICY_VERSION=21.0.0.0 +CLI_URE_NEW_VERSION=1.0.22.0 +CLI_URE_OLD_VERSION=1.0.0.0-1.0.21.0 +CLI_URE_POLICY_VERSION=22.0.0.0 CLI_URE_POLICY_ASSEMBLY=policy.1.0.cli_ure -CLI_CPPUHELPER_NEW_VERSION=1.0.21.0 -CLI_CPPUHELPER_OLD_VERSION=1.0.0.0-1.0.20.0 -CLI_CPPUHELPER_POLICY_VERSION=21.0.0.0 +CLI_CPPUHELPER_NEW_VERSION=1.0.22.0 +CLI_CPPUHELPER_OLD_VERSION=1.0.0.0-1.0.21.0 +CLI_CPPUHELPER_POLICY_VERSION=22.0.0.0 CLI_CPPUHELPER_POLICY_ASSEMBLY=policy.1.0.cli_cppuhelper diff --git a/codemaker/source/bonobowrappermaker/corbaoptions.cxx b/codemaker/source/bonobowrappermaker/corbaoptions.cxx index 3c644b6ff4dd..1bb75810031a 100644 --- a/codemaker/source/bonobowrappermaker/corbaoptions.cxx +++ b/codemaker/source/bonobowrappermaker/corbaoptions.cxx @@ -247,9 +247,8 @@ OString CorbaOptions::prepareHelp() OString CorbaOptions::prepareVersion() { - OString version("\nSun Microsystems (R) "); + OString version(m_program); version += m_program + " Version 2.0\n\n"; - return version; } diff --git a/codemaker/source/cppumaker/cppuoptions.cxx b/codemaker/source/cppumaker/cppuoptions.cxx index 1bc398391c9d..da8ce2089c6e 100644 --- a/codemaker/source/cppumaker/cppuoptions.cxx +++ b/codemaker/source/cppumaker/cppuoptions.cxx @@ -34,6 +34,12 @@ #include "osl/thread.h" #include "osl/process.h" +#ifdef SAL_UNX +#define SEPARATOR '/' +#else +#define SEPARATOR '\\' +#endif + using namespace rtl; sal_Bool CppuOptions::initOptions(int ac, char* av[], sal_Bool bCmdFile) @@ -46,7 +52,9 @@ sal_Bool CppuOptions::initOptions(int ac, char* av[], sal_Bool bCmdFile) { bCmdFile = sal_True; - m_program = av[0]; + OString name(av[0]); + sal_Int32 index = name.lastIndexOf(SEPARATOR); + m_program = name.copy((index > 0 ? index+1 : 0)); if (ac < 2) { @@ -338,7 +346,7 @@ OString CppuOptions::prepareHelp() help += " necessary information is available for bridging the type in UNO.\n"; help += " -G = generate only target files which does not exists.\n"; help += " -Gc = generate only target files which content will be changed.\n"; - help += " -X<file> = extra types which will not be taken into account for generation.\n"; + help += " -X<file> = extra types which will not be taken into account for generation.\n\n"; help += prepareVersion(); return help; @@ -346,9 +354,8 @@ OString CppuOptions::prepareHelp() OString CppuOptions::prepareVersion() { - OString version("\nSun Microsystems (R) "); - version += m_program + " Version 2.0\n\n"; - + OString version(m_program); + version += " Version 2.0\n\n"; return version; } diff --git a/codemaker/source/cunomaker/cunooptions.cxx b/codemaker/source/cunomaker/cunooptions.cxx index 50a1223d004f..909ab3edc8dd 100644 --- a/codemaker/source/cunomaker/cunooptions.cxx +++ b/codemaker/source/cunomaker/cunooptions.cxx @@ -321,9 +321,8 @@ OString CunoOptions::prepareHelp() OString CunoOptions::prepareVersion() { - OString version("\nSun Microsystems (R) "); - version += m_program + " Version 1.0\n\n"; - + OString version(m_program); + version += " Version 1.0\n\n"; return version; } diff --git a/codemaker/source/idlmaker/idloptions.cxx b/codemaker/source/idlmaker/idloptions.cxx index 306e43293223..e495f555e5cb 100644 --- a/codemaker/source/idlmaker/idloptions.cxx +++ b/codemaker/source/idlmaker/idloptions.cxx @@ -242,9 +242,8 @@ OString IdlOptions::prepareHelp() OString IdlOptions::prepareVersion() { - OString version("\nSun Microsystems (R) "); - version += m_program + " Version 2.0\n\n"; - + OString version(m_program); + version += " Version 2.0\n\n"; return version; } diff --git a/codemaker/source/javamaker/javaoptions.cxx b/codemaker/source/javamaker/javaoptions.cxx index 24b9b1509cfc..58235bd32616 100644 --- a/codemaker/source/javamaker/javaoptions.cxx +++ b/codemaker/source/javamaker/javaoptions.cxx @@ -33,6 +33,12 @@ #include "osl/process.h" #include "osl/thread.h" +#ifdef SAL_UNX +#define SEPARATOR '/' +#else +#define SEPARATOR '\\' +#endif + using namespace rtl; sal_Bool JavaOptions::initOptions(int ac, char* av[], sal_Bool bCmdFile) @@ -45,7 +51,9 @@ sal_Bool JavaOptions::initOptions(int ac, char* av[], sal_Bool bCmdFile) { bCmdFile = sal_True; - m_program = av[0]; + OString name(av[0]); + sal_Int32 index = name.lastIndexOf(SEPARATOR); + m_program = name.copy((index > 0 ? index+1 : 0)); if (ac < 2) { @@ -282,7 +290,7 @@ OString JavaOptions::prepareHelp() help += " -nD = no dependent types are generated.\n"; help += " -G = generate only target files which does not exists.\n"; help += " -Gc = generate only target files which content will be changed.\n"; - help += " -X<file> = extra types which will not be taken into account for generation.\n"; + help += " -X<file> = extra types which will not be taken into account for generation.\n\n"; help += prepareVersion(); return help; @@ -290,9 +298,8 @@ OString JavaOptions::prepareHelp() OString JavaOptions::prepareVersion() { - OString version("\nSun Microsystems (R) "); - version += m_program + " Version 2.0\n\n"; - + OString version(m_program); + version += " Version 2.0\n\n"; return version; } diff --git a/cppu/source/typelib/typelib.cxx b/cppu/source/typelib/typelib.cxx index aa0d18589a89..935a64397505 100644 --- a/cppu/source/typelib/typelib.cxx +++ b/cppu/source/typelib/typelib.cxx @@ -330,20 +330,6 @@ TypeDescriptor_Init_Impl::~TypeDescriptor_Init_Impl() SAL_THROW( () ) delete pWeakMap; pWeakMap = 0; } -#if OSL_DEBUG_LEVEL > 1 - OSL_ASSERT( nTypeDescriptionCount == 0 ); - OSL_ASSERT( nCompoundTypeDescriptionCount == 0 ); - OSL_ASSERT( nUnionTypeDescriptionCount == 0 ); - OSL_ASSERT( nIndirectTypeDescriptionCount == 0 ); - OSL_ASSERT( nArrayTypeDescriptionCount == 0 ); - OSL_ASSERT( nEnumTypeDescriptionCount == 0 ); - OSL_ASSERT( nInterfaceMethodTypeDescriptionCount == 0 ); - OSL_ASSERT( nInterfaceAttributeTypeDescriptionCount == 0 ); - OSL_ASSERT( nInterfaceTypeDescriptionCount == 0 ); - OSL_ASSERT( nTypeDescriptionReferenceCount == 0 ); - - OSL_ASSERT( !pCallbacks || pCallbacks->empty() ); -#endif delete pCallbacks; pCallbacks = 0; diff --git a/cpputools/source/registercomponent/registercomponent.cxx b/cpputools/source/registercomponent/registercomponent.cxx index c487d95c59a5..f13fae54c508 100644 --- a/cpputools/source/registercomponent/registercomponent.cxx +++ b/cpputools/source/registercomponent/registercomponent.cxx @@ -575,7 +575,7 @@ void DoIt::operator() (const OUString & url) throw() if ( ! _bSilent ) { - fprintf(stderr, "register component '%s' in registry '%s' succesful!\n", sUrl.getStr(), _sRegName.getStr()); + fprintf(stderr, "register component '%s' in registry '%s' successful!\n", sUrl.getStr(), _sRegName.getStr()); } } @@ -604,7 +604,7 @@ void DoIt::operator() (const OUString & url) throw() if (bRet) { if ( ! _bSilent ) - fprintf(stderr, "revoke component '%s' from registry '%s' succesful!\n", sUrl.getStr(), _sRegName.getStr()); + fprintf(stderr, "revoke component '%s' from registry '%s' successful!\n", sUrl.getStr(), _sRegName.getStr()); } else { diff --git a/idlc/inc/idlc/idlctypes.hxx b/idlc/inc/idlc/idlctypes.hxx index 47eaa802b28d..41451ee9060f 100644 --- a/idlc/inc/idlc/idlctypes.hxx +++ b/idlc/inc/idlc/idlctypes.hxx @@ -32,7 +32,9 @@ #include <hash_map> #include <list> #include <vector> +#include <string> #include <set> + #include <sal/types.h> #include <rtl/ustring.hxx> diff --git a/idlc/inc/idlc/options.hxx b/idlc/inc/idlc/options.hxx index 7eba788a4ea9..383150bd4b40 100644 --- a/idlc/inc/idlc/options.hxx +++ b/idlc/inc/idlc/options.hxx @@ -50,18 +50,29 @@ public: class Options { public: - Options(); + explicit Options(char const * progname); ~Options(); + static bool checkArgument(std::vector< std::string > & rArgs, char const * arg, size_t len); + static bool checkCommandFile(std::vector< std::string > & rArgs, char const * filename); + + bool initOptions(std::vector< std::string > & rArgs) + throw(IllegalArgument); + bool badOption(char const * reason, std::string const & rArg) + throw(IllegalArgument); + bool setOption(char const * option, std::string const & rArg); + +#if 0 /* @@@ */ sal_Bool initOptions(int ac, char* av[], sal_Bool bCmdFile=sal_False) throw( IllegalArgument ); +#endif /* @@@ */ ::rtl::OString prepareHelp(); ::rtl::OString prepareVersion(); const ::rtl::OString& getProgramName() const; - sal_Bool isValid(const ::rtl::OString& option); - const ::rtl::OString getOption(const ::rtl::OString& option) + bool isValid(const ::rtl::OString& option); + const ::rtl::OString& getOption(const ::rtl::OString& option) throw( IllegalArgument ); const StringVector& getInputFiles() const { return m_inputFiles; } diff --git a/idlc/source/astexpression.cxx b/idlc/source/astexpression.cxx index a93c13ecf8ba..357da1ab362e 100644 --- a/idlc/source/astexpression.cxx +++ b/idlc/source/astexpression.cxx @@ -27,6 +27,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_idlc.hxx" + #include <idlc/astexpression.hxx> #include <idlc/astconstant.hxx> #include <idlc/astscope.hxx> @@ -34,6 +35,7 @@ #include <limits.h> #include <float.h> +#include <memory> // auto_ptr<> #undef MAXCHAR #define MAXCHAR 127 @@ -927,7 +929,6 @@ AstExprValue* AstExpression::eval_internal(EvalKind ek) AstExprValue* AstExpression::eval_bin_op(EvalKind ek) { - AstExprValue *retval = NULL; ExprType eType = ET_double; if ( m_combOperator == EC_mod ) @@ -950,7 +951,7 @@ AstExprValue* AstExpression::eval_bin_op(EvalKind ek) if (m_subExpr2->getExprValue() == NULL) return NULL; - retval = new AstExprValue(); + std::auto_ptr< AstExprValue > retval(new AstExprValue()); retval->et = eType; switch (m_combOperator) @@ -971,20 +972,18 @@ AstExprValue* AstExpression::eval_bin_op(EvalKind ek) break; case EC_div: if (m_subExpr2->getExprValue()->u.dval == 0.0) - return NULL; + return NULL; retval->u.dval = m_subExpr1->getExprValue()->u.dval / m_subExpr2->getExprValue()->u.dval; break; default: return NULL; } - return retval; + return retval.release(); } AstExprValue* AstExpression::eval_bit_op(EvalKind ek) { - AstExprValue *retval = NULL; - if (ek != EK_const && ek != EK_positive_int) return NULL; if (m_subExpr1 == NULL || m_subExpr2 == NULL) @@ -1002,7 +1001,7 @@ AstExprValue* AstExpression::eval_bit_op(EvalKind ek) if (m_subExpr2->getExprValue() == NULL) return NULL; - retval = new AstExprValue; + std::auto_ptr< AstExprValue > retval(new AstExprValue()); retval->et = ET_long; switch (m_combOperator) @@ -1026,13 +1025,11 @@ AstExprValue* AstExpression::eval_bit_op(EvalKind ek) return NULL; } - return retval; + return retval.release(); } AstExprValue* AstExpression::eval_un_op(EvalKind ek) { - AstExprValue *retval = NULL; - if (m_exprValue != NULL) return m_exprValue; @@ -1047,7 +1044,7 @@ AstExprValue* AstExpression::eval_un_op(EvalKind ek) if (m_subExpr1->getExprValue() == NULL) return NULL; - retval = new AstExprValue(); + std::auto_ptr< AstExprValue > retval(new AstExprValue()); retval->et = ET_double; switch (m_combOperator) @@ -1068,7 +1065,7 @@ AstExprValue* AstExpression::eval_un_op(EvalKind ek) return NULL; } - return retval; + return retval.release(); } AstExprValue* AstExpression::eval_symbol(EvalKind ek) diff --git a/idlc/source/idlcmain.cxx b/idlc/source/idlcmain.cxx index 006131f727df..cc2963f5f446 100644 --- a/idlc/source/idlcmain.cxx +++ b/idlc/source/idlcmain.cxx @@ -27,26 +27,35 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_idlc.hxx" -#include <idlc/idlc.hxx> + +#include "idlc/idlc.hxx" #include "sal/main.h" +#include <string.h> + using namespace ::rtl; SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) { - Options options; + std::vector< std::string > args; + for (int i = 1; i < argc; i++) + { + if (!Options::checkArgument (args, argv[i], strlen(argv[i]))) + return (1); + } + Options options(argv[0]); try { - if (!options.initOptions(argc, argv)) - exit(1); + if (!options.initOptions(args)) + return (0); } catch( IllegalArgument& e) { fprintf(stderr, "Illegal argument: %s\n%s", e.m_message.getStr(), options.prepareVersion().getStr()); - exit(99); + return (99); } setIdlc(&options); diff --git a/idlc/source/options.cxx b/idlc/source/options.cxx index c90bce43b3bc..310afa2a4d60 100644 --- a/idlc/source/options.cxx +++ b/idlc/source/options.cxx @@ -28,13 +28,26 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_idlc.hxx" +#include "idlc/options.hxx" + +#include "osl/diagnose.h" +#include "rtl/string.hxx" +#include "rtl/strbuf.hxx" + #include <stdio.h> -#include /*MSVC trouble: <cstring>*/ <string.h> -#include <idlc/options.hxx> +#include <string.h> + +using rtl::OString; +using rtl::OStringBuffer; -using namespace rtl; +#ifdef SAL_UNX +#define SEPARATOR '/' +#else +#define SEPARATOR '\\' +#endif -Options::Options(): m_stdin(false), m_verbose(false), m_quiet(false) +Options::Options(char const * progname) + : m_program(progname), m_stdin(false), m_verbose(false), m_quiet(false) { } @@ -42,273 +55,282 @@ Options::~Options() { } -sal_Bool Options::initOptions(int ac, char* av[], sal_Bool bCmdFile) - throw( IllegalArgument ) +// static +bool Options::checkArgument (std::vector< std::string > & rArgs, char const * arg, size_t len) { - sal_Bool ret = sal_True; - sal_uInt16 j=0; - - if (!bCmdFile) + bool result = ((arg != 0) && (len > 0)); + OSL_PRECOND(result, "idlc::Options::checkArgument(): invalid arguments"); + if (result) + { + switch(arg[0]) { - bCmdFile = sal_True; - - m_program = av[0]; - - if (ac < 2) + case '@': + if ((result = (len > 1)) == true) + { + // "@<cmdfile>" + result = Options::checkCommandFile (rArgs, &(arg[1])); + } + break; + case '-': + if ((result = (len > 1)) == true) + { + // "-<option>" + switch (arg[1]) { - fprintf(stderr, "%s", prepareHelp().getStr()); - ret = sal_False; + case 'O': + case 'I': + case 'D': + { + // "-<option>[<param>] + std::string option(&(arg[0]), 2); + rArgs.push_back(option); + if (len > 2) + { + // "-<option><param>" + std::string param(&(arg[2]), len - 2); + rArgs.push_back(param); + } + break; + } + default: + // "-<option>" ([long] option, w/o param) + rArgs.push_back(std::string(arg, len)); + break; } + } + break; + default: + // "<param>" + rArgs.push_back(std::string(arg, len)); + break; + } + } + return (result); +} - j = 1; - } else +// static +bool Options::checkCommandFile (std::vector< std::string > & rArgs, char const * filename) +{ + FILE * fp = fopen(filename, "r"); + if (fp == 0) { - j = 0; + fprintf(stderr, "ERROR: can't open command file \"%s\"\n", filename); + return (false); } - char *s=NULL; - for (; j < ac; j++) + std::string buffer; + buffer.reserve(256); + + bool quoted = false; + int c = EOF; + while ((c = fgetc(fp)) != EOF) { - if (av[j][0] == '-') + switch(c) { - switch (av[j][1]) - { - case 'O': - if (av[j][2] == '\0') - { - if (j < ac - 1 && av[j+1][0] != '-') - { - j++; - s = av[j]; - } else - { - OString tmp("'-O', please check"); - if (j <= ac - 1) - { - tmp += " your input '" + OString(av[j+1]) + "'"; - } - - throw IllegalArgument(tmp); - } - } else - { - s = av[j] + 2; - } - - m_options["-O"] = OString(s); - break; - case 'I': - { - if (av[j][2] == '\0') - { - if (j < ac - 1 && av[j+1][0] != '-') - { - j++; - s = av[j]; - } else - { - OString tmp("'-I', please check"); - if (j <= ac - 1) - { - tmp += " your input '" + OString(av[j+1]) + "'"; - } - - throw IllegalArgument(tmp); - } - } else - { - s = av[j] + 2; - } + case '\"': + quoted = !quoted; + break; + case ' ': + case '\t': + case '\r': + case '\n': + if (!quoted) + { + if (!buffer.empty()) + { + // append current argument. + if (!Options::checkArgument(rArgs, buffer.c_str(), buffer.size())) + { + (void) fclose(fp); + return (false); + } + buffer.clear(); + } + break; + } + default: + // quoted white-space fall through + buffer.push_back(sal::static_int_cast<char>(c)); + break; + } + } + if (!buffer.empty()) + { + // append unterminated argument. + if (!Options::checkArgument(rArgs, buffer.c_str(), buffer.size())) + { + (void) fclose(fp); + return (false); + } + buffer.clear(); + } + return (fclose(fp) == 0); +} - OString inc(s); - if ( inc.indexOf(';') > 0 ) - { - OString tmp(s); - sal_Int32 nIndex = 0; - inc = OString(); - do inc = inc + " -I\"" + tmp.getToken( 0, ';', nIndex ) +"\""; while( nIndex != -1 ); - } else - inc = OString("-I\"") + s + "\""; +bool Options::badOption(char const * reason, std::string const & rArg) throw(IllegalArgument) +{ + OStringBuffer message; + if (reason != 0) + { + message.append(reason); message.append(" option '"); message.append(rArg.c_str()); message.append("'"); + throw IllegalArgument(message.makeStringAndClear()); + } + return false; +} - if (m_options.count("-I") > 0) - { - OString tmp(m_options["-I"]); - tmp = tmp + " " + inc; - m_options["-I"] = tmp; - } else - { - m_options["-I"] = inc; - } - } - break; - case 'D': - if (av[j][2] == '\0') - { - if (j < ac - 1 && av[j+1][0] != '-') - { - j++; - s = av[j]; - } else - { - OString tmp("'-D', please check"); - if (j <= ac - 1) - { - tmp += " your input '" + OString(av[j+1]) + "'"; - } +bool Options::setOption(char const * option, std::string const & rArg) +{ + bool result = (0 == strcmp(option, rArg.c_str())); + if (result) + m_options[rArg.c_str()] = OString(rArg.c_str(), rArg.size()); + return (result); +} - throw IllegalArgument(tmp); - } - } else - { - s = av[j]; - } +bool Options::initOptions(std::vector< std::string > & rArgs) throw(IllegalArgument) +{ + std::vector< std::string >::const_iterator first = rArgs.begin(), last = rArgs.end(); + for (; first != last; ++first) + { + if ((*first)[0] != '-') + { + OString filename((*first).c_str(), (*first).size()); + OString tmp(filename.toAsciiLowerCase()); + if (tmp.lastIndexOf(".idl") != (tmp.getLength() - 4)) + { + throw IllegalArgument("'" + filename + "' is not a valid input file, only '*.idl' files will be accepted"); + } + m_inputFiles.push_back(filename); + continue; + } - if (m_options.count("-D") > 0) - { - OString tmp(m_options["-D"]); - tmp = tmp + " " + s; - m_options["-D"] = tmp; - } else - m_options["-D"] = OString(s); - break; - case 'C': - if (av[j][2] != '\0') - { - throw IllegalArgument(OString(av[j]) + ", please check your input"); - } - if (m_options.count("-C") == 0) - m_options["-C"] = OString(av[j]); - break; - case 'c': - if (av[j][2] == 'i' && av[j][3] == 'd' && av[j][4] == '\0') - { - if (m_options.count("-cid") == 0) - m_options["-cid"] = OString(av[j]); - } else - throw IllegalArgument(OString(av[j]) + ", please check your input"); - break; - case 'v': - if ( 0 == strcmp( &av[j][1], "verbose" ) ) - { - m_verbose = true; - } - else - throw IllegalArgument(OString(av[j]) + ", please check your input"); - break; - case 'q': - if ( 0 == strcmp( &av[j][1], "quiet" ) ) - { - m_quiet = true; - } - else - throw IllegalArgument(OString(av[j]) + ", please check your input"); - break; - case 'w': - if (av[j][2] == 'e' && av[j][3] == '\0') { - if (m_options.count("-we") == 0) - m_options["-we"] = OString(av[j]); - } else { - if (av[j][2] == '\0') { - if (m_options.count("-w") == 0) - m_options["-w"] = OString(av[j]); - } else - throw IllegalArgument(OString(av[j]) + ", please check your input"); - } - break; - case 'h': - case '?': - if (av[j][2] != '\0') - { - throw IllegalArgument(OString(av[j]) + ", please check your input"); - } else - { - fprintf(stdout, "%s", prepareHelp().getStr()); - exit(0); - } - case 's': - if (/*MSVC trouble: std::*/strcmp(&av[j][2], "tdin") == 0) - { - m_stdin = true; - break; - } - // fall through - default: - throw IllegalArgument("the option is unknown" + OString(av[j])); - } - } else + std::string const option(*first); + switch((*first)[1]) + { + case 'O': + { + if (!((++first != last) && ((*first)[0] != '-'))) { - if (av[j][0] == '@') - { - FILE* cmdFile = fopen(av[j]+1, "r"); - if( cmdFile == NULL ) - { - fprintf(stderr, "%s", prepareHelp().getStr()); - ret = sal_False; - } else - { - int rargc=0; - char* rargv[512]; - char buffer[512]=""; - - int i=0; - int found = 0; - char c; - while ( fscanf(cmdFile, "%c", &c) != EOF ) - { - if (c=='\"') { - if (found) { - found=0; - } else { - found=1; - continue; - } - } else { - if (c!=13 && c!=10) { - if (found || c!=' ') { - buffer[i++]=c; - continue; - } - } - if (i==0) - continue; - } - buffer[i]='\0'; - found=0; - i=0; - rargv[rargc]= strdup(buffer); - rargc++; - buffer[0]='\0'; - } - if (buffer[0] != '\0') { - buffer[i]='\0'; - rargv[rargc]= strdup(buffer); - rargc++; - } - fclose(cmdFile); - - ret = initOptions(rargc, rargv, bCmdFile); - - long ii = 0; - for (ii=0; ii < rargc; ii++) - { - free(rargv[ii]); - } - } - } else - { - OString name(av[j]); - name = name.toAsciiLowerCase(); - if ( name.lastIndexOf(".idl") != (name.getLength() - 4) ) - { - throw IllegalArgument("'" + OString(av[j]) + - "' is not a valid input file, only '*.idl' files will be accepted"); - } - m_inputFiles.push_back(av[j]); - } + return badOption("invalid", option); + } + OString param((*first).c_str(), (*first).size()); + m_options["-O"] = param; + break; + } + case 'I': + { + if (!((++first != last) && ((*first)[0] != '-'))) + { + return badOption("invalid", option); + } + OString param((*first).c_str(), (*first).size()); + { + // quote param token(s). + OStringBuffer buffer; + sal_Int32 k = 0; + do + { + OStringBuffer token; token.append("-I\""); token.append(param.getToken(0, ';', k)); token.append("\""); + if (buffer.getLength() > 0) + buffer.append(' '); + buffer.append(token); + } while (k != -1); + param = buffer.makeStringAndClear(); + } + if (m_options.count("-I") > 0) + { + // append param. + OStringBuffer buffer(m_options["-I"]); + buffer.append(' '); buffer.append(param); + param = buffer.makeStringAndClear(); + } + m_options["-I"] = param; + break; + } + case 'D': + { + if (!((++first != last) && ((*first)[0] != '-'))) + { + return badOption("invalid", option); + } + OString param("-D"); param += OString((*first).c_str(), (*first).size()); + if (m_options.count("-D") > 0) + { + OStringBuffer buffer(m_options["-D"]); + buffer.append(' '); buffer.append(param); + param = buffer.makeStringAndClear(); } + m_options["-D"] = param; + break; + } + case 'C': + { + if (!setOption("-C", option)) + { + return badOption("invalid", option); + } + break; + } + case 'c': + { + if (!setOption("-cid", option)) + { + return badOption("invalid", option); + } + break; + } + case 'q': + { + if (!setOption("-quiet", option)) + { + return badOption("invalid", option); + } + m_quiet = true; + break; + } + case 'v': + { + if (!setOption("-verbose", option)) + { + return badOption("invalid", option); + } + m_verbose = true; + break; + } + case 'w': + { + if (!(setOption("-w", option) || setOption("-we", option))) + { + return badOption("invalid", option); + } + break; + } + case 'h': + case '?': + { + if (!(setOption("-h", option) || setOption("-?", option))) + { + return badOption("invalid", option); + } + { + (void) fprintf(stdout, "%s", prepareHelp().getStr()); + return (false); + } + // break; // Unreachable + } + case 's': + { + if (!setOption("-stdin", option)) + { + return badOption("invalid", option); + } + m_stdin = true; + break; + } + default: + return badOption("unknown", option); } - - return ret; + } + return (true); } OString Options::prepareHelp() @@ -335,7 +357,7 @@ OString Options::prepareHelp() help += " requirements.\n"; help += " -w = display warning messages.\n"; help += " -we = treat warnings as errors.\n"; - help += " -h|-? = print this help message and exit.\n"; + help += " -h|-? = print this help message and exit.\n\n"; help += prepareVersion(); return help; @@ -343,8 +365,8 @@ OString Options::prepareHelp() OString Options::prepareVersion() { - OString version("\nSun Microsystems (R) "); - version += m_program + " Version 1.1\n\n"; + OString version(m_program); + version += " Version 1.1\n\n"; return version; } @@ -353,19 +375,18 @@ const OString& Options::getProgramName() const return m_program; } -sal_Bool Options::isValid(const OString& option) +bool Options::isValid(const OString& option) { return (m_options.count(option) > 0); } -const OString Options::getOption(const OString& option) +const OString& Options::getOption(const OString& option) throw( IllegalArgument ) { - if (m_options.count(option) > 0) - { - return m_options[option]; - } else + if (!isValid(option)) { throw IllegalArgument("Option is not valid or currently not set."); } + return m_options[option]; } +/* vi:set tabstop=4 shiftwidth=4 expandtab: */ diff --git a/idlc/source/preproc/eval.c b/idlc/source/preproc/eval.c index cd3adc2204c7..bed61eb95f00 100644 --- a/idlc/source/preproc/eval.c +++ b/idlc/source/preproc/eval.c @@ -24,9 +24,11 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ + +#include "cpp.h" + #include <stdlib.h> #include <string.h> -#include "cpp.h" #define NSTAK 32 #define SGN 0 @@ -736,10 +738,10 @@ struct value } else { - static char cvcon[] - = "b\bf\fn\nr\rt\tv\v''\"\"??\\\\"; + static char cvcon[] = "b\bf\fn\nr\rt\tv\v''\"\"??\\\\"; + static int cvlen = sizeof(cvcon) - 1; - for (i = 0; i < (int)sizeof(cvcon); i += 2) + for (i = 0; i < cvlen; i += 2) { if (*p == cvcon[i]) { @@ -748,9 +750,8 @@ struct value } } p += 1; - if (i >= (int)sizeof(cvcon)) - error(WARNING, - "Undefined escape in character constant"); + if (i >= cvlen) + error(WARNING,"Undefined escape in character constant"); } } else diff --git a/idlc/source/preproc/lex.c b/idlc/source/preproc/lex.c index fd6d00792984..856ee72bfc53 100644 --- a/idlc/source/preproc/lex.c +++ b/idlc/source/preproc/lex.c @@ -290,7 +290,7 @@ void bigfsm[j][fp->state] = (short) nstate; continue; case C_ALPH: - for (j = 0; j <= 256; j++) + for (j = 0; j < 256; j++) if (('a' <= j && j <= 'z') || ('A' <= j && j <= 'Z') || j == '_') bigfsm[j][fp->state] = (short) nstate; @@ -687,9 +687,13 @@ void if (s->fd >= 0) { - close(s->fd); - dofree(s->inb); + (void) close(s->fd); + dofree(s->filename); } + + if (s->inb) + dofree(s->inb); + cursource = s->next; dofree(s); } diff --git a/idlc/source/preproc/unix.c b/idlc/source/preproc/unix.c index 4997e317e697..808b1d90dbd3 100644 --- a/idlc/source/preproc/unix.c +++ b/idlc/source/preproc/unix.c @@ -91,6 +91,7 @@ void maketokenrow(3, &tr); gettokens(&tr, 1); doadefine(&tr, c); + dofree(tr.bp); tr.bp = 0; unsetsource(); break; diff --git a/offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl b/offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl index 95afd25a634d..645925c312f6 100644 --- a/offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl +++ b/offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module accessibility { <type>XAccessibleText</type> interface and extents it with a notion of line numbers</p> - @since OOo 3.0.0 + @since OOo 3.0 */ /// not yet published diff --git a/offapi/com/sun/star/animations/XAnimationListener.idl b/offapi/com/sun/star/animations/XAnimationListener.idl index 1a71cae3457b..d1f4f453ee60 100644 --- a/offapi/com/sun/star/animations/XAnimationListener.idl +++ b/offapi/com/sun/star/animations/XAnimationListener.idl @@ -43,7 +43,7 @@ /** makes it possible to register listeners, which are called whenever an animation event occurs. - @since #i71351# + @since OOo 3.0 */ interface XAnimationListener : ::com::sun::star::lang::XEventListener { diff --git a/offapi/com/sun/star/awt/EnhancedMouseEvent.idl b/offapi/com/sun/star/awt/EnhancedMouseEvent.idl index f866397e0613..99f0ee3c8b01 100644 --- a/offapi/com/sun/star/awt/EnhancedMouseEvent.idl +++ b/offapi/com/sun/star/awt/EnhancedMouseEvent.idl @@ -42,7 +42,7 @@ @see MouseEvent - @since OOo 2.0.0 + @since OOo 2.0 */ published struct EnhancedMouseEvent: com::sun::star::awt::MouseEvent diff --git a/offapi/com/sun/star/awt/UnoControlButtonModel.idl b/offapi/com/sun/star/awt/UnoControlButtonModel.idl index bbcf7000157e..8b1b7bee2052 100644 --- a/offapi/com/sun/star/awt/UnoControlButtonModel.idl +++ b/offapi/com/sun/star/awt/UnoControlButtonModel.idl @@ -95,7 +95,7 @@ published service UnoControlButtonModel If set to <FALSE/>, the focus is preserved when the user operates the button control with the mouse.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean FocusOnClick; @@ -183,7 +183,7 @@ published service UnoControlButtonModel /** specifies that the text may be displayed on more than one line. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean MultiLine; @@ -208,7 +208,7 @@ published service UnoControlButtonModel set to <TRUE/>, the button is repeatedly pressed while you hold down the mouse button.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean Repeat; @@ -222,7 +222,7 @@ published service UnoControlButtonModel mouse button and to press it again. The delay between two such triggers is specified with this property.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long RepeatDelay; @@ -261,7 +261,7 @@ published service UnoControlButtonModel <p>The default for this property is <FALSE/>, which means the button behaves like a usual push button.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean Toggle; @@ -269,7 +269,7 @@ published service UnoControlButtonModel /** specifies the vertical alignment of the text in the control. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; diff --git a/offapi/com/sun/star/awt/UnoControlCheckBoxModel.idl b/offapi/com/sun/star/awt/UnoControlCheckBoxModel.idl index 7870f03f4aec..e6eb9754175d 100644 --- a/offapi/com/sun/star/awt/UnoControlCheckBoxModel.idl +++ b/offapi/com/sun/star/awt/UnoControlCheckBoxModel.idl @@ -65,7 +65,7 @@ published service UnoControlCheckBoxModel 2: right </pre> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] short Align; @@ -155,7 +155,7 @@ published service UnoControlCheckBoxModel /** specifies that the text may be displayed on more than one line. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean MultiLine; @@ -205,7 +205,7 @@ published service UnoControlCheckBoxModel /** specifies the vertical alignment of the text in the control. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; @@ -218,7 +218,7 @@ published service UnoControlCheckBoxModel @see com::sun::star::awt::VisualEffect - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] short VisualEffect; diff --git a/offapi/com/sun/star/awt/UnoControlComboBoxModel.idl b/offapi/com/sun/star/awt/UnoControlComboBoxModel.idl index eedd7b78c346..c332d19c989a 100644 --- a/offapi/com/sun/star/awt/UnoControlComboBoxModel.idl +++ b/offapi/com/sun/star/awt/UnoControlComboBoxModel.idl @@ -96,7 +96,7 @@ published service UnoControlComboBoxModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; @@ -149,7 +149,7 @@ published service UnoControlComboBoxModel /** specifies whether the selection in the control should be hidden when the control is not active (focused). - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean HideInactiveSelection; diff --git a/offapi/com/sun/star/awt/UnoControlContainerModel.idl b/offapi/com/sun/star/awt/UnoControlContainerModel.idl index 9fda3791781f..1fa71bcf1b7c 100644 --- a/offapi/com/sun/star/awt/UnoControlContainerModel.idl +++ b/offapi/com/sun/star/awt/UnoControlContainerModel.idl @@ -79,7 +79,7 @@ published service UnoControlContainerModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; diff --git a/offapi/com/sun/star/awt/UnoControlCurrencyFieldModel.idl b/offapi/com/sun/star/awt/UnoControlCurrencyFieldModel.idl index 1789e23fff32..b9ee632dad73 100644 --- a/offapi/com/sun/star/awt/UnoControlCurrencyFieldModel.idl +++ b/offapi/com/sun/star/awt/UnoControlCurrencyFieldModel.idl @@ -80,7 +80,7 @@ published service UnoControlCurrencyFieldModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; @@ -139,7 +139,7 @@ published service UnoControlCurrencyFieldModel /** specifies whether the selection in the control should be hidden when the control is not active (focused). - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean HideInactiveSelection; @@ -167,7 +167,7 @@ published service UnoControlCurrencyFieldModel /** specifies whether the mouse should show repeating behaviour, i.e. repeatedly trigger an action when keeping pressed. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean Repeat; @@ -181,7 +181,7 @@ published service UnoControlCurrencyFieldModel mouse button and to press it again. The delay between two such triggers is specified with this property.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long RepeatDelay; @@ -267,7 +267,7 @@ published service UnoControlCurrencyFieldModel /** specifies the vertical alignment of the text in the control. - @since OpenOffice.org 3.3 + @since OOo 3.3 */ [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; }; diff --git a/offapi/com/sun/star/awt/UnoControlDateFieldModel.idl b/offapi/com/sun/star/awt/UnoControlDateFieldModel.idl index 193f1a325b72..d134d0fc450c 100644 --- a/offapi/com/sun/star/awt/UnoControlDateFieldModel.idl +++ b/offapi/com/sun/star/awt/UnoControlDateFieldModel.idl @@ -80,7 +80,7 @@ published service UnoControlDateFieldModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; @@ -180,7 +180,7 @@ published service UnoControlDateFieldModel /** specifies whether the selection in the control should be hidden when the control is not active (focused). - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean HideInactiveSelection; @@ -201,7 +201,7 @@ published service UnoControlDateFieldModel /** specifies whether the mouse should show repeating behaviour, i.e. repeatedly trigger an action when keeping pressed. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean Repeat; @@ -215,7 +215,7 @@ published service UnoControlDateFieldModel mouse button and to press it again. The delay between two such triggers is specified with this property.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long RepeatDelay; @@ -241,7 +241,7 @@ published service UnoControlDateFieldModel /** specifies the text displayed in the control. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] string Text; @@ -279,7 +279,7 @@ published service UnoControlDateFieldModel /** specifies the vertical alignment of the text in the control. - @since OpenOffice.org 3.3 + @since OOo 3.3 */ [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; }; diff --git a/offapi/com/sun/star/awt/UnoControlDialogModel.idl b/offapi/com/sun/star/awt/UnoControlDialogModel.idl index ff6188e5276e..f8970413cdd3 100644 --- a/offapi/com/sun/star/awt/UnoControlDialogModel.idl +++ b/offapi/com/sun/star/awt/UnoControlDialogModel.idl @@ -161,7 +161,7 @@ published service UnoControlDialogModel /** If set to true the dialog will have the desktop as parent. - @since OOo 2.3.0 + @since OOo 2.3 */ [optional, property] boolean DesktopAsParent; @@ -169,7 +169,7 @@ published service UnoControlDialogModel background image. @see Graphic - @since OOo 2.4.0 + @since OOo 2.4 */ [optional, property] string ImageURL; @@ -184,7 +184,7 @@ published service UnoControlDialogModel to an empty string.</li> </ul></p> - @since OOo 2.4.0 + @since OOo 2.4 */ [optional, property, transient] com::sun::star::graphic::XGraphic Graphic; diff --git a/offapi/com/sun/star/awt/UnoControlDialogModelProvider.idl b/offapi/com/sun/star/awt/UnoControlDialogModelProvider.idl index a91065f72d66..e153c8c47370 100644 --- a/offapi/com/sun/star/awt/UnoControlDialogModelProvider.idl +++ b/offapi/com/sun/star/awt/UnoControlDialogModelProvider.idl @@ -39,7 +39,7 @@ module com { module sun { module star { module awt { /** specifies a service to load a dialog model and allows to access the control models inside - @since OOo 3.3.0 + @since OOo 3.3 */ service UnoControlDialogModelProvider : com::sun::star::container::XNameContainer { diff --git a/offapi/com/sun/star/awt/UnoControlEditModel.idl b/offapi/com/sun/star/awt/UnoControlEditModel.idl index 2cd7a55725f5..dffbae58da48 100644 --- a/offapi/com/sun/star/awt/UnoControlEditModel.idl +++ b/offapi/com/sun/star/awt/UnoControlEditModel.idl @@ -72,7 +72,7 @@ published service UnoControlEditModel /** If set to true an horizontal scrollbar will be added automaticly when needed. - @since OOo 2.3.0 + @since OOo 2.3 */ [optional, property] boolean AutoHScroll; @@ -81,7 +81,7 @@ published service UnoControlEditModel /** If set to true an vertical scrollbar will be added automaticly when needed. - @since OOo 2.3.0 + @since OOo 2.3 */ [optional, property] boolean AutoVScroll; @@ -110,7 +110,7 @@ published service UnoControlEditModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; @@ -170,7 +170,7 @@ published service UnoControlEditModel /** specifies whether the selection in the control should be hidden when the control is not active (focused). - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean HideInactiveSelection; @@ -196,7 +196,7 @@ published service UnoControlEditModel No matter which line end format is used in this new text then, usual control implementations should recognize all line end formats and display them properly.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] short LineEndFormat; @@ -218,7 +218,7 @@ published service UnoControlEditModel /** specifies whether the control paints it background or not. - @since OOo 2.3.0 + @since OOo 2.3 */ [optional, property] boolean PaintTransparent; @@ -279,7 +279,7 @@ published service UnoControlEditModel /** specifies the vertical alignment of the text in the control. - @since OpenOffice.org 3.3 + @since OOo 3.3 */ [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; }; diff --git a/offapi/com/sun/star/awt/UnoControlFileControlModel.idl b/offapi/com/sun/star/awt/UnoControlFileControlModel.idl index e609a51512ae..cec080c3fcb2 100644 --- a/offapi/com/sun/star/awt/UnoControlFileControlModel.idl +++ b/offapi/com/sun/star/awt/UnoControlFileControlModel.idl @@ -80,7 +80,7 @@ published service UnoControlFileControlModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; @@ -127,7 +127,7 @@ published service UnoControlFileControlModel /** specifies whether the selection in the control should be hidden when the control is not active (focused). - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean HideInactiveSelection; @@ -173,7 +173,7 @@ published service UnoControlFileControlModel /** specifies the vertical alignment of the text in the control. - @since OpenOffice.org 3.3 + @since OOo 3.3 */ [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; }; diff --git a/offapi/com/sun/star/awt/UnoControlFixedHyperlinkModel.idl b/offapi/com/sun/star/awt/UnoControlFixedHyperlinkModel.idl index 8d5938d21f6f..e4a6bd3dbd58 100644 --- a/offapi/com/sun/star/awt/UnoControlFixedHyperlinkModel.idl +++ b/offapi/com/sun/star/awt/UnoControlFixedHyperlinkModel.idl @@ -93,7 +93,7 @@ service UnoControlFixedHyperlinkModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; @@ -175,7 +175,7 @@ service UnoControlFixedHyperlinkModel /** specifies the vertical alignment of the text in the control. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; }; diff --git a/offapi/com/sun/star/awt/UnoControlFixedTextModel.idl b/offapi/com/sun/star/awt/UnoControlFixedTextModel.idl index b6981556a8f4..84e8311fbc32 100644 --- a/offapi/com/sun/star/awt/UnoControlFixedTextModel.idl +++ b/offapi/com/sun/star/awt/UnoControlFixedTextModel.idl @@ -93,7 +93,7 @@ published service UnoControlFixedTextModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; @@ -169,7 +169,7 @@ published service UnoControlFixedTextModel /** specifies the vertical alignment of the text in the control. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; diff --git a/offapi/com/sun/star/awt/UnoControlFormattedFieldModel.idl b/offapi/com/sun/star/awt/UnoControlFormattedFieldModel.idl index 9ada06455b1e..0f61b6910b7d 100644 --- a/offapi/com/sun/star/awt/UnoControlFormattedFieldModel.idl +++ b/offapi/com/sun/star/awt/UnoControlFormattedFieldModel.idl @@ -96,7 +96,7 @@ published service UnoControlFormattedFieldModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; @@ -196,7 +196,7 @@ published service UnoControlFormattedFieldModel /** specifies whether the selection in the control should be hidden when the control is not active (focused). - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean HideInactiveSelection; @@ -226,7 +226,7 @@ published service UnoControlFormattedFieldModel /** specifies whether the mouse should show repeating behaviour, i.e. repeatedly trigger an action when keeping pressed. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean Repeat; @@ -240,7 +240,7 @@ published service UnoControlFormattedFieldModel mouse button and to press it again. The delay between two such triggers is specified with this property.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long RepeatDelay; @@ -312,7 +312,7 @@ published service UnoControlFormattedFieldModel /** specifies the vertical alignment of the text in the control. - @since OpenOffice.org 3.3 + @since OOo 3.3 */ [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; }; diff --git a/offapi/com/sun/star/awt/UnoControlImageControlModel.idl b/offapi/com/sun/star/awt/UnoControlImageControlModel.idl index aadf3074fcbe..7e6dfa8641be 100644 --- a/offapi/com/sun/star/awt/UnoControlImageControlModel.idl +++ b/offapi/com/sun/star/awt/UnoControlImageControlModel.idl @@ -75,7 +75,7 @@ published service UnoControlImageControlModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; diff --git a/offapi/com/sun/star/awt/UnoControlListBoxModel.idl b/offapi/com/sun/star/awt/UnoControlListBoxModel.idl index 1ecf338bf095..3a9ea516c257 100644 --- a/offapi/com/sun/star/awt/UnoControlListBoxModel.idl +++ b/offapi/com/sun/star/awt/UnoControlListBoxModel.idl @@ -91,7 +91,7 @@ published service UnoControlListBoxModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; diff --git a/offapi/com/sun/star/awt/UnoControlNumericFieldModel.idl b/offapi/com/sun/star/awt/UnoControlNumericFieldModel.idl index fd3b4c0877bb..5b019d7f82c5 100644 --- a/offapi/com/sun/star/awt/UnoControlNumericFieldModel.idl +++ b/offapi/com/sun/star/awt/UnoControlNumericFieldModel.idl @@ -80,7 +80,7 @@ published service UnoControlNumericFieldModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; @@ -133,7 +133,7 @@ published service UnoControlNumericFieldModel /** specifies whether the selection in the control should be hidden when the control is not active (focused). - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean HideInactiveSelection; @@ -155,7 +155,7 @@ published service UnoControlNumericFieldModel /** specifies whether the mouse should show repeating behaviour, i.e. repeatedly trigger an action when keeping pressed. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean Repeat; @@ -169,7 +169,7 @@ published service UnoControlNumericFieldModel mouse button and to press it again. The delay between two such triggers is specified with this property.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long RepeatDelay; @@ -255,7 +255,7 @@ published service UnoControlNumericFieldModel /** specifies the vertical alignment of the text in the control. - @since OpenOffice.org 3.3 + @since OOo 3.3 */ [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; }; diff --git a/offapi/com/sun/star/awt/UnoControlPatternFieldModel.idl b/offapi/com/sun/star/awt/UnoControlPatternFieldModel.idl index 8b4b6ccf601c..2f9f09fd5b3f 100644 --- a/offapi/com/sun/star/awt/UnoControlPatternFieldModel.idl +++ b/offapi/com/sun/star/awt/UnoControlPatternFieldModel.idl @@ -80,7 +80,7 @@ published service UnoControlPatternFieldModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; @@ -133,7 +133,7 @@ published service UnoControlPatternFieldModel /** specifies whether the selection in the control should be hidden when the control is not active (focused). - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean HideInactiveSelection; @@ -214,7 +214,7 @@ published service UnoControlPatternFieldModel /** specifies the vertical alignment of the text in the control. - @since OpenOffice.org 3.3 + @since OOo 3.3 */ [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; }; diff --git a/offapi/com/sun/star/awt/UnoControlProgressBarModel.idl b/offapi/com/sun/star/awt/UnoControlProgressBarModel.idl index 1ffb7ace534a..3d54d391e3db 100644 --- a/offapi/com/sun/star/awt/UnoControlProgressBarModel.idl +++ b/offapi/com/sun/star/awt/UnoControlProgressBarModel.idl @@ -73,7 +73,7 @@ published service UnoControlProgressBarModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; diff --git a/offapi/com/sun/star/awt/UnoControlRadioButtonModel.idl b/offapi/com/sun/star/awt/UnoControlRadioButtonModel.idl index 6676e98e7e6e..cd8568f956ea 100644 --- a/offapi/com/sun/star/awt/UnoControlRadioButtonModel.idl +++ b/offapi/com/sun/star/awt/UnoControlRadioButtonModel.idl @@ -66,7 +66,7 @@ published service UnoControlRadioButtonModel 2: right </pre> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] short Align; @@ -156,7 +156,7 @@ published service UnoControlRadioButtonModel /** specifies that the text may be displayed on more than one line. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean MultiLine; @@ -199,7 +199,7 @@ published service UnoControlRadioButtonModel /** specifies the vertical alignment of the text in the control. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; @@ -212,7 +212,7 @@ published service UnoControlRadioButtonModel @see com::sun::star::awt::VisualEffect - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] short VisualEffect; diff --git a/offapi/com/sun/star/awt/UnoControlScrollBarModel.idl b/offapi/com/sun/star/awt/UnoControlScrollBarModel.idl index 3a190405430f..d81e25e369f7 100644 --- a/offapi/com/sun/star/awt/UnoControlScrollBarModel.idl +++ b/offapi/com/sun/star/awt/UnoControlScrollBarModel.idl @@ -52,7 +52,7 @@ published service UnoControlScrollBarModel /** specifies the RGB color to be used for the control. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] com::sun::star::util::Color BackgroundColor; @@ -81,7 +81,7 @@ published service UnoControlScrollBarModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; @@ -118,7 +118,7 @@ published service UnoControlScrollBarModel <FALSE/> means, that the window is only updated after the user has released the mouse button.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean LiveScroll; @@ -144,7 +144,7 @@ published service UnoControlScrollBarModel mouse button and to press it again. The delay between two such triggers is specified with this property.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long RepeatDelay; @@ -174,7 +174,7 @@ published service UnoControlScrollBarModel /** specifies the RGB color to be used when painting symbols which are part of the control's appearance, such as the arrow buttons. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] com::sun::star::util::Color SymbolColor; @@ -182,7 +182,7 @@ published service UnoControlScrollBarModel /** specifies that the control can be reached with the TAB key. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean Tabstop; diff --git a/offapi/com/sun/star/awt/UnoControlSpinButtonModel.idl b/offapi/com/sun/star/awt/UnoControlSpinButtonModel.idl index cb55a369a15d..c2e4eca935e1 100644..100755 --- a/offapi/com/sun/star/awt/UnoControlSpinButtonModel.idl +++ b/offapi/com/sun/star/awt/UnoControlSpinButtonModel.idl @@ -76,7 +76,7 @@ service UnoControlSpinButtonModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; diff --git a/offapi/com/sun/star/awt/UnoControlTimeFieldModel.idl b/offapi/com/sun/star/awt/UnoControlTimeFieldModel.idl index 2673e152bb00..ba62cca41c7f 100644 --- a/offapi/com/sun/star/awt/UnoControlTimeFieldModel.idl +++ b/offapi/com/sun/star/awt/UnoControlTimeFieldModel.idl @@ -80,7 +80,7 @@ published service UnoControlTimeFieldModel <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; @@ -127,7 +127,7 @@ published service UnoControlTimeFieldModel /** specifies whether the selection in the control should be hidden when the control is not active (focused). - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean HideInactiveSelection; @@ -148,7 +148,7 @@ published service UnoControlTimeFieldModel /** specifies whether the mouse should show repeating behaviour, i.e. repeatedly trigger an action when keeping pressed. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean Repeat; @@ -162,7 +162,7 @@ published service UnoControlTimeFieldModel mouse button and to press it again. The delay between two such triggers is specified with this property.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long RepeatDelay; @@ -188,7 +188,7 @@ published service UnoControlTimeFieldModel /** specifies the text displayed in the control. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] string Text; @@ -259,7 +259,7 @@ published service UnoControlTimeFieldModel /** specifies the vertical alignment of the text in the control. - @since OpenOffice.org 3.3 + @since OOo 3.3 */ [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; }; diff --git a/offapi/com/sun/star/awt/XEnhancedMouseClickHandler.idl b/offapi/com/sun/star/awt/XEnhancedMouseClickHandler.idl index 547bab7c6efc..64dde0ed9390 100644 --- a/offapi/com/sun/star/awt/XEnhancedMouseClickHandler.idl +++ b/offapi/com/sun/star/awt/XEnhancedMouseClickHandler.idl @@ -44,7 +44,7 @@ module com { module sun { module star { module awt { /** makes it possible to receive enhanced events from the mouse. - @since OOo 2.0.0 + @since OOo 2.0 */ published interface XEnhancedMouseClickHandler: ::com::sun::star::lang::XEventListener diff --git a/offapi/com/sun/star/awt/grid/DefaultGridColumnModel.idl b/offapi/com/sun/star/awt/grid/DefaultGridColumnModel.idl index db69a6b5d842..36e41d9384f9 100644 --- a/offapi/com/sun/star/awt/grid/DefaultGridColumnModel.idl +++ b/offapi/com/sun/star/awt/grid/DefaultGridColumnModel.idl @@ -38,7 +38,7 @@ //============================================================================= /** If you do not want to implement the <type>XGridColumnModel</type> yourself, use this service. - @since OOo 3.3.0 + @since OOo 3.3 */ service DefaultGridColumnModel { diff --git a/offapi/com/sun/star/awt/grid/DefaultGridDataModel.idl b/offapi/com/sun/star/awt/grid/DefaultGridDataModel.idl index 8c2726f42851..c802db2f870e 100644 --- a/offapi/com/sun/star/awt/grid/DefaultGridDataModel.idl +++ b/offapi/com/sun/star/awt/grid/DefaultGridDataModel.idl @@ -43,7 +43,7 @@ <p>The implementation will implicitly increase its column count if you add a row which has more values than the current column count.</p> - @since OOo 3.3.0 + @since OOo 3.3 */ service DefaultGridDataModel : ::com::sun::star::awt::grid::XMutableGridDataModel; diff --git a/offapi/com/sun/star/awt/grid/GridColumn.idl b/offapi/com/sun/star/awt/grid/GridColumn.idl index a87aef84f7d3..383ff37eb673 100644 --- a/offapi/com/sun/star/awt/grid/GridColumn.idl +++ b/offapi/com/sun/star/awt/grid/GridColumn.idl @@ -39,7 +39,7 @@ /** Represents a column as used by the <type>DefaultGridColumnModel</type> - @since OOo 3.3.0 + @since OOo 3.3 */ service GridColumn { diff --git a/offapi/com/sun/star/awt/grid/GridColumnEvent.idl b/offapi/com/sun/star/awt/grid/GridColumnEvent.idl index 4ab6e71caf51..22380b944a83 100644 --- a/offapi/com/sun/star/awt/grid/GridColumnEvent.idl +++ b/offapi/com/sun/star/awt/grid/GridColumnEvent.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module awt { module grid { //============================================================================= /** An event used by a <type>XGridColumn</type> to notify changes in the column. - @since OOo 3.3.0 + @since OOo 3.3 */ struct GridColumnEvent: com::sun::star::lang::EventObject { diff --git a/offapi/com/sun/star/awt/grid/GridDataEvent.idl b/offapi/com/sun/star/awt/grid/GridDataEvent.idl index 3ac05f0ec1ae..7430f3d97e66 100644 --- a/offapi/com/sun/star/awt/grid/GridDataEvent.idl +++ b/offapi/com/sun/star/awt/grid/GridDataEvent.idl @@ -43,7 +43,7 @@ module com { module sun { module star { module awt { module grid { @see XMutableGridDataModel @see XGridDataListener - @since OOo 3.3.0 + @since OOo 3.3 */ struct GridDataEvent: com::sun::star::lang::EventObject { diff --git a/offapi/com/sun/star/awt/grid/GridInvalidDataException.idl b/offapi/com/sun/star/awt/grid/GridInvalidDataException.idl index af1f90dfdc8b..ab180207a187 100644 --- a/offapi/com/sun/star/awt/grid/GridInvalidDataException.idl +++ b/offapi/com/sun/star/awt/grid/GridInvalidDataException.idl @@ -44,7 +44,7 @@ module com { module sun { module star { module awt { module grid { /** Exception is thrown to indicate that set data is invalid, e.g. type of data is unknown or data count doesn't match with column count. - @since OOo 3.3.0 + @since OOo 3.3 */ exception GridInvalidDataException : com::sun::star::uno::RuntimeException { diff --git a/offapi/com/sun/star/awt/grid/GridInvalidModelException.idl b/offapi/com/sun/star/awt/grid/GridInvalidModelException.idl index 9d96daf624bb..791f691f20c6 100644 --- a/offapi/com/sun/star/awt/grid/GridInvalidModelException.idl +++ b/offapi/com/sun/star/awt/grid/GridInvalidModelException.idl @@ -43,7 +43,7 @@ module com { module sun { module star { module awt { module grid { /** Exception is thrown when data or column model isn't set. - @since OOo 3.3.0 + @since OOo 3.3 */ exception GridInvalidModelException : com::sun::star::uno::RuntimeException { diff --git a/offapi/com/sun/star/awt/grid/UnoControlGrid.idl b/offapi/com/sun/star/awt/grid/UnoControlGrid.idl index 542c27085dcb..5141e8a52cce 100644 --- a/offapi/com/sun/star/awt/grid/UnoControlGrid.idl +++ b/offapi/com/sun/star/awt/grid/UnoControlGrid.idl @@ -66,7 +66,7 @@ The <type>XGridSelection</type> interface provides a bunch of methods to set and get selection for the grid control. </p> - @since OOo 3.3.0 + @since OOo 3.3 */ service UnoControlGrid { diff --git a/offapi/com/sun/star/awt/grid/UnoControlGridModel.idl b/offapi/com/sun/star/awt/grid/UnoControlGridModel.idl index a348d4b3e23c..02b4d93f621d 100644 --- a/offapi/com/sun/star/awt/grid/UnoControlGridModel.idl +++ b/offapi/com/sun/star/awt/grid/UnoControlGridModel.idl @@ -43,7 +43,7 @@ module com { module sun { module star { module awt { module grid { /** specifies the standard model of a <type>UnoControlGrid</type> control. - @since OOo 3.3.0 + @since OOo 3.3 */ service UnoControlGridModel { diff --git a/offapi/com/sun/star/awt/grid/XGridColumn.idl b/offapi/com/sun/star/awt/grid/XGridColumn.idl index a73025d7715a..aa69a83441ea 100644 --- a/offapi/com/sun/star/awt/grid/XGridColumn.idl +++ b/offapi/com/sun/star/awt/grid/XGridColumn.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module awt { module grid { //============================================================================= /** The <type>XGridColumn</types> defines the properties and behavior of a column in a grid control - @since OOo 3.3.0 + @since OOo 3.3 */ interface XGridColumn { diff --git a/offapi/com/sun/star/awt/grid/XGridColumnListener.idl b/offapi/com/sun/star/awt/grid/XGridColumnListener.idl index 9a8a02eca8f2..09ac590ba3f2 100644 --- a/offapi/com/sun/star/awt/grid/XGridColumnListener.idl +++ b/offapi/com/sun/star/awt/grid/XGridColumnListener.idl @@ -39,7 +39,7 @@ module com { module sun { module star { module awt { module grid { /** An instance of this interface is used by the <type>XGridColumnModel</type> to get notifications about column model changes. - @since OOo 3.3.0 + @since OOo 3.3 */ interface XGridColumnListener : ::com::sun::star::lang::XEventListener { diff --git a/offapi/com/sun/star/awt/grid/XGridColumnModel.idl b/offapi/com/sun/star/awt/grid/XGridColumnModel.idl index 257f597fc7d2..434be67ed3f8 100644 --- a/offapi/com/sun/star/awt/grid/XGridColumnModel.idl +++ b/offapi/com/sun/star/awt/grid/XGridColumnModel.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module awt { module grid { If you do not need your own model implementation, you can also use the <type>DefaultGridColumnModel</type>. - @since OOo 3.3.0 + @since OOo 3.3 */ interface XGridColumnModel { diff --git a/offapi/com/sun/star/awt/grid/XGridControl.idl b/offapi/com/sun/star/awt/grid/XGridControl.idl index 3c2c3d241528..b742c1acb484 100644 --- a/offapi/com/sun/star/awt/grid/XGridControl.idl +++ b/offapi/com/sun/star/awt/grid/XGridControl.idl @@ -39,7 +39,7 @@ module com { module sun { module star { module awt { module grid { @see UnoControlGrid - @since OOo 3.3.0 + @since OOo 3.3 */ interface XGridControl : XGridSelection { diff --git a/offapi/com/sun/star/awt/grid/XGridDataListener.idl b/offapi/com/sun/star/awt/grid/XGridDataListener.idl index 709f048c08ce..9a324aee2668 100644 --- a/offapi/com/sun/star/awt/grid/XGridDataListener.idl +++ b/offapi/com/sun/star/awt/grid/XGridDataListener.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module awt { module grid { <p>Usually you must not implement this interface yourself, but you must notify it correctly if you implement the <type>XGridDataModel</type> yourself</p>. - @since OOo 3.3.0 + @since OOo 3.3 */ interface XGridDataListener: com::sun::star::lang::XEventListener { diff --git a/offapi/com/sun/star/awt/grid/XGridDataModel.idl b/offapi/com/sun/star/awt/grid/XGridDataModel.idl index 1ff15e1310e0..469a4d1eb3bf 100644 --- a/offapi/com/sun/star/awt/grid/XGridDataModel.idl +++ b/offapi/com/sun/star/awt/grid/XGridDataModel.idl @@ -44,7 +44,7 @@ module com { module sun { module star { module awt { module grid { If you do not need your own model implementation, you can also use the <type>DefaultGridDataModel</type>. - @since OOo 3.3.0 + @since OOo 3.3 */ interface XGridDataModel { diff --git a/offapi/com/sun/star/configuration/DefaultProvider.idl b/offapi/com/sun/star/configuration/DefaultProvider.idl index b41bdeec33a5..0fc09a078acc 100644 --- a/offapi/com/sun/star/configuration/DefaultProvider.idl +++ b/offapi/com/sun/star/configuration/DefaultProvider.idl @@ -78,14 +78,14 @@ published service DefaultProvider /** Enable setting/getting locale for Provider - @since OOo 2.0.0 + @since OOo 2.0 */ [optional] interface com::sun::star::lang::XLocalizable; /** Property to enable/disable asynchronous write-back from in-memory cache to backend(s) - @since OOo 2.0.0 + @since OOo 2.0 */ [optional,property] boolean EnableAsync; diff --git a/offapi/com/sun/star/configuration/Update.idl b/offapi/com/sun/star/configuration/Update.idl index 790a4bb40235..8cd52a1c1a77 100644 --- a/offapi/com/sun/star/configuration/Update.idl +++ b/offapi/com/sun/star/configuration/Update.idl @@ -36,7 +36,7 @@ module com { module sun { module star { module configuration { <p>This singleton is unpublished and unstable.</p> - @since OOo 3.3.0 + @since OOo 3.3 */ singleton Update: XUpdate; diff --git a/offapi/com/sun/star/configuration/XUpdate.idl b/offapi/com/sun/star/configuration/XUpdate.idl index c3316ea5dc45..16455528fc48 100644 --- a/offapi/com/sun/star/configuration/XUpdate.idl +++ b/offapi/com/sun/star/configuration/XUpdate.idl @@ -36,7 +36,7 @@ module com { module sun { module star { module configuration { <p>This interface is unpublished and unstable.</p> - @since OOo 3.3.0 + @since OOo 3.3 */ interface XUpdate { void insertExtensionXcsFile([in] boolean shared, [in] string fileUri); diff --git a/offapi/com/sun/star/configuration/backend/InteractionHandler.idl b/offapi/com/sun/star/configuration/backend/InteractionHandler.idl index 82a3595a6b08..108a3e0484c3 100644 --- a/offapi/com/sun/star/configuration/backend/InteractionHandler.idl +++ b/offapi/com/sun/star/configuration/backend/InteractionHandler.idl @@ -67,7 +67,7 @@ module com { module sun { module star { module configuration { module backend { <LI>Approve, Disapprove, Abort</LI> </UL></P> - @since OOo 2.0.0 + @since OOo 2.0 @see com::sun::star::task::InteractionHandler */ diff --git a/offapi/com/sun/star/configuration/backend/Layer.idl b/offapi/com/sun/star/configuration/backend/Layer.idl index 8b9429810b15..545bddad641e 100644 --- a/offapi/com/sun/star/configuration/backend/Layer.idl +++ b/offapi/com/sun/star/configuration/backend/Layer.idl @@ -102,7 +102,7 @@ published service Layer /** The URL of the layer data. - @since OOo 2.0.0 + @since OOo 2.0 */ [property,optional,readonly] string URL ; diff --git a/offapi/com/sun/star/configuration/backend/LayerFilter.idl b/offapi/com/sun/star/configuration/backend/LayerFilter.idl index ec5a209aa8ac..357b5ba6b2e7 100644 --- a/offapi/com/sun/star/configuration/backend/LayerFilter.idl +++ b/offapi/com/sun/star/configuration/backend/LayerFilter.idl @@ -54,7 +54,7 @@ module com { module sun { module star { module configuration { module backend { @see com::sun::star::configuration::backend::DataImporter Service that supports applying a <type>LayerFilter</type> to imported data. - @since OOo 2.0.0 + @since OOo 2.0 */ published service LayerFilter { diff --git a/offapi/com/sun/star/configuration/backend/MergeRecoveryRequest.idl b/offapi/com/sun/star/configuration/backend/MergeRecoveryRequest.idl index c5d44ac4b7bf..133fc8080e66 100644 --- a/offapi/com/sun/star/configuration/backend/MergeRecoveryRequest.idl +++ b/offapi/com/sun/star/configuration/backend/MergeRecoveryRequest.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module configuration { module backend { /** is passed to an <type>InteractionHandler<type> when merging fails due to invalid layer data or access problems. - @since OOo 2.0.0 + @since OOo 2.0 */ exception MergeRecoveryRequest: ::com::sun::star::uno::Exception { diff --git a/offapi/com/sun/star/configuration/backend/Schema.idl b/offapi/com/sun/star/configuration/backend/Schema.idl index 873f7c464b15..61150a60435a 100644 --- a/offapi/com/sun/star/configuration/backend/Schema.idl +++ b/offapi/com/sun/star/configuration/backend/Schema.idl @@ -72,7 +72,7 @@ published service Schema /** The URL of the layer data. - @since OOo 2.0.0 + @since OOo 2.0 */ [property,optional,readonly] string URL ; diff --git a/offapi/com/sun/star/configuration/backend/StratumCreationException.idl b/offapi/com/sun/star/configuration/backend/StratumCreationException.idl index f425118de937..825c81a254ef 100644 --- a/offapi/com/sun/star/configuration/backend/StratumCreationException.idl +++ b/offapi/com/sun/star/configuration/backend/StratumCreationException.idl @@ -39,7 +39,7 @@ module com { module sun { module star { module configuration { module backend { /** is passed to an <type>InteractionHandler<type> when creating a stratum backend fails. - @since OOo 2.0.0 + @since OOo 2.0 */ exception StratumCreationException : BackendSetupException { diff --git a/offapi/com/sun/star/deployment/DeploymentException.idl b/offapi/com/sun/star/deployment/DeploymentException.idl index 3c07d803a48a..fd40cf0e8aec 100644 --- a/offapi/com/sun/star/deployment/DeploymentException.idl +++ b/offapi/com/sun/star/deployment/DeploymentException.idl @@ -35,7 +35,7 @@ module com { module sun { module star { module deployment { /** A DeploymentException reflects a deployment error. - @since OOo 2.0.0 + @since OOo 2.0 */ exception DeploymentException : com::sun::star::uno::Exception { diff --git a/offapi/com/sun/star/deployment/ExtensionManager.idl b/offapi/com/sun/star/deployment/ExtensionManager.idl index 1911ce04dd81..4494da1a9d0f 100644 --- a/offapi/com/sun/star/deployment/ExtensionManager.idl +++ b/offapi/com/sun/star/deployment/ExtensionManager.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module deployment { /singletons/com.sun.star.deployment.ExtensionManager </code>. - @since OOo 3.3.0 + @since OOo 3.3 */ singleton ExtensionManager : XExtensionManager; diff --git a/offapi/com/sun/star/deployment/ExtensionRemovedException.idl b/offapi/com/sun/star/deployment/ExtensionRemovedException.idl index 1cd400e248d6..0d0e06c96977 100644 --- a/offapi/com/sun/star/deployment/ExtensionRemovedException.idl +++ b/offapi/com/sun/star/deployment/ExtensionRemovedException.idl @@ -39,7 +39,7 @@ interface XPackage; because the extension was removed. <member>XPackage::isRemoved</member> will return true on that object. - @since OOo 3.3.0 + @since OOo 3.3 */ exception ExtensionRemovedException: com::sun::star::uno::Exception { diff --git a/offapi/com/sun/star/deployment/InvalidRemovedParameterException.idl b/offapi/com/sun/star/deployment/InvalidRemovedParameterException.idl index 0f0407b0e989..79599b7fb53b 100644 --- a/offapi/com/sun/star/deployment/InvalidRemovedParameterException.idl +++ b/offapi/com/sun/star/deployment/InvalidRemovedParameterException.idl @@ -39,7 +39,7 @@ interface XPackage; called with a different value for the <code>removed</code> parameter and that the <type>XPackage</type> object created by that call still exist. - @since OOo 3.3.0 + @since OOo 3.3 */ exception InvalidRemovedParameterException: com::sun::star::uno::Exception { /** the value of the <code>removed</code> parameter which was used in diff --git a/offapi/com/sun/star/deployment/PackageRegistryBackend.idl b/offapi/com/sun/star/deployment/PackageRegistryBackend.idl index 0ac85465284b..ee76030eb54b 100644 --- a/offapi/com/sun/star/deployment/PackageRegistryBackend.idl +++ b/offapi/com/sun/star/deployment/PackageRegistryBackend.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module deployment { are related to a <type>XPackageManager</type> instance. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service PackageRegistryBackend : XPackageRegistry { diff --git a/offapi/com/sun/star/deployment/PlatformException.idl b/offapi/com/sun/star/deployment/PlatformException.idl index fca14c2f2c6a..c67b204a59fb 100644 --- a/offapi/com/sun/star/deployment/PlatformException.idl +++ b/offapi/com/sun/star/deployment/PlatformException.idl @@ -36,7 +36,7 @@ module com { module sun { module star { module deployment { /** A DeploymentException indicates that the current platform is not supported. - @since OOo 3.0.0 + @since OOo 3.0 */ exception PlatformException : com::sun::star::uno::Exception { diff --git a/offapi/com/sun/star/deployment/XExtensionManager.idl b/offapi/com/sun/star/deployment/XExtensionManager.idl index 679ba2ba5a66..b7528251d86c 100644 --- a/offapi/com/sun/star/deployment/XExtensionManager.idl +++ b/offapi/com/sun/star/deployment/XExtensionManager.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module deployment { in the user, shared and bundled repository. @see ExtensionManager - @since OOo 3.3.0 + @since OOo 3.3 */ interface XExtensionManager { diff --git a/offapi/com/sun/star/deployment/XPackage.idl b/offapi/com/sun/star/deployment/XPackage.idl index a6a2f6adf851..ede234382974 100755..100644 --- a/offapi/com/sun/star/deployment/XPackage.idl +++ b/offapi/com/sun/star/deployment/XPackage.idl @@ -49,7 +49,7 @@ module com { module sun { module star { module deployment { /** Objects of this interface reflect a bound package and are issued by a <type>PackageRegistryBackend</type>. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XPackage { @@ -100,7 +100,7 @@ interface XPackage After updateing the OpenOffice.org, some dependencies for packages might no longer be satisfied. - @since OOo 3.2.0 + @since OOo 3.2 @param xCmdEnv command environment for error handling and other interaction. diff --git a/offapi/com/sun/star/deployment/XPackageManager.idl b/offapi/com/sun/star/deployment/XPackageManager.idl index da329bb9367f..5ece66a87392 100644 --- a/offapi/com/sun/star/deployment/XPackageManager.idl +++ b/offapi/com/sun/star/deployment/XPackageManager.idl @@ -67,7 +67,7 @@ module com { module sun { module star { module deployment { </p> @see thePackageManagerFactory - @since OOo 2.0.0 + @since OOo 2.0 @deprecated Use <type>XExtensionManager</type>. */ diff --git a/offapi/com/sun/star/deployment/XPackageManagerFactory.idl b/offapi/com/sun/star/deployment/XPackageManagerFactory.idl index 4b5b7183ba47..f7e67543f4cd 100644 --- a/offapi/com/sun/star/deployment/XPackageManagerFactory.idl +++ b/offapi/com/sun/star/deployment/XPackageManagerFactory.idl @@ -44,7 +44,7 @@ module com { module sun { module star { module deployment { exclusively. </p> - @since OOo 2.0.0 + @since OOo 2.0 @deprecated Use <type>XExtensionManager</type>. */ diff --git a/offapi/com/sun/star/deployment/XPackageRegistry.idl b/offapi/com/sun/star/deployment/XPackageRegistry.idl index a8e3f556781d..1ab29f0970ba 100644 --- a/offapi/com/sun/star/deployment/XPackageRegistry.idl +++ b/offapi/com/sun/star/deployment/XPackageRegistry.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module deployment { /** Interface to bind an UNO package. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XPackageRegistry { diff --git a/offapi/com/sun/star/deployment/XPackageTypeInfo.idl b/offapi/com/sun/star/deployment/XPackageTypeInfo.idl index 7252f73d200b..9ba54160ade9 100644 --- a/offapi/com/sun/star/deployment/XPackageTypeInfo.idl +++ b/offapi/com/sun/star/deployment/XPackageTypeInfo.idl @@ -35,7 +35,7 @@ module com { module sun { module star { module deployment { /** Objects of this interface provide information about a package's type. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XPackageTypeInfo { diff --git a/offapi/com/sun/star/deployment/thePackageManagerFactory.idl b/offapi/com/sun/star/deployment/thePackageManagerFactory.idl index 85e95acea598..a0fbd4a35b7a 100644 --- a/offapi/com/sun/star/deployment/thePackageManagerFactory.idl +++ b/offapi/com/sun/star/deployment/thePackageManagerFactory.idl @@ -42,7 +42,7 @@ module com { module sun { module star { module deployment { </code>. </p> - @since OOo 2.0.0 + @since OOo 2.0 @deprecated Use <type>XExtensionManager</type>. */ diff --git a/offapi/com/sun/star/deployment/ui/PackageManagerDialog.idl b/offapi/com/sun/star/deployment/ui/PackageManagerDialog.idl index 0f2b58d941f9..dc635ebb6347 100644 --- a/offapi/com/sun/star/deployment/ui/PackageManagerDialog.idl +++ b/offapi/com/sun/star/deployment/ui/PackageManagerDialog.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module deployment { module ui { packages of the user and shared installation as well as currently open documents. - @since OOo 2.0.0 + @since OOo 2.0 */ service PackageManagerDialog : com::sun::star::ui::dialogs::XAsynchronousExecutableDialog { diff --git a/offapi/com/sun/star/deployment/ui/UpdateRequiredDialog.idl b/offapi/com/sun/star/deployment/ui/UpdateRequiredDialog.idl index 35b314b74f92..6e475539bab9 100644 --- a/offapi/com/sun/star/deployment/ui/UpdateRequiredDialog.idl +++ b/offapi/com/sun/star/deployment/ui/UpdateRequiredDialog.idl @@ -36,7 +36,7 @@ module com { module sun { module star { module deployment { module ui { /** The <type>UpdateRequiredDialog</type> is used to show a list of extensions not compatible with this office version. - @since OOo 3.2.0 + @since OOo 3.2 */ service UpdateRequiredDialog : com::sun::star::ui::dialogs::XExecutableDialog { diff --git a/offapi/com/sun/star/document/CorruptedFilterConfigurationException.idl b/offapi/com/sun/star/document/CorruptedFilterConfigurationException.idl index af7116b085ea..e3fbf81c7223 100644 --- a/offapi/com/sun/star/document/CorruptedFilterConfigurationException.idl +++ b/offapi/com/sun/star/document/CorruptedFilterConfigurationException.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module document { /** This exception is thrown in case the global filter configuration does not exists or contains corrupted data. - @since OOo 2.0.0 + @since OOo 2.0 */ published exception CorruptedFilterConfigurationException : ::com::sun::star::uno::RuntimeException { diff --git a/offapi/com/sun/star/document/DocumentEvent.idl b/offapi/com/sun/star/document/DocumentEvent.idl index 1ec7f599ad6a..caa717a8217a 100644 --- a/offapi/com/sun/star/document/DocumentEvent.idl +++ b/offapi/com/sun/star/document/DocumentEvent.idl @@ -49,7 +49,7 @@ module com { module sun { module star { module document { anymore.</p> @see XDocumentEventBroadcaster - @since OpenOffice.org 3.1 + @since OOo 3.1 */ struct DocumentEvent : ::com::sun::star::lang::EventObject { diff --git a/offapi/com/sun/star/document/XDocumentEventBroadcaster.idl b/offapi/com/sun/star/document/XDocumentEventBroadcaster.idl index 845660d9db7b..bd7bbf52722c 100644 --- a/offapi/com/sun/star/document/XDocumentEventBroadcaster.idl +++ b/offapi/com/sun/star/document/XDocumentEventBroadcaster.idl @@ -58,7 +58,7 @@ interface XDocumentEventListener; anymore.</p> @see DocumentEvent - @since OpenOffice.org 3.1 + @since OOo 3.1 */ interface XDocumentEventBroadcaster { diff --git a/offapi/com/sun/star/document/XDocumentEventListener.idl b/offapi/com/sun/star/document/XDocumentEventListener.idl index 207286df8b79..2fa8e1583f1a 100644 --- a/offapi/com/sun/star/document/XDocumentEventListener.idl +++ b/offapi/com/sun/star/document/XDocumentEventListener.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module document { anymore.</p> @see XDocumentEventBroadcaster - @since OpenOffice.org 3.1 + @since OOo 3.1 */ interface XDocumentEventListener : ::com::sun::star::lang::XEventListener { diff --git a/offapi/com/sun/star/document/XMLBasicExporter.idl b/offapi/com/sun/star/document/XMLBasicExporter.idl index 4e11911e3181..7766282276dd 100644 --- a/offapi/com/sun/star/document/XMLBasicExporter.idl +++ b/offapi/com/sun/star/document/XMLBasicExporter.idl @@ -53,7 +53,7 @@ module com { module sun { module star { module document { from which the data should be exported. After that, the export is started by calling the <method>XFilter::filter</method> method.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ published service XMLBasicExporter { diff --git a/offapi/com/sun/star/document/XMLBasicImporter.idl b/offapi/com/sun/star/document/XMLBasicImporter.idl index 38f3bf3ff086..74b789c954ed 100644 --- a/offapi/com/sun/star/document/XMLBasicImporter.idl +++ b/offapi/com/sun/star/document/XMLBasicImporter.idl @@ -50,7 +50,7 @@ module com { module sun { module star { module document { The <type scope="com::sun::star::xml::sax">XDocumentHandler</type> interface is used to stream the XML data into the filter.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ published service XMLBasicImporter { diff --git a/offapi/com/sun/star/document/XMLOasisBasicExporter.idl b/offapi/com/sun/star/document/XMLOasisBasicExporter.idl index 8c59e34f4301..b5817e99e8ee 100644 --- a/offapi/com/sun/star/document/XMLOasisBasicExporter.idl +++ b/offapi/com/sun/star/document/XMLOasisBasicExporter.idl @@ -53,7 +53,7 @@ module com { module sun { module star { module document { from which the data should be exported. After that, the export is started by calling the <method>XFilter::filter</method> method.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ published service XMLOasisBasicExporter { diff --git a/offapi/com/sun/star/document/XMLOasisBasicImporter.idl b/offapi/com/sun/star/document/XMLOasisBasicImporter.idl index c0aadd8c4941..c77c6395a9be 100644 --- a/offapi/com/sun/star/document/XMLOasisBasicImporter.idl +++ b/offapi/com/sun/star/document/XMLOasisBasicImporter.idl @@ -50,7 +50,7 @@ module com { module sun { module star { module document { The <type scope="com::sun::star::xml::sax">XDocumentHandler</type> interface is used to stream the XML data into the filter.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ published service XMLOasisBasicImporter { diff --git a/offapi/com/sun/star/form/FormComponent.idl b/offapi/com/sun/star/form/FormComponent.idl index 27bae9588631..489f97e66795 100644 --- a/offapi/com/sun/star/form/FormComponent.idl +++ b/offapi/com/sun/star/form/FormComponent.idl @@ -104,7 +104,7 @@ published service FormComponent will always be set, even if you do not specify it in the <member scope="com::sun::star::beans">XPropertyContainer::addProperty</member> call.</p> - @since OpenOffice.org 2.3.0 + @since OOo 2.3 */ [optional] service com::sun::star::beans::PropertyBag; diff --git a/offapi/com/sun/star/form/XErrorListener.idl b/offapi/com/sun/star/form/XErrorListener.idl index 4b329e1e6d03..7f6a6c4c74a2 100644 --- a/offapi/com/sun/star/form/XErrorListener.idl +++ b/offapi/com/sun/star/form/XErrorListener.idl @@ -51,7 +51,6 @@ <p>Please do <em><b>not</b></em> use anymore, this interface is superseeded by <type scope="com::sun::star::sdb">XSQLErrorListener</type>.</p> -@since foo @deprecated */ published interface XErrorListener: com::sun::star::lang::XEventListener diff --git a/offapi/com/sun/star/form/component/GridControl.idl b/offapi/com/sun/star/form/component/GridControl.idl index f3077ec037ac..b39dc67e9fef 100644 --- a/offapi/com/sun/star/form/component/GridControl.idl +++ b/offapi/com/sun/star/form/component/GridControl.idl @@ -162,7 +162,7 @@ published service GridControl <p>Not every border style (see <member>Border</member>) may support coloring. For instance, usually a border with 3D effect will ignore the BorderColor setting.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long BorderColor; diff --git a/offapi/com/sun/star/form/inspection/DefaultFormComponentInspectorModel.idl b/offapi/com/sun/star/form/inspection/DefaultFormComponentInspectorModel.idl index b743fe4be85b..11140ee20476 100644 --- a/offapi/com/sun/star/form/inspection/DefaultFormComponentInspectorModel.idl +++ b/offapi/com/sun/star/form/inspection/DefaultFormComponentInspectorModel.idl @@ -62,7 +62,7 @@ service DefaultFormComponentInspectorModel : com::sun::star::inspection::XObject /** creates a default DefaultFormComponentInspectorModel, providing factories for all handlers listed above. - @since OOo 2.2.0 + @since OOo 2.2 */ createDefault(); @@ -85,7 +85,7 @@ service DefaultFormComponentInspectorModel : com::sun::star::inspection::XObject @see XObjectInspectorModel::MinHelpTextLines @see XObjectInspectorModel::MaxHelpTextLines - @since OOo 2.2.0 + @since OOo 2.2 */ createWithHelpSection( [in] long minHelpTextLines, diff --git a/offapi/com/sun/star/form/runtime/FeatureState.idl b/offapi/com/sun/star/form/runtime/FeatureState.idl index 996aff1e8076..f50c8d36ce05 100644 --- a/offapi/com/sun/star/form/runtime/FeatureState.idl +++ b/offapi/com/sun/star/form/runtime/FeatureState.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module form { module runtime { @see XFormOperations - @since OpenOffice.org 2.2.0 + @since OOo 2.2 */ struct FeatureState { diff --git a/offapi/com/sun/star/form/runtime/FilterEvent.idl b/offapi/com/sun/star/form/runtime/FilterEvent.idl index b7cc035113cb..f58b9e101e6f 100644 --- a/offapi/com/sun/star/form/runtime/FilterEvent.idl +++ b/offapi/com/sun/star/form/runtime/FilterEvent.idl @@ -39,7 +39,7 @@ module com { module sun { module star { module form { module runtime { @see XFilterController - @since OpenOffice.org 3.3 + @since OOo 3.3 */ struct FilterEvent : ::com::sun::star::lang::EventObject { diff --git a/offapi/com/sun/star/form/runtime/FormFeature.idl b/offapi/com/sun/star/form/runtime/FormFeature.idl index 57ebcc8ef7b7..13045b0f6bb9 100644 --- a/offapi/com/sun/star/form/runtime/FormFeature.idl +++ b/offapi/com/sun/star/form/runtime/FormFeature.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module form { module runtime { /** specifies the operations on a user interface form, as supported by the <type>XFormOperations</type> interface. - @since OpenOffice.org 2.2.0 + @since OOo 2.2 */ constants FormFeature { diff --git a/offapi/com/sun/star/form/runtime/FormOperations.idl b/offapi/com/sun/star/form/runtime/FormOperations.idl index aa4b7e825c8c..c96844ded821 100644 --- a/offapi/com/sun/star/form/runtime/FormOperations.idl +++ b/offapi/com/sun/star/form/runtime/FormOperations.idl @@ -50,7 +50,7 @@ module com { module sun { module star { module form { module runtime { /** encapsulates operations on a database form which has a UI representation, and is interacting with the user. - @since OpenOffice.org 2.2.0 + @since OOo 2.2 */ service FormOperations : XFormOperations { diff --git a/offapi/com/sun/star/form/runtime/XFeatureInvalidation.idl b/offapi/com/sun/star/form/runtime/XFeatureInvalidation.idl index b435e64a6d81..0f1ca0df7578 100644 --- a/offapi/com/sun/star/form/runtime/XFeatureInvalidation.idl +++ b/offapi/com/sun/star/form/runtime/XFeatureInvalidation.idl @@ -43,7 +43,7 @@ module com { module sun { module star { module form { module runtime { @see XFormOperations - @since OpenOffice.org 2.2.0 + @since OOo 2.2 */ interface XFeatureInvalidation { diff --git a/offapi/com/sun/star/form/runtime/XFilterController.idl b/offapi/com/sun/star/form/runtime/XFilterController.idl index 8f3fded592d9..e1c3f0f69fee 100644 --- a/offapi/com/sun/star/form/runtime/XFilterController.idl +++ b/offapi/com/sun/star/form/runtime/XFilterController.idl @@ -73,7 +73,7 @@ interface XFilterControllerListener; @see com::sun::star::sdb::XSingleSelectQueryAnalyzer::getStructuredFilter @see com::sun::star::sdb::SQLFilterOperator - @since OpenOffice.org 3.3 + @since OOo 3.3 */ interface XFilterController { diff --git a/offapi/com/sun/star/form/runtime/XFilterControllerListener.idl b/offapi/com/sun/star/form/runtime/XFilterControllerListener.idl index c737f9b24c70..86068c745640 100644 --- a/offapi/com/sun/star/form/runtime/XFilterControllerListener.idl +++ b/offapi/com/sun/star/form/runtime/XFilterControllerListener.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module form { module runtime { /** is implemented by components listening for events fired by an <type>XFilterController</type>. - @since OpenOffice.org 3.3 + @since OOo 3.3 */ interface XFilterControllerListener : ::com::sun::star::lang::XEventListener { diff --git a/offapi/com/sun/star/form/runtime/XFormController.idl b/offapi/com/sun/star/form/runtime/XFormController.idl index 983b0bd61f07..482c66f06262 100644 --- a/offapi/com/sun/star/form/runtime/XFormController.idl +++ b/offapi/com/sun/star/form/runtime/XFormController.idl @@ -248,7 +248,7 @@ interface XFormControllerContext; @see ::com::sun::star::form::binding::BindableControlModel @see ::com::sun::star::sdb::DataSource::Settings - @since OpenOffice.org 3.3 + @since OOo 3.3 */ interface XFormController { diff --git a/offapi/com/sun/star/form/runtime/XFormOperations.idl b/offapi/com/sun/star/form/runtime/XFormOperations.idl index f6f040ccc199..9775fb87e64a 100644 --- a/offapi/com/sun/star/form/runtime/XFormOperations.idl +++ b/offapi/com/sun/star/form/runtime/XFormOperations.idl @@ -93,7 +93,7 @@ interface XFeatureInvalidation; @see FormFeature - @since OpenOffice.org 2.2.0 + @since OOo 2.2 */ interface XFormOperations : ::com::sun::star::lang::XComponent { diff --git a/offapi/com/sun/star/frame/CommandGroup.idl b/offapi/com/sun/star/frame/CommandGroup.idl index d8058379922e..6cad9c9c4f88 100644 --- a/offapi/com/sun/star/frame/CommandGroup.idl +++ b/offapi/com/sun/star/frame/CommandGroup.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module frame { @see XDispatchInformationProvider @see Controller - @since OOo 2.0.0 + @since OOo 2.0 */ published constants CommandGroup { diff --git a/offapi/com/sun/star/frame/DispatchInformation.idl b/offapi/com/sun/star/frame/DispatchInformation.idl index 49789f003b8a..861699f018e7 100644 --- a/offapi/com/sun/star/frame/DispatchInformation.idl +++ b/offapi/com/sun/star/frame/DispatchInformation.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module frame { @see XDispatchInformationProvider @see Controller - @since OOo 2.0.0 + @since OOo 2.0 */ published struct DispatchInformation { diff --git a/offapi/com/sun/star/frame/Frame.idl b/offapi/com/sun/star/frame/Frame.idl index 2111775c9948..27ae448134dd 100644 --- a/offapi/com/sun/star/frame/Frame.idl +++ b/offapi/com/sun/star/frame/Frame.idl @@ -127,7 +127,7 @@ published service Frame //------------------------------------------------------------------------- /** provides information about supported commands - @since OOo 2.0.0 + @since OOo 2.0 */ [optional] interface XDispatchInformationProvider; diff --git a/offapi/com/sun/star/frame/LayoutManager.idl b/offapi/com/sun/star/frame/LayoutManager.idl index 7a2f25f39d20..e54df74e59d3 100644 --- a/offapi/com/sun/star/frame/LayoutManager.idl +++ b/offapi/com/sun/star/frame/LayoutManager.idl @@ -72,7 +72,7 @@ the size and position of those user interface elements. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service LayoutManager diff --git a/offapi/com/sun/star/frame/LayoutManagerEvents.idl b/offapi/com/sun/star/frame/LayoutManagerEvents.idl index 8a7bafcf9880..3a41716d9b61 100644 --- a/offapi/com/sun/star/frame/LayoutManagerEvents.idl +++ b/offapi/com/sun/star/frame/LayoutManagerEvents.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module frame { @see com::sun::star::frame::LayoutManager @see com::sun::star::frame::XLayoutManagerEventBroadcaster - @since OOo 2.0.0 + @since OOo 2.0 */ constants LayoutManagerEvents { diff --git a/offapi/com/sun/star/frame/ModuleManager.idl b/offapi/com/sun/star/frame/ModuleManager.idl index 4b8c1cb8723a..7a102da72bef 100644 --- a/offapi/com/sun/star/frame/ModuleManager.idl +++ b/offapi/com/sun/star/frame/ModuleManager.idl @@ -48,7 +48,7 @@ module com { module sun { module star { module frame { of office modules. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service ModuleManager diff --git a/offapi/com/sun/star/frame/PopupMenuController.idl b/offapi/com/sun/star/frame/PopupMenuController.idl index 0d24f19e6cd5..eab60de2fd2c 100644 --- a/offapi/com/sun/star/frame/PopupMenuController.idl +++ b/offapi/com/sun/star/frame/PopupMenuController.idl @@ -65,7 +65,7 @@ module com { module sun { module star { module frame { worked on. This list gets changes consistently during a work session. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service PopupMenuController diff --git a/offapi/com/sun/star/frame/PopupMenuControllerFactory.idl b/offapi/com/sun/star/frame/PopupMenuControllerFactory.idl index b0d6d71bb1bd..4bf62ffb1efa 100644 --- a/offapi/com/sun/star/frame/PopupMenuControllerFactory.idl +++ b/offapi/com/sun/star/frame/PopupMenuControllerFactory.idl @@ -50,7 +50,7 @@ module com { module sun { module star { module frame { it contains a registered command URL. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service PopupMenuControllerFactory diff --git a/offapi/com/sun/star/frame/StatusbarController.idl b/offapi/com/sun/star/frame/StatusbarController.idl index 861c4364e1f0..9331f95b1816 100644 --- a/offapi/com/sun/star/frame/StatusbarController.idl +++ b/offapi/com/sun/star/frame/StatusbarController.idl @@ -64,7 +64,7 @@ @see com::sun::star::frame::XDispatchProvider @see com::sun::star::frame::XStatusbarController - @since OOo 2.0.0 + @since OOo 2.0 */ service StatusbarController diff --git a/offapi/com/sun/star/frame/StatusbarControllerFactory.idl b/offapi/com/sun/star/frame/StatusbarControllerFactory.idl index 01d26117f1c1..dd2b756c319a 100644 --- a/offapi/com/sun/star/frame/StatusbarControllerFactory.idl +++ b/offapi/com/sun/star/frame/StatusbarControllerFactory.idl @@ -51,7 +51,7 @@ module com { module sun { module star { module frame { if it contains a registered command URL. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service StatusbarControllerFactory diff --git a/offapi/com/sun/star/frame/ToolbarController.idl b/offapi/com/sun/star/frame/ToolbarController.idl index 674b35af4e6c..8f49b0ae17ea 100644 --- a/offapi/com/sun/star/frame/ToolbarController.idl +++ b/offapi/com/sun/star/frame/ToolbarController.idl @@ -67,7 +67,7 @@ @see com::sun::star::frame::XDispatchProvider - @since OOo 2.0.0 + @since OOo 2.0 */ service ToolbarController diff --git a/offapi/com/sun/star/frame/TransientDocumentsDocumentContentFactory.idl b/offapi/com/sun/star/frame/TransientDocumentsDocumentContentFactory.idl index 326981516522..0f982fa0f4cb 100644 --- a/offapi/com/sun/star/frame/TransientDocumentsDocumentContentFactory.idl +++ b/offapi/com/sun/star/frame/TransientDocumentsDocumentContentFactory.idl @@ -39,7 +39,7 @@ module com { module sun { module star { module frame { /** specifies a factory for <type scope="com::sun::star::ucb">TransientDocumentsDocumentContent</type>s. - @since OOo 2.0.0 + @since OOo 2.0 */ service TransientDocumentsDocumentContentFactory { diff --git a/offapi/com/sun/star/frame/UnknownModuleException.idl b/offapi/com/sun/star/frame/UnknownModuleException.idl index c1c9aad21d8a..9b3169c1dcbe 100644 --- a/offapi/com/sun/star/frame/UnknownModuleException.idl +++ b/offapi/com/sun/star/frame/UnknownModuleException.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module frame { * module could not be classified or does not have * a valid configuration. - @since OOo 2.0.0 + @since OOo 2.0 */ exception UnknownModuleException : ::com::sun::star::uno::Exception { diff --git a/offapi/com/sun/star/frame/XDispatchInformationProvider.idl b/offapi/com/sun/star/frame/XDispatchInformationProvider.idl index 3bf6886ba17b..a7f50d78c79c 100644 --- a/offapi/com/sun/star/frame/XDispatchInformationProvider.idl +++ b/offapi/com/sun/star/frame/XDispatchInformationProvider.idl @@ -56,7 +56,7 @@ module com { module sun { module star { module frame { @see Frame - @since OOo 2.0.0 + @since OOo 2.0 */ published interface XDispatchInformationProvider: com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/frame/XInplaceLayout.idl b/offapi/com/sun/star/frame/XInplaceLayout.idl index 71344418bda3..fa2d8944f878 100644 --- a/offapi/com/sun/star/frame/XInplaceLayout.idl +++ b/offapi/com/sun/star/frame/XInplaceLayout.idl @@ -43,7 +43,7 @@ module com { module sun { module star { module frame { @deprecated - @since OOo 2.0.0 + @since OOo 2.0 */ interface XInplaceLayout : com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/frame/XLayoutManager.idl b/offapi/com/sun/star/frame/XLayoutManager.idl index 5699fe00687b..1801140d2965 100644 --- a/offapi/com/sun/star/frame/XLayoutManager.idl +++ b/offapi/com/sun/star/frame/XLayoutManager.idl @@ -95,7 +95,7 @@ module com { module sun { module star { module frame { @see com::sun::star::frame::XFrame </p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XLayoutManager : com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/frame/XLayoutManagerEventBroadcaster.idl b/offapi/com/sun/star/frame/XLayoutManagerEventBroadcaster.idl index b79827dd4b3e..fc7636e21e56 100644 --- a/offapi/com/sun/star/frame/XLayoutManagerEventBroadcaster.idl +++ b/offapi/com/sun/star/frame/XLayoutManagerEventBroadcaster.idl @@ -40,7 +40,7 @@ @see ::com::sun::star::frame::LayoutManager - @since OOo 2.0.0 + @since OOo 2.0 */ interface XLayoutManagerEventBroadcaster : com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/frame/XLayoutManagerListener.idl b/offapi/com/sun/star/frame/XLayoutManagerListener.idl index 593ba510c08c..1a1cd9266917 100644 --- a/offapi/com/sun/star/frame/XLayoutManagerListener.idl +++ b/offapi/com/sun/star/frame/XLayoutManagerListener.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module frame { @see ::com::sun::star::frame::LayoutManager @see ::com::sun::star::frame::LayoutManagerEvents - @since OOo 2.0.0 + @since OOo 2.0 */ interface XLayoutManagerListener : com::sun::star::lang::XEventListener { diff --git a/offapi/com/sun/star/frame/XMenuBarAcceptor.idl b/offapi/com/sun/star/frame/XMenuBarAcceptor.idl index 7eec81bb5308..a5c2f54676d8 100644 --- a/offapi/com/sun/star/frame/XMenuBarAcceptor.idl +++ b/offapi/com/sun/star/frame/XMenuBarAcceptor.idl @@ -46,7 +46,7 @@ module com { module sun { module star { module frame { @deprecated - @since OOo 2.0.0 + @since OOo 2.0 */ interface XMenuBarAcceptor : com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/frame/XMenuBarMergingAcceptor.idl b/offapi/com/sun/star/frame/XMenuBarMergingAcceptor.idl index b7c6a1b13c19..500c069006ee 100644 --- a/offapi/com/sun/star/frame/XMenuBarMergingAcceptor.idl +++ b/offapi/com/sun/star/frame/XMenuBarMergingAcceptor.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module frame { /** provides functions to set and remove a merged menu bar for inplace editing. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XMenuBarMergingAcceptor : com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/frame/XModule.idl b/offapi/com/sun/star/frame/XModule.idl index c302892d5df5..26b2d4cf5f0e 100644 --- a/offapi/com/sun/star/frame/XModule.idl +++ b/offapi/com/sun/star/frame/XModule.idl @@ -58,7 +58,7 @@ module com { module sun { module star { module frame { @see XModuleManager - @since OOo 2.3.0 + @since OOo 2.3 */ interface XModule : com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/frame/XModuleManager.idl b/offapi/com/sun/star/frame/XModuleManager.idl index 7c8527c84d73..0e1d8b8fe00e 100644 --- a/offapi/com/sun/star/frame/XModuleManager.idl +++ b/offapi/com/sun/star/frame/XModuleManager.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module frame { //=============================================== /** can be used to identify office modules. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XModuleManager : com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/frame/XPopupMenuController.idl b/offapi/com/sun/star/frame/XPopupMenuController.idl index ffc7db109f4a..cf65f41f8038 100644 --- a/offapi/com/sun/star/frame/XPopupMenuController.idl +++ b/offapi/com/sun/star/frame/XPopupMenuController.idl @@ -48,7 +48,7 @@ module com { module sun { module star { module frame { briefs the controller whenever the popup menu gets activated by a user. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XPopupMenuController : com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/frame/XStatusbarController.idl b/offapi/com/sun/star/frame/XStatusbarController.idl index d9e035ad03bc..5ded8dc55c1a 100644 --- a/offapi/com/sun/star/frame/XStatusbarController.idl +++ b/offapi/com/sun/star/frame/XStatusbarController.idl @@ -62,7 +62,7 @@ module com { module sun { module star { module frame { @see com::sun::star::frame::XDispatchProvider - @since OOo 2.0.0 + @since OOo 2.0 */ interface XStatusbarController : ::com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/frame/XSubToolbarController.idl b/offapi/com/sun/star/frame/XSubToolbarController.idl index e0de8b9b8e2f..a9614e5ba04a 100644 --- a/offapi/com/sun/star/frame/XSubToolbarController.idl +++ b/offapi/com/sun/star/frame/XSubToolbarController.idl @@ -47,7 +47,7 @@ @see com::sun::star::frame::ToolbarController - @since OOo 2.0.0 + @since OOo 2.0 */ interface XSubToolbarController : com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/frame/XSynchronousDispatch.idl b/offapi/com/sun/star/frame/XSynchronousDispatch.idl index b016e42932a3..7357bc209513 100644 --- a/offapi/com/sun/star/frame/XSynchronousDispatch.idl +++ b/offapi/com/sun/star/frame/XSynchronousDispatch.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module frame { //============================================================================= /** additional interfaces for dispatch objects: allow to execute with return value - @since OOo 2.0.0 + @since OOo 2.0 @see XDispatch */ published interface XSynchronousDispatch: com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/frame/XToolbarController.idl b/offapi/com/sun/star/frame/XToolbarController.idl index 1ca2c8fa9278..07bf0bbd9ec2 100644 --- a/offapi/com/sun/star/frame/XToolbarController.idl +++ b/offapi/com/sun/star/frame/XToolbarController.idl @@ -53,7 +53,7 @@ @see com::sun::star::frame::XDispatchProvider - @since OOo 2.0.0 + @since OOo 2.0 */ interface XToolbarController : com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/frame/XToolbarControllerListener.idl b/offapi/com/sun/star/frame/XToolbarControllerListener.idl index 6450d8ef910e..63b7b6ae4cca 100644 --- a/offapi/com/sun/star/frame/XToolbarControllerListener.idl +++ b/offapi/com/sun/star/frame/XToolbarControllerListener.idl @@ -36,7 +36,7 @@ @see com::sun::star::frame::ToolbarController - @since OOo 2.0.0 + @since OOo 2.0 */ interface XToolbarControllerListener : com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/frame/XTransientDocumentsDocumentContentFactory.idl b/offapi/com/sun/star/frame/XTransientDocumentsDocumentContentFactory.idl index ec3259b4ad06..9fc7172fd203 100644 --- a/offapi/com/sun/star/frame/XTransientDocumentsDocumentContentFactory.idl +++ b/offapi/com/sun/star/frame/XTransientDocumentsDocumentContentFactory.idl @@ -56,7 +56,7 @@ module com { module sun { module star { module frame { @see com::sun::star::document::OfficeDocument @see com::sun::star::ucb::TransientDocumentsDocumentContent - @since OOo 2.0.0 + @since OOo 2.0 */ interface XTransientDocumentsDocumentContentFactory : com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/geometry/AffineMatrix2D.idl b/offapi/com/sun/star/geometry/AffineMatrix2D.idl index ad122bc7ebeb..2a6c65459c4d 100644 --- a/offapi/com/sun/star/geometry/AffineMatrix2D.idl +++ b/offapi/com/sun/star/geometry/AffineMatrix2D.idl @@ -65,7 +65,7 @@ module com { module sun { module star { module geometry { printer, Then, the total transformation matrix and the device resolution determine the actual measurement unit.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct AffineMatrix2D { diff --git a/offapi/com/sun/star/geometry/AffineMatrix3D.idl b/offapi/com/sun/star/geometry/AffineMatrix3D.idl index 945fccc1880c..a7d9f9b5b000 100644 --- a/offapi/com/sun/star/geometry/AffineMatrix3D.idl +++ b/offapi/com/sun/star/geometry/AffineMatrix3D.idl @@ -67,7 +67,7 @@ module com { module sun { module star { module geometry { Only then the total transformation matrix (oncluding projection to 2D) and the device resolution determine the actual measurement unit in 3D.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct AffineMatrix3D { diff --git a/offapi/com/sun/star/geometry/EllipticalArc.idl b/offapi/com/sun/star/geometry/EllipticalArc.idl index 620cbead640a..3dff5ced8c9b 100644 --- a/offapi/com/sun/star/geometry/EllipticalArc.idl +++ b/offapi/com/sun/star/geometry/EllipticalArc.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module geometry { constrains. Thus, there are two flags indicating which one of those ellipses should be taken.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct EllipticalArc { diff --git a/offapi/com/sun/star/geometry/IntegerBezierSegment2D.idl b/offapi/com/sun/star/geometry/IntegerBezierSegment2D.idl index f26418aaf5c4..3ed8334178b4 100644 --- a/offapi/com/sun/star/geometry/IntegerBezierSegment2D.idl +++ b/offapi/com/sun/star/geometry/IntegerBezierSegment2D.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module geometry { ignored.<p> @see com.sun.star.rendering.XBezierPolyPolygon2D - @since OOo 2.0.0 + @since OOo 2.0 */ struct IntegerBezierSegment2D { diff --git a/offapi/com/sun/star/geometry/IntegerPoint2D.idl b/offapi/com/sun/star/geometry/IntegerPoint2D.idl index 2b1e0d83efa6..ce2d60ab51a7 100644 --- a/offapi/com/sun/star/geometry/IntegerPoint2D.idl +++ b/offapi/com/sun/star/geometry/IntegerPoint2D.idl @@ -34,7 +34,7 @@ module com { module sun { module star { module geometry { This structure contains x and y integer-valued coordinates of a two-dimensional point. - @since OOo 2.0.0 + @since OOo 2.0 */ struct IntegerPoint2D { diff --git a/offapi/com/sun/star/geometry/IntegerRectangle2D.idl b/offapi/com/sun/star/geometry/IntegerRectangle2D.idl index 289c3f081665..a9dc994717bb 100644 --- a/offapi/com/sun/star/geometry/IntegerRectangle2D.idl +++ b/offapi/com/sun/star/geometry/IntegerRectangle2D.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module geometry { /** This structure contains the necessary information for a two-dimensional rectangle.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct IntegerRectangle2D { diff --git a/offapi/com/sun/star/geometry/IntegerSize2D.idl b/offapi/com/sun/star/geometry/IntegerSize2D.idl index 3c8b665fedc3..cf3e1a215adb 100644 --- a/offapi/com/sun/star/geometry/IntegerSize2D.idl +++ b/offapi/com/sun/star/geometry/IntegerSize2D.idl @@ -33,7 +33,7 @@ module com { module sun { module star { module geometry { The data is stored integer-valued.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct IntegerSize2D { diff --git a/offapi/com/sun/star/geometry/Matrix2D.idl b/offapi/com/sun/star/geometry/Matrix2D.idl index 4d2bacb24e2f..d0e8bf357f2a 100644 --- a/offapi/com/sun/star/geometry/Matrix2D.idl +++ b/offapi/com/sun/star/geometry/Matrix2D.idl @@ -68,7 +68,7 @@ module com { module sun { module star { module geometry { printer. Then, the total transformation matrix and the device resolution determine the actual measurement unit.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct Matrix2D { diff --git a/offapi/com/sun/star/geometry/RealBezierSegment2D.idl b/offapi/com/sun/star/geometry/RealBezierSegment2D.idl index 97a9772fb006..6ec7e1b8b83d 100644 --- a/offapi/com/sun/star/geometry/RealBezierSegment2D.idl +++ b/offapi/com/sun/star/geometry/RealBezierSegment2D.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module geometry { ignored.<p> @see com.sun.star.rendering.XBezierPolyPolygon2D - @since OOo 2.0.0 + @since OOo 2.0 */ struct RealBezierSegment2D { diff --git a/offapi/com/sun/star/geometry/RealPoint2D.idl b/offapi/com/sun/star/geometry/RealPoint2D.idl index 8c0e594aa5e6..1ac34b7a380e 100644 --- a/offapi/com/sun/star/geometry/RealPoint2D.idl +++ b/offapi/com/sun/star/geometry/RealPoint2D.idl @@ -34,7 +34,7 @@ module com { module sun { module star { module geometry { This structure contains x and y real-valued coordinates of a two-dimensional point. - @since OOo 2.0.0 + @since OOo 2.0 */ struct RealPoint2D { diff --git a/offapi/com/sun/star/geometry/RealRectangle2D.idl b/offapi/com/sun/star/geometry/RealRectangle2D.idl index b12ead639200..39cd783f3c08 100644 --- a/offapi/com/sun/star/geometry/RealRectangle2D.idl +++ b/offapi/com/sun/star/geometry/RealRectangle2D.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module geometry { /** This structure contains the necessary information for a two-dimensional rectangle.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct RealRectangle2D { diff --git a/offapi/com/sun/star/geometry/RealRectangle3D.idl b/offapi/com/sun/star/geometry/RealRectangle3D.idl index 826c73c27679..4265ae3088ae 100644 --- a/offapi/com/sun/star/geometry/RealRectangle3D.idl +++ b/offapi/com/sun/star/geometry/RealRectangle3D.idl @@ -32,7 +32,7 @@ module com { module sun { module star { module geometry { /** This structure contains the necessary information for a three-dimensional cube.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct RealRectangle3D { diff --git a/offapi/com/sun/star/geometry/RealSize2D.idl b/offapi/com/sun/star/geometry/RealSize2D.idl index 5ed2fc8a34c3..dab80a5c7deb 100644 --- a/offapi/com/sun/star/geometry/RealSize2D.idl +++ b/offapi/com/sun/star/geometry/RealSize2D.idl @@ -33,7 +33,7 @@ module com { module sun { module star { module geometry { The data is stored real-valued.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct RealSize2D { diff --git a/offapi/com/sun/star/geometry/XMapping2D.idl b/offapi/com/sun/star/geometry/XMapping2D.idl index bf435389582a..1d2465d91f8e 100644 --- a/offapi/com/sun/star/geometry/XMapping2D.idl +++ b/offapi/com/sun/star/geometry/XMapping2D.idl @@ -48,7 +48,7 @@ module com { module sun { module star { module geometry { pair of real numbers there must be another pair that is mapped upon them.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XMapping2D : ::com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/i18n/OrdinalSuffix.idl b/offapi/com/sun/star/i18n/OrdinalSuffix.idl index 500ef74ccffc..d754a572e058 100644 --- a/offapi/com/sun/star/i18n/OrdinalSuffix.idl +++ b/offapi/com/sun/star/i18n/OrdinalSuffix.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module i18n { /** provides access to locale specific ordinal suffix systems. - @since OOo2.2 + @since OOo 2.2 @internal diff --git a/offapi/com/sun/star/i18n/TextConversionOption.idl b/offapi/com/sun/star/i18n/TextConversionOption.idl index 8f70cfb08bac..d21e3e3151e1 100644 --- a/offapi/com/sun/star/i18n/TextConversionOption.idl +++ b/offapi/com/sun/star/i18n/TextConversionOption.idl @@ -59,7 +59,7 @@ published constants TextConversionOption /** Use Taiwan, HongKong SAR, and Macao SAR character variants for Simplified to Traditionary Chinese conversion - @since OOo 2.0.0 + @since OOo 2.0 */ const long USE_CHARACTER_VARIANTS = 2; // (1 << 1) }; diff --git a/offapi/com/sun/star/i18n/XOrdinalSuffix.idl b/offapi/com/sun/star/i18n/XOrdinalSuffix.idl index 7da294782791..382cb4dafd31 100644 --- a/offapi/com/sun/star/i18n/XOrdinalSuffix.idl +++ b/offapi/com/sun/star/i18n/XOrdinalSuffix.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module i18n { /** provides access to locale specific ordinal suffix systems. - @since OOo2.2 + @since OOo 2.2 @internal diff --git a/offapi/com/sun/star/linguistic2/ConversionDictionary.idl b/offapi/com/sun/star/linguistic2/ConversionDictionary.idl index ab242d2c40f6..b501478f8ebd 100644 --- a/offapi/com/sun/star/linguistic2/ConversionDictionary.idl +++ b/offapi/com/sun/star/linguistic2/ConversionDictionary.idl @@ -69,7 +69,7 @@ published service ConversionDictionary [optional] interface com::sun::star::util::XFlushable; /** - @since OOo 2.0.0 + @since OOo 2.0 */ [optional] interface com::sun::star::linguistic2::XConversionPropertyType; }; diff --git a/offapi/com/sun/star/linguistic2/ConversionDictionaryType.idl b/offapi/com/sun/star/linguistic2/ConversionDictionaryType.idl index cf5d93d49f73..cd06ee9bc5ee 100644 --- a/offapi/com/sun/star/linguistic2/ConversionDictionaryType.idl +++ b/offapi/com/sun/star/linguistic2/ConversionDictionaryType.idl @@ -44,7 +44,7 @@ constants ConversionDictionaryType /** Dictionary type for the conversion between Simplified and Traditionary Chinese - @since OOo 2.0.0 + @since OOo 2.0 */ const short SCHINESE_TCHINESE = 2; }; diff --git a/offapi/com/sun/star/linguistic2/ConversionPropertyType.idl b/offapi/com/sun/star/linguistic2/ConversionPropertyType.idl index e0e2e37357fe..424ece6e23d6 100644 --- a/offapi/com/sun/star/linguistic2/ConversionPropertyType.idl +++ b/offapi/com/sun/star/linguistic2/ConversionPropertyType.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module linguistic2 { @see com::sun::star::linguistic2::XConversionDictionary @see com::sun::star::linguistic2::XConversionPropertyType - @since OOo 2.0.0 + @since OOo 2.0 */ constants ConversionPropertyType { diff --git a/offapi/com/sun/star/linguistic2/XConversionPropertyType.idl b/offapi/com/sun/star/linguistic2/XConversionPropertyType.idl index 0a847f046e78..7dcccf3d05f8 100644 --- a/offapi/com/sun/star/linguistic2/XConversionPropertyType.idl +++ b/offapi/com/sun/star/linguistic2/XConversionPropertyType.idl @@ -56,7 +56,7 @@ module com { module sun { module star { module linguistic2 { @see com::sun::star::linguistic2::XConversionDictionary @see com::sun::star::linguistic2::ConversionPropertyType - @since OOo 2.0.0 + @since OOo 2.0 */ published interface XConversionPropertyType : com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/mail/MailAttachment.idl b/offapi/com/sun/star/mail/MailAttachment.idl index a30aadfa0304..ef45f157ac31 100644 --- a/offapi/com/sun/star/mail/MailAttachment.idl +++ b/offapi/com/sun/star/mail/MailAttachment.idl @@ -39,7 +39,7 @@ module com { module sun { module star { module mail { @see ::com::sun::star::mail::XMailMessage - @since OOo 2.0.0 + @since OOo 2.0 */ struct MailAttachment { diff --git a/offapi/com/sun/star/mail/MailException.idl b/offapi/com/sun/star/mail/MailException.idl index 5f5bfff11f81..2022c2aee483 100644 --- a/offapi/com/sun/star/mail/MailException.idl +++ b/offapi/com/sun/star/mail/MailException.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module mail { An MailException is the base of all mail related exceptions. - @since OOo 2.0.0 + @since OOo 2.0 */ exception MailException: com::sun::star::uno::Exception { diff --git a/offapi/com/sun/star/mail/MailMessage.idl b/offapi/com/sun/star/mail/MailMessage.idl index 2112865d00f8..71dea28cb36c 100644 --- a/offapi/com/sun/star/mail/MailMessage.idl +++ b/offapi/com/sun/star/mail/MailMessage.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module mail { interface XMailMessage; /** - @since OOo 2.0.0 + @since OOo 2.0 */ service MailMessage: XMailMessage { diff --git a/offapi/com/sun/star/mail/MailServer.idl b/offapi/com/sun/star/mail/MailServer.idl index f6b448946eb4..2ae7afc016bf 100644 --- a/offapi/com/sun/star/mail/MailServer.idl +++ b/offapi/com/sun/star/mail/MailServer.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module mail { interface XMailServer; /** - @since OOo 2.0.0 + @since OOo 2.0 */ service MailServer: XMailServer { diff --git a/offapi/com/sun/star/mail/MailServiceProvider.idl b/offapi/com/sun/star/mail/MailServiceProvider.idl index af48d9e9b3e7..0645d9556e66 100644 --- a/offapi/com/sun/star/mail/MailServiceProvider.idl +++ b/offapi/com/sun/star/mail/MailServiceProvider.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module mail { interface XMailService; /** - @since OOo 2.0.0 + @since OOo 2.0 */ service MailServiceProvider: XMailServiceProvider { diff --git a/offapi/com/sun/star/mail/MailServiceType.idl b/offapi/com/sun/star/mail/MailServiceType.idl index 94aa985a06c2..ecb960b3ed12 100644 --- a/offapi/com/sun/star/mail/MailServiceType.idl +++ b/offapi/com/sun/star/mail/MailServiceType.idl @@ -31,7 +31,7 @@ module com { module sun { module star { module mail { /** - @since OOo 2.0.0 + @since OOo 2.0 */ enum MailServiceType { diff --git a/offapi/com/sun/star/mail/NoMailServiceProviderException.idl b/offapi/com/sun/star/mail/NoMailServiceProviderException.idl index a8e3d52396b9..f1a2074d66ea 100644 --- a/offapi/com/sun/star/mail/NoMailServiceProviderException.idl +++ b/offapi/com/sun/star/mail/NoMailServiceProviderException.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module mail { @see com::sun::star::mail::MailService - @since OOo 2.0.0 + @since OOo 2.0 */ exception NoMailServiceProviderException: com::sun::star::mail::MailException { diff --git a/offapi/com/sun/star/mail/NoMailTransportProviderException.idl b/offapi/com/sun/star/mail/NoMailTransportProviderException.idl index 3cad64b8f900..fa275ed7f7f2 100644 --- a/offapi/com/sun/star/mail/NoMailTransportProviderException.idl +++ b/offapi/com/sun/star/mail/NoMailTransportProviderException.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module mail { @see com::sun::star::mail::MailServer - @since OOo 2.0.0 + @since OOo 2.0 */ exception NoMailTransportProviderException: com::sun::star::mail::MailException { diff --git a/offapi/com/sun/star/mail/SendMailMessageFailedException.idl b/offapi/com/sun/star/mail/SendMailMessageFailedException.idl index 8987bf587596..91a6cb29b5d8 100644 --- a/offapi/com/sun/star/mail/SendMailMessageFailedException.idl +++ b/offapi/com/sun/star/mail/SendMailMessageFailedException.idl @@ -42,7 +42,7 @@ module com { module sun { module star { module mail { @see com::sun::star::mail::XMailServer - @since OOo 2.0.0 + @since OOo 2.0 */ exception SendMailMessageFailedException: com::sun::star::mail::MailException { diff --git a/offapi/com/sun/star/mail/XAuthenticator.idl b/offapi/com/sun/star/mail/XAuthenticator.idl index 564ad4e484f1..6ae813a161ef 100644 --- a/offapi/com/sun/star/mail/XAuthenticator.idl +++ b/offapi/com/sun/star/mail/XAuthenticator.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module mail { An implementation of this interface may for instance show a dialog to query the user for the necessary data. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XAuthenticator: ::com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/mail/XConnectionListener.idl b/offapi/com/sun/star/mail/XConnectionListener.idl index 5ca8511f7c97..cd5153f5e96e 100644 --- a/offapi/com/sun/star/mail/XConnectionListener.idl +++ b/offapi/com/sun/star/mail/XConnectionListener.idl @@ -43,7 +43,7 @@ module com { module sun { module star { module mail { @see com::sun::star::mail::XMailServer - @since OOo 2.0.0 + @since OOo 2.0 */ interface XConnectionListener: ::com::sun::star::lang::XEventListener { diff --git a/offapi/com/sun/star/mail/XMailMessage.idl b/offapi/com/sun/star/mail/XMailMessage.idl index b87ea1ca6c5c..abc3017297d7 100644 --- a/offapi/com/sun/star/mail/XMailMessage.idl +++ b/offapi/com/sun/star/mail/XMailMessage.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module mail { @see com::sun::star::mail::XMailServer - @since OOo 2.0.0 + @since OOo 2.0 */ interface XMailMessage: ::com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/mail/XMailServer.idl b/offapi/com/sun/star/mail/XMailServer.idl index 8d0ad232ed61..401a13424566 100644 --- a/offapi/com/sun/star/mail/XMailServer.idl +++ b/offapi/com/sun/star/mail/XMailServer.idl @@ -95,7 +95,7 @@ module com { module sun { module star { module mail { @see com::sun::star::mail::XMailMessage - @since OOo 2.0.0 + @since OOo 2.0 */ interface XMailServer: ::com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/mail/XMailService.idl b/offapi/com/sun/star/mail/XMailService.idl index cc8ba05e0703..f06937b79d57 100644 --- a/offapi/com/sun/star/mail/XMailService.idl +++ b/offapi/com/sun/star/mail/XMailService.idl @@ -82,7 +82,7 @@ module com { module sun { module star { module mail { /** Represents a mail server abstraction. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XMailService: ::com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/mail/XMailServiceProvider.idl b/offapi/com/sun/star/mail/XMailServiceProvider.idl index 5f389a57ee58..5430a45fced0 100644 --- a/offapi/com/sun/star/mail/XMailServiceProvider.idl +++ b/offapi/com/sun/star/mail/XMailServiceProvider.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module mail { /** A factory for creating different mail services. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XMailServiceProvider: ::com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/mail/XSmtpService.idl b/offapi/com/sun/star/mail/XSmtpService.idl index 278e9ebe85f1..9ffec785bf09 100644 --- a/offapi/com/sun/star/mail/XSmtpService.idl +++ b/offapi/com/sun/star/mail/XSmtpService.idl @@ -64,7 +64,7 @@ module com { module sun { module star { module mail { @see com::sun::star::mail::XMailService @see com::sun::star::mail::XMailMessage - @since OOo 2.0.0 + @since OOo 2.0 */ interface XSmtpService: ::com::sun::star::mail::XMailService { diff --git a/offapi/com/sun/star/rendering/AnimationAttributes.idl b/offapi/com/sun/star/rendering/AnimationAttributes.idl index e1d2f1a1eeb5..330ec3d75b30 100644 --- a/offapi/com/sun/star/rendering/AnimationAttributes.idl +++ b/offapi/com/sun/star/rendering/AnimationAttributes.idl @@ -35,7 +35,7 @@ module com { module sun { module star { module rendering { /** This structure contains attributes needed to run an animation. - @since OOo 2.0.0 + @since OOo 2.0 */ struct AnimationAttributes { diff --git a/offapi/com/sun/star/rendering/AnimationRepeat.idl b/offapi/com/sun/star/rendering/AnimationRepeat.idl index 8bde41c46b99..2f72a6b69fbc 100644 --- a/offapi/com/sun/star/rendering/AnimationRepeat.idl +++ b/offapi/com/sun/star/rendering/AnimationRepeat.idl @@ -35,7 +35,7 @@ module com { module sun { module star { module rendering { animation is driven through, thus defining the possible repeat modes.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ constants AnimationRepeat { diff --git a/offapi/com/sun/star/rendering/CanvasFactory.idl b/offapi/com/sun/star/rendering/CanvasFactory.idl index d735dc368855..7935d5f30b1a 100644 --- a/offapi/com/sun/star/rendering/CanvasFactory.idl +++ b/offapi/com/sun/star/rendering/CanvasFactory.idl @@ -49,7 +49,7 @@ module com { module sun { module star { module rendering { a service name to try first. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service CanvasFactory : com::sun::star::lang::XMultiComponentFactory; diff --git a/offapi/com/sun/star/rendering/Caret.idl b/offapi/com/sun/star/rendering/Caret.idl index 7d04213987ee..8d8999160ac2 100644 --- a/offapi/com/sun/star/rendering/Caret.idl +++ b/offapi/com/sun/star/rendering/Caret.idl @@ -34,7 +34,7 @@ module com { module sun { module star { module rendering { This structure is used from the <type>XTextLayout</type> interface to transport information regarding a text caret.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct Caret { diff --git a/offapi/com/sun/star/rendering/CompositeOperation.idl b/offapi/com/sun/star/rendering/CompositeOperation.idl index 0c1c4448ee05..169e7af6517c 100644 --- a/offapi/com/sun/star/rendering/CompositeOperation.idl +++ b/offapi/com/sun/star/rendering/CompositeOperation.idl @@ -44,7 +44,7 @@ module com { module sun { module star { module rendering { different composite modes (wherein Aa and Ab denote source and destination alpha, respectively).<p> - @since OOo 2.0.0 + @since OOo 2.0 */ constants CompositeOperation { diff --git a/offapi/com/sun/star/rendering/EmphasisMark.idl b/offapi/com/sun/star/rendering/EmphasisMark.idl index be0847a0dcd2..fe9d3d683f55 100644 --- a/offapi/com/sun/star/rendering/EmphasisMark.idl +++ b/offapi/com/sun/star/rendering/EmphasisMark.idl @@ -34,7 +34,7 @@ module com { module sun { module star { module rendering { These constants control the automatic rendering of emphasis marks for a given font.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ constants EmphasisMark { diff --git a/offapi/com/sun/star/rendering/FillRule.idl b/offapi/com/sun/star/rendering/FillRule.idl index ff0aab58ab9a..ffea263b4bb3 100644 --- a/offapi/com/sun/star/rendering/FillRule.idl +++ b/offapi/com/sun/star/rendering/FillRule.idl @@ -32,7 +32,7 @@ module com { module sun { module star { module rendering { /** Determines which algorithm to use when determining inside and outside of filled poly-polygons. - @since OOo 2.0.0 + @since OOo 2.0 */ enum FillRule { diff --git a/offapi/com/sun/star/rendering/FloatingPointBitmapFormat.idl b/offapi/com/sun/star/rendering/FloatingPointBitmapFormat.idl index 7fd0a972f56f..0c10b65ff572 100644 --- a/offapi/com/sun/star/rendering/FloatingPointBitmapFormat.idl +++ b/offapi/com/sun/star/rendering/FloatingPointBitmapFormat.idl @@ -31,7 +31,7 @@ module com { module sun { module star { module rendering { /** This structure describes format of a floating point bitmap.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ constants FloatingPointBitmapFormat { diff --git a/offapi/com/sun/star/rendering/FloatingPointBitmapLayout.idl b/offapi/com/sun/star/rendering/FloatingPointBitmapLayout.idl index bef73dc7fc35..714a20e8bf3e 100644 --- a/offapi/com/sun/star/rendering/FloatingPointBitmapLayout.idl +++ b/offapi/com/sun/star/rendering/FloatingPointBitmapLayout.idl @@ -42,7 +42,7 @@ module com { module sun { module star { module rendering { This structure collects all necessary information to describe the memory layout of a bitmap having floating point color channels<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct FloatingPointBitmapLayout { diff --git a/offapi/com/sun/star/rendering/FontInfo.idl b/offapi/com/sun/star/rendering/FontInfo.idl index 1492168d45bc..ed2beaba1c5b 100644 --- a/offapi/com/sun/star/rendering/FontInfo.idl +++ b/offapi/com/sun/star/rendering/FontInfo.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module rendering { /** This structure provides information about a specific font.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct FontInfo { diff --git a/offapi/com/sun/star/rendering/FontMetrics.idl b/offapi/com/sun/star/rendering/FontMetrics.idl index 3339c17d9bdd..71b8f9d3dce6 100644 --- a/offapi/com/sun/star/rendering/FontMetrics.idl +++ b/offapi/com/sun/star/rendering/FontMetrics.idl @@ -49,7 +49,7 @@ module com { module sun { module star { module rendering { underlying font technology, actual device output might be off by up to one device pixel from the transformed metrics. - @since OOo 2.0.0 + @since OOo 2.0 */ struct FontMetrics { diff --git a/offapi/com/sun/star/rendering/FontRequest.idl b/offapi/com/sun/star/rendering/FontRequest.idl index a39871968297..b9da5f1425d4 100644 --- a/offapi/com/sun/star/rendering/FontRequest.idl +++ b/offapi/com/sun/star/rendering/FontRequest.idl @@ -48,7 +48,7 @@ module com { module sun { module star { module rendering { <member>FontInfo::StyleName</member> empty, if font selection should only happen via the PANOSE description. - @since OOo 2.0.0 + @since OOo 2.0 */ struct FontRequest { diff --git a/offapi/com/sun/star/rendering/IntegerBitmapLayout.idl b/offapi/com/sun/star/rendering/IntegerBitmapLayout.idl index 45787bc206e7..fae628f0d9b6 100644 --- a/offapi/com/sun/star/rendering/IntegerBitmapLayout.idl +++ b/offapi/com/sun/star/rendering/IntegerBitmapLayout.idl @@ -42,7 +42,7 @@ module com { module sun { module star { module rendering { This structure collects all necessary information to describe the memory layout of a bitmap having integer color channels<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct IntegerBitmapLayout { diff --git a/offapi/com/sun/star/rendering/InterpolationMode.idl b/offapi/com/sun/star/rendering/InterpolationMode.idl index 01dc1e14c9a2..00fc8e7e4cd0 100644 --- a/offapi/com/sun/star/rendering/InterpolationMode.idl +++ b/offapi/com/sun/star/rendering/InterpolationMode.idl @@ -36,7 +36,7 @@ module com { module sun { module star { module rendering { takes place between two consecutive frames of a discrete animation sequence. - @since OOo 2.0.0 + @since OOo 2.0 */ constants InterpolationMode { diff --git a/offapi/com/sun/star/rendering/PathCapType.idl b/offapi/com/sun/star/rendering/PathCapType.idl index e436eaa738db..e72f9a24dff2 100644 --- a/offapi/com/sun/star/rendering/PathCapType.idl +++ b/offapi/com/sun/star/rendering/PathCapType.idl @@ -36,7 +36,7 @@ module com { module sun { module star { module rendering { different shapes (which are, of course, only visible for strokes wider than one device pixel).<p> - @since OOo 2.0.0 + @since OOo 2.0 */ constants PathCapType { diff --git a/offapi/com/sun/star/rendering/PathJoinType.idl b/offapi/com/sun/star/rendering/PathJoinType.idl index b2fc8d31d747..99e2fad61bb4 100644 --- a/offapi/com/sun/star/rendering/PathJoinType.idl +++ b/offapi/com/sun/star/rendering/PathJoinType.idl @@ -35,7 +35,7 @@ module com { module sun { module star { module rendering { several different shapes (which are of course only visible for strokes wider than one device pixel).<p> - @since OOo 2.0.0 + @since OOo 2.0 */ constants PathJoinType { diff --git a/offapi/com/sun/star/rendering/RenderState.idl b/offapi/com/sun/star/rendering/RenderState.idl index 7ba8d8e35536..ecb5b169d3a3 100644 --- a/offapi/com/sun/star/rendering/RenderState.idl +++ b/offapi/com/sun/star/rendering/RenderState.idl @@ -45,7 +45,7 @@ interface XPolyPolygon2D; state, i.e. the common setup required to render each individual <type>XCanvas</type> primitive.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct RenderState { diff --git a/offapi/com/sun/star/rendering/RenderingIntent.idl b/offapi/com/sun/star/rendering/RenderingIntent.idl index 51ed8a96767b..25ebd6046cc1 100644 --- a/offapi/com/sun/star/rendering/RenderingIntent.idl +++ b/offapi/com/sun/star/rendering/RenderingIntent.idl @@ -36,7 +36,7 @@ module com { module sun { module star { module rendering { href="http://en.wikipedia.org/wiki/Rendering_intent">Wikipedia</a> for a thorough explanation. - @since OOo 2.0.0 + @since OOo 2.0 */ constants RenderingIntent { diff --git a/offapi/com/sun/star/rendering/RepaintResult.idl b/offapi/com/sun/star/rendering/RepaintResult.idl index 9e221b3ff504..8b66654150fa 100644 --- a/offapi/com/sun/star/rendering/RepaintResult.idl +++ b/offapi/com/sun/star/rendering/RepaintResult.idl @@ -32,7 +32,7 @@ module com { module sun { module star { module rendering { /** These constants specify the result of the <type>XCachedPrimitive</type> render operation.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ constants RepaintResult { diff --git a/offapi/com/sun/star/rendering/StringContext.idl b/offapi/com/sun/star/rendering/StringContext.idl index 54c4b5868e98..3f9c833ceb74 100644 --- a/offapi/com/sun/star/rendering/StringContext.idl +++ b/offapi/com/sun/star/rendering/StringContext.idl @@ -36,7 +36,7 @@ module com { module sun { module star { module rendering { here, because in several languages, glyph selection is context dependent.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct StringContext { diff --git a/offapi/com/sun/star/rendering/TextDirection.idl b/offapi/com/sun/star/rendering/TextDirection.idl index 33eea1fd4036..cec5d680be0f 100644 --- a/offapi/com/sun/star/rendering/TextDirection.idl +++ b/offapi/com/sun/star/rendering/TextDirection.idl @@ -33,7 +33,7 @@ module com { module sun { module star { module rendering { This also changes the interpretation of the start point.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ constants TextDirection { diff --git a/offapi/com/sun/star/rendering/TextHit.idl b/offapi/com/sun/star/rendering/TextHit.idl index 7451086d57a3..2b0c5305b925 100644 --- a/offapi/com/sun/star/rendering/TextHit.idl +++ b/offapi/com/sun/star/rendering/TextHit.idl @@ -34,7 +34,7 @@ module com { module sun { module star { module rendering { This structure is used from the <type>XTextLayout</type> interface to transport information regarding hit tests.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct TextHit { diff --git a/offapi/com/sun/star/rendering/Texture.idl b/offapi/com/sun/star/rendering/Texture.idl index a8eacf515c76..ea033b3e21a8 100644 --- a/offapi/com/sun/star/rendering/Texture.idl +++ b/offapi/com/sun/star/rendering/Texture.idl @@ -51,7 +51,7 @@ interface XParametricPolyPolygon2D; as the hatch and the gradient. The transformation member can then be used to scale the complete texture as it fits suit.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct Texture { diff --git a/offapi/com/sun/star/rendering/TexturingMode.idl b/offapi/com/sun/star/rendering/TexturingMode.idl index b44a78eae6ce..10ca7679caa5 100644 --- a/offapi/com/sun/star/rendering/TexturingMode.idl +++ b/offapi/com/sun/star/rendering/TexturingMode.idl @@ -32,7 +32,7 @@ module com { module sun { module star { module rendering { /** Enumeration of possible values to spread a texture across a primitive. - @since OOo 2.0.0 + @since OOo 2.0 */ constants TexturingMode { diff --git a/offapi/com/sun/star/rendering/ViewState.idl b/offapi/com/sun/star/rendering/ViewState.idl index b0ed7b62d3b5..fe4de1fc17bf 100644 --- a/offapi/com/sun/star/rendering/ViewState.idl +++ b/offapi/com/sun/star/rendering/ViewState.idl @@ -41,7 +41,7 @@ interface XPolyPolygon2D; i.e. the invariant setup used when painting a whole view of something.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ struct ViewState { diff --git a/offapi/com/sun/star/rendering/VolatileContentDestroyedException.idl b/offapi/com/sun/star/rendering/VolatileContentDestroyedException.idl index 23e0531f876f..718444f91a25 100644 --- a/offapi/com/sun/star/rendering/VolatileContentDestroyedException.idl +++ b/offapi/com/sun/star/rendering/VolatileContentDestroyedException.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module rendering { When accessing or rendering XVolatileBitmap data, that has been invalidated by the system, this exception will be thrown.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ exception VolatileContentDestroyedException : ::com::sun::star::uno::Exception { diff --git a/offapi/com/sun/star/rendering/XAnimatedSprite.idl b/offapi/com/sun/star/rendering/XAnimatedSprite.idl index 6824b36e4f07..aa10e68f9ae1 100644 --- a/offapi/com/sun/star/rendering/XAnimatedSprite.idl +++ b/offapi/com/sun/star/rendering/XAnimatedSprite.idl @@ -54,7 +54,7 @@ module com { module sun { module star { module rendering { This interface can be used to control an animated sprite object on an XSpriteCanvas. Sprites are moving, animated objects.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XAnimatedSprite : XSprite { diff --git a/offapi/com/sun/star/rendering/XAnimation.idl b/offapi/com/sun/star/rendering/XAnimation.idl index 004f350ef564..8dd196bb7b6e 100644 --- a/offapi/com/sun/star/rendering/XAnimation.idl +++ b/offapi/com/sun/star/rendering/XAnimation.idl @@ -58,7 +58,7 @@ module com { module sun { module star { module rendering { is used by the <type>XCanvas</type> interface to render generic animations.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XAnimation : ::com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/rendering/XBezierPolyPolygon2D.idl b/offapi/com/sun/star/rendering/XBezierPolyPolygon2D.idl index 973d33e8dfd1..8d245d1c00a2 100644 --- a/offapi/com/sun/star/rendering/XBezierPolyPolygon2D.idl +++ b/offapi/com/sun/star/rendering/XBezierPolyPolygon2D.idl @@ -54,7 +54,7 @@ module com { module sun { module star { module rendering { By convention, a <type>RealBezierSegment2D</type> is a straight line segment, if all three contained points are strictly equal.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XBezierPolyPolygon2D : XPolyPolygon2D { diff --git a/offapi/com/sun/star/rendering/XBitmap.idl b/offapi/com/sun/star/rendering/XBitmap.idl index 3eedd46357e2..c061d2908f2e 100644 --- a/offapi/com/sun/star/rendering/XBitmap.idl +++ b/offapi/com/sun/star/rendering/XBitmap.idl @@ -55,7 +55,7 @@ interface XBitmapCanvas; <type>XIeeeDoubleBitmap</type>, <type>XIeeeFloatBitmap</type> and <type>XHalfFloatBitmap</type> interfaces.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XBitmap : ::com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/rendering/XBitmapCanvas.idl b/offapi/com/sun/star/rendering/XBitmapCanvas.idl index b87be2ae8394..fed3cd4238dc 100644 --- a/offapi/com/sun/star/rendering/XBitmapCanvas.idl +++ b/offapi/com/sun/star/rendering/XBitmapCanvas.idl @@ -59,7 +59,7 @@ module com { module sun { module star { module rendering { bitmapped canvases, where additional methods for accessing and moving of bitmap content are provided.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XBitmapCanvas : XCanvas { diff --git a/offapi/com/sun/star/rendering/XBitmapPalette.idl b/offapi/com/sun/star/rendering/XBitmapPalette.idl index b89bc8221cd0..f36629285d9a 100644 --- a/offapi/com/sun/star/rendering/XBitmapPalette.idl +++ b/offapi/com/sun/star/rendering/XBitmapPalette.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module rendering { /** Interface to access the palette of a color-indexed bitmap. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XBitmapPalette : ::com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/rendering/XBufferController.idl b/offapi/com/sun/star/rendering/XBufferController.idl index d4222e263aac..93bfea9158f3 100644 --- a/offapi/com/sun/star/rendering/XBufferController.idl +++ b/offapi/com/sun/star/rendering/XBufferController.idl @@ -42,7 +42,7 @@ module com { module sun { module star { module rendering { This interface provides methods to enable and control double/multi-buffering facilities on screen devices.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XBufferController : ::com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/rendering/XCachedPrimitive.idl b/offapi/com/sun/star/rendering/XCachedPrimitive.idl index c24a74df3135..9793374ad913 100644 --- a/offapi/com/sun/star/rendering/XCachedPrimitive.idl +++ b/offapi/com/sun/star/rendering/XCachedPrimitive.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module rendering { This interface provides a method to quickly redraw some <type>XCanvas</type> primitives, using cached data.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XCachedPrimitive : ::com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/rendering/XCanvas.idl b/offapi/com/sun/star/rendering/XCanvas.idl index e88de735ce7c..e731e535d3c9 100644 --- a/offapi/com/sun/star/rendering/XCanvas.idl +++ b/offapi/com/sun/star/rendering/XCanvas.idl @@ -148,7 +148,7 @@ interface XTextLayout; <member>getDevice()</member> call) - they will then internally optimize to the underlying graphics subsystem.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XCanvas : ::com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/rendering/XIntegerBitmap.idl b/offapi/com/sun/star/rendering/XIntegerBitmap.idl index c56d46d948c1..b416d30debd1 100644 --- a/offapi/com/sun/star/rendering/XIntegerBitmap.idl +++ b/offapi/com/sun/star/rendering/XIntegerBitmap.idl @@ -52,7 +52,7 @@ module com { module sun { module star { module rendering { /** This is a specialized interface for bitmaps having integer color channels.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XIntegerBitmap : XIntegerReadOnlyBitmap { diff --git a/offapi/com/sun/star/rendering/XLinePolyPolygon2D.idl b/offapi/com/sun/star/rendering/XLinePolyPolygon2D.idl index a44e1d4fa7dd..bbd2606297ba 100644 --- a/offapi/com/sun/star/rendering/XLinePolyPolygon2D.idl +++ b/offapi/com/sun/star/rendering/XLinePolyPolygon2D.idl @@ -44,7 +44,7 @@ module com { module sun { module star { module rendering { /** Specialized interface for a 2D poly-polygon containing only straight line segments. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XLinePolyPolygon2D : XPolyPolygon2D { diff --git a/offapi/com/sun/star/rendering/XPolyPolygon2D.idl b/offapi/com/sun/star/rendering/XPolyPolygon2D.idl index 47b61210d3fd..dc99fabee053 100644 --- a/offapi/com/sun/star/rendering/XPolyPolygon2D.idl +++ b/offapi/com/sun/star/rendering/XPolyPolygon2D.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module rendering { /** Generic interface for poly-polygons in 2D. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XPolyPolygon2D : ::com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/rendering/XTextLayout.idl b/offapi/com/sun/star/rendering/XTextLayout.idl index e4e2d2e76eca..062a1c86a4ba 100644 --- a/offapi/com/sun/star/rendering/XTextLayout.idl +++ b/offapi/com/sun/star/rendering/XTextLayout.idl @@ -90,7 +90,7 @@ interface XPolyPolygon2D; might be off by up to one device pixel from the transformed metrics.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XTextLayout : ::com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/report/XReportControlFormat.idl b/offapi/com/sun/star/report/XReportControlFormat.idl index 608b1e7aa5f4..672ff99549e7 100644 --- a/offapi/com/sun/star/report/XReportControlFormat.idl +++ b/offapi/com/sun/star/report/XReportControlFormat.idl @@ -143,7 +143,7 @@ interface XReportControlFormat /** If this optional property is <TRUE/>, then the characters are invisible. - @since OOo 2.0.0 + @since OOo 2.0 */ [attribute,bound] boolean CharHidden { diff --git a/offapi/com/sun/star/resource/OfficeResourceLoader.idl b/offapi/com/sun/star/resource/OfficeResourceLoader.idl index 7930a34e5571..20178ca533e7 100644 --- a/offapi/com/sun/star/resource/OfficeResourceLoader.idl +++ b/offapi/com/sun/star/resource/OfficeResourceLoader.idl @@ -70,7 +70,7 @@ module com { module sun { module star { module resource { OpenOffice.org build), you are <strong>strongly</strong> discouraged from using the <type>OfficeResoureLoader</type> service in a component which targets more than one particular OpenOffice.org build.</p> - @since OpenOffice.org 2.0.3 + @since OOo 2.0.3 */ singleton OfficeResourceLoader : XResourceBundleLoader; diff --git a/offapi/com/sun/star/script/browse/BrowseNode.idl b/offapi/com/sun/star/script/browse/BrowseNode.idl index fa209b84efa1..502f16f5799a 100755 --- a/offapi/com/sun/star/script/browse/BrowseNode.idl +++ b/offapi/com/sun/star/script/browse/BrowseNode.idl @@ -46,7 +46,7 @@ module com { XBrowseNode interface. XInvocation is an optional interface that is used to execute macros, or to create/delete/rename macros or macro containers. - @since OOo 2.0.0 + @since OOo 2.0 */ service BrowseNode { diff --git a/offapi/com/sun/star/script/browse/BrowseNodeFactory.idl b/offapi/com/sun/star/script/browse/BrowseNodeFactory.idl index b54d8e7e6137..92897a44080a 100755 --- a/offapi/com/sun/star/script/browse/BrowseNodeFactory.idl +++ b/offapi/com/sun/star/script/browse/BrowseNodeFactory.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module script { module browse { /** This service is used to create Root XBrowseNodes. - @since OOo 2.0.0 + @since OOo 2.0 */ service BrowseNodeFactory { @@ -52,7 +52,7 @@ service BrowseNodeFactory /singletons/com.sun.star.script.theBrowseNodeFactory </pre> - @since OOo 2.0.0 + @since OOo 2.0 */ singleton theBrowseNodeFactory { diff --git a/offapi/com/sun/star/sdb/DatabaseContext.idl b/offapi/com/sun/star/sdb/DatabaseContext.idl index d2e660058e70..ac990e02c709 100644 --- a/offapi/com/sun/star/sdb/DatabaseContext.idl +++ b/offapi/com/sun/star/sdb/DatabaseContext.idl @@ -96,7 +96,7 @@ published service DatabaseContext are maintained, so if possible at all, you should use this interface, instead of modifying or querying the configuration data directly.</p> - @since OpenOffice.org 3.3 + @since OOo 3.3 */ [optional] interface XDatabaseRegistrations; }; diff --git a/offapi/com/sun/star/sdb/DatabaseDocument.idl b/offapi/com/sun/star/sdb/DatabaseDocument.idl index b7a626579ec5..6690c2929de4 100644 --- a/offapi/com/sun/star/sdb/DatabaseDocument.idl +++ b/offapi/com/sun/star/sdb/DatabaseDocument.idl @@ -43,7 +43,7 @@ module com { module sun { module star { module sdb { /** specifies a link to a document associated with a database document - @since OOo 2.0.0 + @since OOo 2.0 @deprecated */ published service DatabaseDocument diff --git a/offapi/com/sun/star/sdb/DocumentSaveRequest.idl b/offapi/com/sun/star/sdb/DocumentSaveRequest.idl index f3a90b4f467f..a2a579fc47ac 100644 --- a/offapi/com/sun/star/sdb/DocumentSaveRequest.idl +++ b/offapi/com/sun/star/sdb/DocumentSaveRequest.idl @@ -44,7 +44,7 @@ <p> Usually thrown if someone tries to save a document which hasn't a name yet. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ exception DocumentSaveRequest: com::sun::star::task::ClassifiedInteractionRequest { diff --git a/offapi/com/sun/star/sdb/OfficeDatabaseDocument.idl b/offapi/com/sun/star/sdb/OfficeDatabaseDocument.idl index afbf45b192bb..1d12f2dca011 100644 --- a/offapi/com/sun/star/sdb/OfficeDatabaseDocument.idl +++ b/offapi/com/sun/star/sdb/OfficeDatabaseDocument.idl @@ -63,7 +63,7 @@ module com { module sun { module star { module sdb { @see com::sun::star::sdb::XOfficeDatabaseDocument @see com::sun::star::document::OfficeDocument - @since OOo 2.0.0 + @since OOo 2.0 */ service OfficeDatabaseDocument { diff --git a/offapi/com/sun/star/sdb/XDatabaseRegistrations.idl b/offapi/com/sun/star/sdb/XDatabaseRegistrations.idl index 81f878d2441d..8151e7e22de9 100644 --- a/offapi/com/sun/star/sdb/XDatabaseRegistrations.idl +++ b/offapi/com/sun/star/sdb/XDatabaseRegistrations.idl @@ -47,7 +47,7 @@ interface XDatabaseRegistrationsListener; if possible at all, use this interface, instead of modifying or querying the configuration data directly.</p> - @since OpenOffice.org 3.3 + @since OOo 3.3 */ interface XDatabaseRegistrations { diff --git a/offapi/com/sun/star/sdb/XDatabaseRegistrationsListener.idl b/offapi/com/sun/star/sdb/XDatabaseRegistrationsListener.idl index 57135f8de012..9ba6c6e6df9a 100644 --- a/offapi/com/sun/star/sdb/XDatabaseRegistrationsListener.idl +++ b/offapi/com/sun/star/sdb/XDatabaseRegistrationsListener.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module sdb { @see XDatabaseRegistrations - @since OpenOffice.org 3.3 + @since OOo 3.3 */ interface XDatabaseRegistrationsListener : ::com::sun::star::lang::XEventListener { diff --git a/offapi/com/sun/star/sdb/XInteractionDocumentSave.idl b/offapi/com/sun/star/sdb/XInteractionDocumentSave.idl index e4de2af39d98..4d89d66a6ca4 100644 --- a/offapi/com/sun/star/sdb/XInteractionDocumentSave.idl +++ b/offapi/com/sun/star/sdb/XInteractionDocumentSave.idl @@ -43,7 +43,7 @@ module com { module sun { module star { module sdb { This continuation is typically used in conjunction with a <type scope="com::sun::star::sdb">DocumentSaveRequest</type>. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XInteractionDocumentSave: com::sun::star::task::XInteractionContinuation { diff --git a/offapi/com/sun/star/sdb/application/DatabaseObject.idl b/offapi/com/sun/star/sdb/application/DatabaseObject.idl index 3239d69a58f4..46f9f95a7500 100644 --- a/offapi/com/sun/star/sdb/application/DatabaseObject.idl +++ b/offapi/com/sun/star/sdb/application/DatabaseObject.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module sdb { module application { /** denotes different objects within a database document - @since OOo 2.2.0 + @since OOo 2.2 @see DatabaseObjectContainer */ diff --git a/offapi/com/sun/star/sdb/application/XDatabaseDocumentUI.idl b/offapi/com/sun/star/sdb/application/XDatabaseDocumentUI.idl index 7c14255045e1..088ed540897c 100644 --- a/offapi/com/sun/star/sdb/application/XDatabaseDocumentUI.idl +++ b/offapi/com/sun/star/sdb/application/XDatabaseDocumentUI.idl @@ -52,7 +52,7 @@ module com { module sun { module star { module sdb { module application { @see com::sun::star::frame::Controller @see com::sun::star::sdb::DatabaseDocument - @since OOo 2.2.0 + @since OOo 2.2 */ interface XDatabaseDocumentUI { diff --git a/offapi/com/sun/star/sdb/application/XTableUIProvider.idl b/offapi/com/sun/star/sdb/application/XTableUIProvider.idl index ec31ace643aa..85333795d8d2 100644 --- a/offapi/com/sun/star/sdb/application/XTableUIProvider.idl +++ b/offapi/com/sun/star/sdb/application/XTableUIProvider.idl @@ -45,7 +45,7 @@ interface XDatabaseDocumentUI; @see com::sun::star::sdb::Connection - @since OOo 2.2.0 + @since OOo 2.2 */ interface XTableUIProvider { diff --git a/offapi/com/sun/star/sdbc/DataType.idl b/offapi/com/sun/star/sdbc/DataType.idl index 2d07982530f6..9d3bb20e5c7b 100644 --- a/offapi/com/sun/star/sdbc/DataType.idl +++ b/offapi/com/sun/star/sdbc/DataType.idl @@ -133,7 +133,7 @@ published constants DataType /** identifies the generic SQL type * <code>BOOLEAN</code>. * - * @since OOo 2.0.0 + * @since OOo 2.0 */ const long BOOLEAN = 16; }; diff --git a/offapi/com/sun/star/security/SerialNumberAdapter.idl b/offapi/com/sun/star/security/SerialNumberAdapter.idl index 258426fe3f1b..adeb0ca71079 100644 --- a/offapi/com/sun/star/security/SerialNumberAdapter.idl +++ b/offapi/com/sun/star/security/SerialNumberAdapter.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module security { <p>An implementation of this service enables the conversion of certificate serial number to and from a string</p> - @since OOo 3.1.0 + @since OOo 3.1 */ service SerialNumberAdapter : XSerialNumberAdapter; diff --git a/offapi/com/sun/star/sheet/ActivationEvent.idl b/offapi/com/sun/star/sheet/ActivationEvent.idl index 481b4cca723a..f53c3509874b 100644 --- a/offapi/com/sun/star/sheet/ActivationEvent.idl +++ b/offapi/com/sun/star/sheet/ActivationEvent.idl @@ -44,7 +44,7 @@ /** describes a change of the active sheet. The new active sheet is given with this event. - @since OOo 2.0.0 + @since OOo 2.0 */ published struct ActivationEvent: com::sun::star::lang::EventObject diff --git a/offapi/com/sun/star/sheet/CellAreaLink.idl b/offapi/com/sun/star/sheet/CellAreaLink.idl index 75c0a4d810b1..90e51f941eb8 100644 --- a/offapi/com/sun/star/sheet/CellAreaLink.idl +++ b/offapi/com/sun/star/sheet/CellAreaLink.idl @@ -106,7 +106,7 @@ published service CellAreaLink /** specifies the time between two refresh actions in seconds. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long RefreshPeriod; diff --git a/offapi/com/sun/star/sheet/DDEItemInfo.idl b/offapi/com/sun/star/sheet/DDEItemInfo.idl index bf884ea7cbfb..9ad23080fbd5 100644 --- a/offapi/com/sun/star/sheet/DDEItemInfo.idl +++ b/offapi/com/sun/star/sheet/DDEItemInfo.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module sheet { A DDE connection consists of the DDE service name, the DDE topic and a list of DDE items which may contain cached result sets. - @since OOo3.1 + @since OOo 3.1 */ struct DDEItemInfo { diff --git a/offapi/com/sun/star/sheet/DDELinkInfo.idl b/offapi/com/sun/star/sheet/DDELinkInfo.idl index b9df62f3cd70..96c4b8e5c244 100644 --- a/offapi/com/sun/star/sheet/DDELinkInfo.idl +++ b/offapi/com/sun/star/sheet/DDELinkInfo.idl @@ -51,7 +51,7 @@ module com { module sun { module star { module sheet { single quotes they are escaped by doubling them, as usual, for example <code>=[2]!'''Sheet name''.A1'</code> in a "soffice" service.</p> - @since OOo3.1 + @since OOo 3.1 */ struct DDELinkInfo { diff --git a/offapi/com/sun/star/sheet/DataPilotDescriptor.idl b/offapi/com/sun/star/sheet/DataPilotDescriptor.idl index 992afdef5ed9..939ff469b674 100644 --- a/offapi/com/sun/star/sheet/DataPilotDescriptor.idl +++ b/offapi/com/sun/star/sheet/DataPilotDescriptor.idl @@ -80,7 +80,7 @@ published service DataPilotDescriptor /** specifies parameters to create the data pilot table from a database. @see DatabaseImportDescriptor - @since OOo 3.3.0 + @since OOo 3.3 */ [optional, property] sequence< com::sun::star::beans::PropertyValue > ImportDescriptor; @@ -90,7 +90,7 @@ published service DataPilotDescriptor /** specifies the name of a <type>DataPilotSource</type> implementation for the data pilot table. - @since OOo 3.3.0 + @since OOo 3.3 */ [optional, property] string SourceServiceName; @@ -100,7 +100,7 @@ published service DataPilotDescriptor /** specifies arguments that are passed to the implementation named by <member>SourceServiceName</member>. - @since OOo 3.3.0 + @since OOo 3.3 */ [optional, property] sequence< com::sun::star::beans::PropertyValue > ServiceArguments; diff --git a/offapi/com/sun/star/sheet/DataPilotItem.idl b/offapi/com/sun/star/sheet/DataPilotItem.idl index 54f21820ed25..84be9bdc879a 100644 --- a/offapi/com/sun/star/sheet/DataPilotItem.idl +++ b/offapi/com/sun/star/sheet/DataPilotItem.idl @@ -77,7 +77,7 @@ service DataPilotItem /** specifies the item's position in its field if sorting is manual. - @since OOo 2.4.0 + @since OOo 2.4 */ [optional, property] long Position; }; diff --git a/offapi/com/sun/star/sheet/DataPilotOutputRangeType.idl b/offapi/com/sun/star/sheet/DataPilotOutputRangeType.idl index 7bb0bbbc9438..ffd9d274db97 100644 --- a/offapi/com/sun/star/sheet/DataPilotOutputRangeType.idl +++ b/offapi/com/sun/star/sheet/DataPilotOutputRangeType.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module sheet { @see com::sun::star::sheet::XDataPilotTable2 - @since OOo 3.0.0 + @since OOo 3.0 */ constants DataPilotOutputRangeType { diff --git a/offapi/com/sun/star/sheet/DataPilotSource.idl b/offapi/com/sun/star/sheet/DataPilotSource.idl index d96bd6d1ba76..3629d48fd756 100644 --- a/offapi/com/sun/star/sheet/DataPilotSource.idl +++ b/offapi/com/sun/star/sheet/DataPilotSource.idl @@ -100,7 +100,7 @@ published service DataPilotSource /** specifies the number of row fields. - @since OOo 3.0.0 + @since OOo 3.0 */ [readonly, property, optional] long RowFieldCount; @@ -108,7 +108,7 @@ published service DataPilotSource /** specifies the number of column fields. - @since OOo 3.0.0 + @since OOo 3.0 */ [readonly, property, optional] long ColumnFieldCount; @@ -116,7 +116,7 @@ published service DataPilotSource /** specifies the number of data fields. - @since OOo 3.0.0 + @since OOo 3.0 */ [readonly, property, optional] long DataFieldCount; }; diff --git a/offapi/com/sun/star/sheet/DataPilotSourceMember.idl b/offapi/com/sun/star/sheet/DataPilotSourceMember.idl index 754fc955c30a..c83f1031e57a 100644 --- a/offapi/com/sun/star/sheet/DataPilotSourceMember.idl +++ b/offapi/com/sun/star/sheet/DataPilotSourceMember.idl @@ -86,7 +86,7 @@ published service DataPilotSourceMember /** specifies the member's position in its hierarchy level if sorting is manual. - @since OOo 2.4.0 + @since OOo 2.4 */ [optional, property] boolean Position; }; diff --git a/offapi/com/sun/star/sheet/DataPilotTable.idl b/offapi/com/sun/star/sheet/DataPilotTable.idl index c2385c46e5fa..19c5b143a952 100644 --- a/offapi/com/sun/star/sheet/DataPilotTable.idl +++ b/offapi/com/sun/star/sheet/DataPilotTable.idl @@ -66,7 +66,7 @@ published service DataPilotTable /** allows notification of modifications to the data pilot table. - @since OOo 3.3.0 + @since OOo 3.3 */ [optional] interface com::sun::star::util::XModifyBroadcaster; diff --git a/offapi/com/sun/star/sheet/DataPilotTableHeaderData.idl b/offapi/com/sun/star/sheet/DataPilotTableHeaderData.idl index c98e4bbc2820..670b47db4f6a 100644 --- a/offapi/com/sun/star/sheet/DataPilotTableHeaderData.idl +++ b/offapi/com/sun/star/sheet/DataPilotTableHeaderData.idl @@ -51,7 +51,7 @@ module com { module sun { module star { module sheet { @see com::sun::star::sheet::DataPilotFieldFilter @see com::sun::star::sheet::DataResult - @since OOo 3.0.0 + @since OOo 3.0 */ struct DataPilotTableHeaderData { diff --git a/offapi/com/sun/star/sheet/DataPilotTablePositionData.idl b/offapi/com/sun/star/sheet/DataPilotTablePositionData.idl index aa97b0dba922..203990299c89 100644 --- a/offapi/com/sun/star/sheet/DataPilotTablePositionData.idl +++ b/offapi/com/sun/star/sheet/DataPilotTablePositionData.idl @@ -48,7 +48,7 @@ module com { module sun { module star { module sheet { @see com::sun::star::sheet::DataPiotTableResultData @see com::sun::star::sheet::DataPiotTableHeaderData - @since OOo 3.0.0 + @since OOo 3.0 */ struct DataPilotTablePositionData { diff --git a/offapi/com/sun/star/sheet/DataPilotTablePositionType.idl b/offapi/com/sun/star/sheet/DataPilotTablePositionType.idl index 8ef568079f12..f9b254921c6f 100644 --- a/offapi/com/sun/star/sheet/DataPilotTablePositionType.idl +++ b/offapi/com/sun/star/sheet/DataPilotTablePositionType.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module sheet { @see com::sun::star::sheet::DataPilotTableResultData @see com::sun::star::sheet::DataPilotTableHeaderData - @since OOo 3.0.0 + @since OOo 3.0 */ constants DataPilotTablePositionType { diff --git a/offapi/com/sun/star/sheet/DataPilotTableResultData.idl b/offapi/com/sun/star/sheet/DataPilotTableResultData.idl index b0adfdfa4e3d..ff8f7064d537 100644 --- a/offapi/com/sun/star/sheet/DataPilotTableResultData.idl +++ b/offapi/com/sun/star/sheet/DataPilotTableResultData.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module sheet { @see com::sun::star::sheet::DataPilotFieldFilter @see com::sun::star::sheet::DataResult - @since OOo 3.0.0 + @since OOo 3.0 */ struct DataPilotTableResultData { diff --git a/offapi/com/sun/star/sheet/DatabaseImportDescriptor.idl b/offapi/com/sun/star/sheet/DatabaseImportDescriptor.idl index eab5d41f3adf..0044b8801a03 100644 --- a/offapi/com/sun/star/sheet/DatabaseImportDescriptor.idl +++ b/offapi/com/sun/star/sheet/DatabaseImportDescriptor.idl @@ -72,7 +72,7 @@ published service DatabaseImportDescriptor /** specifies whether the SQL statement is given directly to the database or is parsed before. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean IsNative; @@ -80,7 +80,7 @@ published service DatabaseImportDescriptor //------------------------------------------------------------------------- /** indicates a connection URL, which locates a database driver. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] string ConnectionResource; diff --git a/offapi/com/sun/star/sheet/DatabaseRange.idl b/offapi/com/sun/star/sheet/DatabaseRange.idl index ef8ddb62e508..09ea307c1b90 100644 --- a/offapi/com/sun/star/sheet/DatabaseRange.idl +++ b/offapi/com/sun/star/sheet/DatabaseRange.idl @@ -134,7 +134,7 @@ published service DatabaseRange /** specifies the time between two refresh actions in seconds. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] long RefreshPeriod; @@ -142,7 +142,7 @@ published service DatabaseRange /** specifies whether the imported data is only a selection of the database. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean FromSelection; diff --git a/offapi/com/sun/star/sheet/ExternalDocLink.idl b/offapi/com/sun/star/sheet/ExternalDocLink.idl index 357b0b4812ba..2c9842daa50e 100644 --- a/offapi/com/sun/star/sheet/ExternalDocLink.idl +++ b/offapi/com/sun/star/sheet/ExternalDocLink.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module sheet { @see com::sun::star::sheet::XExternalDocLink - @since OOo 3.1.0 + @since OOo 3.1 */ service ExternalDocLink : XExternalDocLink { diff --git a/offapi/com/sun/star/sheet/ExternalDocLinks.idl b/offapi/com/sun/star/sheet/ExternalDocLinks.idl index f0f216a0caf9..5f05d8666315 100644 --- a/offapi/com/sun/star/sheet/ExternalDocLinks.idl +++ b/offapi/com/sun/star/sheet/ExternalDocLinks.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module sheet { @see com::sun::star::sheet::ExternalDocLink @see com::sun::star::sheet::XExternalDocLinks - @since OOo 3.1.0 + @since OOo 3.1 */ service ExternalDocLinks : XExternalDocLinks { diff --git a/offapi/com/sun/star/sheet/ExternalLinkInfo.idl b/offapi/com/sun/star/sheet/ExternalLinkInfo.idl index fa8590f7f678..0ad8d6dadeb4 100644 --- a/offapi/com/sun/star/sheet/ExternalLinkInfo.idl +++ b/offapi/com/sun/star/sheet/ExternalLinkInfo.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module sheet { //============================================================================= /** describes an external link in a formula. - @since OOo3.1 + @since OOo 3.1 */ struct ExternalLinkInfo { diff --git a/offapi/com/sun/star/sheet/ExternalLinkType.idl b/offapi/com/sun/star/sheet/ExternalLinkType.idl index 7803a4c3b291..976524506775 100644 --- a/offapi/com/sun/star/sheet/ExternalLinkType.idl +++ b/offapi/com/sun/star/sheet/ExternalLinkType.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module sheet { <type>ExternalLinkInfo</type>, used with <member>FormulaParser::ExternalLinks</member>. - @since OOo3.1 + @since OOo 3.1 */ constants ExternalLinkType { diff --git a/offapi/com/sun/star/sheet/ExternalSheetCache.idl b/offapi/com/sun/star/sheet/ExternalSheetCache.idl index 93652a6058f7..aabfb37d69da 100644 --- a/offapi/com/sun/star/sheet/ExternalSheetCache.idl +++ b/offapi/com/sun/star/sheet/ExternalSheetCache.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module sheet { @see com::sun::star::sheet::ExternalDocLink @see com::sun::star::sheet::XExternalSheetCache - @since OOo 3.1.0 + @since OOo 3.1 */ service ExternalSheetCache : XExternalSheetCache { diff --git a/offapi/com/sun/star/sheet/FormulaParser.idl b/offapi/com/sun/star/sheet/FormulaParser.idl index 27fba17ff0c0..acf4eca4910b 100644 --- a/offapi/com/sun/star/sheet/FormulaParser.idl +++ b/offapi/com/sun/star/sheet/FormulaParser.idl @@ -103,7 +103,7 @@ service FormulaParser that indices are 1-based, the sequence must start with an empty element.</p> - @since OOo3.1 + @since OOo 3.1 */ [property] sequence< ExternalLinkInfo > ExternalLinks; diff --git a/offapi/com/sun/star/sheet/SheetCell.idl b/offapi/com/sun/star/sheet/SheetCell.idl index ecde3d5c3594..3e9f8066a059 100644 --- a/offapi/com/sun/star/sheet/SheetCell.idl +++ b/offapi/com/sun/star/sheet/SheetCell.idl @@ -241,7 +241,7 @@ published service SheetCell /** - @since OOo 2.0.0 + @since OOo 2.0 */ [optional] interface com::sun::star::util::XModifyBroadcaster; diff --git a/offapi/com/sun/star/sheet/SheetCellRange.idl b/offapi/com/sun/star/sheet/SheetCellRange.idl index b87d52b7f0c4..d6b42ffa7cef 100644 --- a/offapi/com/sun/star/sheet/SheetCellRange.idl +++ b/offapi/com/sun/star/sheet/SheetCellRange.idl @@ -350,7 +350,7 @@ published service SheetCellRange /** - @since OOo 2.0.0 + @since OOo 2.0 */ [optional] interface com::sun::star::util::XModifyBroadcaster; diff --git a/offapi/com/sun/star/sheet/TablePageStyle.idl b/offapi/com/sun/star/sheet/TablePageStyle.idl index 6673fb80f9de..686fb113d62c 100644 --- a/offapi/com/sun/star/sheet/TablePageStyle.idl +++ b/offapi/com/sun/star/sheet/TablePageStyle.idl @@ -197,7 +197,7 @@ published service TablePageStyle /** contains the number of horizontal pages the sheet will printed on. - @since OOo 2.0.0 + @since OOo 2.0 */ [property, optional] short ScaleToPagesX; @@ -206,7 +206,7 @@ published service TablePageStyle /** contains the number of vertical pages the sheet will printed on. - @since OOo 2.0.0 + @since OOo 2.0 */ [property, optional] short ScaleToPagesY; diff --git a/offapi/com/sun/star/sheet/XActivationBroadcaster.idl b/offapi/com/sun/star/sheet/XActivationBroadcaster.idl index 7c57ab280508..e49a97e21d33 100644 --- a/offapi/com/sun/star/sheet/XActivationBroadcaster.idl +++ b/offapi/com/sun/star/sheet/XActivationBroadcaster.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module sheet { /** provides methods to add and remove XActivationEventListener - @since OOo 2.0.0 + @since OOo 2.0 */ published interface XActivationBroadcaster: com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/sheet/XActivationEventListener.idl b/offapi/com/sun/star/sheet/XActivationEventListener.idl index ede31cf591d0..7a129c0ae5df 100644 --- a/offapi/com/sun/star/sheet/XActivationEventListener.idl +++ b/offapi/com/sun/star/sheet/XActivationEventListener.idl @@ -60,7 +60,7 @@ published interface XActivationEventListener: com::sun::star::lang::XEventListen @see ActivationEvent @see XSpreadsheetViewEventProvieder - @since OOo 2.0.0 + @since OOo 2.0 */ void activeSpreadsheetChanged( [in] com::sun::star::sheet::ActivationEvent aEvent ); diff --git a/offapi/com/sun/star/sheet/XDataPilotTable2.idl b/offapi/com/sun/star/sheet/XDataPilotTable2.idl index df7ec30041a8..a0fbd5934e8d 100644 --- a/offapi/com/sun/star/sheet/XDataPilotTable2.idl +++ b/offapi/com/sun/star/sheet/XDataPilotTable2.idl @@ -65,7 +65,7 @@ module com { module sun { module star { module sheet { @see com::sun::star::sheet::XDataPilotTable - @since OOo 3.0.0 + @since OOo 3.0 */ interface XDataPilotTable2: com::sun::star::sheet::XDataPilotTable { diff --git a/offapi/com/sun/star/sheet/XDrillDownDataSupplier.idl b/offapi/com/sun/star/sheet/XDrillDownDataSupplier.idl index ec5e6e2cb9c7..f63d99a65aa1 100644 --- a/offapi/com/sun/star/sheet/XDrillDownDataSupplier.idl +++ b/offapi/com/sun/star/sheet/XDrillDownDataSupplier.idl @@ -57,7 +57,7 @@ module com { module sun { module star { module sheet { @see com::sun::star::sheet::DataPilotSource - @since OOo 3.0.0 + @since OOo 3.0 */ interface XDrillDownDataSupplier: com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/sheet/XEnhancedMouseClickBroadcaster.idl b/offapi/com/sun/star/sheet/XEnhancedMouseClickBroadcaster.idl index 58461f90296a..16de0542a669 100644 --- a/offapi/com/sun/star/sheet/XEnhancedMouseClickBroadcaster.idl +++ b/offapi/com/sun/star/sheet/XEnhancedMouseClickBroadcaster.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module sheet { /** provides methods to add and remove EnhancedMouseClickHandler - @since OOo 2.0.0 + @since OOo 2.0 */ published interface XEnhancedMouseClickBroadcaster: com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/sheet/XExternalDocLink.idl b/offapi/com/sun/star/sheet/XExternalDocLink.idl index 1a9662dbeed7..80b249e7d520 100644 --- a/offapi/com/sun/star/sheet/XExternalDocLink.idl +++ b/offapi/com/sun/star/sheet/XExternalDocLink.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module sheet { @see com::sun::star::sheet::ExternalDocLink - @since OOo 3.1.0 + @since OOo 3.1 */ interface XExternalDocLink { diff --git a/offapi/com/sun/star/sheet/XExternalDocLinks.idl b/offapi/com/sun/star/sheet/XExternalDocLinks.idl index 642b3c57eb14..0f9085ad7149 100644 --- a/offapi/com/sun/star/sheet/XExternalDocLinks.idl +++ b/offapi/com/sun/star/sheet/XExternalDocLinks.idl @@ -39,7 +39,7 @@ module com { module sun { module star { module sheet { @see com::sun::star::sheet::ExternalDocLinks - @since OOo 3.1.0 + @since OOo 3.1 */ interface XExternalDocLinks { diff --git a/offapi/com/sun/star/sheet/XExternalSheetCache.idl b/offapi/com/sun/star/sheet/XExternalSheetCache.idl index 23827d7a04e2..89a1f70fb390 100644 --- a/offapi/com/sun/star/sheet/XExternalSheetCache.idl +++ b/offapi/com/sun/star/sheet/XExternalSheetCache.idl @@ -36,7 +36,7 @@ module com { module sun { module star { module sheet { @see com::sun::star::sheet::ExternalSheetCache - @since OOo 3.1.0 + @since OOo 3.1 */ interface XExternalSheetCache { diff --git a/offapi/com/sun/star/sheet/XScenarioEnhanced.idl b/offapi/com/sun/star/sheet/XScenarioEnhanced.idl index cd4b895f1258..e61f6103e3b9 100644 --- a/offapi/com/sun/star/sheet/XScenarioEnhanced.idl +++ b/offapi/com/sun/star/sheet/XScenarioEnhanced.idl @@ -50,7 +50,7 @@ module com { module sun { module star { module sheet { @see com::sun::star::sheet::XScenario - @since OOo 2.0.0 + @since OOo 2.0 */ interface XScenarioEnhanced: com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/smarttags/SmartTagAction.idl b/offapi/com/sun/star/smarttags/SmartTagAction.idl index a07c93eb5385..73c28ee87e07 100644 --- a/offapi/com/sun/star/smarttags/SmartTagAction.idl +++ b/offapi/com/sun/star/smarttags/SmartTagAction.idl @@ -46,7 +46,7 @@ module com { module sun { module star { module smarttags { that can be performed for a smart tag which has been recognized by a <type>SmartTagRecognizer</type> service.</p> - @since OOo 2.3.0 + @since OOo 2.3 */ service SmartTagAction : XSmartTagAction {}; diff --git a/offapi/com/sun/star/smarttags/SmartTagRecognizer.idl b/offapi/com/sun/star/smarttags/SmartTagRecognizer.idl index 60223c89d4ac..e77cbe1bd87f 100644 --- a/offapi/com/sun/star/smarttags/SmartTagRecognizer.idl +++ b/offapi/com/sun/star/smarttags/SmartTagRecognizer.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module smarttags { associated with specific actions which are defined by implementations of the <type>SmartTagAction</type> service.</p> - @since OOo 2.3.0 + @since OOo 2.3 */ service SmartTagRecognizer : XSmartTagRecognizer {}; diff --git a/offapi/com/sun/star/smarttags/SmartTagRecognizerMode.idl b/offapi/com/sun/star/smarttags/SmartTagRecognizerMode.idl index b72034a64cb7..c4624cad3058 100644 --- a/offapi/com/sun/star/smarttags/SmartTagRecognizerMode.idl +++ b/offapi/com/sun/star/smarttags/SmartTagRecognizerMode.idl @@ -37,7 +37,7 @@ /** specifies the which type of text is passed to <method>XSmartTagRecognizer::recognize()</method></p> - @since OOo 2.3.0 + @since OOo 2.3 */ enum SmartTagRecognizerMode diff --git a/offapi/com/sun/star/smarttags/XSmartTagAction.idl b/offapi/com/sun/star/smarttags/XSmartTagAction.idl index 271dd84b0d19..696f7cdccfc0 100644 --- a/offapi/com/sun/star/smarttags/XSmartTagAction.idl +++ b/offapi/com/sun/star/smarttags/XSmartTagAction.idl @@ -64,7 +64,7 @@ module com { module sun { module star { module smarttags { /** provides access to smart tag actions. - @since OOo 2.3.0 + @since OOo 2.3 */ interface XSmartTagAction: com::sun::star::lang::XInitialization diff --git a/offapi/com/sun/star/smarttags/XSmartTagRecognizer.idl b/offapi/com/sun/star/smarttags/XSmartTagRecognizer.idl index c84d75878a8b..9c51e4a5ad0e 100644 --- a/offapi/com/sun/star/smarttags/XSmartTagRecognizer.idl +++ b/offapi/com/sun/star/smarttags/XSmartTagRecognizer.idl @@ -65,7 +65,7 @@ module com { module sun { module star { module smarttags { /** provides access to a smart tag recognizer. - @since OOo 2.3.0 + @since OOo 2.3 */ interface XSmartTagRecognizer: com::sun::star::lang::XInitialization diff --git a/offapi/com/sun/star/style/CharacterProperties.idl b/offapi/com/sun/star/style/CharacterProperties.idl index 6c6bf3d99a7b..fb6556b508ae 100644 --- a/offapi/com/sun/star/style/CharacterProperties.idl +++ b/offapi/com/sun/star/style/CharacterProperties.idl @@ -428,7 +428,7 @@ published service CharacterProperties /** If this optional property is <TRUE/>, then the characters are invisible. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean CharHidden; diff --git a/offapi/com/sun/star/style/NumberingType.idl b/offapi/com/sun/star/style/NumberingType.idl index 25094b1ed677..21196a8cafb0 100644 --- a/offapi/com/sun/star/style/NumberingType.idl +++ b/offapi/com/sun/star/style/NumberingType.idl @@ -226,7 +226,7 @@ published constants NumberingType //------------------------------------------------------------------------- /** Numbering in Hebrew alphabet letters - @since OOo 2.0.0 + @since OOo 2.0 */ const short CHARS_HEBREW = 33; diff --git a/offapi/com/sun/star/task/XRestartManager.idl b/offapi/com/sun/star/task/XRestartManager.idl index 102a1044d2e8..c53d0954b415 100644 --- a/offapi/com/sun/star/task/XRestartManager.idl +++ b/offapi/com/sun/star/task/XRestartManager.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module task { //============================================================================= /** allows to try to restart the office. - @since OOo3.3 + @since OOo 3.3 */ published interface XRestartManager : com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/text/BaseFrameProperties.idl b/offapi/com/sun/star/text/BaseFrameProperties.idl index e6ede2e36349..cac2ea15296b 100644 --- a/offapi/com/sun/star/text/BaseFrameProperties.idl +++ b/offapi/com/sun/star/text/BaseFrameProperties.idl @@ -335,7 +335,7 @@ published service BaseFrameProperties of the shape, if the text document setting ConsiderTextWrapOnObjPos is <TRUE/>. Valid values are given by <member>WrapInfluenceOnPosition</member></p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] short WrapInfluenceOnPosition; diff --git a/offapi/com/sun/star/text/Cell.idl b/offapi/com/sun/star/text/Cell.idl index 7669f10afa34..f1161117e8b2 100644 --- a/offapi/com/sun/star/text/Cell.idl +++ b/offapi/com/sun/star/text/Cell.idl @@ -93,7 +93,7 @@ service Cell <li>CellProtection: non-functional implementation.</li> </ul> - @since OOo 2.0.0 + @since OOo 2.0 */ service com::sun::star::table::CellProperties; diff --git a/offapi/com/sun/star/text/DocumentSettings.idl b/offapi/com/sun/star/text/DocumentSettings.idl index 19c4d75997cb..0917cb46768d 100644 --- a/offapi/com/sun/star/text/DocumentSettings.idl +++ b/offapi/com/sun/star/text/DocumentSettings.idl @@ -139,7 +139,7 @@ published service DocumentSettings a proportional line spacing is only applied below a text line and it's always added to the paragraph spacing between two paragraphs.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean UseFormerLineSpacing; // ------------------------------------------------------------ @@ -156,7 +156,7 @@ published service DocumentSettings the spacing of the last paragraph respectively table of a table cell isn't added at the bottom of this table cell.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean AddParaSpacingToTableCells; // ------------------------------------------------------------ @@ -174,7 +174,7 @@ published service DocumentSettings its vertical position, doesn't include the lower spacing and the line spacing of the previous paragraph.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean UseFormerObjectPositioning; @@ -191,7 +191,7 @@ published service DocumentSettings If <FALSE/> (default value), the former object positioning algorithm (known from OpenOffice.org 1.1) is applied.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean ConsiderTextWrapOnObjPos; diff --git a/offapi/com/sun/star/text/FootnoteSettings.idl b/offapi/com/sun/star/text/FootnoteSettings.idl index e11354bd1b7c..42c6cc20d52f 100644 --- a/offapi/com/sun/star/text/FootnoteSettings.idl +++ b/offapi/com/sun/star/text/FootnoteSettings.idl @@ -126,7 +126,7 @@ published service FootnoteSettings /** contains the name of the character style that is used for footnote/endnote anchor in the text. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] string AnchorCharStyleName; diff --git a/offapi/com/sun/star/text/GenericTextDocument.idl b/offapi/com/sun/star/text/GenericTextDocument.idl index c1562b5ddf49..7a7e06ce5f34 100644 --- a/offapi/com/sun/star/text/GenericTextDocument.idl +++ b/offapi/com/sun/star/text/GenericTextDocument.idl @@ -179,22 +179,28 @@ published service GenericTextDocument [optional] interface com::sun::star::style::XStyleFamiliesSupplier; - /// @since OOo 1.1.2 + /** @since OOo 1.1.2 + */ [optional] interface com::sun::star::text::XBookmarksSupplier; - /// @since OOo 1.1.2 + /** @since OOo 1.1.2 + */ [optional] interface com::sun::star::text::XDocumentIndexesSupplier; - /// @since OOo 1.1.2 + /** @since OOo 1.1.2 + */ [optional] interface com::sun::star::text::XTextFieldsSupplier; - /// @since OOo 1.1.2 + /** @since OOo 1.1.2 + */ [optional] interface com::sun::star::text::XTextFramesSupplier; - /// @since OOo 1.1.2 + /** @since OOo 1.1.2 + */ [optional] interface com::sun::star::text::XTextSectionsSupplier; - /// @since OOo 1.1.2 + /** @since OOo 1.1.2 + */ [optional] interface com::sun::star::util::XNumberFormatsSupplier; //------------------------------------------------------------------------- diff --git a/offapi/com/sun/star/text/LineNumberingProperties.idl b/offapi/com/sun/star/text/LineNumberingProperties.idl index 5a965b100963..b91d82dbc1bb 100644 --- a/offapi/com/sun/star/text/LineNumberingProperties.idl +++ b/offapi/com/sun/star/text/LineNumberingProperties.idl @@ -103,7 +103,7 @@ published service LineNumberingProperties <p>If set to <FALSE/> the line numbering will be continous.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean RestartAtEachPage; diff --git a/offapi/com/sun/star/text/Paragraph.idl b/offapi/com/sun/star/text/Paragraph.idl index 4c8330eb1f06..ee75fed06ca6 100644 --- a/offapi/com/sun/star/text/Paragraph.idl +++ b/offapi/com/sun/star/text/Paragraph.idl @@ -142,7 +142,7 @@ published service Paragraph interface com::sun::star::container::XEnumerationAccess; /** gives access to a sequence of properties. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional] interface ::com::sun::star::beans::XTolerantMultiPropertySet; }; diff --git a/offapi/com/sun/star/text/PositionLayoutDir.idl b/offapi/com/sun/star/text/PositionLayoutDir.idl index 72e420876171..359318dbf831 100644 --- a/offapi/com/sun/star/text/PositionLayoutDir.idl +++ b/offapi/com/sun/star/text/PositionLayoutDir.idl @@ -37,7 +37,7 @@ /** These values specify the layout direction, in which the position attributes of a shape are given - @since OOo 2.0.0 + @since OOo 2.0 */ constants PositionLayoutDir { diff --git a/offapi/com/sun/star/text/RelOrientation.idl b/offapi/com/sun/star/text/RelOrientation.idl index eb30a465a1f6..f0e6e2c1e98a 100644 --- a/offapi/com/sun/star/text/RelOrientation.idl +++ b/offapi/com/sun/star/text/RelOrientation.idl @@ -108,7 +108,7 @@ published constants RelOrientation /** at the top of the text line, only sensible for vertical orientation. - @since OOo 2.0.0 + @since OOo 2.0 */ const short TEXT_LINE = 9; diff --git a/offapi/com/sun/star/text/Shape.idl b/offapi/com/sun/star/text/Shape.idl index 43d64efcf9c9..a7fe22ae5935 100644 --- a/offapi/com/sun/star/text/Shape.idl +++ b/offapi/com/sun/star/text/Shape.idl @@ -184,7 +184,7 @@ published service Shape of the shape, if the text document setting ConsiderTextWrapOnObjPos is <TRUE/>. Valid values are given by <member>WrapInfluenceOnPosition</member></p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] short WrapInfluenceOnPosition; @@ -197,7 +197,7 @@ published service Shape transformation property of the included service com::sun::star::drawing::Shape converted to the horizontal left-to-right layout.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, readonly, property] com::sun::star::drawing::HomogenMatrix3 TransformationInHoriL2R; //------------------------------------------------------------------------- @@ -206,7 +206,7 @@ published service Shape <p>Valid values are given by <member>PositionLayoutDir</member></p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] short PositionLayoutDir; //------------------------------------------------------------------------- @@ -218,7 +218,7 @@ published service Shape start position property of the included service com::sun::star::drawing::Shape converted to the horizontal left-to-right layout.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, readonly, property] com::sun::star::awt::Point StartPositionInHoriL2R; //------------------------------------------------------------------------- @@ -230,7 +230,7 @@ published service Shape end position property of the included service com::sun::star::drawing::Shape converted to the horizontal left-to-right layout.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, readonly, property] com::sun::star::awt::Point EndPositionInHoriL2R; }; diff --git a/offapi/com/sun/star/text/TextMarkupType.idl b/offapi/com/sun/star/text/TextMarkupType.idl index f5ea4e59f1ec..c752004d4687 100644 --- a/offapi/com/sun/star/text/TextMarkupType.idl +++ b/offapi/com/sun/star/text/TextMarkupType.idl @@ -39,7 +39,7 @@ module com { module sun { module star { module text { <p>These constants are used with <method>XTextMarkup::commitTextMarkup()</method></p> - @since OOo 2.3.0 + @since OOo 2.3 */ constants TextMarkupType diff --git a/offapi/com/sun/star/text/TextPortion.idl b/offapi/com/sun/star/text/TextPortion.idl index 6c23d9fa1655..3bfc745d97da 100644 --- a/offapi/com/sun/star/text/TextPortion.idl +++ b/offapi/com/sun/star/text/TextPortion.idl @@ -85,7 +85,7 @@ published service TextPortion //------------------------------------------------------------------------- /** gives access to a sequence of properties. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional] interface ::com::sun::star::beans::XTolerantMultiPropertySet; diff --git a/offapi/com/sun/star/text/TextTableRow.idl b/offapi/com/sun/star/text/TextTableRow.idl index 1d5947a051a9..b1eca1467b89 100644 --- a/offapi/com/sun/star/text/TextTableRow.idl +++ b/offapi/com/sun/star/text/TextTableRow.idl @@ -111,7 +111,7 @@ published service TextTableRow /** If <TRUE/>, the row is allowed to be split at page or column breaks. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property, maybevoid] boolean IsSplitAllowed; diff --git a/offapi/com/sun/star/text/ViewSettings.idl b/offapi/com/sun/star/text/ViewSettings.idl index 007a8f1e617d..102ab0c1dc1c 100644 --- a/offapi/com/sun/star/text/ViewSettings.idl +++ b/offapi/com/sun/star/text/ViewSettings.idl @@ -260,7 +260,7 @@ published service ViewSettings //------------------------------------------------------------------------- /** Specifies whether to display the grid or not - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean IsRasterVisible; @@ -268,7 +268,7 @@ published service ViewSettings /** Specifies whether to move frames, drawing elements, and form functions only between grid points. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] boolean IsSnapToRaster; @@ -278,7 +278,7 @@ published service ViewSettings <p>The value must be greater or equal to 0, and the application may enforce an upper bound for the value.</p> - @since OOo 2.0.0 + @since OOo 2.0 @throws com::sun::star::lang::IllegalArgumentException if the value is out of bounds. */ @@ -290,7 +290,7 @@ published service ViewSettings <p>The value must be greater or equal to 0, and the application may enforce an upper bound for the value.</p> - @since OOo 2.0.0 + @since OOo 2.0 @throws com::sun::star::lang::IllegalArgumentException if the value is out of bounds. */ @@ -303,7 +303,7 @@ published service ViewSettings <p>The value must be greater than 0. The application may enforce more restricting bounds for the value.</p> - @since OOo 2.0.0 + @since OOo 2.0 @throws com::sun::star::lang::IllegalArgumentException if the value is out of bounds. */ @@ -316,7 +316,7 @@ published service ViewSettings <p>The value must be greater than 0. The application may enforce more restricting bounds for the value.</p> - @since OOo 2.0.0 + @since OOo 2.0 @throws com::sun::star::lang::IllegalArgumentException if the value is out of bounds. */ @@ -325,7 +325,7 @@ published service ViewSettings //------------------------------------------------------------------------- /** If this property is <TRUE/>, hidden characters are displayed - @since OOo 3.0.0 + @since OOo 3.0 */ [optional, property] boolean ShowHiddenCharacters; //------------------------------------------------------------------------- @@ -334,7 +334,7 @@ published service ViewSettings <p>This option controls the use of the settings ShowHiddenCharacters, ShowTabstops, ShowSpaces, ShowBreaks and ShowParaBreaks </p> - @since OOo 3.0.0 + @since OOo 3.0 */ [optional, property] boolean ShowNonprintingCharacters; //------------------------------------------------------------------------- @@ -342,7 +342,7 @@ published service ViewSettings <p>Uses values <type scope="com::sun::star::awt">FieldUnit</type></p> - @since OOo 3.1.0 + @since OOo 3.1 */ [optional, property] long HorizontalRulerMetric; //------------------------------------------------------------------------- @@ -350,7 +350,7 @@ published service ViewSettings <p>Uses values from <type scope="com::sun::star::awt">FieldUnit</type></p> - @since OOo 3.1.0 + @since OOo 3.1 */ [optional, property] long VerticalRulerMetric; }; diff --git a/offapi/com/sun/star/text/XTextMarkup.idl b/offapi/com/sun/star/text/XTextMarkup.idl index f8dc3f834e73..877e31c7377f 100644 --- a/offapi/com/sun/star/text/XTextMarkup.idl +++ b/offapi/com/sun/star/text/XTextMarkup.idl @@ -44,7 +44,7 @@ module com { module sun { module star { module text { /** provides functionality to markup text. - @since OOo 2.3.0 + @since OOo 2.3 */ interface XTextMarkup diff --git a/offapi/com/sun/star/text/fieldmaster/Database.idl b/offapi/com/sun/star/text/fieldmaster/Database.idl index 921c86ff8c94..f37e3d5e2fbf 100644 --- a/offapi/com/sun/star/text/fieldmaster/Database.idl +++ b/offapi/com/sun/star/text/fieldmaster/Database.idl @@ -70,13 +70,13 @@ published service Database //------------------------------------------------------------------------ /** indicates the URL of a database file. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] string DataBaseURL; //------------------------------------------------------------------------ /** indicates a connection URL, which locates a database driver. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] string DataBaseResource; //------------------------------------------------------------------------ diff --git a/offapi/com/sun/star/text/textfield/DatabaseName.idl b/offapi/com/sun/star/text/textfield/DatabaseName.idl index f051aa72b7f1..92c5dc5d8a8f 100644 --- a/offapi/com/sun/star/text/textfield/DatabaseName.idl +++ b/offapi/com/sun/star/text/textfield/DatabaseName.idl @@ -62,12 +62,12 @@ published service DatabaseName [property] string DataTableName; /** indicates the URL of a database file. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] string DataBaseURL; /** indicates a connection URL, which locates a database driver. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] string DataBaseResource; diff --git a/offapi/com/sun/star/text/textfield/DatabaseNextSet.idl b/offapi/com/sun/star/text/textfield/DatabaseNextSet.idl index 01b762b1e113..a9b593e1ef49 100644 --- a/offapi/com/sun/star/text/textfield/DatabaseNextSet.idl +++ b/offapi/com/sun/star/text/textfield/DatabaseNextSet.idl @@ -66,12 +66,12 @@ published service DatabaseNextSet [property] string Condition; /** indicates the URL of a database file. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] string DataBaseURL; /** indicates a connection URL, which locates a database driver. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] string DataBaseResource; diff --git a/offapi/com/sun/star/text/textfield/DatabaseNumberOfSet.idl b/offapi/com/sun/star/text/textfield/DatabaseNumberOfSet.idl index 1ad00c840bce..ea5c54b0f131 100644 --- a/offapi/com/sun/star/text/textfield/DatabaseNumberOfSet.idl +++ b/offapi/com/sun/star/text/textfield/DatabaseNumberOfSet.idl @@ -71,12 +71,12 @@ published service DatabaseNumberOfSet [property] long SetNumber; /** indicates the URL of a database file. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] string DataBaseURL; /** indicates a connection URL, which locates a database driver. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] string DataBaseResource; diff --git a/offapi/com/sun/star/text/textfield/DatabaseSetNumber.idl b/offapi/com/sun/star/text/textfield/DatabaseSetNumber.idl index 3af3ab3516ce..f4417d564c03 100644 --- a/offapi/com/sun/star/text/textfield/DatabaseSetNumber.idl +++ b/offapi/com/sun/star/text/textfield/DatabaseSetNumber.idl @@ -72,12 +72,12 @@ published service DatabaseSetNumber [property] long SetNumber; /** indicates the URL of a database file. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] string DataBaseURL; /** indicates a connection URL, which locates a database driver. - @since OOo 2.0.0 + @since OOo 2.0 */ [optional, property] string DataBaseResource; diff --git a/offapi/com/sun/star/ucb/TransientDocumentsContentProvider.idl b/offapi/com/sun/star/ucb/TransientDocumentsContentProvider.idl index d985376b4c78..f654819a6d8d 100644 --- a/offapi/com/sun/star/ucb/TransientDocumentsContentProvider.idl +++ b/offapi/com/sun/star/ucb/TransientDocumentsContentProvider.idl @@ -57,7 +57,7 @@ module com { module sun { module star { module ucb { @see TransientDocumentsFolderContent @see TransientDocumentsStreamContent - @since OOo 2.0.0 + @since OOo 2.0 */ service TransientDocumentsContentProvider { diff --git a/offapi/com/sun/star/ucb/TransientDocumentsDocumentContent.idl b/offapi/com/sun/star/ucb/TransientDocumentsDocumentContent.idl index a6bf588ad873..54314f5bd24b 100644 --- a/offapi/com/sun/star/ucb/TransientDocumentsDocumentContent.idl +++ b/offapi/com/sun/star/ucb/TransientDocumentsDocumentContent.idl @@ -82,7 +82,7 @@ module com { module sun { module star { module ucb { @see TransientDocumentsFolderContent @see TransientDocumentsStreamContent - @since OOo 2.0.0 + @since OOo 2.0 */ service TransientDocumentsDocumentContent { diff --git a/offapi/com/sun/star/ucb/TransientDocumentsFolderContent.idl b/offapi/com/sun/star/ucb/TransientDocumentsFolderContent.idl index a2233e4c5f40..68ad0be1f7bb 100644 --- a/offapi/com/sun/star/ucb/TransientDocumentsFolderContent.idl +++ b/offapi/com/sun/star/ucb/TransientDocumentsFolderContent.idl @@ -81,7 +81,7 @@ module com { module sun { module star { module ucb { @see TransientDocumentsDocumentContent @see TransientDocumentsStreamContent - @since OOo 2.0.0 + @since OOo 2.0 */ service TransientDocumentsFolderContent { diff --git a/offapi/com/sun/star/ucb/TransientDocumentsRootContent.idl b/offapi/com/sun/star/ucb/TransientDocumentsRootContent.idl index 0d33d0415560..cf953bb3d60a 100644 --- a/offapi/com/sun/star/ucb/TransientDocumentsRootContent.idl +++ b/offapi/com/sun/star/ucb/TransientDocumentsRootContent.idl @@ -79,7 +79,7 @@ module com { module sun { module star { module ucb { @see TransientDocumentsFolderContent @see TransientDocumentsStreamContent - @since OOo 2.0.0 + @since OOo 2.0 */ service TransientDocumentsRootContent { diff --git a/offapi/com/sun/star/ucb/TransientDocumentsStreamContent.idl b/offapi/com/sun/star/ucb/TransientDocumentsStreamContent.idl index aede99473933..7aaf3d4574db 100644 --- a/offapi/com/sun/star/ucb/TransientDocumentsStreamContent.idl +++ b/offapi/com/sun/star/ucb/TransientDocumentsStreamContent.idl @@ -79,7 +79,7 @@ module com { module sun { module star { module ucb { @see TransientDocumentsDocumentContent @see TransientDocumentsFolderContent - @since OOo 2.0.0 + @since OOo 2.0 */ service TransientDocumentsStreamContent { diff --git a/offapi/com/sun/star/ui/ConfigurableUIElement.idl b/offapi/com/sun/star/ui/ConfigurableUIElement.idl index 88d2a96416e8..afde83a344bd 100644 --- a/offapi/com/sun/star/ui/ConfigurableUIElement.idl +++ b/offapi/com/sun/star/ui/ConfigurableUIElement.idl @@ -74,7 +74,7 @@ module com { module sun { module star { module ui { </ul> </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service ConfigurableUIElement diff --git a/offapi/com/sun/star/ui/ConfigurationEvent.idl b/offapi/com/sun/star/ui/ConfigurationEvent.idl index 9001f3d2b333..b778bda9ac8a 100644 --- a/offapi/com/sun/star/ui/ConfigurationEvent.idl +++ b/offapi/com/sun/star/ui/ConfigurationEvent.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module ui { /** this event is broadcasted by a configuration manager whenever the state of user interface element has changed. - @since OOo 2.0.0 + @since OOo 2.0 */ published struct ConfigurationEvent : ::com::sun::star::container::ContainerEvent diff --git a/offapi/com/sun/star/ui/DockingArea.idl b/offapi/com/sun/star/ui/DockingArea.idl index 9a4170dc1173..f376581e0c7e 100644 --- a/offapi/com/sun/star/ui/DockingArea.idl +++ b/offapi/com/sun/star/ui/DockingArea.idl @@ -44,7 +44,7 @@ module com { module sun { module star { module ui { @see com::sun::star::frame::XLayoutManager </p> - @since OOo 2.0.0 + @since OOo 2.0 */ enum DockingArea diff --git a/offapi/com/sun/star/ui/GlobalAcceleratorConfiguration.idl b/offapi/com/sun/star/ui/GlobalAcceleratorConfiguration.idl index 58ff8da73fa0..f0552332946d 100644 --- a/offapi/com/sun/star/ui/GlobalAcceleratorConfiguration.idl +++ b/offapi/com/sun/star/ui/GlobalAcceleratorConfiguration.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module ui { by using an UNO service manager. It provides then access to the global accelerator configuration.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ service GlobalAcceleratorConfiguration : XAcceleratorConfiguration {}; diff --git a/offapi/com/sun/star/ui/ImageType.idl b/offapi/com/sun/star/ui/ImageType.idl index fb35073f9d38..7fa2d949cb15 100644 --- a/offapi/com/sun/star/ui/ImageType.idl +++ b/offapi/com/sun/star/ui/ImageType.idl @@ -36,7 +36,7 @@ module com { module sun { module star { module ui { the current image set of an image manager. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ constants ImageType { diff --git a/offapi/com/sun/star/ui/ItemDescriptor.idl b/offapi/com/sun/star/ui/ItemDescriptor.idl index 8732f300b96d..b6e9c2404330 100644 --- a/offapi/com/sun/star/ui/ItemDescriptor.idl +++ b/offapi/com/sun/star/ui/ItemDescriptor.idl @@ -49,7 +49,7 @@ module com { module sun { module star { module ui { You could have a menu or a toolbox working with the same item descriptor. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service ItemDescriptor { diff --git a/offapi/com/sun/star/ui/ItemStyle.idl b/offapi/com/sun/star/ui/ItemStyle.idl index 78e11cde05fd..9efb3aa81cc8 100644 --- a/offapi/com/sun/star/ui/ItemStyle.idl +++ b/offapi/com/sun/star/ui/ItemStyle.idl @@ -56,7 +56,7 @@ module com { module sun { module star { module ui { </ul> </p> - @since OOo 2.0.0 + @since OOo 2.0 */ constants ItemStyle { diff --git a/offapi/com/sun/star/ui/ItemType.idl b/offapi/com/sun/star/ui/ItemType.idl index 35271779ca12..677624489126 100644 --- a/offapi/com/sun/star/ui/ItemType.idl +++ b/offapi/com/sun/star/ui/ItemType.idl @@ -31,7 +31,7 @@ module com { module sun { module star { module ui { /** Determins the type of an item. - @since OOo 2.0.0 + @since OOo 2.0 */ constants ItemType { diff --git a/offapi/com/sun/star/ui/ModuleUICategoryDescription.idl b/offapi/com/sun/star/ui/ModuleUICategoryDescription.idl index 3b410d9dc799..3253b1152221 100644 --- a/offapi/com/sun/star/ui/ModuleUICategoryDescription.idl +++ b/offapi/com/sun/star/ui/ModuleUICategoryDescription.idl @@ -48,7 +48,7 @@ module com { module sun { module star { module ui { or Calc. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service ModuleUICategoryDescription diff --git a/offapi/com/sun/star/ui/ModuleUICommandDescription.idl b/offapi/com/sun/star/ui/ModuleUICommandDescription.idl index 100c31073b7f..dc8c58947079 100644 --- a/offapi/com/sun/star/ui/ModuleUICommandDescription.idl +++ b/offapi/com/sun/star/ui/ModuleUICommandDescription.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module ui { that are part of a single OpenOffice.org module, like Writer or Calc. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service ModuleUICommandDescription diff --git a/offapi/com/sun/star/ui/ModuleUIConfigurationManager.idl b/offapi/com/sun/star/ui/ModuleUIConfigurationManager.idl index 44ee22856610..24eb4d4c22ce 100644 --- a/offapi/com/sun/star/ui/ModuleUIConfigurationManager.idl +++ b/offapi/com/sun/star/ui/ModuleUIConfigurationManager.idl @@ -63,7 +63,7 @@ module com { module sun { module star { module ui { this layer.</br> </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service ModuleUIConfigurationManager diff --git a/offapi/com/sun/star/ui/ModuleUIConfigurationManagerSupplier.idl b/offapi/com/sun/star/ui/ModuleUIConfigurationManagerSupplier.idl index 835fecc0e5ab..0a405a1ac64b 100644 --- a/offapi/com/sun/star/ui/ModuleUIConfigurationManagerSupplier.idl +++ b/offapi/com/sun/star/ui/ModuleUIConfigurationManagerSupplier.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module ui { /** specifies a central user interface configuration provider which gives access to module based user interface configuration managers. - @since OOo 2.0.0 + @since OOo 2.0 */ service ModuleUIConfigurationManagerSupplier diff --git a/offapi/com/sun/star/ui/ModuleWindowStateConfiguration.idl b/offapi/com/sun/star/ui/ModuleWindowStateConfiguration.idl index 09c2d9657e49..c07651c82b30 100644 --- a/offapi/com/sun/star/ui/ModuleWindowStateConfiguration.idl +++ b/offapi/com/sun/star/ui/ModuleWindowStateConfiguration.idl @@ -49,7 +49,7 @@ module com { module sun { module star { module ui { Calc. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service ModuleWindowStateConfiguration diff --git a/offapi/com/sun/star/ui/UICategoryDescription.idl b/offapi/com/sun/star/ui/UICategoryDescription.idl index 9853b43fc769..5698ff74fccf 100644 --- a/offapi/com/sun/star/ui/UICategoryDescription.idl +++ b/offapi/com/sun/star/ui/UICategoryDescription.idl @@ -46,7 +46,7 @@ module com { module sun { module star { module ui { implementations which provides all commands to a user. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ //============================================================================= diff --git a/offapi/com/sun/star/ui/UICommandDescription.idl b/offapi/com/sun/star/ui/UICommandDescription.idl index 76d7c179731b..bd1f35926149 100644 --- a/offapi/com/sun/star/ui/UICommandDescription.idl +++ b/offapi/com/sun/star/ui/UICommandDescription.idl @@ -46,7 +46,7 @@ module com { module sun { module star { module ui { are part of OpenOffice.org modules, like Writer or Calc. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service UICommandDescription diff --git a/offapi/com/sun/star/ui/UIConfigurationManager.idl b/offapi/com/sun/star/ui/UIConfigurationManager.idl index 4e9b56cd4c97..509bd71e93d4 100644 --- a/offapi/com/sun/star/ui/UIConfigurationManager.idl +++ b/offapi/com/sun/star/ui/UIConfigurationManager.idl @@ -52,7 +52,7 @@ module com { module sun { module star { module ui { /** specifies a user interface configuration manager which controls all customizeable user interface elements of an object. - @since OOo 2.0.0 + @since OOo 2.0 */ service UIConfigurationManager diff --git a/offapi/com/sun/star/ui/UIElement.idl b/offapi/com/sun/star/ui/UIElement.idl index 580a660f734e..610cfa73ae25 100644 --- a/offapi/com/sun/star/ui/UIElement.idl +++ b/offapi/com/sun/star/ui/UIElement.idl @@ -63,7 +63,7 @@ module com { module sun { module star { module ui { before it can be used. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service UIElement diff --git a/offapi/com/sun/star/ui/UIElementFactory.idl b/offapi/com/sun/star/ui/UIElementFactory.idl index 5e0e171c7da1..24c4fa4f0501 100644 --- a/offapi/com/sun/star/ui/UIElementFactory.idl +++ b/offapi/com/sun/star/ui/UIElementFactory.idl @@ -49,7 +49,7 @@ module com { module sun { module star { module ui { service to provide access to itself. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service UIElementFactory diff --git a/offapi/com/sun/star/ui/UIElementFactoryManager.idl b/offapi/com/sun/star/ui/UIElementFactoryManager.idl index c814a58f6b8e..8a150c1af2cc 100644 --- a/offapi/com/sun/star/ui/UIElementFactoryManager.idl +++ b/offapi/com/sun/star/ui/UIElementFactoryManager.idl @@ -49,7 +49,7 @@ module com { module sun { module star { module ui { <type scope="com::sun::star::lang">ServiceManager</type>. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service UIElementFactoryManager diff --git a/offapi/com/sun/star/ui/UIElementSettings.idl b/offapi/com/sun/star/ui/UIElementSettings.idl index 575ff9ca1d71..f10eec663683 100644 --- a/offapi/com/sun/star/ui/UIElementSettings.idl +++ b/offapi/com/sun/star/ui/UIElementSettings.idl @@ -51,7 +51,7 @@ module com { module sun { module star { module ui { although limitations based on the real user interface element may be visible. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service UIElementSettings { diff --git a/offapi/com/sun/star/ui/UIElementType.idl b/offapi/com/sun/star/ui/UIElementType.idl index 0b4301f54f2a..182d75694a85 100644 --- a/offapi/com/sun/star/ui/UIElementType.idl +++ b/offapi/com/sun/star/ui/UIElementType.idl @@ -35,7 +35,7 @@ module com { module sun { module star { module ui { /** determine the type of a user interface element which is controlled by a layout manager. - @since OOo 2.0.0 + @since OOo 2.0 */ constants UIElementType { diff --git a/offapi/com/sun/star/ui/WindowContentFactory.idl b/offapi/com/sun/star/ui/WindowContentFactory.idl index c1ea6a94d9b8..991c92c812cf 100644 --- a/offapi/com/sun/star/ui/WindowContentFactory.idl +++ b/offapi/com/sun/star/ui/WindowContentFactory.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module ui { The specific type of the created window depends on the provided arguments. </p> - @since OOo 3.1.0 + @since OOo 3.1 */ service WindowContentFactory : com::sun::star::lang::XSingleComponentFactory diff --git a/offapi/com/sun/star/ui/WindowStateConfiguration.idl b/offapi/com/sun/star/ui/WindowStateConfiguration.idl index c5243e4144fa..915bdfad93b0 100644 --- a/offapi/com/sun/star/ui/WindowStateConfiguration.idl +++ b/offapi/com/sun/star/ui/WindowStateConfiguration.idl @@ -48,7 +48,7 @@ module com { module sun { module star { module ui { part of OpenOffice.org modules, like Writer or Calc. </p> - @since OOo 2.0.0 + @since OOo 2.0 */ service WindowStateConfiguration diff --git a/offapi/com/sun/star/ui/XAcceleratorConfiguration.idl b/offapi/com/sun/star/ui/XAcceleratorConfiguration.idl index 2969f22a7f8c..46f04e31064f 100644 --- a/offapi/com/sun/star/ui/XAcceleratorConfiguration.idl +++ b/offapi/com/sun/star/ui/XAcceleratorConfiguration.idl @@ -77,7 +77,7 @@ module com { module sun { module star { module ui { @see AcceleratorConfiguration @see <type scope="dom::sun::star::util">XFlushable</type> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XAcceleratorConfiguration { diff --git a/offapi/com/sun/star/ui/XDockingAreaAcceptor.idl b/offapi/com/sun/star/ui/XDockingAreaAcceptor.idl index 8e6d9a01a4ac..f3912a12c1a6 100644 --- a/offapi/com/sun/star/ui/XDockingAreaAcceptor.idl +++ b/offapi/com/sun/star/ui/XDockingAreaAcceptor.idl @@ -59,7 +59,7 @@ module com { module sun { module star { module ui { @see com::sun::star::frame::XFrame </p> - @since OOo 2.0.0 + @since OOo 2.0 */ diff --git a/offapi/com/sun/star/ui/XModuleUIConfigurationManager.idl b/offapi/com/sun/star/ui/XModuleUIConfigurationManager.idl index a6b6fd32ac64..66fe267d2fef 100644 --- a/offapi/com/sun/star/ui/XModuleUIConfigurationManager.idl +++ b/offapi/com/sun/star/ui/XModuleUIConfigurationManager.idl @@ -69,7 +69,7 @@ module com { module sun { module star { module ui { configuration manager uses.</br> </p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XModuleUIConfigurationManager : ::com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/ui/XModuleUIConfigurationManagerSupplier.idl b/offapi/com/sun/star/ui/XModuleUIConfigurationManagerSupplier.idl index 0a6b9cfef0dc..a1f9942627a7 100644 --- a/offapi/com/sun/star/ui/XModuleUIConfigurationManagerSupplier.idl +++ b/offapi/com/sun/star/ui/XModuleUIConfigurationManagerSupplier.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module ui { /** allows to retrieve user interface configuration managers related to OpenOffice.org modules. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XModuleUIConfigurationManagerSupplier : ::com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/ui/XUIConfiguration.idl b/offapi/com/sun/star/ui/XUIConfiguration.idl index d8c38e43bb70..95ec91a65f5b 100644 --- a/offapi/com/sun/star/ui/XUIConfiguration.idl +++ b/offapi/com/sun/star/ui/XUIConfiguration.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module ui { <p>This can be useful for UI to enable/disable some functions without actually accessing the data.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XUIConfiguration : ::com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/ui/XUIConfigurationListener.idl b/offapi/com/sun/star/ui/XUIConfigurationListener.idl index cc8a8a14eed2..2e89eee6bea0 100644 --- a/offapi/com/sun/star/ui/XUIConfigurationListener.idl +++ b/offapi/com/sun/star/ui/XUIConfigurationListener.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module ui { /** supplies information about changes of a user interface configuration manager. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XUIConfigurationListener : com::sun::star::lang::XEventListener diff --git a/offapi/com/sun/star/ui/XUIConfigurationManager.idl b/offapi/com/sun/star/ui/XUIConfigurationManager.idl index 3958441ee486..95025ac3a516 100644 --- a/offapi/com/sun/star/ui/XUIConfigurationManager.idl +++ b/offapi/com/sun/star/ui/XUIConfigurationManager.idl @@ -70,7 +70,7 @@ module com { module sun { module star { module ui { controls the structure of all customizable user interface elements. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XUIConfigurationManager : ::com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/ui/XUIConfigurationManagerSupplier.idl b/offapi/com/sun/star/ui/XUIConfigurationManagerSupplier.idl index 8ffc2482d834..a1f091623a30 100644 --- a/offapi/com/sun/star/ui/XUIConfigurationManagerSupplier.idl +++ b/offapi/com/sun/star/ui/XUIConfigurationManagerSupplier.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module ui { /** allows to retrieve the user interface configuration manager related to an object. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XUIConfigurationManagerSupplier : ::com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/ui/XUIConfigurationPersistence.idl b/offapi/com/sun/star/ui/XUIConfigurationPersistence.idl index 696362d0882c..aae269b58c26 100644 --- a/offapi/com/sun/star/ui/XUIConfigurationPersistence.idl +++ b/offapi/com/sun/star/ui/XUIConfigurationPersistence.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module ui { interface configuration data to a storage and to retrieve information about the current state. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XUIConfigurationPersistence : ::com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/ui/XUIConfigurationStorage.idl b/offapi/com/sun/star/ui/XUIConfigurationStorage.idl index 2f07b995c486..47aee612d0f5 100644 --- a/offapi/com/sun/star/ui/XUIConfigurationStorage.idl +++ b/offapi/com/sun/star/ui/XUIConfigurationStorage.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module ui { /** supplies functions to change or get information about the storage of a user interface configuration manager. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XUIConfigurationStorage : ::com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/ui/XUIElementFactory.idl b/offapi/com/sun/star/ui/XUIElementFactory.idl index 7a86842508ac..708ccadf22bf 100644 --- a/offapi/com/sun/star/ui/XUIElementFactory.idl +++ b/offapi/com/sun/star/ui/XUIElementFactory.idl @@ -67,7 +67,7 @@ module com { module sun { module star { module ui { </ul> </p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XUIElementFactory : ::com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl b/offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl index 1d945ad02609..5b453d3de8e0 100644 --- a/offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl +++ b/offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl @@ -76,7 +76,7 @@ module com { module sun { module star { module ui { </ul> </p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XUIElementFactoryRegistration : com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/ui/XUIElementSettings.idl b/offapi/com/sun/star/ui/XUIElementSettings.idl index 082598935500..ab5604b6a937 100644 --- a/offapi/com/sun/star/ui/XUIElementSettings.idl +++ b/offapi/com/sun/star/ui/XUIElementSettings.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module ui { /** provides functions to retrieve and change user interface element structure data and to update its visible representation. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XUIElementSettings : com::sun::star::uno::XInterface diff --git a/offapi/com/sun/star/ui/XUIFunctionListener.idl b/offapi/com/sun/star/ui/XUIFunctionListener.idl index 9325e59af751..e62670bec558 100644 --- a/offapi/com/sun/star/ui/XUIFunctionListener.idl +++ b/offapi/com/sun/star/ui/XUIFunctionListener.idl @@ -39,7 +39,7 @@ /** special interface to receive notification that a user interface element will execute a function. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XUIFunctionListener : com::sun::star::lang::XEventListener { diff --git a/offapi/com/sun/star/util/Endianness.idl b/offapi/com/sun/star/util/Endianness.idl index c48698a0cbc7..86a1fb7a82bd 100644 --- a/offapi/com/sun/star/util/Endianness.idl +++ b/offapi/com/sun/star/util/Endianness.idl @@ -34,7 +34,7 @@ module com { module sun { module star { module util { The endianness specifies the order in which the bytes of larger types are laid out in memory.<p> - @since OOo 2.0.0 + @since OOo 2.0 */ constants Endianness { diff --git a/offapi/com/sun/star/util/OfficeInstallationDirectories.idl b/offapi/com/sun/star/util/OfficeInstallationDirectories.idl index 2a79d6affd48..027f7ec6c656 100644 --- a/offapi/com/sun/star/util/OfficeInstallationDirectories.idl +++ b/offapi/com/sun/star/util/OfficeInstallationDirectories.idl @@ -50,7 +50,7 @@ module com { module sun { module star { module util { possibility to share one office user data directory among parallel office installtions. - @since OOo 2.0.0 + @since OOo 2.0 */ published service OfficeInstallationDirectories { diff --git a/offapi/com/sun/star/util/PathSubstitution.idl b/offapi/com/sun/star/util/PathSubstitution.idl index 455465ddf06a..dd55f74dccb4 100644 --- a/offapi/com/sun/star/util/PathSubstitution.idl +++ b/offapi/com/sun/star/util/PathSubstitution.idl @@ -48,57 +48,65 @@ module com { module sun { module star { module util { /** A service to support the substitution and resubstitution of path variables. - <p> - A path variable must be specified with the following synatx: "$("<variable-name>")". - Path variables are not case sensitive and are always provided as a UCB-complient URL's - (for example: "file:///c:/temp" or "file:///usr/install"). This is mandatory to support an - optional remote file system.<br> - A user defined list of path variables is supported. This list is stored in the Office - configuration file (org/openoffice/Office/Substitution.xml). Please have a look at the - schema definition file which configuration structure this file uses.<br> - There is also a set of variables that have pre-defined values: - </p> - <dl> - <dt>$(inst)</dt> - <dd>Installation path of the Office Basis layer.</dd> - <dt>$(prog)</dt> - <dd>Program path of the Office Basis layer.</dd> + <p> + A path variable must be specified with the following synatx: "$("<variable-name>")". + Path variables are not case sensitive and are always provided as a UCB-complient URL's + (for example: "file:///c:/temp" or "file:///usr/install"). This is mandatory to support an + optional remote file system.<br> + A user defined list of path variables is supported. This list is stored in the Office + configuration file (org/openoffice/Office/Substitution.xml). Please have a look at the + schema definition file which configuration structure this file uses.<br> + There is also a set of variables that have pre-defined values: + </p> + <dl> + <dt>$(inst)</dt> + <dd>Installation path of the Office Basis layer.</dd> + <dt>$(prog)</dt> + <dd>Program path of the Office Basis layer.</dd> <dt>$(brandbaseurl)</dt> <dd>Installation path of the the Office Brand layer.</dd> - <dt>$(user)</dt> - <dd>The user installation directory.</dd> - <dt>$(work)</dt> - <dd>The work directory of the user. Under Windows this would be the - "MyDocuments" subdirectory. Under Unix this would be the home-directory</dd> + <dt>$(user)</dt> + <dd>The user installation directory.</dd> + <dt>$(work)</dt> + <dd>The work directory of the user. Under Windows this would be the + "MyDocuments" subdirectory. Under Unix this would be the home-directory</dd> <dt>$(home)</dt> - <dd>The home directory of the user. Under Unix this would be the home- - directory. Under Windows this would be the "Documents and Settings\<username>" - subdirectory.</dd> + <dd>The home directory of the user. Under Unix this would be the home- + directory. Under Windows this would be the "Documents and Settings\<username>" + subdirectory.</dd> <dt>$(temp)</dt> - <dd>The current temporary directory.</dd> + <dd>The current temporary directory.</dd> <dt>$(path)</dt> - <dd>The value of PATH environment variable.</dd> + <dd>The value of PATH environment variable.</dd> <dt>$(lang)</dt> - <dd>The country code used by the Office, like 01=english, 49=german.</dd> - <dt>$(langid)</dt> - <dd>The language code used by the Office, like 0x0009=english, 0x0409=english us.</dd> + <dd>The country code used by the Office, like 01=english, 49=german.</dd> + <dt>$(langid)</dt> + <dd>The language code used by the Office, like 0x0009=english, 0x0409=english us.</dd> <dt>$(vlang)</dt> - <dd>The language used by the Office as a string. Like "german" for a german Office.</dd> - </dl> + <dd>The language used by the Office as a string. Like "german" for a german Office.</dd> + </dl> + <p> + Attention: Most predefined variables describe an absolute path. + The only exceptions are: $(lang), $(langid) and $(vlang). + Therefore the service implementation should only substitute variables which + are located at the start of a provided path string or are part of a multi-path. + This special service is not designed to be a text substiution but shall + provide (a) valid substituted path(s). + </p> @since OOo 1.1.2 */ published service PathSubstitution { - //------------------------------------------------------------------------- - /** Interface to exchange path variables with defined paths and to resubstitute paths with path variables. + //------------------------------------------------------------------------- + /** Interface to exchange path variables with defined paths and to resubstitute paths with path variables. - <p> - To resubstitute path variables the caller must provide pathes as UCB-compliant URL's. - </p> - */ - interface com::sun::star::util::XStringSubstitution; + <p> + To resubstitute path variables the caller must provide pathes as UCB-compliant URL's. + </p> + */ + interface com::sun::star::util::XStringSubstitution; }; //============================================================================= diff --git a/offapi/com/sun/star/util/XBroadcaster.idl b/offapi/com/sun/star/util/XBroadcaster.idl index a622fcef7b98..eb9a0d4cc320 100644 --- a/offapi/com/sun/star/util/XBroadcaster.idl +++ b/offapi/com/sun/star/util/XBroadcaster.idl @@ -39,7 +39,7 @@ module com { module sun { module star { module util { /** allows to control notification behaviour of a broadcaster. - @since 3.0 + @since OOo 3.0 */ interface XBroadcaster: com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/util/XOfficeInstallationDirectories.idl b/offapi/com/sun/star/util/XOfficeInstallationDirectories.idl index d79d0cffc79f..b8cabbb25e34 100644 --- a/offapi/com/sun/star/util/XOfficeInstallationDirectories.idl +++ b/offapi/com/sun/star/util/XOfficeInstallationDirectories.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module util { later. In many cases, storing the reference directly would destroy the relocatability of an office installation. - @since OOo 2.0.0 + @since OOo 2.0 */ published interface XOfficeInstallationDirectories : com::sun::star::uno::XInterface { diff --git a/offapi/com/sun/star/xml/dom/XNode.idl b/offapi/com/sun/star/xml/dom/XNode.idl index a86220300412..7f7ffc14aa0e 100644 --- a/offapi/com/sun/star/xml/dom/XNode.idl +++ b/offapi/com/sun/star/xml/dom/XNode.idl @@ -79,7 +79,7 @@ information.</p> </table></p> @see <a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113">Document Object Model (DOM) Level 2 Core Specification</a> </p> -@since OOo 2.0.0 +@since OOo 2.0 */ interface XNode : com::sun::star::uno::XInterface { diff --git a/offapi/drafts/com/sun/star/form/ListEntryEvent.idl b/offapi/drafts/com/sun/star/form/ListEntryEvent.idl deleted file mode 100644 index 9f7b8443f7da..000000000000 --- a/offapi/drafts/com/sun/star/form/ListEntryEvent.idl +++ /dev/null @@ -1,77 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef __drafts_com_sun_star_form_ListEntryEvent_idl__ -#define __drafts_com_sun_star_form_ListEntryEvent_idl__ - -#ifndef __com_sun_star_lang_EventObject_idl__ -#include <com/sun/star/lang/EventObject.idl> -#endif - -//============================================================================= - -module drafts { module com { module sun { module star { module form { - -//============================================================================= - -/** specifies the event which is notified when a change in a string entry - list occured - - @see XListEntrySource - @see XListEntryListener - - @deprecated - This structure is superseeded by <type scope="com::sun::star::form::binding">ListEntryEvent</type> -*/ -struct ListEntryEvent : com::sun::star::lang::EventObject -{ - /** denotes the position where a change occured. - - <p>The concrete semantics of the value depends on the concrete - event being notified.</p> - */ - long Position; - - /** denotes the number of changed entries, in case a change of - an entry <em>range</em> is being notified. - */ - long Count; - - /** denotes the changed entries - - <p>The concrete semantics of the value depends on the concrete - event being notified.</p> - */ - sequence< string > - Entries; -}; - -//============================================================================= - -}; }; }; }; }; - -#endif diff --git a/offapi/drafts/com/sun/star/form/XBindableValue.idl b/offapi/drafts/com/sun/star/form/XBindableValue.idl deleted file mode 100644 index fafb1edda83d..000000000000 --- a/offapi/drafts/com/sun/star/form/XBindableValue.idl +++ /dev/null @@ -1,81 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef __drafts_com_sun_star_form_XBindableValue_idl__ -#define __drafts_com_sun_star_form_XBindableValue_idl__ - -#ifndef __com_sun_star_uno_XInterface_idl__ -#include <com/sun/star/uno/XInterface.idl> -#endif -#ifndef __drafts_com_sun_star_form_IncompatibleTypesException_idl__ -#include <drafts/com/sun/star/form/IncompatibleTypesException.idl> -#endif - -//============================================================================= - -module drafts { module com { module sun { module star { module form { - -interface XValueBinding; - -//============================================================================= - -/** specifies support for being bound to an external value - - @see XValueBinding - - @deprecated - This interface is superseeded by <type scope="com::sun::star::form::binding">XBindableValue</type> -*/ -interface XBindableValue : com::sun::star::uno::XInterface -{ - /** sets an external instance which controls the value of the component - - <p>Any previously active binding will be revoked. There can be only one!</p> - - @param XValueBinding - the new binding which is to be used by the component. May be <NULL/>, - in this case only the current binding is revoked. - - @throws <type>IncompatibleTypesException</type> - if the new binding (provided it's not <NULL/>) supports only types - which are incompatible with the types of the bindable component. - */ - void setValueBinding( [in] XValueBinding aBinding ) - raises ( IncompatibleTypesException ); - - /** retrieves the external instance which currently controls the value of the - component - */ - XValueBinding - getValueBinding( ); -}; - -//============================================================================= - -}; }; }; }; }; - -#endif diff --git a/offapi/drafts/com/sun/star/form/XListEntryListener.idl b/offapi/drafts/com/sun/star/form/XListEntryListener.idl deleted file mode 100644 index e9e49d799d26..000000000000 --- a/offapi/drafts/com/sun/star/form/XListEntryListener.idl +++ /dev/null @@ -1,92 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef __drafts_com_sun_star_form_XListEntryListener_idl__ -#define __drafts_com_sun_star_form_XListEntryListener_idl__ - -#ifndef __com_sun_star_lang_XEventListener_idl__ -#include <com/sun/star/lang/XEventListener.idl> -#endif -#ifndef __drafts_com_sun_star_form_ListEntryEvent_idl__ -#include <drafts/com/sun/star/form/ListEntryEvent.idl> -#endif - -//============================================================================= - -module drafts { module com { module sun { module star { module form { - -//============================================================================= - -/** specifies a listener for changes in a string entry list - - @deprecated - This interface is superseeded by <type scope="com::sun::star::form::binding">XListEntryListener</type> -*/ -interface XListEntryListener : com::sun::star::lang::XEventListener -{ - /** notifies the listener that a single entry in the list has change - - @param Source - is the event describing the change. The <member>ListEntryEvent::Position</member> - member denotes the position of the changed entry, the first (and only) element - of the <member>ListEntryEvent::Entries</member> member denotes the new string - */ - void entryChanged( [in] ListEntryEvent Source ); - - /** notifies the listener that a range of entries has been inserted into the list - - @param Source - is the event describing the change. The <member>ListEntryEvent::Position</member> - member denotes the position of the first inserted entry, the - <member>ListEntryEvent::Entries</member> member contains the strings which have - been inserted. - */ - void entryRangeInserted( [in] ListEntryEvent Source ); - - /** notifies the listener that a range of entries has been removed from the list - - @param Source - is the event describing the change. The <member>ListEntryEvent::Position</member> - member denotes the position of the first removed entry, the - <member>ListEntryEvent::Count</member> member the number of removed entries. - */ - void entryRangeRemoved( [in] ListEntryEvent Source ); - - /** notifies the listener that all entries of the list have changed. - - <p>The listener should retrieve the complete new list by calling the - <member>XListEntrySource::getAllListEntries</member> method of the event source - (which is denoted by <member scope="com::sun::star::lang">EventObject::Source</member>). - */ - void allEntriesChanged( [in] com::sun::star::lang::EventObject Source ); -}; - -//============================================================================= - -}; }; }; }; }; - -#endif diff --git a/offapi/drafts/com/sun/star/form/XListEntrySink.idl b/offapi/drafts/com/sun/star/form/XListEntrySink.idl deleted file mode 100644 index 3cd163189c1d..000000000000 --- a/offapi/drafts/com/sun/star/form/XListEntrySink.idl +++ /dev/null @@ -1,71 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef __drafts_com_sun_star_form_XListEntrySink_idl__ -#define __drafts_com_sun_star_form_XListEntrySink_idl__ - -#ifndef __com_sun_star_uno_XInterface_idl__ -#include <com/sun/star/uno/XInterface.idl> -#endif - -//============================================================================= - -module drafts { module com { module sun { module star { module form { - -interface XListEntrySource; - -//============================================================================= - -/** specifies support for indirect manipulation of of a string list - - @deprecated - This interface is superseeded by <type scope="com::sun::star::form::binding">XListEntrySink</type> -*/ -interface XListEntrySink : com::sun::star::uno::XInterface -{ - /** sets the new source for the list entries of the component - - <p>The list represented by this component will be cleared, and initially - filled with the entries from the new list source.</p> - - @param Source - the new source for the list entries. May be <NULL/>, in this - case, the current source is revoked. - */ - void setListEntrySource( [in] XListEntrySource Source ); - - /** retrieves the current source for the list entries of the component. - */ - XListEntrySource - getListEntrySource( ); -}; - -//============================================================================= - -}; }; }; }; }; - -#endif diff --git a/offapi/drafts/com/sun/star/form/XListEntrySource.idl b/offapi/drafts/com/sun/star/form/XListEntrySource.idl deleted file mode 100644 index 095b8a703d5a..000000000000 --- a/offapi/drafts/com/sun/star/form/XListEntrySource.idl +++ /dev/null @@ -1,103 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef __drafts_com_sun_star_form_XListEntrySource_idl__ -#define __drafts_com_sun_star_form_XListEntrySource_idl__ - -#ifndef __com_sun_star_uno_XInterface_idl__ -#include <com/sun/star/uno/XInterface.idl> -#endif -#ifndef __com_sun_star_lang_NullPointerException_idl__ -#include <com/sun/star/lang/NullPointerException.idl> -#endif -#ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__ -#include <com/sun/star/lang/IndexOutOfBoundsException.idl> -#endif - -//============================================================================= - -module drafts { module com { module sun { module star { module form { - -interface XListEntryListener; - -//============================================================================= - -/** specifies a source of string list entries - - <p>The interface supports foreign components which actively retrieve list entries, - as well as components which want to passively being notified of changes in the list.</p> - - @see XListEntrySink - - @deprecated - This interface is superseeded by <type scope="com::sun::star::form::binding">XListEntrySource</type> -*/ -interface XListEntrySource : com::sun::star::uno::XInterface -{ - /** retrieves the number of entries in the list - */ - long getListEntryCount( ); - - /** provides access to a single list entry - - @throws <type scope="com::sun::star::lang">IndexOutOfBoundsException</type> - if the given position does not denote a valid index in the list - - @see getListEntryCount - */ - string getListEntry( [in] long Position ) - raises( com::sun::star::lang::IndexOutOfBoundsException ); - - /** provides access to the entirety of all list entries - */ - sequence< string > - getAllListEntries( ); - - /** adds a listener which will be notified about changes in the list - reflected by the component. - - @throws <type scope="com::sun::star::lang">NullPointerException</type> - if the given listener is <NULL/> - */ - void addListEntryListener( [in] XListEntryListener Listener ) - raises( com::sun::star::lang::NullPointerException ); - - /** revokes the given listener from the list of components which will - be notfiied about changes in the entry list. - - @throws <type scope="com::sun::star::lang">NullPointerException</type> - if the given listener is <NULL/> - */ - void removeListEntryListener( [in] XListEntryListener Listener ) - raises( com::sun::star::lang::NullPointerException ); -}; - -//============================================================================= - -}; }; }; }; }; - -#endif diff --git a/offapi/drafts/com/sun/star/form/XValueBinding.idl b/offapi/drafts/com/sun/star/form/XValueBinding.idl deleted file mode 100644 index a62c164ebfce..000000000000 --- a/offapi/drafts/com/sun/star/form/XValueBinding.idl +++ /dev/null @@ -1,101 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef __drafts_com_sun_star_form_XValueBinding_idl__ -#define __drafts_com_sun_star_form_XValueBinding_idl__ - -#ifndef __com_sun_star_uno_XInterface_idl__ -#include <com/sun/star/uno/XInterface.idl> -#endif -#ifndef __com_sun_star_lang_NoSupportException_idl__ -#include <com/sun/star/lang/NoSupportException.idl> -#endif -#ifndef __drafts_com_sun_star_form_IncompatibleTypesException_idl__ -#include <drafts/com/sun/star/form/IncompatibleTypesException.idl> -#endif - -//============================================================================= - -module drafts { module com { module sun { module star { module form { - -//============================================================================= - -/** specifies a binding to a value which can be read and written. - - @deprecated - This interface is superseeded by <type scope="com::sun::star::form::binding">XValueBinding</type> -*/ -interface XValueBinding : com::sun::star::uno::XInterface -{ - //------------------------------------------------------------------------- - /** determines the types which are supported by this binding for value exchange - - @see supportsType - */ - sequence< type > - getSupportedValueTypes( ); - - /** determines whether a given type is supported by this binding for value exchange - - <p>Calling this method is equal to calling <member>getSupportedValueTypes</member>, - and looking up the given type in the resulting type sequence.</p> - - @see getSupportedValueTypes - */ - boolean supportsType( [in] type aType ); - - /** retrieves the current value - - @throws <type>IncompatibleTypesException</type> - if the requested value type is not supported by the binding - @see getSupportedValueTypes - @see supportsType - */ - any getValue( [in] type aType ) - raises( IncompatibleTypesException ); - - /** sets the current value - - @throws <type>IncompatibleTypesException</type> - if the given value type is not supported by the binding - @throws <type scope="com::sun::star::lang">NoSupportException</type> - if the value currently cannot be changed (e.g. because it's readonly), - or if the binding in general does not support write access to it's binding - - @see getSupportedValueTypes - @see supportsType - @see ValueBinding - */ - void setValue( [in] any aValue ) - raises( IncompatibleTypesException, com::sun::star::lang::NoSupportException ); -}; - -//============================================================================= - -}; }; }; }; }; - -#endif diff --git a/offapi/drafts/com/sun/star/form/makefile.mk b/offapi/drafts/com/sun/star/form/makefile.mk deleted file mode 100644 index c5f68e0fe2b5..000000000000 --- a/offapi/drafts/com/sun/star/form/makefile.mk +++ /dev/null @@ -1,52 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/..$/..$/..$/.. - -PRJNAME=offapi - -TARGET=dcssform -PACKAGE=drafts$/com$/sun$/star$/form - -# --- Settings ----------------------------------------------------- -.INCLUDE : $(PRJ)$/util$/makefile.pmk - -# ------------------------------------------------------------------------ - -IDLFILES=\ - IncompatibleTypesException.idl \ - ListEntryEvent.idl \ - XBindableValue.idl \ - XValueBinding.idl \ - XListEntrySink.idl \ - XListEntrySource.idl \ - XListEntryListener.idl \ - -# ------------------------------------------------------------------ - -.INCLUDE : target.mk -.INCLUDE : $(PRJ)$/util$/target.pmk diff --git a/offapi/prj/build.lst b/offapi/prj/build.lst index a4ed8a8ceaf8..c3a5f06d43bb 100644 --- a/offapi/prj/build.lst +++ b/offapi/prj/build.lst @@ -106,5 +106,4 @@ oa offapi\com\sun\star\geometry nmake - all oa_geometry NULL oa offapi\com\sun\star\rendering nmake - all oa_rendering oa_geometry NULL oa offapi\com\sun\star\rdf nmake - all oa_rdf oa_datatransfer oa_text NULL oa offapi\com\sun\star\office nmake - all oa_office oa_text NULL -oa offapi\drafts\com\sun\star\form nmake - all oa_drafts_form NULL -oa offapi\util nmake - all oa_util oa_auth oa_awt oa_awttree oa_awtgrid oa_awttab oa_chart oa_chart2 oa_chart2_data oa_config oa_configbootstrap oa_configbackend oa_configbackend_xml oa_datatrans_clip oa_datatrans_dnd oa_datatransfer oa_docu oa_draw oa_draw_framework oa_embed oa_fcomp oa_finsp oa_fcontr oa_fieldmaster oa_form oa_xforms oa_formula oa_frame oa_i18n oa_inst oa_ldap oa_ling2 oa_logging oa_mail oa_media oa_mozilla oa_packages oa_manifest oa_zippackage oa_plug oa_pres oa_animations oa_putil oa_resrc oa_sax oa_xml_input oa_scan oa_sdb oa_sdbtools oa_sdbapp oa_sdbc oa_sdbcx oa_setup oa_sheet oa_style oa_svg oa_sync oa_sync2 oa_system oa_table oa_task oa_text oa_textfield oa_docinfo oa_ucb oa_view oa_xml oa_xml_dom oa_xml_xpath oa_xml_views oa_xml_events oa_image oa_xsd oa_inspection oa_ui oa_ui_dialogs oa_accessibility oa_form_binding oa_form_validation oa_form_submission oa_fruntime oa_geometry oa_rendering oa_sfprovider oa_sfbrowse oa_drafts_form oa_deployment oa_deploymenttest oa_deployment_ui oa_frame_status oa_gallery oa_graphic oa_security oa_crypto_sax oa_crypto oa_csax oa_wrapper oa_script oa_smarttags oa_report oa_reportins oa_reportmeta oa_rdf oa_oooimprovement oa_office oa_prestextfield oa_starme oa_script_vba NULL +oa offapi\util nmake - all oa_util oa_auth oa_awt oa_awttree oa_awtgrid oa_awttab oa_chart oa_chart2 oa_chart2_data oa_config oa_configbootstrap oa_configbackend oa_configbackend_xml oa_datatrans_clip oa_datatrans_dnd oa_datatransfer oa_docu oa_draw oa_draw_framework oa_embed oa_fcomp oa_finsp oa_fcontr oa_fieldmaster oa_form oa_xforms oa_formula oa_frame oa_i18n oa_inst oa_ldap oa_ling2 oa_logging oa_mail oa_media oa_mozilla oa_packages oa_manifest oa_zippackage oa_plug oa_pres oa_animations oa_putil oa_resrc oa_sax oa_xml_input oa_scan oa_sdb oa_sdbtools oa_sdbapp oa_sdbc oa_sdbcx oa_setup oa_sheet oa_style oa_svg oa_sync oa_sync2 oa_system oa_table oa_task oa_text oa_textfield oa_docinfo oa_ucb oa_view oa_xml oa_xml_dom oa_xml_xpath oa_xml_views oa_xml_events oa_image oa_xsd oa_inspection oa_ui oa_ui_dialogs oa_accessibility oa_form_binding oa_form_validation oa_form_submission oa_fruntime oa_geometry oa_rendering oa_sfprovider oa_sfbrowse oa_deployment oa_deploymenttest oa_deployment_ui oa_frame_status oa_gallery oa_graphic oa_security oa_crypto_sax oa_crypto oa_csax oa_wrapper oa_script oa_smarttags oa_report oa_reportins oa_reportmeta oa_rdf oa_oooimprovement oa_office oa_prestextfield oa_starme oa_script_vba NULL diff --git a/offapi/prj/d.lst b/offapi/prj/d.lst index a271a7159130..ab0e4eb7a293 100644 --- a/offapi/prj/d.lst +++ b/offapi/prj/d.lst @@ -110,12 +110,6 @@ mkdir: %COMMON_DEST%\idl%_EXT%\com\sun\star\xml\sax mkdir: %COMMON_DEST%\idl%_EXT%\com\sun\star\xml\wrapper mkdir: %COMMON_DEST%\idl%_EXT%\com\sun\star\xml\xpath mkdir: %COMMON_DEST%\idl%_EXT%\com\sun\star\xsd -mkdir: %COMMON_DEST%\idl%_EXT%\drafts -mkdir: %COMMON_DEST%\idl%_EXT%\drafts\com -mkdir: %COMMON_DEST%\idl%_EXT%\drafts\com\sun -mkdir: %COMMON_DEST%\idl%_EXT%\drafts\com\sun\star -mkdir: %COMMON_DEST%\idl%_EXT%\drafts\com\sun\star\form - ..\%__SRC%\ucr\offapi.db %_DEST%\bin%_EXT%\offapi.rdb ..\%__SRC%\ucrdoc\offapi_doc.db %_DEST%\bin%_EXT%\offapi_doc.rdb @@ -228,5 +222,3 @@ mkdir: %COMMON_DEST%\idl%_EXT%\drafts\com\sun\star\form ..\com\sun\star\xml\wrapper\*.idl %COMMON_DEST%\idl%_EXT%\com\sun\star\xml\wrapper ..\com\sun\star\xml\xpath\*.idl %COMMON_DEST%\idl%_EXT%\com\sun\star\xml\xpath ..\com\sun\star\xsd\*.idl %COMMON_DEST%\idl%_EXT%\com\sun\star\xsd - -..\drafts\com\sun\star\form\*.idl %COMMON_DEST%\idl%_EXT%\drafts\com\sun\star\form diff --git a/offapi/type_reference/typelibrary_history.txt b/offapi/type_reference/typelibrary_history.txt index 16745ab9f7eb..a678ca7d6a7d 100644 --- a/offapi/type_reference/typelibrary_history.txt +++ b/offapi/type_reference/typelibrary_history.txt @@ -158,7 +158,10 @@ Update reference type library with the version of OOo 3.2.1. The new reference type library is taken from the release source tree OOO320 m19. +11/09/10 (JSC): TaskID=i114887 + remove drafts module from reference rdb. The odl drafts type are not used + and i cleaned up the module and the type library. + 01/28/11 (JSC): TaskID=116682 Update css.awt.UnoControlDialog to reflect the supported XDialog2 interface additionally to XDialog - diff --git a/offapi/type_reference/types.rdb b/offapi/type_reference/types.rdb Binary files differindex 02cd79c9eb4f..1f9d5aea0fb8 100644 --- a/offapi/type_reference/types.rdb +++ b/offapi/type_reference/types.rdb diff --git a/offapi/util/makefile.mk b/offapi/util/makefile.mk index dd91e2d99456..f0837e21ca8b 100644 --- a/offapi/util/makefile.mk +++ b/offapi/util/makefile.mk @@ -133,7 +133,6 @@ UNOIDLDBFILES= \ $(UCR)$/cssgallery.db \ $(UCR)$/cssxsd.db \ $(UCR)$/cssinspection.db \ - $(UCR)$/dcssform.db \ $(UCR)$/xsec-security.db \ $(UCR)$/xsec-crypto.db \ $(UCR)$/xsec-csax.db \ diff --git a/registry/tools/checksingleton.cxx b/registry/tools/checksingleton.cxx index 4353721ad0b0..903e059ac896 100644 --- a/registry/tools/checksingleton.cxx +++ b/registry/tools/checksingleton.cxx @@ -28,297 +28,150 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_registry.hxx" -#include <stdio.h> -#include <string.h> - #include "registry/registry.hxx" #include "registry/reflread.hxx" -#include <rtl/ustring.hxx> -#include <rtl/alloc.h> -#include <osl/process.h> -#include <osl/diagnose.h> -#include <osl/thread.h> -#include <osl/file.hxx> - -#ifdef SAL_UNX -#define SEPARATOR '/' -#else -#define SEPARATOR '\\' -#endif +#include "fileurl.hxx" +#include "options.hxx" -using namespace ::rtl; -using namespace ::osl; +#include "rtl/ustring.hxx" +#include "osl/diagnose.h" -sal_Bool isFileUrl(const OString& fileName) -{ - if (fileName.indexOf("file://") == 0 ) - return sal_True; - return sal_False; -} - -OUString convertToFileUrl(const OString& fileName) -{ - if ( isFileUrl(fileName) ) - { - return OStringToOUString(fileName, osl_getThreadTextEncoding()); - } +#include <stdio.h> +#include <string.h> - OUString uUrlFileName; - OUString uFileName(fileName.getStr(), fileName.getLength(), osl_getThreadTextEncoding()); - if ( fileName.indexOf('.') == 0 || fileName.indexOf(SEPARATOR) < 0 ) - { - OUString uWorkingDir; - if (osl_getProcessWorkingDir(&uWorkingDir.pData) != osl_Process_E_None) - { - OSL_ASSERT(false); - } - if (FileBase::getAbsoluteFileURL(uWorkingDir, uFileName, uUrlFileName) - != FileBase::E_None) - { - OSL_ASSERT(false); - } - } else - { - if (FileBase::getFileURLFromSystemPath(uFileName, uUrlFileName) - != FileBase::E_None) - { - OSL_ASSERT(false); - } - } +#include <vector> +#include <string> - return uUrlFileName; -} +using namespace rtl; +using namespace registry::tools; #define U2S( s ) \ OUStringToOString(s, RTL_TEXTENCODING_UTF8).getStr() #define S2U( s ) \ OStringToOUString(s, RTL_TEXTENCODING_UTF8) -struct LessString -{ - sal_Bool operator()(const OUString& str1, const OUString& str2) const - { - return (str1 < str2); - } -}; - -class Options +class Options_Impl : public Options { public: - Options() - : m_bForceOutput(sal_False) - {} - ~Options() + explicit Options_Impl(char const * program) + : Options (program), m_bForceOutput(false) {} - sal_Bool initOptions(int ac, char* av[], sal_Bool bCmdFile=sal_False); - - OString prepareHelp(); - OString prepareVersion(); - - const OString& getProgramName() - { return m_program; } - const OString& getIndexReg() + std::string const & getIndexReg() const { return m_indexRegName; } - const OString& getTypeReg() + std::string const & getTypeReg() const { return m_typeRegName; } - sal_Bool hasBase() - { return m_base.getLength() > 0; } - const OString& getBase() + bool hasBase() const + { return (m_base.getLength() > 0); } + const OString & getBase() const { return m_base; } - sal_Bool forceOutput() + bool forceOutput() const { return m_bForceOutput; } + protected: - OString m_program; - OString m_indexRegName; - OString m_typeRegName; + virtual void printUsage_Impl() const; + virtual bool initOptions_Impl (std::vector< std::string > & rArgs); + + std::string m_indexRegName; + std::string m_typeRegName; OString m_base; - sal_Bool m_bForceOutput; + bool m_bForceOutput; }; -sal_Bool Options::initOptions(int ac, char* av[], sal_Bool bCmdFile) +// virtual +void Options_Impl::printUsage_Impl() const { - sal_Bool bRet = sal_True; - sal_uInt16 i=0; + std::string const & rProgName = getProgramName(); + fprintf(stderr, + "Usage: %s -r<filename> -o<filename> [-options] | @<filename>\n", rProgName.c_str() + ); + fprintf(stderr, + " -o<filename> = filename specifies the name of the new singleton index registry.\n" + " -r<filename> = filename specifies the name of the type registry.\n" + " @<filename> = filename specifies a command file.\n" + "Options:\n" + " -b<name> = name specifies the name of a start key. The types will be searched\n" + " under this key in the type registry.\n" + " -f = force the output of all found singletons.\n" + " -h|-? = print this help message and exit.\n" + ); + fprintf(stderr, + "\n%s Version 1.0\n\n", rProgName.c_str() + ); +} - if (!bCmdFile) +// virtual +bool Options_Impl::initOptions_Impl(std::vector< std::string > & rArgs) +{ + std::vector< std::string >::const_iterator first = rArgs.begin(), last = rArgs.end(); + for (; first != last; ++first) { - bCmdFile = sal_True; - - m_program = av[0]; - - if (ac < 2) + std::string option (*first); + if ((*first)[0] != '-') { - fprintf(stderr, "%s", prepareHelp().getStr()); - bRet = sal_False; + return badOption("invalid", option.c_str()); } - - i = 1; - } else - { - i = 0; - } - - char *s=NULL; - for (; i < ac; i++) - { - if (av[i][0] == '-') + switch ((*first)[1]) { - switch (av[i][1]) + case 'r': + case 'R': + { + if (!((++first != last) && ((*first)[0] != '-'))) + { + return badOption("invalid", option.c_str()); + } + m_typeRegName = OString((*first).c_str(), (*first).size()); + break; + } + case 'o': + case 'O': { - case 'r': - case 'R': - if (av[i][2] == '\0') - { - if (i < ac - 1 && av[i+1][0] != '-') - { - i++; - s = av[i]; - } else - { - fprintf(stderr, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); - bRet = sal_False; - break; - } - } else - { - s = av[i] + 2; - } - m_typeRegName = OString(s); - break; - case 'o': - case 'O': - if (av[i][2] == '\0') - { - if (i < ac - 1 && av[i+1][0] != '-') - { - i++; - s = av[i]; - } else - { - fprintf(stderr, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); - bRet = sal_False; - break; - } - } else - { - s = av[i] + 2; - } - m_indexRegName = OString(s); - break; - case 'b': - case 'B': - if (av[i][2] == '\0') - { - if (i < ac - 1 && av[i+1][0] != '-') - { - i++; - s = av[i]; - } else - { - fprintf(stderr, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); - bRet = sal_False; - break; - } - } else - { - s = av[i] + 2; - } - m_base = OString(s); - break; - case 'f': - case 'F': - if (av[i][2] != '\0') - { - fprintf(stderr, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); - bRet = sal_False; - } - m_bForceOutput = sal_True; - break; - case 'h': - case '?': - if (av[i][2] != '\0') - { - fprintf(stderr, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); - bRet = sal_False; - } else - { - fprintf(stdout, "%s", prepareHelp().getStr()); - exit(0); - } - break; - default: - fprintf(stderr, "%s: unknown option '%s'\n", m_program.getStr(), av[i]); - bRet = sal_False; - break; + if (!((++first != last) && ((*first)[0] != '-'))) + { + return badOption("invalid", option.c_str()); + } + m_indexRegName = (*first); + break; } - } else - { - if (av[i][0] == '@') + case 'b': + case 'B': { - FILE* cmdFile = fopen(av[i]+1, "r"); - if( cmdFile == NULL ) - { - fprintf(stderr, "%s", prepareHelp().getStr()); - bRet = sal_False; - } else + if (!((++first != last) && ((*first)[0] != '-'))) { - int rargc=0; - char* rargv[512]; - char buffer[512]; - - while ( fscanf(cmdFile, "%s", buffer) != EOF ) - { - rargv[rargc]= strdup(buffer); - rargc++; - } - fclose(cmdFile); - - bRet = initOptions(rargc, rargv, bCmdFile); - - for (long j=0; j < rargc; j++) - { - free(rargv[j]); - } + return badOption("invalid", option.c_str()); + } + m_base = OString((*first).c_str(), (*first).size()); + break; + } + case 'f': + case 'F': + { + if ((*first).size() > 2) + { + return badOption("invalid", option.c_str()); } - } else + m_bForceOutput = sal_True; + break; + } + case 'h': + case '?': { - fprintf(stderr, "%s: unknown option '%s'\n", m_program.getStr(), av[i]); - bRet = sal_False; + if ((*first).size() > 2) + { + return badOption("invalid", option.c_str()); + } + return printUsage(); + // break; // unreachable } + default: + return badOption("unknown", option.c_str()); + // break; // unreachable } } - - return bRet; -} - -OString Options::prepareHelp() -{ - OString help("\nusing: "); - help += m_program + " -r<filename> -o<filename> [-options] | @<filename>\n"; - help += " -o<filename> = filename specifies the name of the new singleton index registry.\n"; - help += " -r<filename> = filename specifies the name of the type registry.\n"; - help += " @<filename> = filename specifies a command file.\n"; - help += "Options:\n"; - help += " -b<name> = name specifies the name of a start key. The types will be searched\n"; - help += " under this key in the type registry.\n"; - help += " -f = force the output of all found singletons.\n"; - help += " -h|-? = print this help message and exit.\n"; - help += prepareVersion(); - - return help; + return true; } -OString Options::prepareVersion() -{ - OString version("\nSun Microsystems (R) "); - version += m_program + " Version 1.0\n\n"; - return version; -} - -static Options options; - -static sal_Bool checkSingletons(RegistryKey& singletonKey, RegistryKey& typeKey) +static sal_Bool checkSingletons(Options_Impl const & options, RegistryKey& singletonKey, RegistryKey& typeKey) { RegValueType valueType = RG_VALUETYPE_NOT_DEFINED; sal_uInt32 size = 0; @@ -326,24 +179,22 @@ static sal_Bool checkSingletons(RegistryKey& singletonKey, RegistryKey& typeKey) sal_Bool bRet = sal_False; RegError e = typeKey.getValueInfo(tmpName, &valueType, &size); - - if ( e != REG_VALUE_NOT_EXISTS && e != REG_INVALID_VALUE && valueType == RG_VALUETYPE_BINARY) + if ((e != REG_VALUE_NOT_EXISTS) && (e != REG_INVALID_VALUE) && (valueType == RG_VALUETYPE_BINARY)) { - RegistryKey entryKey; - RegValue value = rtl_allocateMemory(size); - - typeKey.getValue(tmpName, value); - - RegistryTypeReader reader((sal_uInt8*)value, size, sal_False); + std::vector< sal_uInt8 > value(size); + typeKey.getValue(tmpName, &value[0]); // @@@ broken api: write to buffer w/o buffer size. + RegistryTypeReader reader(&value[0], value.size(), sal_False); if ( reader.isValid() && reader.getTypeClass() == RT_TYPE_SINGLETON ) { - OUString singletonName = reader.getTypeName().replace('/', '.'); + RegistryKey entryKey; + OUString singletonName = reader.getTypeName().replace('/', '.'); if ( singletonKey.createKey(singletonName, entryKey) ) { fprintf(stderr, "%s: could not create SINGLETONS entry for \"%s\"\n", - options.getProgramName().getStr(), U2S( singletonName )); - } else + options.getProgramName().c_str(), U2S( singletonName )); + } + else { bRet = sal_True; OUString value2 = reader.getSuperTypeName(); @@ -352,30 +203,26 @@ static sal_Bool checkSingletons(RegistryKey& singletonKey, RegistryKey& typeKey) (RegValue)value2.getStr(), sizeof(sal_Unicode)* (value2.getLength()+1)) ) { fprintf(stderr, "%s: could not create data entry for singleton \"%s\"\n", - options.getProgramName().getStr(), U2S( singletonName )); + options.getProgramName().c_str(), U2S( singletonName )); } if ( options.forceOutput() ) { fprintf(stderr, "%s: create SINGLETON entry for \"%s\" -> \"%s\"\n", - options.getProgramName().getStr(), U2S( singletonName ), U2S(value2)); + options.getProgramName().c_str(), U2S( singletonName ), U2S(value2)); } } } - - rtl_freeMemory(value); } RegistryKeyArray subKeys; - typeKey.openSubKeys(tmpName, subKeys); sal_uInt32 length = subKeys.getLength(); - RegistryKey elementKey; for (sal_uInt32 i = 0; i < length; i++) { - elementKey = subKeys.getElement(i); - if ( checkSingletons(singletonKey, elementKey) ) + RegistryKey elementKey = subKeys.getElement(i); + if ( checkSingletons(options, singletonKey, elementKey) ) { bRet = sal_True; } @@ -389,69 +236,85 @@ int main( int argc, char * argv[] ) int _cdecl main( int argc, char * argv[] ) #endif { - if ( !options.initOptions(argc, argv) ) + std::vector< std::string > args; + for (int i = 1; i < argc; i++) { - exit(1); + int result = Options::checkArgument(args, argv[i], strlen(argv[i])); + if (result != 0) + { + // failure. + return (result); + } } - OUString indexRegName( convertToFileUrl(options.getIndexReg()) ); - OUString typeRegName( convertToFileUrl(options.getTypeReg()) ); + Options_Impl options(argv[0]); + if (!options.initOptions(args)) + { + options.printUsage(); + return (1); + } + OUString indexRegName( convertToFileUrl(options.getIndexReg().c_str(), options.getIndexReg().size()) ); Registry indexReg; - Registry typeReg; - if ( indexReg.open(indexRegName, REG_READWRITE) ) { if ( indexReg.create(indexRegName) ) { fprintf(stderr, "%s: open registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getIndexReg().getStr()); - exit(2); + options.getProgramName().c_str(), options.getIndexReg().c_str()); + return (2); } } + + OUString typeRegName( convertToFileUrl(options.getTypeReg().c_str(), options.getTypeReg().size()) ); + Registry typeReg; if ( typeReg.open(typeRegName, REG_READONLY) ) { fprintf(stderr, "%s: open registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getTypeReg().getStr()); - exit(3); + options.getProgramName().c_str(), options.getTypeReg().c_str()); + return (3); } - RegistryKey indexRoot, typeRoot; + RegistryKey indexRoot; if ( indexReg.openRootKey(indexRoot) ) { fprintf(stderr, "%s: open root key of registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getIndexReg().getStr()); - exit(4); + options.getProgramName().c_str(), options.getIndexReg().c_str()); + return (4); } + + RegistryKey typeRoot; if ( typeReg.openRootKey(typeRoot) ) { fprintf(stderr, "%s: open root key of registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getTypeReg().getStr()); - exit(5); + options.getProgramName().c_str(), options.getTypeReg().c_str()); + return (5); } - RegistryKey singletonKey, typeKey; + RegistryKey typeKey; if ( options.hasBase() ) { if ( typeRoot.openKey(S2U(options.getBase()), typeKey) ) { fprintf(stderr, "%s: open base key of registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getTypeReg().getStr()); - exit(6); + options.getProgramName().c_str(), options.getTypeReg().c_str()); + return (6); } - } else + } + else { typeKey = typeRoot; } + RegistryKey singletonKey; if ( indexRoot.createKey(OUString::createFromAscii("SINGLETONS"), singletonKey) ) { fprintf(stderr, "%s: open/create SINGLETONS key of registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getIndexReg().getStr()); - exit(7); + options.getProgramName().c_str(), options.getIndexReg().c_str()); + return (7); } - sal_Bool bSingletonsExist = checkSingletons(singletonKey, typeKey); + sal_Bool bSingletonsExist = checkSingletons(options, singletonKey, typeKey); indexRoot.releaseKey(); typeRoot.releaseKey(); @@ -460,24 +323,22 @@ int _cdecl main( int argc, char * argv[] ) if ( indexReg.close() ) { fprintf(stderr, "%s: closing registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getIndexReg().getStr()); - exit(9); + options.getProgramName().c_str(), options.getIndexReg().c_str()); + return (9); } if ( !bSingletonsExist ) { if ( indexReg.destroy(OUString()) ) { fprintf(stderr, "%s: destroy registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getIndexReg().getStr()); - exit(10); + options.getProgramName().c_str(), options.getIndexReg().c_str()); + return (10); } } if ( typeReg.close() ) { fprintf(stderr, "%s: closing registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getTypeReg().getStr()); - exit(11); + options.getProgramName().c_str(), options.getTypeReg().c_str()); + return (11); } } - - diff --git a/registry/tools/fileurl.cxx b/registry/tools/fileurl.cxx new file mode 100644 index 000000000000..e3561888c674 --- /dev/null +++ b/registry/tools/fileurl.cxx @@ -0,0 +1,90 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#include "fileurl.hxx" + +#include "rtl/ustring.hxx" +#include "osl/diagnose.h" +#include "osl/file.hxx" +#include "osl/process.h" +#include "osl/thread.h" + +#include <string.h> + +#ifdef SAL_UNX +#define SEPARATOR '/' +#else +#define SEPARATOR '\\' +#endif + +using rtl::OUString; +using osl::FileBase; + +namespace registry +{ +namespace tools +{ + +OUString convertToFileUrl(char const * filename, size_t length) +{ + OUString const uFileName(filename, length, osl_getThreadTextEncoding()); + if (strncmp(filename, "file://", 7) == 0) + { + // already a FileUrl. + return uFileName; + } + + OUString uFileUrl; + if (length > 0) + { + if ((filename[0] == '.') || (filename[0] != SEPARATOR)) + { + // relative path name. + OUString uWorkingDir; + if (osl_getProcessWorkingDir(&uWorkingDir.pData) != osl_Process_E_None) + { + OSL_ASSERT(false); + } + if (FileBase::getAbsoluteFileURL(uWorkingDir, uFileName, uFileUrl) != FileBase::E_None) + { + OSL_ASSERT(false); + } + } + else + { + // absolute path name. + if (FileBase::getFileURLFromSystemPath(uFileName, uFileUrl) != FileBase::E_None) + { + OSL_ASSERT(false); + } + } + } + return uFileUrl; +} + +} // namespace tools +} // namespace registry diff --git a/offapi/drafts/com/sun/star/form/IncompatibleTypesException.idl b/registry/tools/fileurl.hxx index ec784aa7c2bb..bbaa218f32e6 100644 --- a/offapi/drafts/com/sun/star/form/IncompatibleTypesException.idl +++ b/registry/tools/fileurl.hxx @@ -24,34 +24,20 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef __drafts_com_sun_star_form_IncompatibleTypesException_idl__ -#define __drafts_com_sun_star_form_IncompatibleTypesException_idl__ -#ifndef __com_sun_star_uno_Exception_idl__ -#include <com/sun/star/uno/Exception.idl> -#endif +#ifndef INCLUDED_REGISTRY_TOOLS_FILEURL_HXX +#define INCLUDED_REGISTRY_TOOLS_FILEURL_HXX +#include "rtl/ustring.hxx" -//============================================================================= - -module drafts { module com { module sun { module star { module form { - -//============================================================================= - -/** thrown to indicate that the types of an <type>XValueBinding</type> and - an <type>XBindableValue</type> are incompatible - - @deprecated - This exception is superseeded by <type scope="com::sun::star::form::binding">IncompatibleTypesException</type> -*/ -exception IncompatibleTypesException: com::sun::star::uno::Exception +namespace registry +{ +namespace tools { -}; - -//============================================================================= -}; }; }; }; }; +rtl::OUString convertToFileUrl(char const * filename, size_t length); -//============================================================================= +} // namespace tools +} // namespace registry -#endif +#endif /* INCLUDED_REGISTRY_TOOLS_FILEURL_HXX */ diff --git a/registry/tools/makefile.mk b/registry/tools/makefile.mk index bb7d448b86e6..06ca753ff044 100644 --- a/registry/tools/makefile.mk +++ b/registry/tools/makefile.mk @@ -43,7 +43,7 @@ ENABLE_EXCEPTIONS := TRUE CDEFS += -DDLL_VERSION=$(EMQ)"$(DLLPOSTFIX)$(EMQ)" APP1TARGET= $(TARGET) -APP1OBJS= $(OBJ)$/regmerge.obj +APP1OBJS= $(OBJ)$/regmerge.obj $(OBJ)/fileurl.obj $(OBJ)/options.obj APP1RPATH= UREBIN APP1STDLIBS=\ @@ -51,7 +51,7 @@ APP1STDLIBS=\ $(REGLIB) APP2TARGET= regview -APP2OBJS= $(OBJ)$/regview.obj +APP2OBJS= $(OBJ)$/regview.obj $(OBJ)/fileurl.obj APP2RPATH= UREBIN APP2STDLIBS=\ @@ -59,7 +59,7 @@ APP2STDLIBS=\ $(REGLIB) APP3TARGET= regcompare -APP3OBJS= $(OBJ)$/regcompare.obj +APP3OBJS= $(OBJ)$/regcompare.obj $(OBJ)/fileurl.obj $(OBJ)/options.obj APP3RPATH= SDK APP3STDLIBS=\ @@ -68,13 +68,21 @@ APP3STDLIBS=\ $(REGLIB) APP4TARGET= checksingleton -APP4OBJS= $(OBJ)$/checksingleton.obj +APP4OBJS= $(OBJ)$/checksingleton.obj $(OBJ)/fileurl.obj $(OBJ)/options.obj APP4STDLIBS=\ $(SALLIB) \ $(SALHELPERLIB) \ $(REGLIB) -OBJFILES = $(APP1OBJS) $(APP2OBJS) $(APP3OBJS) $(APP4OBJS) +APP5TARGET= rdbedit +APP5OBJS= $(OBJ)$/rdbedit.obj + +APP5STDLIBS=\ + $(SALLIB) \ + $(SALHELPERLIB) \ + $(REGLIB) + +OBJFILES = $(APP1OBJS) $(APP2OBJS) $(APP3OBJS) $(APP4OBJS) $(APP5OBJS) .INCLUDE : target.mk diff --git a/registry/tools/options.cxx b/registry/tools/options.cxx new file mode 100644 index 000000000000..d851825ebfb6 --- /dev/null +++ b/registry/tools/options.cxx @@ -0,0 +1,153 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#include "options.hxx" + +#include "osl/diagnose.h" + +#include <stdio.h> +#include <string.h> + +namespace registry +{ +namespace tools +{ + +Options::Options (char const * program) + : m_program (program) +{} + +Options::~Options() +{} + +// static +bool Options::checkArgument(std::vector< std::string> & rArgs, char const * arg, size_t len) +{ + bool result = ((arg != 0) && (len > 0)); + OSL_PRECOND(result, "registry::tools::Options::checkArgument(): invalid arguments"); + if (result) + { + OSL_TRACE("registry::tools:Options::checkArgument(): \"%s\"", arg); + switch (arg[0]) + { + case '@': + if ((result = (len > 1)) == true) + { + // "@<cmdfile>" + result = Options::checkCommandFile(rArgs, &(arg[1])); + } + break; + case '-': + if ((result = (len > 1)) == true) + { + // "-<option>" + std::string option (&(arg[0]), 2); + rArgs.push_back(option); + if (len > 2) + { + // "-<option><param>" + std::string param(&(arg[2]), len - 2); + rArgs.push_back(param); + } + } + break; + default: + rArgs.push_back(std::string(arg, len)); + break; + } + } + return (result); +} + +// static +bool Options::checkCommandFile(std::vector< std::string > & rArgs, char const * filename) +{ + FILE * fp = fopen(filename, "r"); + if (fp == 0) + { + fprintf(stderr, "ERROR: Can't open command file \"%s\"\n", filename); + return (false); + } + + std::string buffer; + buffer.reserve(256); + + bool quoted = false; + int c = EOF; + while ((c = fgetc(fp)) != EOF) + { + switch(c) + { + case '\"': + quoted = !quoted; + break; + case ' ': + case '\t': + case '\r': + case '\n': + if (!quoted) + { + if (!buffer.empty()) + { + if (!checkArgument(rArgs, buffer.c_str(), buffer.size())) + { + // failure. + (void) fclose(fp); + return false; + } + buffer.clear(); + } + break; + } + default: + // quoted white-space fall through + buffer.push_back(sal::static_int_cast<char>(c)); + break; + } + } + return (fclose(fp) == 0); +} + +bool Options::initOptions (std::vector< std::string > & rArgs) +{ + return initOptions_Impl (rArgs); +} + +bool Options::badOption (char const * reason, char const * option) const +{ + (void) fprintf(stderr, "%s: %s option '%s'\n", m_program.c_str(), reason, option); + return printUsage(); +} + +bool Options::printUsage() const +{ + printUsage_Impl(); + return false; +} + +} // namespace tools +} // namespace registry diff --git a/registry/tools/options.hxx b/registry/tools/options.hxx new file mode 100644 index 000000000000..8e4c97877e3b --- /dev/null +++ b/registry/tools/options.hxx @@ -0,0 +1,67 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef INCLUDED_REGISTRY_TOOLS_OPTIONS_HXX +#define INCLUDED_REGISTRY_TOOLS_OPTIONS_HXX + +#include <string> +#include <vector> + +namespace registry +{ +namespace tools +{ +class Options +{ + std::string m_program; + + Options (Options const &); + Options & operator= (Options const &); + +public: + explicit Options (char const * program); + virtual ~Options(); + + static bool checkArgument (std::vector< std::string > & rArgs, char const * arg, size_t len); + + bool initOptions (std::vector< std::string > & rArgs); + bool badOption (char const * reason, char const * option) const; + + std::string const & getProgramName() const { return m_program; } + bool printUsage() const; + +protected: + static bool checkCommandFile(std::vector< std::string > & rArgs, char const * filename); + + virtual bool initOptions_Impl(std::vector< std::string > & rArgs) = 0; + virtual void printUsage_Impl() const = 0; +}; + +} // namespace tools +} // namespace registry + +#endif /* INCLUDED_REGISTRY_TOOLS_OPTIONS_HXX */ diff --git a/registry/tools/rdbedit.cxx b/registry/tools/rdbedit.cxx new file mode 100644 index 000000000000..c2b3d6a3dcf3 --- /dev/null +++ b/registry/tools/rdbedit.cxx @@ -0,0 +1,318 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_registry.hxx" + +#include <stdio.h> +#include <string.h> + +#include "registry/registry.hxx" +#include "registry/reflread.hxx" +#include <rtl/ustring.hxx> +#include <rtl/alloc.h> +#include <osl/process.h> +#include <osl/diagnose.h> +#include <osl/thread.h> +#include <osl/file.hxx> + +#ifdef SAL_UNX +#define SEPARATOR '/' +#else +#define SEPARATOR '\\' +#endif + +using namespace ::rtl; +using namespace ::osl; + +sal_Bool isFileUrl(const OString& fileName) +{ + if (fileName.indexOf("file://") == 0 ) + return sal_True; + return sal_False; +} + +OUString convertToFileUrl(const OString& fileName) +{ + if ( isFileUrl(fileName) ) + { + return OStringToOUString(fileName, osl_getThreadTextEncoding()); + } + + OUString uUrlFileName; + OUString uFileName(fileName.getStr(), fileName.getLength(), osl_getThreadTextEncoding()); + if ( fileName.indexOf('.') == 0 || fileName.indexOf(SEPARATOR) < 0 ) + { + OUString uWorkingDir; + if (osl_getProcessWorkingDir(&uWorkingDir.pData) != osl_Process_E_None) + { + OSL_ASSERT(false); + } + if (FileBase::getAbsoluteFileURL(uWorkingDir, uFileName, uUrlFileName) + != FileBase::E_None) + { + OSL_ASSERT(false); + } + } else + { + if (FileBase::getFileURLFromSystemPath(uFileName, uUrlFileName) + != FileBase::E_None) + { + OSL_ASSERT(false); + } + } + + return uUrlFileName; +} + +#define U2S( s ) \ + OUStringToOString(s, RTL_TEXTENCODING_UTF8).getStr() +#define S2U( s ) \ + OStringToOUString(s, RTL_TEXTENCODING_UTF8) + +struct LessString +{ + sal_Bool operator()(const OUString& str1, const OUString& str2) const + { + return (str1 < str2); + } +}; + +enum Command { + DELETEKEY +}; + +class Options +{ +public: + Options() + : m_bVerbose(false) + {} + ~Options() + {} + + bool initOptions(int ac, char* av[]); + + OString prepareHelp(); + OString prepareVersion(); + + const OString& getProgramName() + { return m_program; } + const OString& getTypeReg() + { return m_typeRegName; } + const OString& getKeyName() + { return m_keyName; } + const Command getCommand() + { return m_command; } + bool verbose() + { return m_bVerbose; } +protected: + OString m_program; + OString m_typeRegName; + OString m_keyName; + Command m_command; + bool m_bVerbose; +}; + +bool Options::initOptions(int ac, char* av[]) +{ + bool bRet = true; + sal_uInt16 i=1; + + if (ac < 2) + { + fprintf(stderr, "%s", prepareHelp().getStr()); + bRet = sal_False; + } + + m_program = av[0]; + sal_Int32 index = -1; + if ((index=m_program.lastIndexOf(SEPARATOR)) > 0) + m_program = av[0]+index+1; + + char *s=NULL; + for (; i < ac; i++) + { + if (av[i][0] == '-') + { + switch (av[i][1]) + { + case 'r': + case 'R': + if (av[i][2] == '\0') + { + if (i < ac - 1 && av[i+1][0] != '-') + { + i++; + s = av[i]; + } else + { + fprintf(stderr, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); + bRet = sal_False; + break; + } + } else + { + s = av[i] + 2; + } + m_typeRegName = OString(s); + break; + case 'd': + case 'D': + if (av[i][2] == '\0') + { + if (i < ac - 1 && av[i+1][0] != '-') + { + i++; + s = av[i]; + } else + { + fprintf(stderr, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); + bRet = sal_False; + break; + } + } else + { + s = av[i] + 2; + } + m_keyName = OString(s); + break; + case 'v': + case 'V': + if (av[i][2] != '\0') + { + fprintf(stderr, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); + bRet = sal_False; + } + m_bVerbose = true; + break; + case 'h': + case '?': + if (av[i][2] != '\0') + { + fprintf(stderr, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); + bRet = false; + } else + { + fprintf(stdout, "%s", prepareHelp().getStr()); + exit(0); + } + break; + default: + fprintf(stderr, "%s: unknown option '%s'\n", m_program.getStr(), av[i]); + bRet = false; + break; + } + } else + { + fprintf(stderr, "%s: unknown option '%s'\n", m_program.getStr(), av[i]); + bRet = false; + } + } + + return bRet; +} + +OString Options::prepareHelp() +{ + OString help("\nusing: "); + help += m_program + " -r<filename> <command>\n"; + help += " -r<filename> = filename specifies the name of the type registry.\n"; + help += "Commands:\n"; + help += " -d <keyname> = delete the specified key from the registry. Keyname\n"; + help += " specifies the name of the key that get deleted.\n"; + help += " -v = verbose output.\n"; + help += " -h|-? = print this help message and exit.\n"; + help += prepareVersion(); + + return help; +} + +OString Options::prepareVersion() +{ + OString version(m_program); + version += " Version 1.0\n\n"; + return version; +} + +static Options options; + + +#if (defined UNX) || (defined OS2) || (defined __MINGW32__) +int main( int argc, char * argv[] ) +#else +int _cdecl main( int argc, char * argv[] ) +#endif +{ + if ( !options.initOptions(argc, argv) ) + { + exit(1); + } + + OUString typeRegName( convertToFileUrl(options.getTypeReg()) ); + + Registry typeReg; + + if ( typeReg.open(typeRegName, REG_READWRITE) ) + { + fprintf(stderr, "%s: open registry \"%s\" failed\n", + options.getProgramName().getStr(), options.getTypeReg().getStr()); + exit(2); + } + + RegistryKey typeRoot; + if ( typeReg.openRootKey(typeRoot) ) + { + fprintf(stderr, "%s: open root key of registry \"%s\" failed\n", + options.getProgramName().getStr(), options.getTypeReg().getStr()); + exit(3); + } + + if ( options.getCommand() == DELETEKEY ) + { + if ( typeRoot.deleteKey(S2U(options.getKeyName())) ) + { + fprintf(stderr, "%s: delete key \"%s\" of registry \"%s\" failed\n", + options.getProgramName().getStr(), options.getKeyName().getStr(), options.getTypeReg().getStr()); + exit(4); + } else { + if (options.verbose()) + fprintf(stderr, "%s: delete key \"%s\" of registry \"%s\"\n", + options.getProgramName().getStr(), options.getKeyName().getStr(), options.getTypeReg().getStr()); + } + } + + typeRoot.releaseKey(); + if ( typeReg.close() ) + { + fprintf(stderr, "%s: closing registry \"%s\" failed\n", + options.getProgramName().getStr(), options.getTypeReg().getStr()); + exit(5); + } +} + + diff --git a/registry/tools/regcompare.cxx b/registry/tools/regcompare.cxx index 4e95d884de30..0eaa220ae2de 100644 --- a/registry/tools/regcompare.cxx +++ b/registry/tools/regcompare.cxx @@ -28,409 +28,266 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_registry.hxx" -#include <stdio.h> -#include <string.h> - -#include <set> -#include <vector> #include "registry/registry.hxx" #include "registry/reader.hxx" #include "registry/version.h" +#include "fileurl.hxx" +#include "options.hxx" + #include <rtl/ustring.hxx> -#include <rtl/alloc.h> -#include <osl/process.h> #include <osl/diagnose.h> -#include <osl/thread.h> -#include <osl/file.hxx> -#ifdef SAL_UNX -#define SEPARATOR '/' -#else -#define SEPARATOR '\\' -#endif +#include <stdio.h> +#include <string.h> -using namespace ::rtl; -using namespace ::osl; +#include <set> +#include <vector> +#include <string> -OUString shortName(const OUString& fullName) -{ - return fullName.copy(fullName.lastIndexOf('/') + 1); -} +using namespace rtl; +using namespace registry::tools; -sal_Bool isFileUrl(const OString& fileName) -{ - if (fileName.indexOf("file://") == 0 ) - return sal_True; - return sal_False; -} +typedef std::set< rtl::OUString > StringSet; -OUString convertToFileUrl(const OString& fileName) +class Options_Impl : public Options { - if ( isFileUrl(fileName) ) - { - return OStringToOUString(fileName, osl_getThreadTextEncoding()); - } - - OUString uUrlFileName; - OUString uFileName(fileName.getStr(), fileName.getLength(), osl_getThreadTextEncoding()); - if ( fileName.indexOf('.') == 0 || fileName.indexOf(SEPARATOR) < 0 ) - { - OUString uWorkingDir; - if (osl_getProcessWorkingDir(&uWorkingDir.pData) != osl_Process_E_None) - { - OSL_ASSERT(false); - } - if (FileBase::getAbsoluteFileURL(uWorkingDir, uFileName, uUrlFileName) - != FileBase::E_None) - { - OSL_ASSERT(false); - } - } else - { - if (FileBase::getFileURLFromSystemPath(uFileName, uUrlFileName) - != FileBase::E_None) - { - OSL_ASSERT(false); - } - } +public: + explicit Options_Impl(char const * program) + : Options(program), + m_bFullCheck(false), + m_bForceOutput(false), + m_bUnoTypeCheck(false), + m_checkUnpublished(false) + {} - return uUrlFileName; -} + std::string const & getRegName1() const { return m_regName1; } + std::string const & getRegName2() const { return m_regName2; } -#define U2S( s ) \ - OUStringToOString(s, RTL_TEXTENCODING_UTF8).getStr() -#define S2U( s ) \ - OStringToOUString(s, RTL_TEXTENCODING_UTF8) + bool isStartKeyValid() const { return (m_startKey.getLength() > 0); } + OUString const & getStartKey() const { return m_startKey; } + bool matchedWithExcludeKey( const OUString& keyName) const; -struct LessString -{ - sal_Bool operator()(const OUString& str1, const OUString& str2) const - { - return (str1 < str2); - } -}; + bool fullCheck() const { return m_bFullCheck; } + bool forceOutput() const { return m_bForceOutput; } + bool unoTypeCheck() const { return m_bUnoTypeCheck; } + bool checkUnpublished() const { return m_checkUnpublished; } -typedef ::std::set< OUString > StringSet; +protected: + bool setRegName_Impl(char c, std::string const & param); -class Options -{ -public: - Options() - : m_bFullCheck(sal_False) - , m_bForceOutput(sal_False) - , m_bUnoTypeCheck(sal_False) - , m_checkUnpublished(false) - {} - ~Options() - {} + virtual void printUsage_Impl() const; + virtual bool initOptions_Impl (std::vector< std::string > & rArgs); - sal_Bool initOptions(int ac, char* av[], sal_Bool bCmdFile=sal_False); - - OString prepareHelp(); - OString prepareVersion(); - - const OString& getProgramName() - { return m_program; } - const OString& getRegName1() - { return m_regName1; } - const OString& getRegName2() - { return m_regName2; } - sal_Bool isStartKeyValid() - { return (m_startKey.getLength() > 0); }; - const OString& getStartKey() - { return m_startKey; } - sal_Bool existsExcludeKeys() - { return !m_excludeKeys.empty(); }; - StringSet& getExcludeKeys() - { return m_excludeKeys; } - sal_Bool matchedWithExcludeKey( const OUString& keyName); - sal_Bool fullCheck() - { return m_bFullCheck; } - sal_Bool forceOutput() - { return m_bForceOutput; } - sal_Bool unoTypeCheck() - { return m_bUnoTypeCheck; } - bool checkUnpublished() const { return m_checkUnpublished; } -protected: - OString m_program; - OString m_regName1; - OString m_regName2; - OString m_startKey; + std::string m_regName1; + std::string m_regName2; + OUString m_startKey; StringSet m_excludeKeys; - sal_Bool m_bFullCheck; - sal_Bool m_bForceOutput; - sal_Bool m_bUnoTypeCheck; + bool m_bFullCheck; + bool m_bForceOutput; + bool m_bUnoTypeCheck; bool m_checkUnpublished; }; -sal_Bool Options::initOptions(int ac, char* av[], sal_Bool bCmdFile) -{ - sal_Bool bRet = sal_True; - sal_uInt16 i=0; +#define U2S( s ) OUStringToOString(s, RTL_TEXTENCODING_UTF8).getStr() - if (!bCmdFile) - { - bCmdFile = sal_True; +inline rtl::OUString makeOUString (std::string const & s) +{ + return rtl::OUString(s.c_str(), s.size(), RTL_TEXTENCODING_UTF8, OSTRING_TO_OUSTRING_CVTFLAGS); +} - m_program = av[0]; +inline rtl::OUString shortName(rtl::OUString const & fullName) +{ + return fullName.copy(fullName.lastIndexOf('/') + 1); +} - if (ac < 2) - { - fprintf(stdout, "%s", prepareHelp().getStr()); - bRet = sal_False; - } +bool Options_Impl::setRegName_Impl(char c, std::string const & param) +{ + bool one = (c == '1'), two = (c == '2'); + if (one) + m_regName1 = param; + if (two) + m_regName2 = param; + return (one || two); +} - i = 1; - } else - { - i = 0; - } +//virtual +void Options_Impl::printUsage_Impl() const +{ + std::string const & rProgName = getProgramName(); + fprintf(stderr, + "Usage: %s -r1<filename> -r2<filename> [-options] | @<filename>\n", rProgName.c_str() + ); + fprintf(stderr, + " -r1<filename> = filename specifies the name of the first registry.\n" + " -r2<filename> = filename specifies the name of the second registry.\n" + " @<filename> = filename specifies a command file.\n" + "Options:\n" + " -s<name> = name specifies the name of a start key. If no start key\n" + " |S<name> is specified the comparison starts with the root key.\n" + " -x<name> = name specifies the name of a key which won't be compared. All\n" + " |X<name> subkeys won't be compared also. This option can be used more than once.\n" + " -f|F = force the detailed output of any diffenrences. Default\n" + " is that only the number of differences is returned.\n" + " -c|C = make a complete check, that means any differences will be\n" + " detected. Default is only a compatibility check that means\n" + " only UNO typelibrary entries will be checked.\n" + " -t|T = make an UNO type compatiblity check. This means that registry 2\n" + " will be checked against registry 1. If a interface in r2 contains\n" + " more methods or the methods are in a different order as in r1, r2 is\n" + " incompatible to r1. But if a service in r2 supports more properties as\n" + " in r1 and the new properties are 'optional' it is compatible.\n" + " -u|U = additionally check types that are unpublished in registry 1.\n" + " -h|-? = print this help message and exit.\n" + ); + fprintf(stderr, + "\n%s Version 1.0\n\n", rProgName.c_str() + ); +} - char *s=NULL; - for (; i < ac; i++) +// virtual +bool Options_Impl::initOptions_Impl (std::vector< std::string > & rArgs) +{ + std::vector< std::string >::const_iterator first = rArgs.begin(), last = rArgs.end(); + for (; first != last; ++first) { - if (av[i][0] == '-') + if ((*first)[0] != '-') + { + return badOption("invalid", (*first).c_str()); + } + switch ((*first)[1]) { - switch (av[i][1]) + case 'r': + case 'R': { - case 'r': - case 'R': + if (!((++first != last) && ((*first)[0] != '-'))) { - sal_Bool bFirst = sal_True; - if (av[i][2] == '2') - { - bFirst = sal_False; - } else if (av[i][2] != '1') - { - fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); - } - if (av[i][3] == '\0') - { - if (i < ac - 1 && av[i+1][0] != '-') - { - i++; - s = av[i]; - } else - { - fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); - bRet = sal_False; - break; - } - } else - { - s = av[i] + 2; - } + return badOption("invalid", (*first).c_str()); + } - if ( bFirst ) - { - m_regName1 = OString(s); - } else + std::string option(*first), param; + if (option.size() == 1) + { + // "-r<n><space><param>" + if (!((++first != last) && ((*first)[0] != '-'))) { - m_regName2 = OString(s); + return badOption("invalid", (*first).c_str()); } + param = (*first); } - break; - case 's': - case 'S': - if (av[i][2] == '\0') - { - if (i < ac - 1 && av[i+1][0] != '-') - { - i++; - s = av[i]; - } else - { - fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); - bRet = sal_False; - break; - } - } else - { - s = av[i] + 2; - } - m_startKey = OString(s); - break; - case 'x': - case 'X': - if (av[i][2] == '\0') - { - if (i < ac - 1 && av[i+1][0] != '-') - { - i++; - s = av[i]; - } else - { - fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); - bRet = sal_False; - break; - } - } else - { - s = av[i] + 2; - } - m_excludeKeys.insert(S2U(s)); - break; - case 'c': - case 'C': - if (av[i][2] != '\0') - { - fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); - } - m_bFullCheck = sal_True; - break; - case 'f': - case 'F': - if (av[i][2] != '\0') - { - fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); - bRet = sal_False; - } - m_bForceOutput = sal_True; - break; - case 't': - case 'T': - if (av[i][2] != '\0') - { - fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); - } - m_bUnoTypeCheck = sal_True; - break; - case 'u': - case 'U': - if (av[i][2] != '\0') - { - fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); - } - m_checkUnpublished = true; - break; - case 'h': - case '?': - if (av[i][2] != '\0') - { - fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]); - bRet = sal_False; - } else - { - fprintf(stdout, "%s", prepareHelp().getStr()); - exit(0); - } - break; - default: - fprintf(stdout, "%s: unknown option '%s'\n", m_program.getStr(), av[i]); - bRet = sal_False; - break; + else + { + // "-r<n><param>" + param = std::string(&(option[1]), option.size() - 1); + } + if (!setRegName_Impl(option[0], param)) + { + return badOption("invalid", option.c_str()); + } + break; } - } else - { - if (av[i][0] == '@') + case 's': + case 'S': { - FILE* cmdFile = fopen(av[i]+1, "r"); - if( cmdFile == NULL ) - { - fprintf(stdout, "%s", prepareHelp().getStr()); - bRet = sal_False; - } else + if (!((++first != last) && ((*first)[0] != '-'))) { - int rargc=0; - char* rargv[512]; - char buffer[512]; - - while ( fscanf(cmdFile, "%s", buffer) != EOF ) - { - rargv[rargc]= strdup(buffer); - rargc++; - } - fclose(cmdFile); - - bRet = initOptions(rargc, rargv, bCmdFile); - - for (long j=0; j < rargc; j++) - { - free(rargv[j]); - } + return badOption("invalid", (*first).c_str()); + } + m_startKey = makeOUString(*first); + break; + } + case 'x': + case 'X': + { + if (!((++first != last) && ((*first)[0] != '-'))) + { + return badOption("invalid", (*first).c_str()); + } + m_excludeKeys.insert(makeOUString(*first)); + break; + } + case 'f': + case 'F': + { + if ((*first).size() > 2) + { + return badOption("invalid", (*first).c_str()); + } + m_bForceOutput = sal_True; + break; + } + case 'c': + case 'C': + { + if ((*first).size() > 2) + { + return badOption("invalid", (*first).c_str()); + } + m_bFullCheck = sal_True; + break; + } + case 't': + case 'T': + { + if ((*first).size() > 2) + { + return badOption("invalid", (*first).c_str()); + } + m_bUnoTypeCheck = sal_True; + break; + } + case 'u': + case 'U': + { + if ((*first).size() > 2) + { + return badOption("invalid", (*first).c_str()); } - } else + m_checkUnpublished = true; + break; + } + case 'h': + case '?': { - fprintf(stdout, "%s: unknown option '%s'\n", m_program.getStr(), av[i]); - bRet = sal_False; + if ((*first).size() > 2) + { + return badOption("invalid", (*first).c_str()); + } + return printUsage(); + // break; // Unreachable + } + default: + { + return badOption("unknown", (*first).c_str()); + // break; // Unreachable } } } - if ( bRet ) + if ( m_regName1.size() == 0 ) { - if ( m_regName1.getLength() == 0 ) - { - fprintf(stdout, "%s: missing option '-r1'\n", m_program.getStr()); - bRet = sal_False; - } - if ( m_regName2.getLength() == 0 ) - { - fprintf(stdout, "%s: missing option '-r2'\n", m_program.getStr()); - bRet = sal_False; - } + return badOption("missing", "-r1"); } - - return bRet; -} - -OString Options::prepareHelp() -{ - OString help("\nusing: "); - help += m_program + " -r1<filename> -r2<filename> [-options] | @<filename>\n"; - help += " -r1<filename> = filename specifies the name of the first registry.\n"; - help += " -r2<filename> = filename specifies the name of the second registry.\n"; - help += " @<filename> = filename specifies a command file.\n"; - help += "Options:\n"; - help += " -s<name> = name specifies the name of a start key. If no start key\n"; - help += " |S<name> is specified the comparison starts with the root key.\n"; - help += " -x<name> = name specifies the name of a key which won't be compared. All\n"; - help += " |X<name> subkeys won't be compared also. This option can be used more than once.\n"; - help += " -f|F = force the detailed output of any diffenrences. Default\n"; - help += " is that only the number of differences is returned.\n"; - help += " -c|C = make a complete check, that means any differences will be\n"; - help += " detected. Default is only a compatibility check that means\n"; - help += " only UNO typelibrary entries will be checked.\n"; - help += " -t|T = make an UNO type compatiblity check. This means that registry 2\n"; - help += " will be checked against registry 1. If a interface in r2 contains\n"; - help += " more methods or the methods are in a different order as in r1, r2 is\n"; - help += " incompatible to r1. But if a service in r2 supports more properties as\n"; - help += " in r1 and the new properties are 'optonal' it is compatible.\n"; - help += " -u|U = additionally check types that are unpublished in registry 1.\n"; - help += " -h|-? = print this help message and exit.\n"; - help += prepareVersion(); - - return help; -} - -OString Options::prepareVersion() -{ - OString version("\nSun Microsystems (R) "); - version += m_program + " Version 1.0\n\n"; - return version; + if ( m_regName2.size() == 0 ) + { + return badOption("missing", "-r2"); + } + return true; } -sal_Bool Options::matchedWithExcludeKey( const OUString& keyName) +bool Options_Impl::matchedWithExcludeKey( const OUString& keyName) const { - if ( m_excludeKeys.empty() ) - return sal_False; - - StringSet::const_iterator iter = m_excludeKeys.begin(); - StringSet::const_iterator end = m_excludeKeys.end(); - - while ( iter != end ) + if (!m_excludeKeys.empty()) { - if ( keyName.indexOf(*iter) == 0) - return sal_True; - - ++iter; + StringSet::const_iterator first = m_excludeKeys.begin(), last = m_excludeKeys.end(); + for (; first != last; ++first) + { + if (keyName.indexOf(*first) == 0) + return true; + } } - - return sal_False; + return false; } -static Options options; - static char const * getTypeClass(RTTypeClass typeClass) { switch (typeClass) @@ -550,6 +407,7 @@ static char const * getConstValueType(RTConstValue& constValue) return "NONE"; } } + static void printConstValue(RTConstValue& constValue) { switch (constValue.m_type) @@ -602,9 +460,17 @@ static void printConstValue(RTConstValue& constValue) } } -static sal_uInt32 checkConstValue(const OUString& keyName, +static void dumpTypeClass(sal_Bool & rbDump, RTTypeClass typeClass, OUString const & keyName) +{ + if (rbDump) + fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); + rbDump = sal_False; +} + +static sal_uInt32 checkConstValue(Options_Impl const & options, + const OUString& keyName, RTTypeClass typeClass, - sal_Bool& bDump, + sal_Bool & bDump, RTConstValue& constValue1, RTConstValue& constValue2, sal_uInt16 index1) @@ -618,11 +484,7 @@ static sal_uInt32 checkConstValue(const OUString& keyName, { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " Field %d: Value1 = %s != Value2 = %s\n", index1, constValue1.m_value.aBool ? "TRUE" : "FALSE", constValue2.m_value.aBool ? "TRUE" : "FALSE"); @@ -635,11 +497,7 @@ static sal_uInt32 checkConstValue(const OUString& keyName, { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " Field %d: Value1 = %d != Value2 = %d\n", index1, constValue1.m_value.aByte, constValue2.m_value.aByte); } @@ -651,11 +509,7 @@ static sal_uInt32 checkConstValue(const OUString& keyName, { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " Field %d: Value1 = %d != Value2 = %d\n", index1, constValue1.m_value.aShort, constValue2.m_value.aShort); } @@ -667,11 +521,7 @@ static sal_uInt32 checkConstValue(const OUString& keyName, { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " Field %d: Value1 = %d != Value2 = %d\n", index1, constValue1.m_value.aUShort, constValue2.m_value.aUShort); } @@ -683,11 +533,7 @@ static sal_uInt32 checkConstValue(const OUString& keyName, { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " Field %d: Value1 = %ld != Value2 = %ld\n", index1, sal::static_int_cast< long >(constValue1.m_value.aLong), sal::static_int_cast< long >(constValue2.m_value.aLong)); @@ -700,11 +546,7 @@ static sal_uInt32 checkConstValue(const OUString& keyName, { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " Field %d: Value1 = %lu != Value2 = %lu\n", index1, sal::static_int_cast< unsigned long >(constValue1.m_value.aULong), sal::static_int_cast< unsigned long >(constValue2.m_value.aULong)); @@ -717,11 +559,7 @@ static sal_uInt32 checkConstValue(const OUString& keyName, { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf( stdout, " Field %d: Value1 = %s != Value2 = %s\n", index1, @@ -740,11 +578,7 @@ static sal_uInt32 checkConstValue(const OUString& keyName, { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf( stdout, " Field %d: Value1 = %s != Value2 = %s\n", index1, @@ -769,11 +603,7 @@ static sal_uInt32 checkConstValue(const OUString& keyName, { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " Field %d: Value1 = %f != Value2 = %f\n", index1, constValue1.m_value.aFloat, constValue2.m_value.aFloat); } @@ -785,11 +615,7 @@ static sal_uInt32 checkConstValue(const OUString& keyName, { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " Field %d: Value1 = %f != Value2 = %f\n", index1, constValue1.m_value.aDouble, constValue2.m_value.aDouble); } @@ -803,45 +629,37 @@ static sal_uInt32 checkConstValue(const OUString& keyName, return 0; } -static sal_uInt32 checkField(const OUString& keyName, +static sal_uInt32 checkField(Options_Impl const & options, + const OUString& keyName, RTTypeClass typeClass, - sal_Bool& bDump, + sal_Bool & bDump, typereg::Reader& reader1, typereg::Reader& reader2, sal_uInt16 index1, sal_uInt16 index2) { sal_uInt32 nError = 0; - if ( reader1.getFieldName(index1) != - reader2.getFieldName(index2) ) + if ( reader1.getFieldName(index1) != reader2.getFieldName(index2) ) { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Field %d: Name1 = %s != Name2 = %s\n", index1, U2S(reader1.getFieldName(index1)), U2S(reader2.getFieldName(index2))); } nError++; } - if ( reader1.getFieldTypeName(index1) != - reader2.getFieldTypeName(index2) ) + if ( reader1.getFieldTypeName(index1) != reader2.getFieldTypeName(index2) ) { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Field %d: Type1 = %s != Type2 = %s\n", index1, U2S(reader1.getFieldTypeName(index1)), U2S(reader2.getFieldTypeName(index2))); } nError++; - } else + } + else { RTConstValue constValue1 = reader1.getFieldValue(index1); RTConstValue constValue2 = reader2.getFieldValue(index2); @@ -849,11 +667,7 @@ static sal_uInt32 checkField(const OUString& keyName, { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Field %d: Access1 = %s != Access2 = %s\n", index1, getConstValueType(constValue1), getConstValueType(constValue2)); fprintf(stdout, " Field %d: Value1 = ", index1); @@ -863,9 +677,10 @@ static sal_uInt32 checkField(const OUString& keyName, fprintf(stdout, "\n;"); } nError++; - } else + } + else { - nError += checkConstValue(keyName, typeClass, bDump, constValue1, constValue2, index1); + nError += checkConstValue(options, keyName, typeClass, bDump, constValue1, constValue2, index1); } } @@ -873,11 +688,7 @@ static sal_uInt32 checkField(const OUString& keyName, { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Field %d: FieldAccess1 = %s != FieldAccess2 = %s\n", index1, getFieldAccess(reader1.getFieldFlags(index1)).getStr(), getFieldAccess(reader1.getFieldFlags(index2)).getStr()); @@ -885,16 +696,11 @@ static sal_uInt32 checkField(const OUString& keyName, nError++; } - if ( options.fullCheck() && - (reader1.getFieldDocumentation(index1) != reader2.getFieldDocumentation(index2)) ) + if ( options.fullCheck() && (reader1.getFieldDocumentation(index1) != reader2.getFieldDocumentation(index2)) ) { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Field %d: Doku1 = %s\n Doku2 = %s\n", index1, U2S(reader1.getFieldDocumentation(index1)), U2S(reader2.getFieldDocumentation(index2))); } @@ -935,24 +741,20 @@ static char const * getParamMode(RTParamMode paramMode) } } -static sal_uInt32 checkMethod(const OUString& keyName, +static sal_uInt32 checkMethod(Options_Impl const & options, + const OUString& keyName, RTTypeClass typeClass, - sal_Bool& bDump, + sal_Bool & bDump, typereg::Reader& reader1, typereg::Reader& reader2, sal_uInt16 index) { sal_uInt32 nError = 0; - if ( reader1.getMethodName(index) != - reader2.getMethodName(index) ) + if ( reader1.getMethodName(index) != reader2.getMethodName(index) ) { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Method1 %d: Name1 = %s != Name2 = %s\n", index, U2S(reader1.getMethodName(index)), U2S(reader2.getMethodName(index))); @@ -960,16 +762,11 @@ static sal_uInt32 checkMethod(const OUString& keyName, nError++; } - if ( reader1.getMethodReturnTypeName(index) != - reader2.getMethodReturnTypeName(index) ) + if ( reader1.getMethodReturnTypeName(index) != reader2.getMethodReturnTypeName(index) ) { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Method1 %d: ReturnType1 = %s != ReturnType2 = %s\n", index, U2S(reader1.getMethodReturnTypeName(index)), U2S(reader2.getMethodReturnTypeName(index))); @@ -983,11 +780,7 @@ static sal_uInt32 checkMethod(const OUString& keyName, { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Method %d : nParameters1 = %d != nParameters2 = %d\n", index, nParams1, nParams2); } nError++; @@ -999,27 +792,18 @@ static sal_uInt32 checkMethod(const OUString& keyName, { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Method %d, Parameter %d: Type1 = %s != Type2 = %s\n", index, i, U2S(reader1.getMethodParameterTypeName(index, i)), U2S(reader2.getMethodParameterTypeName(index, i))); } nError++; } - if ( options.fullCheck() && - (reader1.getMethodParameterName(index, i) != reader2.getMethodParameterName(index, i)) ) + if ( options.fullCheck() && (reader1.getMethodParameterName(index, i) != reader2.getMethodParameterName(index, i)) ) { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Method %d, Parameter %d: Name1 = %s != Name2 = %s\n", index, i, U2S(reader1.getMethodParameterName(index, i)), U2S(reader2.getMethodParameterName(index, i))); @@ -1030,11 +814,7 @@ static sal_uInt32 checkMethod(const OUString& keyName, { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Method %d, Parameter %d: Mode1 = %s != Mode2 = %s\n", index, i, getParamMode(reader1.getMethodParameterFlags(index, i)), getParamMode(reader2.getMethodParameterFlags(index, i))); @@ -1044,20 +824,12 @@ static sal_uInt32 checkMethod(const OUString& keyName, } if ( i < nParams1 && options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Registry1: Method %d contains %d more parameters\n", index, nParams1 - i); } if ( i < nParams2 && options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Registry2: Method %d contains %d more parameters\n", index, nParams2 - i); } @@ -1067,11 +839,7 @@ static sal_uInt32 checkMethod(const OUString& keyName, { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " nExceptions1 = %d != nExceptions2 = %d\n", nExcep1, nExcep2); } nError++; @@ -1082,11 +850,7 @@ static sal_uInt32 checkMethod(const OUString& keyName, { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Method %d, Exception %d: Name1 = %s != Name2 = %s\n", index, i, U2S(reader1.getMethodExceptionTypeName(index, i)), U2S(reader2.getMethodExceptionTypeName(index, i))); @@ -1096,20 +860,12 @@ static sal_uInt32 checkMethod(const OUString& keyName, } if ( i < nExcep1 && options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Registry1: Method %d contains %d more exceptions\n", index, nExcep1 - i); } if ( i < nExcep2 && options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Registry2: Method %d contains %d more exceptions\n", index, nExcep2 - i); } @@ -1117,11 +873,7 @@ static sal_uInt32 checkMethod(const OUString& keyName, { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Method %d: Mode1 = %s != Mode2 = %s\n", index, getMethodMode(reader1.getMethodFlags(index)), getMethodMode(reader2.getMethodFlags(index))); @@ -1129,16 +881,11 @@ static sal_uInt32 checkMethod(const OUString& keyName, nError++; } - if ( options.fullCheck() && - (reader1.getMethodDocumentation(index) != reader2.getMethodDocumentation(index)) ) + if ( options.fullCheck() && (reader1.getMethodDocumentation(index) != reader2.getMethodDocumentation(index)) ) { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Method %d: Doku1 = %s\n Doku2 = %s\n", index, U2S(reader1.getMethodDocumentation(index)), U2S(reader2.getMethodDocumentation(index))); @@ -1165,73 +912,54 @@ static char const * getReferenceType(RTReferenceType refType) } } -static sal_uInt32 checkReference(const OUString& keyName, +static sal_uInt32 checkReference(Options_Impl const & options, + const OUString& keyName, RTTypeClass typeClass, - sal_Bool& bDump, + sal_Bool & bDump, typereg::Reader& reader1, typereg::Reader& reader2, sal_uInt16 index1, sal_uInt16 index2) { sal_uInt32 nError = 0; - if ( reader1.getReferenceTypeName(index1) != - reader2.getReferenceTypeName(index2) ) + if ( reader1.getReferenceTypeName(index1) != reader2.getReferenceTypeName(index2) ) { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Reference %d: Name1 = %s != Name2 = %s\n", index1, U2S(reader1.getReferenceTypeName(index1)), U2S(reader2.getReferenceTypeName(index2))); } nError++; } - if ( reader1.getReferenceTypeName(index1) != - reader2.getReferenceTypeName(index2) ) + if ( reader1.getReferenceTypeName(index1) != reader2.getReferenceTypeName(index2) ) { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Reference %d: Type1 = %s != Type2 = %s\n", index1, getReferenceType(reader1.getReferenceSort(index1)), getReferenceType(reader2.getReferenceSort(index2))); } nError++; } - if ( options.fullCheck() && - (reader1.getReferenceDocumentation(index1) != reader2.getReferenceDocumentation(index2)) ) + if ( options.fullCheck() && (reader1.getReferenceDocumentation(index1) != reader2.getReferenceDocumentation(index2)) ) { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Reference %d: Doku1 = %s\n Doku2 = %s\n", index1, U2S(reader1.getReferenceDocumentation(index1)), U2S(reader2.getReferenceDocumentation(index2))); } nError++; } - if ( reader1.getReferenceFlags(index1) != - reader2.getReferenceFlags(index2) ) + if ( reader1.getReferenceFlags(index1) != reader2.getReferenceFlags(index2) ) { if ( options.forceOutput() && !options.unoTypeCheck() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " Reference %d: Access1 = %s != Access2 = %s\n", index1, getFieldAccess(reader1.getReferenceFlags(index1)).getStr(), getFieldAccess(reader1.getReferenceFlags(index2)).getStr()); @@ -1241,9 +969,10 @@ static sal_uInt32 checkReference(const OUString& keyName, return nError; } -static sal_uInt32 checkFieldsWithoutOrder(const OUString& keyName, +static sal_uInt32 checkFieldsWithoutOrder(Options_Impl const & options, + const OUString& keyName, RTTypeClass typeClass, - sal_Bool& bDump, + sal_Bool & bDump, typereg::Reader& reader1, typereg::Reader& reader2) { @@ -1257,13 +986,9 @@ static sal_uInt32 checkFieldsWithoutOrder(const OUString& keyName, { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } - fprintf(stdout, " %s1 contains %d more properties as %s2\n", - getTypeClass(typeClass), nFields1-nFields2, getTypeClass(typeClass)); + dumpTypeClass (bDump, typeClass, keyName); + fprintf(stdout, " %s1 contains %d more properties as %s2\n", + getTypeClass(typeClass), nFields1-nFields2, getTypeClass(typeClass)); } } @@ -1274,7 +999,7 @@ static sal_uInt32 checkFieldsWithoutOrder(const OUString& keyName, { for (j=0; j < nFields2; j++) { - if (!checkField(keyName, typeClass, bDump, reader1, reader2, i, j)) + if (!checkField(options, keyName, typeClass, bDump, reader1, reader2, i, j)) { bFound = sal_True; moreProps.insert(j); @@ -1285,16 +1010,13 @@ static sal_uInt32 checkFieldsWithoutOrder(const OUString& keyName, { if (options.forceOutput()) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass (bDump, typeClass, keyName); fprintf(stdout, " incompatible change: Field %d ('%s') of r1 is not longer a property of this %s in r2\n", i, U2S(shortName(reader1.getFieldName(i))), getTypeClass(typeClass)); } nError++; - } else + } + else { bFound = sal_False; } @@ -1310,12 +1032,10 @@ static sal_uInt32 checkFieldsWithoutOrder(const OUString& keyName, { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } - fprintf(stdout, " incompatible change: Field %d ('%s') of r2 is a new property compared to this %s in r1 and is not 'optional'\n", + dumpTypeClass (bDump, typeClass, keyName); + fprintf(stdout, + " incompatible change: Field %d ('%s') of r2 is a new property" + " compared to this %s in r1 and is not 'optional'\n", j, U2S(shortName(reader2.getFieldName(j))), getTypeClass(typeClass)); } nError++; @@ -1327,8 +1047,11 @@ static sal_uInt32 checkFieldsWithoutOrder(const OUString& keyName, return nError; } -static sal_uInt32 checkBlob(const OUString& keyName, typereg::Reader& reader1, sal_uInt32 size1, - typereg::Reader& reader2, sal_uInt32 size2) +static sal_uInt32 checkBlob( + Options_Impl const & options, + const OUString& keyName, + typereg::Reader& reader1, sal_uInt32 size1, + typereg::Reader& reader2, sal_uInt32 size2) { sal_uInt32 nError = 0; sal_Bool bDump = sal_True; @@ -1343,28 +1066,27 @@ static sal_uInt32 checkBlob(const OUString& keyName, typereg::Reader& reader1, s sal::static_int_cast< unsigned long >(size2)); } } - if (reader1.isPublished()) { - if (!reader2.isPublished()) { - if (options.forceOutput()) { - if (bDump) { - fprintf(stdout, "?: %s\n", U2S(keyName)); - bDump = false; - } + if (reader1.isPublished()) + { + if (!reader2.isPublished()) + { + if (options.forceOutput()) + { + dumpTypeClass(bDump, /*"?"*/ reader1.getTypeClass(), keyName); fprintf(stdout, " published in 1 but unpublished in 2\n"); } ++nError; } - } else if (!options.checkUnpublished()) { + } + else if (!options.checkUnpublished()) + { return nError; } if ( reader1.getTypeClass() != reader2.getTypeClass() ) { if ( options.forceOutput() ) { - if (bDump) { - fprintf(stdout, "?: %s\n", U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, /*"?"*/ reader1.getTypeClass(), keyName); fprintf(stdout, " TypeClass1 = %s != TypeClass2 = %s\n", getTypeClass(reader1.getTypeClass()), getTypeClass(reader2.getTypeClass())); @@ -1373,16 +1095,11 @@ static sal_uInt32 checkBlob(const OUString& keyName, typereg::Reader& reader1, s } RTTypeClass typeClass = reader1.getTypeClass(); - if ( reader1.getTypeName() != reader2.getTypeName() ) { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " TypeName1 = %s != TypeName2 = %s\n", U2S(reader1.getTypeName()), U2S(reader2.getTypeName())); } @@ -1392,28 +1109,23 @@ static sal_uInt32 checkBlob(const OUString& keyName, typereg::Reader& reader1, s typeClass == RT_TYPE_STRUCT || typeClass == RT_TYPE_EXCEPTION) ) { - if (reader1.getSuperTypeCount() != reader2.getSuperTypeCount()) { - if (bDump) { - fprintf( - stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = false; - } + if (reader1.getSuperTypeCount() != reader2.getSuperTypeCount()) + { + dumpTypeClass(bDump, typeClass, keyName); fprintf( stdout, " SuperTypeCount1 = %d != SuperTypeCount2 = %d\n", static_cast< int >(reader1.getSuperTypeCount()), static_cast< int >(reader2.getSuperTypeCount())); ++nError; - } else { - for (sal_Int16 i = 0; i < reader1.getSuperTypeCount(); ++i) { + } else + { + for (sal_Int16 i = 0; i < reader1.getSuperTypeCount(); ++i) + { if (reader1.getSuperTypeName(i) != reader2.getSuperTypeName(i)) { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " SuperTypeName1 = %s != SuperTypeName2 = %s\n", U2S(reader1.getSuperTypeName(i)), U2S(reader2.getSuperTypeName(i))); } @@ -1422,6 +1134,7 @@ static sal_uInt32 checkBlob(const OUString& keyName, typereg::Reader& reader1, s } } } + sal_uInt16 nFields1 = (sal_uInt16)reader1.getFieldCount(); sal_uInt16 nFields2 = (sal_uInt16)reader2.getFieldCount(); sal_Bool bCheckNormal = sal_True; @@ -1439,41 +1152,31 @@ static sal_uInt32 checkBlob(const OUString& keyName, typereg::Reader& reader1, s { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " nFields1 = %d != nFields2 = %d\n", nFields1, nFields2); } nError++; } + sal_uInt16 i; for (i=0; i < nFields1 && i < nFields2; i++) { - nError += checkField(keyName, typeClass, bDump, reader1, reader2, i, i); + nError += checkField(options, keyName, typeClass, bDump, reader1, reader2, i, i); } if ( i < nFields1 && options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " Registry1 contains %d more fields\n", nFields1 - i); } if ( i < nFields2 && options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " Registry2 contains %d more fields\n", nFields2 - i); } - } else + } + else { - nError += checkFieldsWithoutOrder(keyName, typeClass, bDump, reader1, reader2); + nError += checkFieldsWithoutOrder(options, keyName, typeClass, bDump, reader1, reader2); } if ( typeClass == RT_TYPE_INTERFACE ) @@ -1484,19 +1187,16 @@ static sal_uInt32 checkBlob(const OUString& keyName, typereg::Reader& reader1, s { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " nMethods1 = %d != nMethods2 = %d\n", nMethods1, nMethods2); } nError++; } + sal_uInt16 i; for (i=0; i < nMethods1 && i < nMethods2; i++) { - nError += checkMethod(keyName, typeClass, bDump, reader1, reader2, i); + nError += checkMethod(options, keyName, typeClass, bDump, reader1, reader2, i); } if ( i < nMethods1 && options.forceOutput() ) { @@ -1520,11 +1220,7 @@ static sal_uInt32 checkBlob(const OUString& keyName, typereg::Reader& reader1, s { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " service1 contains %d more references as service2\n", nReference1-nReference2); } @@ -1537,7 +1233,7 @@ static sal_uInt32 checkBlob(const OUString& keyName, typereg::Reader& reader1, s { for (j=0; j < nReference2; j++) { - if (!checkReference(keyName, typeClass, bDump, reader1, reader2, i, j)) + if (!checkReference(options, keyName, typeClass, bDump, reader1, reader2, i, j)) { bFound = sal_True; moreReferences.insert(j); @@ -1548,16 +1244,15 @@ static sal_uInt32 checkBlob(const OUString& keyName, typereg::Reader& reader1, s { if (options.forceOutput()) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } - fprintf(stdout, " incompatible change: Reference %d ('%s') in 'r1' is not longer a reference of this service in 'r2'\n", + dumpTypeClass(bDump, typeClass, keyName); + fprintf(stdout, + " incompatible change: Reference %d ('%s') in 'r1' is not longer a reference" + " of this service in 'r2'\n", i, U2S(shortName(reader1.getReferenceTypeName(i)))); } nError++; - } else + } + else { bFound = sal_False; } @@ -1573,12 +1268,10 @@ static sal_uInt32 checkBlob(const OUString& keyName, typereg::Reader& reader1, s { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } - fprintf(stdout, " incompatible change: Reference %d ('%s') of r2 is a new reference compared to this service in r1 and is not 'optional'\n", + dumpTypeClass(bDump, typeClass, keyName); + fprintf(stdout, + " incompatible change: Reference %d ('%s') of r2 is a new reference" + " compared to this service in r1 and is not 'optional'\n", j, U2S(shortName(reader2.getReferenceTypeName(j)))); } nError++; @@ -1586,25 +1279,23 @@ static sal_uInt32 checkBlob(const OUString& keyName, typereg::Reader& reader1, s } } } - } else + } + else { if ( nReference1 != nReference2 ) { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " nReferences1 = %d != nReferences2 = %d\n", nReference1, nReference2); } nError++; } + sal_uInt16 i; for (i=0; i < nReference1 && i < nReference2; i++) { - nError += checkReference(keyName, typeClass, bDump, reader1, reader2, i, i); + nError += checkReference(options, keyName, typeClass, bDump, reader1, reader2, i, i); } if ( i < nReference1 && options.forceOutput() ) { @@ -1621,38 +1312,19 @@ static sal_uInt32 checkBlob(const OUString& keyName, typereg::Reader& reader1, s { if ( options.forceOutput() ) { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } + dumpTypeClass(bDump, typeClass, keyName); fprintf(stdout, " Doku1 = %s\n Doku2 = %s\n", U2S(reader1.getDocumentation()), U2S(reader2.getDocumentation())); } nError++; } -/* - if ( nError && - (!keyName.compareTo(OUString::createFromAscii("/UCR/drafts"), 11) || - !keyName.compareTo(OUString::createFromAscii("/drafts"), 7)) ) - { - if ( options.forceOutput() ) - { - if ( bDump ) - { - fprintf(stdout, "%s: %s\n", getTypeClass(typeClass), U2S(keyName)); - bDump = sal_False; - } - fprintf(stdout, " Note: \"drafts\" type changed incompatible, no effect to the final API\n"); - } - return 0; - } -*/ return nError; } -static sal_uInt32 checkValueDifference(RegistryKey& key1, RegValueType valueType1, sal_uInt32 size1, - RegistryKey& key2, RegValueType valueType2, sal_uInt32 size2) +static sal_uInt32 checkValueDifference( + Options_Impl const & options, + RegistryKey& key1, RegValueType valueType1, sal_uInt32 size1, + RegistryKey& key2, RegValueType valueType2, sal_uInt32 size2) { OUString tmpName; sal_uInt32 nError = 0; @@ -1737,39 +1409,31 @@ static sal_uInt32 checkValueDifference(RegistryKey& key1, RegValueType valueType if ( bEqual) { - RegValue value1 = rtl_allocateMemory(size1); - RegValue value2 = rtl_allocateMemory(size2); + std::vector< sal_uInt8 > value1(size1); + key1.getValue(tmpName, &value1[0]); - key1.getValue(tmpName, value1); - key2.getValue(tmpName, value2); - - bEqual = (rtl_compareMemory(value1, value2, size1) == 0 ); + std::vector< sal_uInt8 > value2(size2); + key2.getValue(tmpName, &value2[0]); + bEqual = (rtl_compareMemory(&value1[0], &value2[0], value1.size()) == 0 ); if ( !bEqual && valueType1 == RG_VALUETYPE_BINARY && valueType2 == RG_VALUETYPE_BINARY ) { - typereg::Reader reader1( - value1, size1, false, TYPEREG_VERSION_1); - typereg::Reader reader2( - value2, size2, false, TYPEREG_VERSION_1); - + typereg::Reader reader1(&value1[0], value1.size(), false, TYPEREG_VERSION_1); + typereg::Reader reader2(&value2[0], value2.size(), false, TYPEREG_VERSION_1); if ( reader1.isValid() && reader2.isValid() ) { - return checkBlob(key1.getName(), reader1, size1, reader2, size2); + return checkBlob(options, key1.getName(), reader1, size1, reader2, size2); } } - - rtl_freeMemory(value1); - rtl_freeMemory(value2); - if ( bEqual ) { return 0; - } else + } + else { if ( options.forceOutput() ) { - fprintf(stdout, "Difference: key values of key \"%s\" are different\n", - U2S(key1.getName())); + fprintf(stdout, "Difference: key values of key \"%s\" are different\n", U2S(key1.getName())); } nError++; } @@ -1784,102 +1448,98 @@ static sal_uInt32 checkValueDifference(RegistryKey& key1, RegValueType valueType fprintf(stdout, " Registry 1: key has no value\n"); break; case RG_VALUETYPE_LONG: - case RG_VALUETYPE_STRING: - case RG_VALUETYPE_UNICODE: - { - RegValue value1 = rtl_allocateMemory(size1); - key1.getValue(tmpName, value1); - - switch (valueType1) { - case RG_VALUETYPE_LONG: + std::vector< sal_uInt8 > value1(size1); + key1.getValue(tmpName, &value1[0]); + fprintf(stdout, " Registry 1: Value: Type = RG_VALUETYPE_LONG\n"); fprintf( stdout, " Size = %lu\n", sal::static_int_cast< unsigned long >(size1)); - fprintf(stdout, " Data = %p\n", value1); - break; - case RG_VALUETYPE_STRING: + fprintf(stdout, " Data = %p\n", &value1[0]); + } + break; + case RG_VALUETYPE_STRING: + { + std::vector< sal_uInt8 > value1(size1); + key1.getValue(tmpName, &value1[0]); + fprintf(stdout, " Registry 1: Value: Type = RG_VALUETYPE_STRING\n"); fprintf( stdout, " Size = %lu\n", sal::static_int_cast< unsigned long >(size1)); - fprintf(stdout, " Data = \"%s\"\n", (sal_Char*)value1); - break; - case RG_VALUETYPE_UNICODE: - { - OUString uStrValue((sal_Unicode*)value1); + fprintf(stdout, " Data = \"%s\"\n", reinterpret_cast<char const*>(&value1[0])); + } + break; + case RG_VALUETYPE_UNICODE: + { + std::vector< sal_uInt8 > value1(size1); + key1.getValue(tmpName, &value1[0]); + + OUString uStrValue(reinterpret_cast<sal_Unicode const*>(&value1[0])); fprintf(stdout, " Registry 1: Value: Type = RG_VALUETYPE_UNICODE\n"); fprintf( stdout, " Size = %lu\n", sal::static_int_cast< unsigned long >(size1)); fprintf(stdout, " Data = \"%s\"\n", U2S(uStrValue)); - } - break; - default: - OSL_ASSERT(false); - break; } - - rtl_freeMemory(value1); - } break; case RG_VALUETYPE_BINARY: fprintf(stdout, " Registry 1: Value: Type = RG_VALUETYPE_BINARY\n"); break; case RG_VALUETYPE_LONGLIST: { - RegistryValueList<sal_Int32> valueList; - key1.getLongListValue(tmpName, valueList); - fprintf(stdout, " Registry 1: Value: Type = RG_VALUETYPE_LONGLIST\n"); - fprintf( - stdout, " Size = %lu\n", - sal::static_int_cast< unsigned long >(size1)); - sal_uInt32 length = valueList.getLength(); - for (sal_uInt32 i=0; i<length; i++) - { + RegistryValueList<sal_Int32> valueList; + key1.getLongListValue(tmpName, valueList); + fprintf(stdout, " Registry 1: Value: Type = RG_VALUETYPE_LONGLIST\n"); fprintf( - stdout, " Data[%lu] = %ld\n", - sal::static_int_cast< unsigned long >(i), - sal::static_int_cast< long >(valueList.getElement(i))); - } + stdout, " Size = %lu\n", + sal::static_int_cast< unsigned long >(size1)); + sal_uInt32 length = valueList.getLength(); + for (sal_uInt32 i=0; i<length; i++) + { + fprintf( + stdout, " Data[%lu] = %ld\n", + sal::static_int_cast< unsigned long >(i), + sal::static_int_cast< long >(valueList.getElement(i))); + } } break; case RG_VALUETYPE_STRINGLIST: { - RegistryValueList<sal_Char*> valueList; - key1.getStringListValue(tmpName, valueList); - fprintf(stdout, " Registry 1: Value: Type = RG_VALUETYPE_STRINGLIST\n"); - fprintf( - stdout, " Size = %lu\n", - sal::static_int_cast< unsigned long >(size1)); - sal_uInt32 length = valueList.getLength(); - for (sal_uInt32 i=0; i<length; i++) - { + RegistryValueList<sal_Char*> valueList; + key1.getStringListValue(tmpName, valueList); + fprintf(stdout, " Registry 1: Value: Type = RG_VALUETYPE_STRINGLIST\n"); fprintf( - stdout, " Data[%lu] = \"%s\"\n", - sal::static_int_cast< unsigned long >(i), - valueList.getElement(i)); - } + stdout, " Size = %lu\n", + sal::static_int_cast< unsigned long >(size1)); + sal_uInt32 length = valueList.getLength(); + for (sal_uInt32 i=0; i<length; i++) + { + fprintf( + stdout, " Data[%lu] = \"%s\"\n", + sal::static_int_cast< unsigned long >(i), + valueList.getElement(i)); + } } break; case RG_VALUETYPE_UNICODELIST: { - RegistryValueList<sal_Unicode*> valueList; - key1.getUnicodeListValue(tmpName, valueList); - fprintf(stdout, " Registry 1: Value: Type = RG_VALUETYPE_UNICODELIST\n"); - fprintf( - stdout, " Size = %lu\n", - sal::static_int_cast< unsigned long >(size1)); - sal_uInt32 length = valueList.getLength(); - OUString uStrValue; - for (sal_uInt32 i=0; i<length; i++) - { - uStrValue = OUString(valueList.getElement(i)); + RegistryValueList<sal_Unicode*> valueList; + key1.getUnicodeListValue(tmpName, valueList); + fprintf(stdout, " Registry 1: Value: Type = RG_VALUETYPE_UNICODELIST\n"); fprintf( - stdout, " Data[%lu] = \"%s\"\n", - sal::static_int_cast< unsigned long >(i), U2S(uStrValue)); - } + stdout, " Size = %lu\n", + sal::static_int_cast< unsigned long >(size1)); + sal_uInt32 length = valueList.getLength(); + OUString uStrValue; + for (sal_uInt32 i=0; i<length; i++) + { + uStrValue = OUString(valueList.getElement(i)); + fprintf( + stdout, " Data[%lu] = \"%s\"\n", + sal::static_int_cast< unsigned long >(i), U2S(uStrValue)); + } } break; } @@ -1890,102 +1550,98 @@ static sal_uInt32 checkValueDifference(RegistryKey& key1, RegValueType valueType fprintf(stdout, " Registry 2: key has no value\n"); break; case RG_VALUETYPE_LONG: - case RG_VALUETYPE_STRING: - case RG_VALUETYPE_UNICODE: - { - RegValue value2 = rtl_allocateMemory(size2); - key2.getValue(tmpName, value2); - - switch (valueType2) { - case RG_VALUETYPE_LONG: + std::vector< sal_uInt8 > value2(size2); + key2.getValue(tmpName, &value2[0]); + fprintf(stdout, " Registry 2: Value: Type = RG_VALUETYPE_LONG\n"); fprintf( stdout, " Size = %lu\n", sal::static_int_cast< unsigned long >(size2)); - fprintf(stdout, " Data = %p\n", value2); - break; - case RG_VALUETYPE_STRING: + fprintf(stdout, " Data = %p\n", &value2[0]); + } + break; + case RG_VALUETYPE_STRING: + { + std::vector< sal_uInt8 > value2(size2); + key2.getValue(tmpName, &value2[0]); + fprintf(stdout, " Registry 2: Value: Type = RG_VALUETYPE_STRING\n"); fprintf( stdout, " Size = %lu\n", sal::static_int_cast< unsigned long >(size2)); - fprintf(stdout, " Data = \"%s\"\n", (sal_Char*)value2); - break; - case RG_VALUETYPE_UNICODE: - { - OUString uStrValue((sal_Unicode*)value2); + fprintf(stdout, " Data = \"%s\"\n", reinterpret_cast<char const*>(&value2[0])); + } + break; + case RG_VALUETYPE_UNICODE: + { + std::vector< sal_uInt8 > value2(size2); + key2.getValue(tmpName, &value2[0]); + + OUString uStrValue(reinterpret_cast<sal_Unicode const*>(&value2[0])); fprintf(stdout, " Registry 2: Value: Type = RG_VALUETYPE_UNICODE\n"); fprintf( stdout, " Size = %lu\n", sal::static_int_cast< unsigned long >(size2)); fprintf(stdout, " Data = \"%s\"\n", U2S(uStrValue)); - } - break; - default: - OSL_ASSERT(false); - break; } - - rtl_freeMemory(value2); - } break; case RG_VALUETYPE_BINARY: fprintf(stdout, " Registry 2: Value: Type = RG_VALUETYPE_BINARY\n"); break; case RG_VALUETYPE_LONGLIST: { - RegistryValueList<sal_Int32> valueList; - key2.getLongListValue(tmpName, valueList); - fprintf(stdout, " Registry 2: Value: Type = RG_VALUETYPE_LONGLIST\n"); - fprintf( - stdout, " Size = %lu\n", - sal::static_int_cast< unsigned long >(size2)); - sal_uInt32 length = valueList.getLength(); - for (sal_uInt32 i=0; i<length; i++) - { + RegistryValueList<sal_Int32> valueList; + key2.getLongListValue(tmpName, valueList); + fprintf(stdout, " Registry 2: Value: Type = RG_VALUETYPE_LONGLIST\n"); fprintf( - stdout, " Data[%lu] = %ld\n", - sal::static_int_cast< unsigned long >(i), - sal::static_int_cast< long >(valueList.getElement(i))); - } + stdout, " Size = %lu\n", + sal::static_int_cast< unsigned long >(size2)); + sal_uInt32 length = valueList.getLength(); + for (sal_uInt32 i=0; i<length; i++) + { + fprintf( + stdout, " Data[%lu] = %ld\n", + sal::static_int_cast< unsigned long >(i), + sal::static_int_cast< long >(valueList.getElement(i))); + } } break; case RG_VALUETYPE_STRINGLIST: { - RegistryValueList<sal_Char*> valueList; - key2.getStringListValue(tmpName, valueList); - fprintf(stdout, " Registry 2: Value: Type = RG_VALUETYPE_STRINGLIST\n"); - fprintf( - stdout, " Size = %lu\n", - sal::static_int_cast< unsigned long >(size2)); - sal_uInt32 length = valueList.getLength(); - for (sal_uInt32 i=0; i<length; i++) - { + RegistryValueList<sal_Char*> valueList; + key2.getStringListValue(tmpName, valueList); + fprintf(stdout, " Registry 2: Value: Type = RG_VALUETYPE_STRINGLIST\n"); fprintf( - stdout, " Data[%lu] = \"%s\"\n", - sal::static_int_cast< unsigned long >(i), - valueList.getElement(i)); - } + stdout, " Size = %lu\n", + sal::static_int_cast< unsigned long >(size2)); + sal_uInt32 length = valueList.getLength(); + for (sal_uInt32 i=0; i<length; i++) + { + fprintf( + stdout, " Data[%lu] = \"%s\"\n", + sal::static_int_cast< unsigned long >(i), + valueList.getElement(i)); + } } break; case RG_VALUETYPE_UNICODELIST: { - RegistryValueList<sal_Unicode*> valueList; - key2.getUnicodeListValue(tmpName, valueList); - fprintf(stdout, " Registry 2: Value: Type = RG_VALUETYPE_UNICODELIST\n"); - fprintf( - stdout, " Size = %lu\n", - sal::static_int_cast< unsigned long >(size2)); - sal_uInt32 length = valueList.getLength(); - OUString uStrValue; - for (sal_uInt32 i=0; i<length; i++) - { - uStrValue = OUString(valueList.getElement(i)); + RegistryValueList<sal_Unicode*> valueList; + key2.getUnicodeListValue(tmpName, valueList); + fprintf(stdout, " Registry 2: Value: Type = RG_VALUETYPE_UNICODELIST\n"); fprintf( - stdout, " Data[%lu] = \"%s\"\n", - sal::static_int_cast< unsigned long >(i), U2S(uStrValue)); - } + stdout, " Size = %lu\n", + sal::static_int_cast< unsigned long >(size2)); + sal_uInt32 length = valueList.getLength(); + OUString uStrValue; + for (sal_uInt32 i=0; i<length; i++) + { + uStrValue = OUString(valueList.getElement(i)); + fprintf( + stdout, " Data[%lu] = \"%s\"\n", + sal::static_int_cast< unsigned long >(i), U2S(uStrValue)); + } } break; } @@ -1993,58 +1649,67 @@ static sal_uInt32 checkValueDifference(RegistryKey& key1, RegValueType valueType return nError; } -static bool hasPublishedChildren(RegistryKey & key) { +static bool hasPublishedChildren(Options_Impl const & options, RegistryKey & key) +{ RegistryKeyNames subKeyNames; key.getKeyNames(rtl::OUString(), subKeyNames); - for (sal_uInt32 i = 0; i < subKeyNames.getLength(); ++i) { + for (sal_uInt32 i = 0; i < subKeyNames.getLength(); ++i) + { rtl::OUString keyName(subKeyNames.getElement(i)); - if (!options.matchedWithExcludeKey(keyName)) { + if (!options.matchedWithExcludeKey(keyName)) + { keyName = keyName.copy(keyName.lastIndexOf('/') + 1); RegistryKey subKey; - if (!key.openKey(keyName, subKey)) { - if (options.forceOutput()) { + if (!key.openKey(keyName, subKey)) + { + if (options.forceOutput()) + { fprintf( stdout, ("WARNING: could not open key \"%s\" in registry" " \"%s\"\n"), U2S(subKeyNames.getElement(i)), - options.getRegName1().getStr()); + options.getRegName1().c_str()); } } - if (subKey.isValid()) { + if (subKey.isValid()) + { RegValueType type; sal_uInt32 size; - if (subKey.getValueInfo(rtl::OUString(), &type, &size) - != REG_NO_ERROR) + if (subKey.getValueInfo(rtl::OUString(), &type, &size) != REG_NO_ERROR) { - if (options.forceOutput()) { + if (options.forceOutput()) + { fprintf( stdout, ("WARNING: could not read key \"%s\" in registry" " \"%s\"\n"), U2S(subKeyNames.getElement(i)), - options.getRegName1().getStr()); + options.getRegName1().c_str()); } - } else if (type == RG_VALUETYPE_BINARY) { - char * value = new char[size]; + } + else if (type == RG_VALUETYPE_BINARY) + { bool published = false; - if (subKey.getValue(rtl::OUString(), value) != REG_NO_ERROR) + std::vector< sal_uInt8 > value(size); + if (subKey.getValue(rtl::OUString(), &value[0]) != REG_NO_ERROR) { - if (options.forceOutput()) { + if (options.forceOutput()) + { fprintf( stdout, ("WARNING: could not read key \"%s\" in" " registry \"%s\"\n"), U2S(subKeyNames.getElement(i)), - options.getRegName1().getStr()); + options.getRegName1().c_str()); } - } else { - published = typereg::Reader( - value, size, false, TYPEREG_VERSION_1). - isPublished(); } - delete[] value; - if (published) { + else + { + published = typereg::Reader(&value[0], value.size(), false, TYPEREG_VERSION_1).isPublished(); + } + if (published) + { return true; } } @@ -2055,7 +1720,9 @@ static bool hasPublishedChildren(RegistryKey & key) { } static sal_uInt32 checkDifferences( - RegistryKey& key, StringSet& keys, RegistryKeyNames& subKeyNames1, + Options_Impl const & options, + RegistryKey& key, StringSet& keys, + RegistryKeyNames& subKeyNames1, RegistryKeyNames& subKeyNames2) { sal_uInt32 nError = 0; @@ -2082,81 +1749,89 @@ static sal_uInt32 checkDifferences( if ( options.forceOutput() ) { fprintf(stdout, "EXISTENCE: key \"%s\" exists only in registry \"%s\"\n", - U2S(subKeyNames1.getElement(i)), options.getRegName1().getStr()); + U2S(subKeyNames1.getElement(i)), options.getRegName1().c_str()); } nError++; } else { rtl::OUString keyName(subKeyNames1.getElement(i)); - if (!options.matchedWithExcludeKey(keyName)) { + if (!options.matchedWithExcludeKey(keyName)) + { keyName = keyName.copy(keyName.lastIndexOf('/') + 1); RegistryKey subKey; - if (key.openKey(keyName, subKey)) { - if (options.forceOutput()) { + if (key.openKey(keyName, subKey)) + { + if (options.forceOutput()) + { fprintf( stdout, ("ERROR: could not open key \"%s\" in registry" " \"%s\"\n"), U2S(subKeyNames1.getElement(i)), - options.getRegName1().getStr()); + options.getRegName1().c_str()); } ++nError; } - if (subKey.isValid()) { + if (subKey.isValid()) + { RegValueType type; sal_uInt32 size; - if (subKey.getValueInfo(rtl::OUString(), &type, &size) - != REG_NO_ERROR) + if (subKey.getValueInfo(rtl::OUString(), &type, &size) != REG_NO_ERROR) { - if (options.forceOutput()) { + if (options.forceOutput()) + { fprintf( stdout, ("ERROR: could not read key \"%s\" in" " registry \"%s\"\n"), U2S(subKeyNames1.getElement(i)), - options.getRegName1().getStr()); + options.getRegName1().c_str()); } ++nError; - } else if (type == RG_VALUETYPE_BINARY) { - char * value = new char[size]; - if (subKey.getValue(rtl::OUString(), value) - != REG_NO_ERROR) + } + else if (type == RG_VALUETYPE_BINARY) + { + std::vector< sal_uInt8 > value(size); + if (subKey.getValue(rtl::OUString(), &value[0]) != REG_NO_ERROR) { - if (options.forceOutput()) { + if (options.forceOutput()) + { fprintf( stdout, ("ERROR: could not read key \"%s\" in" " registry \"%s\"\n"), U2S(subKeyNames1.getElement(i)), - options.getRegName1().getStr()); + options.getRegName1().c_str()); } ++nError; - } else { - typereg::Reader reader( - value, size, false, TYPEREG_VERSION_1); - if (reader.getTypeClass() == RT_TYPE_MODULE) { - if (options.checkUnpublished() - || hasPublishedChildren(subKey)) + } + else + { + typereg::Reader reader(&value[0], value.size(), false, TYPEREG_VERSION_1); + if (reader.getTypeClass() == RT_TYPE_MODULE) + { + if (options.checkUnpublished() || hasPublishedChildren(options, subKey)) { - if (options.forceOutput()) { + if (options.forceOutput()) + { fprintf( stdout, ("EXISTENCE: module \"%s\"" " %sexists only in registry" " 1\n"), - U2S(subKeyNames1.getElement( - i)), + U2S(subKeyNames1.getElement(i)), (options.checkUnpublished() ? "" : "with published children ")); } ++nError; } - } else if (options.checkUnpublished() - || reader.isPublished()) + } + else if (options.checkUnpublished() || reader.isPublished()) { - if (options.forceOutput()) { + if (options.forceOutput()) + { fprintf( stdout, ("EXISTENCE: %spublished key \"%s\"" @@ -2167,7 +1842,6 @@ static sal_uInt32 checkDifferences( ++nError; } } - delete[] value; } } } @@ -2192,7 +1866,7 @@ static sal_uInt32 checkDifferences( if ( options.forceOutput() ) { fprintf(stdout, "EXISTENCE: key \"%s\" exists only in registry \"%s\"\n", - U2S(subKeyNames2.getElement(i)), options.getRegName2().getStr()); + U2S(subKeyNames2.getElement(i)), options.getRegName2().c_str()); } nError++; } @@ -2200,7 +1874,10 @@ static sal_uInt32 checkDifferences( return nError; } -static sal_uInt32 compareKeys(RegistryKey& key1, RegistryKey& key2) +static sal_uInt32 compareKeys( + Options_Impl const & options, + RegistryKey& key1, + RegistryKey& key2) { sal_uInt32 nError = 0; @@ -2208,16 +1885,17 @@ static sal_uInt32 compareKeys(RegistryKey& key1, RegistryKey& key2) RegValueType valueType2 = RG_VALUETYPE_NOT_DEFINED; sal_uInt32 size1 = 0; sal_uInt32 size2 = 0; + OUString tmpName; RegError e1 = key1.getValueInfo(tmpName, &valueType1, &size1); RegError e2 = key2.getValueInfo(tmpName, &valueType2, &size2); - - if ( e1 == e2 && e1 != REG_VALUE_NOT_EXISTS && e1 != REG_INVALID_VALUE ) + if ( (e1 == e2) && (e1 != REG_VALUE_NOT_EXISTS) && (e1 != REG_INVALID_VALUE) ) { - nError += checkValueDifference(key1, valueType1, size1, key2, valueType2, size2); - } else + nError += checkValueDifference(options, key1, valueType1, size1, key2, valueType2, size2); + } + else { - if ( e1 != REG_INVALID_VALUE || e2 != REG_INVALID_VALUE ) + if ( (e1 != REG_INVALID_VALUE) || (e2 != REG_INVALID_VALUE) ) { if ( options.forceOutput() ) { @@ -2234,16 +1912,14 @@ static sal_uInt32 compareKeys(RegistryKey& key1, RegistryKey& key2) key2.getKeyNames(tmpName, subKeyNames2); StringSet keys; - nError += checkDifferences(key1, keys, subKeyNames1, subKeyNames2); + nError += checkDifferences(options, key1, keys, subKeyNames1, subKeyNames2); StringSet::iterator iter = keys.begin(); StringSet::iterator end = keys.end(); - RegistryKey subKey1, subKey2; - OUString keyName; while ( iter != end ) { - keyName = OUString(*iter); + OUString keyName(*iter); if ( options.matchedWithExcludeKey(keyName) ) { ++iter; @@ -2252,30 +1928,33 @@ static sal_uInt32 compareKeys(RegistryKey& key1, RegistryKey& key2) sal_Int32 nPos = keyName.lastIndexOf( '/' ); keyName = keyName.copy( nPos != -1 ? nPos+1 : 0 ); + + RegistryKey subKey1; if ( key1.openKey(keyName, subKey1) ) { if ( options.forceOutput() ) { fprintf(stdout, "ERROR: could not open key \"%s\" in registry \"%s\"\n", - U2S(*iter), options.getRegName1().getStr()); + U2S(*iter), options.getRegName1().c_str()); } nError++; } + + RegistryKey subKey2; if ( key2.openKey(keyName, subKey2) ) { if ( options.forceOutput() ) { fprintf(stdout, "ERROR: could not open key \"%s\" in registry \"%s\"\n", - U2S(*iter), options.getRegName2().getStr()); + U2S(*iter), options.getRegName2().c_str()); } nError++; } + if ( subKey1.isValid() && subKey2.isValid() ) { - nError += compareKeys(subKey1, subKey2); + nError += compareKeys(options, subKey1, subKey2); } - subKey1.releaseKey(); - subKey2.releaseKey(); ++iter; } @@ -2288,93 +1967,107 @@ int main( int argc, char * argv[] ) int _cdecl main( int argc, char * argv[] ) #endif { - if ( !options.initOptions(argc, argv) ) + std::vector< std::string > args; + + Options_Impl options(argv[0]); + for (int i = 1; i < argc; i++) { - exit(1); + if (!Options::checkArgument(args, argv[i], strlen(argv[i]))) + { + // failure. + options.printUsage(); + return (1); + } + } + if (!options.initOptions(args)) + { + return (1); } - OUString regName1( convertToFileUrl(options.getRegName1()) ); - OUString regName2( convertToFileUrl(options.getRegName2()) ); - - Registry reg1; - Registry reg2; + OUString regName1( convertToFileUrl(options.getRegName1().c_str(), options.getRegName1().size()) ); + OUString regName2( convertToFileUrl(options.getRegName2().c_str(), options.getRegName2().size()) ); + Registry reg1, reg2; if ( reg1.open(regName1, REG_READONLY) ) { fprintf(stdout, "%s: open registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getRegName1().getStr()); - exit(2); + options.getProgramName().c_str(), options.getRegName1().c_str()); + return (2); } if ( reg2.open(regName2, REG_READONLY) ) { fprintf(stdout, "%s: open registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getRegName2().getStr()); - exit(3); + options.getProgramName().c_str(), options.getRegName2().c_str()); + return (3); } RegistryKey key1, key2; if ( reg1.openRootKey(key1) ) { fprintf(stdout, "%s: open root key of registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getRegName1().getStr()); - exit(4); + options.getProgramName().c_str(), options.getRegName1().c_str()); + return (4); } if ( reg2.openRootKey(key2) ) { fprintf(stdout, "%s: open root key of registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getRegName2().getStr()); - exit(5); + options.getProgramName().c_str(), options.getRegName2().c_str()); + return (5); } + if ( options.isStartKeyValid() ) { - if ( options.matchedWithExcludeKey( S2U(options.getStartKey()) ) ) + if ( options.matchedWithExcludeKey( options.getStartKey() ) ) { fprintf(stdout, "%s: start key is equal to one of the exclude keys\n", - options.getProgramName().getStr()); - exit(6); + options.getProgramName().c_str()); + return (6); } RegistryKey sk1, sk2; - if ( key1.openKey(S2U(options.getStartKey()), sk1) ) + if ( key1.openKey(options.getStartKey(), sk1) ) { fprintf(stdout, "%s: open start key of registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getRegName1().getStr()); - exit(7); + options.getProgramName().c_str(), options.getRegName1().c_str()); + return (7); } - if ( key2.openKey(S2U(options.getStartKey()), sk2) ) + if ( key2.openKey(options.getStartKey(), sk2) ) { fprintf(stdout, "%s: open start key of registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getRegName2().getStr()); - exit(8); + options.getProgramName().c_str(), options.getRegName2().c_str()); + return (8); } key1 = sk1; key2 = sk2; } - sal_uInt32 nError = compareKeys(key1, key2); + sal_uInt32 nError = compareKeys(options, key1, key2); if ( nError ) { if ( options.unoTypeCheck() ) { fprintf(stdout, "%s: registries are incompatible: %lu differences!\n", - options.getProgramName().getStr(), + options.getProgramName().c_str(), sal::static_int_cast< unsigned long >(nError)); - } else + } + else { fprintf(stdout, "%s: registries contain %lu differences!\n", - options.getProgramName().getStr(), + options.getProgramName().c_str(), sal::static_int_cast< unsigned long >(nError)); } - } else + } + else { if ( options.unoTypeCheck() ) { fprintf(stdout, "%s: registries are compatible!\n", - options.getProgramName().getStr()); - } else + options.getProgramName().c_str()); + } + else { fprintf(stdout, "%s: registries are equal!\n", - options.getProgramName().getStr()); + options.getProgramName().c_str()); } } @@ -2383,17 +2076,15 @@ int _cdecl main( int argc, char * argv[] ) if ( reg1.close() ) { fprintf(stdout, "%s: closing registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getRegName1().getStr()); - exit(9); + options.getProgramName().c_str(), options.getRegName1().c_str()); + return (9); } if ( reg2.close() ) { fprintf(stdout, "%s: closing registry \"%s\" failed\n", - options.getProgramName().getStr(), options.getRegName2().getStr()); - exit(10); + options.getProgramName().c_str(), options.getRegName2().c_str()); + return (10); } - return nError > 0 ? 11 : 0; + return ((nError > 0) ? 11 : 0); } - - diff --git a/registry/tools/regmerge.cxx b/registry/tools/regmerge.cxx index 06786a9b993e..6ca47a18c795 100644 --- a/registry/tools/regmerge.cxx +++ b/registry/tools/regmerge.cxx @@ -28,70 +28,35 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_registry.hxx" -#include <stdio.h> -#include <string.h> - #include "registry/registry.hxx" -#include <rtl/ustring.hxx> -#include <rtl/alloc.h> -#include <osl/process.h> -#include <osl/diagnose.h> -#include <osl/thread.h> -#include <osl/file.hxx> +#include "fileurl.hxx" +#include "options.hxx" -#ifdef SAL_UNX -#define SEPARATOR '/' -#else -#define SEPARATOR '\\' -#endif +#include "rtl/ustring.hxx" +#include "osl/diagnose.h" -using namespace ::rtl; -using namespace ::osl; +#include <stdio.h> +#include <string.h> -sal_Bool isFileUrl(const OString& fileName) -{ - if (fileName.indexOf("file://") == 0 ) - return sal_True; - return sal_False; -} +using namespace rtl; +using namespace registry::tools; -OUString convertToFileUrl(const OString& fileName) +class Options_Impl : public Options { - if ( isFileUrl(fileName) ) - { - return OStringToOUString(fileName, osl_getThreadTextEncoding()); - } - - OUString uUrlFileName; - OUString uFileName(fileName.getStr(), fileName.getLength(), osl_getThreadTextEncoding()); - if ( fileName.indexOf('.') == 0 || fileName.indexOf(SEPARATOR) < 0 ) - { - OUString uWorkingDir; - if (osl_getProcessWorkingDir(&uWorkingDir.pData) != osl_Process_E_None) - { - OSL_ASSERT(false); - } - if (FileBase::getAbsoluteFileURL(uWorkingDir, uFileName, uUrlFileName) - != FileBase::E_None) - { - OSL_ASSERT(false); - } - } else - { - if (FileBase::getFileURLFromSystemPath(uFileName, uUrlFileName) - != FileBase::E_None) - { - OSL_ASSERT(false); - } - } + bool m_bVerbose; - return uUrlFileName; -} +public: + explicit Options_Impl (char const * program) + : Options(program), m_bVerbose(false) + {} + bool isVerbose() const { return m_bVerbose; } -int realargc; -char* realargv[2048]; +protected: + virtual void printUsage_Impl() const; + virtual bool initOptions_Impl(std::vector< std::string > & rArgs); +}; -static void dumpHelp() +void Options_Impl::printUsage_Impl() const { fprintf(stderr, "using: regmerge [-v|--verbose] mergefile mergeKeyName regfile_1 ... regfile_n\n"); fprintf(stderr, " regmerge @regcmds\nOptions:\n"); @@ -103,180 +68,112 @@ static void dumpHelp() fprintf(stderr, " regfile_1..n : specifies one or more registry files which are merged.\n"); } -static bool checkCommandFile(char* cmdfile) +bool Options_Impl::initOptions_Impl (std::vector< std::string > & rArgs) { - FILE *commandfile; - char option[256]; - bool bVerbose = false; - - commandfile = fopen(cmdfile+1, "r"); - if( commandfile == NULL ) - { - fprintf(stderr, "ERROR: Can't open command file \"%s\"\n", cmdfile); - } else + std::vector< std::string >::iterator first = rArgs.begin(), last = rArgs.end(); + if ((first != last) && ((*first)[0] == '-')) { - while ( fscanf(commandfile, "%s", option) != EOF ) + std::string option(*first); + if ((option.compare("-v") == 0) || (option.compare("--verbose") == 0)) { - if (option[0]== '@') - { - bool bRet = checkCommandFile(option); - // ensure that the option will not be overwritten - if ( !bRet ) - bVerbose = bRet; - } else { - if (option[0]== '-') { - if (strncmp(option, "-v", 2) == 0 || - strncmp(option, "--verbose", 9) == 0) - { - bVerbose = true; - } else { - fprintf(stderr, "ERROR: unknown option \"%s\"\n", option); - dumpHelp(); - exit(-1); - } - }else - { - realargv[realargc]= strdup(option); - realargc++; - } - } - if (realargc == 2047) - { - fprintf(stderr, "ERROR: more than 2048 arguments.\n"); - break; - } + m_bVerbose = true; } - fclose(commandfile); - } - - return bVerbose; -} - -static bool checkCommandArgs(int argc, char **argv) -{ - bool bVerbose = false; - - realargc = 0; - - for (int i=0; i<argc; i++) - { - if (argv[i][0]== '@') + else if ((option.compare("-h") == 0) || (option.compare("-?") == 0)) { - bool bRet = checkCommandFile(argv[i]); - // ensure that the option will not be overwritten - if ( !bRet ) - bVerbose = bRet; - } else { - if (argv[i][0]== '-') { - if (strncmp(argv[i], "-v", 2) == 0 || - strncmp(argv[i], "--verbose", 9) == 0) - { - bVerbose = true; - } else { - fprintf(stderr, "ERROR: unknown option \"%s\"\n", argv[i]); - dumpHelp(); - exit(-1); - } - } else - { - realargv[realargc]= strdup(argv[i]); - realargc++; - } + return printUsage(); } + else + { + return badOption("unknown", option.c_str()); + } + (void) rArgs.erase(first); } - - return bVerbose; -} - -static void cleanCommandArgs() -{ - for (int i=0; i<realargc; i++) - { - free(realargv[i]); - } + return true; } - - #if (defined UNX) || (defined OS2) int main( int argc, char * argv[] ) #else int _cdecl main( int argc, char * argv[] ) #endif { - bool bVerbose = checkCommandArgs(argc, argv); + Options_Impl options(argv[0]); - if (realargc < 4) + std::vector< std::string > args; + for (int i = 1; i < argc; i++) { - dumpHelp(); - cleanCommandArgs(); - exit(1); + if (!Options::checkArgument(args, argv[i], strlen(argv[i]))) + { + options.printUsage(); + return (1); + } + } + if (!options.initOptions(args)) + { + return (1); + } + if (args.size() < 3) + { + options.printUsage(); + return (1); } - - ::rtl::OUString regName( convertToFileUrl(realargv[1]) ); Registry reg; + OUString regName( convertToFileUrl(args[0].c_str(), args[0].size()) ); if (reg.open(regName, REG_READWRITE) != REG_NO_ERROR) { if (reg.create(regName) != REG_NO_ERROR) { - if (bVerbose) - fprintf(stderr, "open registry \"%s\" failed\n", realargv[1]); - cleanCommandArgs(); - exit(-1); + if (options.isVerbose()) + fprintf(stderr, "open registry \"%s\" failed\n", args[0].c_str()); + return (-1); } } RegistryKey rootKey; - if (reg.openRootKey(rootKey) == REG_NO_ERROR) + if (reg.openRootKey(rootKey) != REG_NO_ERROR) { - ::rtl::OUString mergeKeyName( ::rtl::OUString::createFromAscii(realargv[2]) ); - ::rtl::OUString targetRegName; - for (int i = 3; i < realargc; i++) + if (options.isVerbose()) + fprintf(stderr, "open root key of registry \"%s\" failed\n", args[0].c_str()); + return (-4); + } + + OUString mergeKeyName( OUString::createFromAscii(args[1].c_str()) ); + for (size_t i = 2; i < args.size(); i++) + { + OUString targetRegName( convertToFileUrl(args[i].c_str(), args[i].size()) ); + RegError _ret = reg.mergeKey(rootKey, mergeKeyName, targetRegName, sal_False, options.isVerbose()); + if (_ret != REG_NO_ERROR) { - targetRegName = convertToFileUrl(realargv[i]); - RegError _ret = reg.mergeKey(rootKey, mergeKeyName, targetRegName, sal_False, bVerbose); - if (_ret != REG_NO_ERROR) - { - if (_ret == REG_MERGE_CONFLICT) - { - if (bVerbose) - fprintf(stderr, "merging registry \"%s\" under key \"%s\" in registry \"%s\".\n", - realargv[i], realargv[2], realargv[1]); - } else - { - if (bVerbose) - fprintf(stderr, "ERROR: merging registry \"%s\" under key \"%s\" in registry \"%s\" failed.\n", - realargv[i], realargv[2], realargv[1]); - exit(-2); - } - } else + if (_ret == REG_MERGE_CONFLICT) { - if (bVerbose) + if (options.isVerbose()) fprintf(stderr, "merging registry \"%s\" under key \"%s\" in registry \"%s\".\n", - realargv[i], realargv[2], realargv[1]); + args[i].c_str(), args[1].c_str(), args[0].c_str()); + } + else + { + if (options.isVerbose()) + fprintf(stderr, "ERROR: merging registry \"%s\" under key \"%s\" in registry \"%s\" failed.\n", + args[i].c_str(), args[1].c_str(), args[0].c_str()); + return (-2); } } - - rootKey.releaseKey(); - } else - { - if (bVerbose) - fprintf(stderr, "open root key of registry \"%s\" failed\n", - realargv[1]); - exit(-4); + else + { + if (options.isVerbose()) + fprintf(stderr, "merging registry \"%s\" under key \"%s\" in registry \"%s\".\n", + args[i].c_str(), args[1].c_str(), args[0].c_str()); + } } + rootKey.releaseKey(); if (reg.close() != REG_NO_ERROR) { - if (bVerbose) - fprintf(stderr, "closing registry \"%s\" failed\n", realargv[1]); - cleanCommandArgs(); - exit(-5); + if (options.isVerbose()) + fprintf(stderr, "closing registry \"%s\" failed\n", args[0].c_str()); + return (-5); } - cleanCommandArgs(); return(0); } - - diff --git a/registry/tools/regview.cxx b/registry/tools/regview.cxx index 4e478e8985db..4c588449a1d8 100644 --- a/registry/tools/regview.cxx +++ b/registry/tools/regview.cxx @@ -28,65 +28,16 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_registry.hxx" -#include <stdio.h> - #include "registry/registry.h" -#include <rtl/ustring.hxx> -#include <rtl/alloc.h> -#include <osl/process.h> -#include <osl/diagnose.h> -#include <osl/thread.h> -#include <osl/file.hxx> - -#ifdef SAL_UNX -#define SEPARATOR '/' -#else -#define SEPARATOR '\\' -#endif - -using namespace ::rtl; -using namespace ::osl; - -sal_Bool isFileUrl(const OString& fileName) -{ - if (fileName.indexOf("file://") == 0 ) - return sal_True; - return sal_False; -} +#include "fileurl.hxx" -OUString convertToFileUrl(const OString& fileName) -{ - if ( isFileUrl(fileName) ) - { - return OStringToOUString(fileName, osl_getThreadTextEncoding()); - } +#include "rtl/ustring.hxx" - OUString uUrlFileName; - OUString uFileName(fileName.getStr(), fileName.getLength(), osl_getThreadTextEncoding()); - if ( fileName.indexOf('.') == 0 || fileName.indexOf(SEPARATOR) < 0 ) - { - OUString uWorkingDir; - if (osl_getProcessWorkingDir(&uWorkingDir.pData) != osl_Process_E_None) - { - OSL_ASSERT(false); - } - if (FileBase::getAbsoluteFileURL(uWorkingDir, uFileName, uUrlFileName) - != FileBase::E_None) - { - OSL_ASSERT(false); - } - } else - { - if (FileBase::getFileURLFromSystemPath(uFileName, uUrlFileName) - != FileBase::E_None) - { - OSL_ASSERT(false); - } - } - - return uUrlFileName; -} +#include <stdio.h> +#include <string.h> +using rtl::OUString; +using namespace registry::tools; #if (defined UNX) || (defined OS2) int main( int argc, char * argv[] ) @@ -103,7 +54,7 @@ int _cdecl main( int argc, char * argv[] ) exit(1); } - OUString regName( convertToFileUrl(argv[1]) ); + OUString regName( convertToFileUrl(argv[1], strlen(argv[1])) ); if (reg_openRegistry(regName.pData, &hReg, REG_READONLY)) { fprintf(stderr, "open registry \"%s\" failed\n", argv[1]); @@ -127,12 +78,14 @@ int _cdecl main( int argc, char * argv[] ) fprintf(stderr, "closing key \"%s\" of registry \"%s\" failed\n", argv[2], argv[1]); } - } else + } + else { fprintf(stderr, "key \"%s\" not exists in registry \"%s\"\n", argv[2], argv[1]); } - } else + } + else { if (reg_dumpRegistry(hRootKey)) { @@ -144,7 +97,8 @@ int _cdecl main( int argc, char * argv[] ) { fprintf(stderr, "closing root key of registry \"%s\" failed\n", argv[1]); } - } else + } + else { fprintf(stderr, "open root key of registry \"%s\" failed\n", argv[1]); } diff --git a/sal/cppunittester/cppunittester.cxx b/sal/cppunittester/cppunittester.cxx index ac99601f5ce5..c89a350d6708 100644 --- a/sal/cppunittester/cppunittester.cxx +++ b/sal/cppunittester/cppunittester.cxx @@ -30,6 +30,20 @@ #include <cstdlib> #include <iostream> +#include <limits> +#include <string> + +#include "cppunittester/protectorfactory.hxx" +#include "osl/module.h" +#include "osl/module.hxx" +#include "osl/thread.h" +#include "rtl/process.h" +#include "rtl/string.h" +#include "rtl/string.hxx" +#include "rtl/textcvt.h" +#include "rtl/ustring.hxx" +#include "sal/main.h" +#include "sal/types.h" #include "preextstl.h" #include "cppunit/CompilerOutputter.h" @@ -40,25 +54,87 @@ #include "cppunit/plugin/PlugInManager.h" #include "cppunit/portability/Stream.h" #include "postextstl.h" -#include "osl/thread.h" -#include "rtl/process.h" -#include "rtl/string.hxx" -#include "rtl/ustring.hxx" -#include "sal/main.h" + +namespace { + +void usageFailure() { + std::cerr + << ("Usage: cppunittester (--protector <shared-library-path>" + " <function-symbol>)* <shared-library-path>") + << std::endl; + std::exit(EXIT_FAILURE); +} + +rtl::OUString getArgument(sal_Int32 index) { + rtl::OUString arg; + rtl_getAppCommandArg(index, &arg.pData); + return arg; +} + +std::string convertLazy(rtl::OUString const & s16) { + rtl::OString s8(rtl::OUStringToOString(s16, osl_getThreadTextEncoding())); + return std::string( + s8.getStr(), + ((static_cast< sal_uInt32 >(s8.getLength()) + > std::numeric_limits< std::string::size_type >::max()) + ? std::numeric_limits< std::string::size_type >::max() + : static_cast< std::string::size_type >(s8.getLength()))); +} + +std::string convertStrict(rtl::OUString const & s16) { + rtl::OString s8; + if (!s16.convertToString( + &s8, osl_getThreadTextEncoding(), + (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR + | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR)) + || (static_cast< sal_uInt32 >(s8.getLength()) + > std::numeric_limits< std::string::size_type >::max())) + { + std::cerr + << "Failure converting argument from UTF-16 back to system encoding" + << std::endl; + std::exit(EXIT_FAILURE); + } + return std::string( + s8.getStr(), static_cast< std::string::size_type >(s8.getLength())); +} + +} SAL_IMPLEMENT_MAIN() { - if (rtl_getAppCommandArgCount() != 1) { - std::cerr << "Usage: cppunittester <shared-library-path>" << std::endl; - return EXIT_FAILURE; + CppUnit::TestResult result; + sal_uInt32 index = 0; + for (; index < rtl_getAppCommandArgCount(); index += 3) { + if (!getArgument(index).equalsAsciiL( + RTL_CONSTASCII_STRINGPARAM("--protector"))) + { + break; + } + if (rtl_getAppCommandArgCount() - index < 3) { + usageFailure(); + } + rtl::OUString lib(getArgument(index + 1)); + rtl::OUString sym(getArgument(index + 2)); + oslGenericFunction fn = (new osl::Module(lib, SAL_LOADMODULE_GLOBAL)) + ->getFunctionSymbol(sym); + CppUnit::Protector * p = fn == 0 + ? 0 + : (*reinterpret_cast< cppunittester::ProtectorFactory * >(fn))(); + if (p == 0) { + std::cerr + << "Failure instantiating protector \"" << convertLazy(lib) + << "\", \"" << convertLazy(sym) << '"' << std::endl; + std::exit(EXIT_FAILURE); + } + result.pushProtector(p); + } + if (rtl_getAppCommandArgCount() - index != 1) { + usageFailure(); } - rtl::OUString path; - rtl_getAppCommandArg(0, &path.pData); CppUnit::PlugInManager manager; - manager.load( - rtl::OUStringToOString(path, osl_getThreadTextEncoding()).getStr()); + manager.load(convertStrict(getArgument(index))); CppUnit::TestRunner runner; runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); - CppUnit::TestResult result; CppUnit::TestResultCollector collector; result.addListener(&collector); runner.run(result); diff --git a/sal/inc/cppunittester/protectorfactory.hxx b/sal/inc/cppunittester/protectorfactory.hxx new file mode 100644 index 000000000000..c309dbe8aa85 --- /dev/null +++ b/sal/inc/cppunittester/protectorfactory.hxx @@ -0,0 +1,45 @@ +/************************************************************************* +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2011 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +************************************************************************/ + +#ifndef INCLUDED_CPPUNITTESTER_PROTECTORFACTORY_HXX +#define INCLUDED_CPPUNITTESTER_PROTECTORFACTORY_HXX + +#include "sal/config.h" + +#include "sal/types.h" + +namespace CppUnit { class Protector; } + +namespace cppunittester { + +// The type of CppUnit::Protector factory functions that can be plugged into +// cppunittester: +extern "C" typedef CppUnit::Protector * SAL_CALL ProtectorFactory(); + +} + +#endif diff --git a/sal/osl/os2/diagnose.c b/sal/osl/os2/diagnose.c index b105e0b78c29..b412a65ff090 100644 --- a/sal/osl/os2/diagnose.c +++ b/sal/osl/os2/diagnose.c @@ -124,7 +124,8 @@ sal_Bool SAL_CALL osl_assertFailedLine( const sal_Char* pszFileName, sal_Int32 n fputs(szMessage, stderr); - return sal_True; /* abort */ + char const * env = getenv( "SAL_DIAGNOSE_ABORT" ); + return ( ( env != NULL ) && ( *env != '\0' ) ); } /*----------------------------------------------------------------------------*/ diff --git a/sal/osl/unx/diagnose.c b/sal/osl/unx/diagnose.c index 02967b3ad7f7..5d9a4f31a40e 100644 --- a/sal/osl/unx/diagnose.c +++ b/sal/osl/unx/diagnose.c @@ -218,6 +218,11 @@ sal_Bool SAL_CALL osl_assertFailedLine ( oslDebugMessageFunc f = g_pDebugMessageFunc; char szMessage[1024]; + // after reporting the assertion, abort if told so by SAL_DIAGNOSE_ABORT, but *not* if + // assertions are routed to some external instance + char const * env = getenv( "SAL_DIAGNOSE_ABORT" ); + sal_Bool const doAbort = ( ( env != NULL ) && ( *env != '\0' ) && ( f == NULL ) ); + /* If there's a callback for detailed messages, use it */ if ( g_pDetailedDebugMessageFunc != NULL ) { @@ -227,7 +232,7 @@ sal_Bool SAL_CALL osl_assertFailedLine ( /* if SAL assertions are disabled in general, stop here */ if ( getenv("DISABLE_SAL_DBGBOX") ) - return sal_False; + return doAbort; /* format message into buffer */ if (pszMessage != 0) @@ -252,9 +257,10 @@ sal_Bool SAL_CALL osl_assertFailedLine ( /* output backtrace */ osl_diagnose_backtrace_Impl(f); - /* release lock and leave, w/o calling osl_breakDebug() */ + /* release lock and leave */ pthread_mutex_unlock(&g_mutex); - return sal_False; + + return doAbort; } /************************************************************************/ @@ -262,7 +268,7 @@ sal_Bool SAL_CALL osl_assertFailedLine ( /************************************************************************/ void SAL_CALL osl_breakDebug() { - exit(0); + abort(); } /************************************************************************/ diff --git a/sal/osl/unx/file.cxx b/sal/osl/unx/file.cxx index cc0c041bc328..67f1d05660a8 100644 --- a/sal/osl/unx/file.cxx +++ b/sal/osl/unx/file.cxx @@ -215,7 +215,8 @@ FileHandle_Impl::Allocator::~Allocator() void FileHandle_Impl::Allocator::allocate (sal_uInt8 ** ppBuffer, size_t * pnSize) { OSL_PRECOND((0 != ppBuffer) && (0 != pnSize), "FileHandle_Impl::Allocator::allocate(): contract violation"); - *ppBuffer = static_cast< sal_uInt8* >(rtl_cache_alloc(m_cache)), *pnSize = m_bufsiz; + if ((0 != ppBuffer) && (0 != pnSize)) + *ppBuffer = static_cast< sal_uInt8* >(rtl_cache_alloc(m_cache)), *pnSize = m_bufsiz; } void FileHandle_Impl::Allocator::deallocate (sal_uInt8 * pBuffer) { diff --git a/sal/osl/unx/file_misc.cxx b/sal/osl/unx/file_misc.cxx index 452d3eb2db70..2ed57b01a2c4 100644 --- a/sal/osl/unx/file_misc.cxx +++ b/sal/osl/unx/file_misc.cxx @@ -334,10 +334,8 @@ oslFileError SAL_CALL osl_getDirectoryItem( rtl_uString* ustrFileURL, oslDirecto rtl_uString* ustrSystemPath = NULL; oslFileError osl_error = osl_File_E_INVAL; - OSL_ASSERT(ustrFileURL); - OSL_ASSERT(pItem); - - if (0 == ustrFileURL->length || NULL == pItem) + OSL_ASSERT((0 != ustrFileURL) && (0 != pItem)); + if ((0 == ustrFileURL) || (0 == ustrFileURL->length) || (0 == pItem)) return osl_File_E_INVAL; osl_error = osl_getSystemPathFromFileURL_Ex(ustrFileURL, &ustrSystemPath, sal_False); diff --git a/sal/osl/unx/file_path_helper.cxx b/sal/osl/unx/file_path_helper.cxx index 04fdd13e7c15..9dd3b08493b0 100644 --- a/sal/osl/unx/file_path_helper.cxx +++ b/sal/osl/unx/file_path_helper.cxx @@ -73,19 +73,21 @@ void SAL_CALL osl_systemPathRemoveSeparator(rtl_uString* pustrPath) { - OSL_PRECOND(pustrPath, "osl_systemPathRemoveSeparator: Invalid parameter"); - - // maybe there are more than one separator at end - // so we run in a loop - while ((pustrPath->length > 1) && (FPH_CHAR_PATH_SEPARATOR == pustrPath->buffer[pustrPath->length - 1])) + OSL_PRECOND(0 != pustrPath, "osl_systemPathRemoveSeparator: Invalid parameter"); + if (0 != pustrPath) { - pustrPath->length--; - pustrPath->buffer[pustrPath->length] = (sal_Unicode)'\0'; - } + // maybe there are more than one separator at end + // so we run in a loop + while ((pustrPath->length > 1) && (FPH_CHAR_PATH_SEPARATOR == pustrPath->buffer[pustrPath->length - 1])) + { + pustrPath->length--; + pustrPath->buffer[pustrPath->length] = (sal_Unicode)'\0'; + } - OSL_POSTCOND((0 == pustrPath->length) || (1 == pustrPath->length) || \ - (pustrPath->length > 1 && pustrPath->buffer[pustrPath->length - 1] != FPH_CHAR_PATH_SEPARATOR), \ - "osl_systemPathRemoveSeparator: Post condition failed"); + OSL_POSTCOND((0 == pustrPath->length) || (1 == pustrPath->length) || \ + (pustrPath->length > 1 && pustrPath->buffer[pustrPath->length - 1] != FPH_CHAR_PATH_SEPARATOR), \ + "osl_systemPathRemoveSeparator: Post condition failed"); + } } /******************************************* @@ -94,21 +96,22 @@ void SAL_CALL osl_systemPathEnsureSeparator(rtl_uString** ppustrPath) { - OSL_PRECOND(ppustrPath && (NULL != *ppustrPath), \ - "osl_systemPathEnsureSeparator: Invalid parameter"); - - rtl::OUString path(*ppustrPath); - sal_Int32 lp = path.getLength(); - sal_Int32 i = path.lastIndexOf(FPH_CHAR_PATH_SEPARATOR); - - if ((lp > 1 && i != (lp - 1)) || ((lp < 2) && i < 0)) - { - path += FPH_PATH_SEPARATOR(); - rtl_uString_assign(ppustrPath, path.pData); - } - - OSL_POSTCOND(path.lastIndexOf(FPH_CHAR_PATH_SEPARATOR) == (path.getLength() - 1), \ - "osl_systemPathEnsureSeparator: Post condition failed"); + OSL_PRECOND((0 != ppustrPath) && (0 != *ppustrPath), "osl_systemPathEnsureSeparator: Invalid parameter"); + if ((0 != ppustrPath) && (0 != *ppustrPath)) + { + rtl::OUString path(*ppustrPath); + sal_Int32 lp = path.getLength(); + sal_Int32 i = path.lastIndexOf(FPH_CHAR_PATH_SEPARATOR); + + if ((lp > 1 && i != (lp - 1)) || ((lp < 2) && i < 0)) + { + path += FPH_PATH_SEPARATOR(); + rtl_uString_assign(ppustrPath, path.pData); + } + + OSL_POSTCOND(path.lastIndexOf(FPH_CHAR_PATH_SEPARATOR) == (path.getLength() - 1), \ + "osl_systemPathEnsureSeparator: Post condition failed"); + } } /******************************************* @@ -117,8 +120,8 @@ sal_Bool SAL_CALL osl_systemPathIsRelativePath(const rtl_uString* pustrPath) { - OSL_PRECOND(pustrPath, "osl_systemPathIsRelativePath: Invalid parameter"); - return ((0 == pustrPath->length) || (pustrPath->buffer[0] != FPH_CHAR_PATH_SEPARATOR)); + OSL_PRECOND(0 != pustrPath, "osl_systemPathIsRelativePath: Invalid parameter"); + return ((0 == pustrPath) || (0 == pustrPath->length) || (pustrPath->buffer[0] != FPH_CHAR_PATH_SEPARATOR)); } /****************************************** @@ -177,21 +180,16 @@ sal_Bool SAL_CALL osl_systemPathIsHiddenFileOrDirectoryEntry( const rtl_uString* pustrPath) { - OSL_PRECOND(pustrPath, "osl_systemPathIsHiddenFileOrDirectoryEntry: Invalid parameter"); - - sal_Bool is_hidden = sal_False; + OSL_PRECOND(0 != pustrPath, "osl_systemPathIsHiddenFileOrDirectoryEntry: Invalid parameter"); + if ((0 == pustrPath) || (0 == pustrPath->length)) + return sal_False; - if (pustrPath->length > 0) - { - rtl::OUString fdp; - - osl_systemPathGetFileNameOrLastDirectoryPart(pustrPath, &fdp.pData); - - is_hidden = ((fdp.pData->length > 0) && (fdp.pData->buffer[0] == FPH_CHAR_DOT) && - !osl_systemPathIsLocalOrParentDirectoryEntry(fdp.pData)); - } + rtl::OUString fdp; + osl_systemPathGetFileNameOrLastDirectoryPart(pustrPath, &fdp.pData); - return is_hidden; + return ((fdp.pData->length > 0) && + (fdp.pData->buffer[0] == FPH_CHAR_DOT) && + !osl_systemPathIsLocalOrParentDirectoryEntry(fdp.pData)); } diff --git a/sal/osl/unx/process_impl.cxx b/sal/osl/unx/process_impl.cxx index 66c0d0f5c701..498778758ded 100644 --- a/sal/osl/unx/process_impl.cxx +++ b/sal/osl/unx/process_impl.cxx @@ -483,17 +483,20 @@ extern "C" int _imp_setProcessLocale( rtl_Locale * ); *********************************************/ oslProcessError SAL_CALL osl_getProcessLocale( rtl_Locale ** ppLocale ) { + oslProcessError result = osl_Process_E_Unknown; OSL_PRECOND(ppLocale, "osl_getProcessLocale(): Invalid parameter."); + if (ppLocale) + { + pthread_mutex_lock(&(g_process_locale.m_mutex)); - pthread_mutex_lock(&(g_process_locale.m_mutex)); - - if (g_process_locale.m_pLocale == 0) - _imp_getProcessLocale (&(g_process_locale.m_pLocale)); - *ppLocale = g_process_locale.m_pLocale; - - pthread_mutex_unlock (&(g_process_locale.m_mutex)); + if (g_process_locale.m_pLocale == 0) + _imp_getProcessLocale (&(g_process_locale.m_pLocale)); + *ppLocale = g_process_locale.m_pLocale; + result = osl_Process_E_None; - return (osl_Process_E_None); + pthread_mutex_unlock (&(g_process_locale.m_mutex)); + } + return (result); } /********************************************** diff --git a/sal/osl/unx/profile.c b/sal/osl/unx/profile.c index c77a27543261..05d816c92755 100644 --- a/sal/osl/unx/profile.c +++ b/sal/osl/unx/profile.c @@ -514,7 +514,6 @@ sal_Bool SAL_CALL osl_readProfileString(oslProfile Profile, if ( pTmpProfile->m_bIsValid == sal_False ) { - OSL_ASSERT(pProfile->m_bIsValid); pthread_mutex_unlock(&(pTmpProfile->m_AccessLock)); #ifdef TRACE_OSL_PROFILE OSL_TRACE("Out osl_readProfileString [not valid]\n"); diff --git a/sal/osl/unx/socket.c b/sal/osl/unx/socket.c index c8faf6c028f5..2f7b62a4bfa4 100644 --- a/sal/osl/unx/socket.c +++ b/sal/osl/unx/socket.c @@ -605,16 +605,16 @@ sal_Bool SAL_CALL osl_isEqualSocketAddr ( oslSocketAddr Addr1, oslSocketAddr Addr2) { - struct sockaddr* pAddr1= &(Addr1->m_sockaddr); - struct sockaddr* pAddr2= &(Addr2->m_sockaddr); - - OSL_ASSERT(pAddr1); - OSL_ASSERT(pAddr2); - - if (pAddr1->sa_family == pAddr2->sa_family) + OSL_ASSERT((0 != Addr1) && (0 != Addr2)); + if ((0 != Addr1) || (0 != Addr2)) { - switch (pAddr1->sa_family) - { + struct sockaddr* pAddr1= &(Addr1->m_sockaddr); + struct sockaddr* pAddr2= &(Addr2->m_sockaddr); + + if (pAddr1->sa_family == pAddr2->sa_family) + { + switch (pAddr1->sa_family) + { case AF_INET: { struct sockaddr_in* pInetAddr1= (struct sockaddr_in*)pAddr1; @@ -623,16 +623,16 @@ sal_Bool SAL_CALL osl_isEqualSocketAddr ( if ((pInetAddr1->sin_family == pInetAddr2->sin_family) && (pInetAddr1->sin_addr.s_addr == pInetAddr2->sin_addr.s_addr) && (pInetAddr1->sin_port == pInetAddr2->sin_port)) - return (sal_True); + return (sal_True); } default: { - return (memcmp(pAddr1, Addr2, sizeof(struct sockaddr)) == 0); + return (memcmp(pAddr1, pAddr2, sizeof(struct sockaddr)) == 0); } - } + } + } } - return (sal_False); } @@ -1173,7 +1173,6 @@ oslHostAddr SAL_CALL osl_createHostAddr ( rtl_string_release(strHostname); } - return HostAddr; } @@ -1197,7 +1196,7 @@ oslHostAddr SAL_CALL osl_psz_createHostAddr ( pHostAddr= (oslHostAddr) malloc(sizeof(struct oslHostAddrImpl)); OSL_ASSERT(pHostAddr); - if (pAddr == NULL) + if (pHostAddr == NULL) { free (cn); return ((oslHostAddr)NULL); @@ -2530,7 +2529,10 @@ sal_Bool __osl_socket_poll ( int timeout; int result; - OSL_ASSERT(pSocket); + OSL_ASSERT(0 != pSocket); + if (0 == pSocket) + return sal_False; /* EINVAL */ + pSocket->m_nLastError = 0; fds.fd = pSocket->m_Socket; @@ -2573,7 +2575,10 @@ sal_Bool __osl_socket_poll ( struct timeval tv; int result; - OSL_ASSERT(pSocket); + OSL_ASSERT(0 != pSocket); + if (0 == pSocket) + return sal_False; /* EINVAL */ + pSocket->m_nLastError = 0; FD_ZERO(&fds); diff --git a/sal/osl/w32/diagnose.c b/sal/osl/w32/diagnose.c index 9c75e4502743..1feab6ded8da 100755 --- a/sal/osl/w32/diagnose.c +++ b/sal/osl/w32/diagnose.c @@ -93,6 +93,7 @@ sal_Bool SAL_CALL osl_assertFailedLine(const sal_Char* pszFileName, sal_Int32 nL /* get app name or NULL if unknown (don't call assert) */ LPCSTR lpszAppName = "Error"; sal_Char szMessage[512]; + char const * env = getenv( "SAL_DIAGNOSE_ABORT" ); /* format message into buffer */ szMessage[sizeof(szMessage)-1] = '\0'; /* zero terminate always */ @@ -105,39 +106,44 @@ sal_Bool SAL_CALL osl_assertFailedLine(const sal_Char* pszFileName, sal_Int32 nL _pPrintDetailedDebugMessage( pszFileName, nLine, pszMessage ); else if ( _pPrintDebugMessage ) _pPrintDebugMessage( szMessage ); - else if ( !getenv( "DISABLE_SAL_DBGBOX" ) ) + else { - TCHAR szBoxMessage[1024]; + if ( !getenv( "DISABLE_SAL_DBGBOX" ) ) + { + TCHAR szBoxMessage[1024]; - /* active popup window for the current thread */ - hWndParent = GetActiveWindow(); - if (hWndParent != NULL) - hWndParent = GetLastActivePopup(hWndParent); + /* active popup window for the current thread */ + hWndParent = GetActiveWindow(); + if (hWndParent != NULL) + hWndParent = GetLastActivePopup(hWndParent); - /* set message box flags */ - nFlags = MB_TASKMODAL | MB_ICONWARNING | MB_YESNOCANCEL | MB_DEFBUTTON2 | MB_SETFOREGROUND; - if (hWndParent == NULL) - nFlags |= MB_SERVICE_NOTIFICATION; + /* set message box flags */ + nFlags = MB_TASKMODAL | MB_ICONWARNING | MB_YESNOCANCEL | MB_DEFBUTTON2 | MB_SETFOREGROUND; + if (hWndParent == NULL) + nFlags |= MB_SERVICE_NOTIFICATION; - /* display the assert */ + /* display the assert */ - szBoxMessage[sizeof(szBoxMessage)-1] = 0; - _snprintf(szBoxMessage, sizeof(szBoxMessage)-1, "%s\n( Yes=Abort / No=Ignore / Cancel=Debugger )", - szMessage); + szBoxMessage[sizeof(szBoxMessage)-1] = 0; + _snprintf(szBoxMessage, sizeof(szBoxMessage)-1, "%s\n( Yes=Abort / No=Ignore / Cancel=Debugger )", + szMessage); - nCode = MessageBox(hWndParent, szBoxMessage, "Assertion Failed!", nFlags); + nCode = MessageBox(hWndParent, szBoxMessage, "Assertion Failed!", nFlags); - if (nCode == IDYES) - FatalExit(-1); + if (nCode == IDYES) + FatalExit(-1); - if (nCode == IDNO) - return sal_False; /* ignore */ + if (nCode == IDNO) + return sal_False; /* ignore */ - if (nCode == IDCANCEL) - return sal_True; /* will cause oslDebugBreak */ + if (nCode == IDCANCEL) + return sal_True; /* will cause oslDebugBreak */ + } + return ( ( env != NULL ) && ( *env != '\0' ) ); } + + return sal_False; #endif /* NO_DEBUG_CRT */ - return sal_False; /* not shure, not care */ } sal_Int32 SAL_CALL osl_reportError(sal_uInt32 nType, const sal_Char* pszMessage) diff --git a/sal/osl/w32/file_dirvol.cxx b/sal/osl/w32/file_dirvol.cxx index 09bdec7988c3..549f42861f94 100644 --- a/sal/osl/w32/file_dirvol.cxx +++ b/sal/osl/w32/file_dirvol.cxx @@ -155,7 +155,7 @@ namespace /* private */ void parse_UNC_path(const sal_Unicode* path, UNCComponents* puncc) { OSL_PRECOND(is_UNC_path(path), "Precondition violated: No UNC path"); - OSL_PRECOND(rtl_ustr_indexOfChar(path, SLASH) != -1, "Path must not contain slashes"); + OSL_PRECOND(rtl_ustr_indexOfChar(path, SLASH) == -1, "Path must not contain slashes"); const sal_Unicode* pend = path + rtl_ustr_getLength(path); const sal_Unicode* ppos = path + 2; @@ -691,7 +691,7 @@ static int path_make_parent(sal_Unicode* path) If there are no more parents 0 will be returned, e.g. 'c:\' or '\\Share' have no more parents */ - OSL_PRECOND(rtl_ustr_indexOfChar(path, SLASH) != -1, "Path must not contain slashes"); + OSL_PRECOND(rtl_ustr_indexOfChar(path, SLASH) == -1, "Path must not contain slashes"); OSL_PRECOND(has_path_parent(path), "Path must have a parent"); sal_Unicode* pos_last_backslash = path + rtl_ustr_lastIndexOfChar(path, BACKSLASH); diff --git a/sal/osl/w32/module.cxx b/sal/osl/w32/module.cxx index b730bd3347df..65a17eb1352d 100644..100755 --- a/sal/osl/w32/module.cxx +++ b/sal/osl/w32/module.cxx @@ -36,6 +36,7 @@ #include <osl/thread.h> #include <osl/file.h> #include <rtl/logfile.h> +#include <vector> /* under WIN32, we use the void* oslModule @@ -65,10 +66,32 @@ oslModule SAL_CALL osl_loadModule(rtl_uString *strModuleName, sal_Int32 nRtldMod rtl_uString_assign(&Module, strModuleName); hInstance = LoadLibraryW(reinterpret_cast<LPCWSTR>(Module->buffer)); + if (hInstance == NULL) hInstance = LoadLibraryExW(reinterpret_cast<LPCWSTR>(Module->buffer), NULL, LOAD_WITH_ALTERED_SEARCH_PATH); + //In case of long path names (\\?\c:\...) try to shorten the filename. + //LoadLibrary cannot handle file names which exceed 260 letters. + //In case the path is to long, the function will fail. However, the error + //code can be different. For example, it returned ERROR_FILENAME_EXCED_RANGE + //on Windows XP and ERROR_INSUFFICIENT_BUFFER on Windows 7 (64bit) + if (hInstance == NULL && Module->length > 260) + { + std::vector<sal_Unicode, rtl::Allocator<sal_Unicode> > vec(Module->length + 1); + DWORD len = GetShortPathNameW(reinterpret_cast<LPCWSTR>(Module->buffer), + &vec[0], Module->length + 1); + if (len ) + { + hInstance = LoadLibraryW(&vec[0]); + + if (hInstance == NULL) + hInstance = LoadLibraryExW(&vec[0], NULL, + LOAD_WITH_ALTERED_SEARCH_PATH); + } + } + + if (hInstance <= (HINSTANCE)HINSTANCE_ERROR) hInstance = 0; diff --git a/sal/osl/w32/procimpl.cxx b/sal/osl/w32/procimpl.cxx index fc04d5b84a8f..a2f86422df2a 100644..100755 --- a/sal/osl/w32/procimpl.cxx +++ b/sal/osl/w32/procimpl.cxx @@ -300,6 +300,39 @@ namespace /* private */ return quoted.makeStringAndClear(); } + //The parameter path must be a system path. If it is longer than 260 characters + //then it is shortened using the GetShortPathName function. This function only + //works if the path exists. Because "path" can be the path to an executable, it + //may not have the file extension ".exe". However, if the file on disk has the + //".exe" extension, then the function will fail. In this case a second attempt + //is started by adding the parameter "extension" to "path". + rtl::OUString getShortPath(rtl::OUString const & path, rtl::OUString const & extension) + { + rtl::OUString ret(path); + if (path.getLength() > 260) + { + std::vector<sal_Unicode, rtl::Allocator<sal_Unicode> > vec(path.getLength() + 1); + //GetShortPathNameW only works if the file can be found! + const DWORD len = GetShortPathNameW( + path.getStr(), &vec[0], path.getLength() + 1); + + if (!len && GetLastError() == ERROR_FILE_NOT_FOUND + && extension.getLength()) + { + const rtl::OUString extPath(path + extension); + std::vector<sal_Unicode, rtl::Allocator<sal_Unicode> > vec2( + extPath.getLength() + 1); + const DWORD len2 = GetShortPathNameW( + extPath.getStr(), &vec2[0], extPath.getLength() + 1); + ret = rtl::OUString(&vec2[0], len2); + } + else + { + ret = rtl::OUString(&vec[0], len); + } + } + return ret; + } //########################################################## // Returns the system path of the executable which can either // be provided via the strImageName parameter or as first @@ -326,6 +359,8 @@ namespace /* private */ if (osl_File_E_None != osl::FileBase::getSystemPathFromFileURL(exe_url, exe_path)) return rtl::OUString(); + exe_path = getShortPath(exe_path, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".exe"))); + if (exe_path.indexOf(' ') != -1) exe_path = quote_string(exe_path); diff --git a/sal/prj/d.lst b/sal/prj/d.lst index 3ce270bbbfc4..253d7ea7f718 100644 --- a/sal/prj/d.lst +++ b/sal/prj/d.lst @@ -1,9 +1,11 @@ +mkdir: %_DEST%\inc%_EXT%\cppunittester mkdir: %_DEST%\inc%_EXT%\sal mkdir: %_DEST%\inc%_EXT%\osl mkdir: %_DEST%\inc%_EXT%\rtl mkdir: %_DEST%\inc%_EXT%\systools mkdir: %_DEST%\inc%_EXT%\systools\win32 +..\inc\cppunittester\protectorfactory.hxx %_DEST%\inc%_EXT%\protectorfactory.hxx ..\%__SRC%\inc\rtlbootstrap.mk %_DEST%\inc%_EXT%\rtlbootstrap.mk ..\inc\sal\*.h %_DEST%\inc%_EXT%\sal\*.h ..\%__SRC%\inc\sal\typesizes.h %_DEST%\inc%_EXT%\sal\typesizes.h diff --git a/sal/rtl/source/alloc.c b/sal/rtl/source/alloc.c deleted file mode 100644 index 44b37c255004..000000000000 --- a/sal/rtl/source/alloc.c +++ /dev/null @@ -1,1541 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifdef PROFILE -#undef OSL_DEBUG_LEVEL -#define OSL_DEBUG_LEVEL 0 -#endif /* PROFILE */ - -#include <sal/types.h> -#include <osl/diagnose.h> -#include <rtl/alloc.h> - -#ifndef INCLUDED_STDDEF_H -#include <stddef.h> -#define INCLUDED_STDDEF_H -#endif - -#ifndef INCLUDED_STDLIB_H -#include <stdlib.h> -#define INCLUDED_STDLIB_H -#endif - -#ifndef INCLUDED_STRING_H -#include <string.h> -#define INCLUDED_STRING_H -#endif - -#ifndef FORCE_SYSALLOC - -/*=========================================================================== - * - * rtl_memory (UNX) internals. - * - *=========================================================================*/ -#ifdef SAL_UNX - -#include <unistd.h> -#include <pthread.h> -#include <sys/mman.h> -#include <fcntl.h> - -typedef pthread_mutex_t mutex_type; - -#define RTL_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER -#define RTL_MUTEX_ACQUIRE(a) pthread_mutex_lock((a)) -#define RTL_MUTEX_RELEASE(a) pthread_mutex_unlock((a)) - -#if defined(FREEBSD) || defined(NETBSD) || defined(MACOSX) -static sal_Size __rtl_memory_vmpagesize (void) -{ - /* xBSD */ - return (sal_Size)(getpagesize()); -} -#elif defined(LINUX) || defined(SOLARIS) -static sal_Size __rtl_memory_vmpagesize (void) -{ - /* POSIX */ - return (sal_Size)(sysconf(_SC_PAGESIZE)); -} -#else -static sal_Size __rtl_memory_vmpagesize (void) -{ - /* other */ - return (sal_Size)(0x2000); -} -#endif /* FREEBSD || NETBSD || MACOSX || LINUX || SOLARIS */ - -#ifndef PROT_HEAP -#define PROT_HEAP (PROT_READ | PROT_WRITE | PROT_EXEC) -#endif - -/* #95880# building on Solaris 8 provides MAP_ANON, but it - is not available on Solaris 7 */ -#if defined (SOLARIS) -#ifdef MAP_ANON -#undef MAP_ANON -#endif -#endif - -#ifndef MAP_ANON -static void* __rtl_memory_vmalloc (sal_Size n) -{ - /* SYSV */ - int fd = open("/dev/zero", O_RDWR); - if (!(fd < 0)) - { - void * p = mmap(NULL, n, PROT_HEAP, MAP_PRIVATE, fd, 0); - close(fd); - return ((p == MAP_FAILED) ? NULL : p); - } - return (NULL); -} -#else /* MAP_ANON */ -static void* __rtl_memory_vmalloc (sal_Size n) -{ - /* xBSD */ - void * p = mmap(NULL, n, PROT_HEAP, MAP_PRIVATE | MAP_ANON, -1, 0); - return ((p == MAP_FAILED) ? NULL : p); -} -#endif /* MAP_ANON */ - -#define RTL_MEMORY_ALLOC(n) __rtl_memory_vmalloc((sal_Size)(n)) -#define RTL_MEMORY_FREE(p, n) munmap((void*)(p), (sal_Size)(n)) - -#endif /* SAL_UNX */ - -/*=========================================================================== - * - * rtl_memory (W32) internals. - * - *=========================================================================*/ -#ifdef SAL_W32 - -#define WIN32_LEAN_AND_MEAN -#ifdef _MSC_VER -#pragma warning(push,1) /* disable warnings within system headers */ -#endif -#include <windows.h> -#include <wchar.h> - -typedef CRITICAL_SECTION mutex_type; - -/* Static initializer (struct declared in WINNT.H). */ -#define RTL_MUTEX_INITIALIZER { NULL, -1, 0, NULL, NULL, 0 } - -/* - * __rtl_mutex_init (dynamic initialization). - * - * Static initialization (with DebugInfo == NULL) - * leads to Access Violation upon first contention. - */ -static void __rtl_mutex_init (LPCRITICAL_SECTION lpCriticalSection) -{ - static LONG g_spinlock = 0; - - while (InterlockedExchange (&g_spinlock, 1) == 1) - { - /* Already locked, spin */ - Sleep (0); - } - if (!(lpCriticalSection->DebugInfo)) - { - /* Dynamic initialization */ - InitializeCriticalSection (lpCriticalSection); - } - InterlockedExchange (&g_spinlock, 0); -} - -#define RTL_MUTEX_INIT(a) __rtl_mutex_init((LPCRITICAL_SECTION)(a)) -#define RTL_MUTEX_ACQUIRE(a) EnterCriticalSection((a)) -#define RTL_MUTEX_RELEASE(a) LeaveCriticalSection((a)) - -static sal_Size __rtl_memory_vmpagesize (void) -{ - SYSTEM_INFO info; - GetSystemInfo (&info); - return ((sal_Size)(info.dwPageSize)); -} - -#define RTL_MEMORY_ALLOC(n) \ -(void*)(VirtualAlloc (NULL, (SIZE_T)(n), MEM_COMMIT, PAGE_READWRITE)) - -#define RTL_MEMORY_FREE(p, n) \ -(void)(VirtualFree ((LPVOID)(p), (SIZE_T)(0), MEM_RELEASE)) - -#endif /* SAL_W32 */ - -/*=========================================================================== - * - * rtl_memory (OS2) internals. - * - *=========================================================================*/ -#ifdef SAL_OS2 - -#define INCL_DOS -#include <os2.h> - -typedef HMTX mutex_type; - -/* Static initializer */ -#define RTL_MUTEX_INITIALIZER -1 - -/* - * __rtl_mutex_init (dynamic initialization). - * - * Static initialization (with DebugInfo == NULL) - * leads to Access Violation upon first contention. - */ -static void __rtl_mutex_init (mutex_type* mutex) -{ - APIRET rc = 0; - - rc = DosCreateMutexSem(NULL,mutex,0,0); - -} - -static int __rtl_mutex_destroy (mutex_type* mutex) -{ - APIRET rc = 0; - - - do { - rc = DosCloseMutexSem(*mutex); - if (rc == 301) DosReleaseMutexSem(*mutex); - } while (rc == 301); - - *mutex = 0; - - /* Return the completion status: */ - return (0); -} - - -static int __rtl_mutex_acquire(mutex_type* mutex) -{ - int ret = 0; - int status = 0; - APIRET rc = 0; - - // initialize static semaphores created with PTHREAD_MUTEX_INITIALIZER state. - if (*mutex == -1) - __rtl_mutex_init( mutex); - - rc = DosRequestMutexSem(*mutex,SEM_INDEFINITE_WAIT); - if (rc) - return(1); - - /* Return the completion status: */ - return (0); -} - -static int __rtl_mutex_release(mutex_type* mutex) -{ - int ret = 0; - APIRET rc = 0; - int status; - - - // initialize static semaphores created with PTHREAD_MUTEX_INITIALIZER state. - if (*mutex == -1) - __rtl_mutex_init( mutex); - - rc = DosReleaseMutexSem(*mutex); - - /* Return the completion status: */ - return (0); -} - -#define RTL_MUTEX_INIT(a) __rtl_mutex_init((mutex_type*)(a)) -#define RTL_MUTEX_ACQUIRE(a) __rtl_mutex_acquire((mutex_type*)(a)) -#define RTL_MUTEX_RELEASE(a) __rtl_mutex_release((mutex_type*)(a)) - -static sal_Size __rtl_memory_vmpagesize (void) -{ - return (sal_Size)(getpagesize()); -} - -#define RTL_MEMORY_ALLOC(n) (void*)(malloc(n)) - -#define RTL_MEMORY_FREE(p, n) (void)(free(p)) - -#endif /* SAL_OS2 */ - -/*=========================================================================== - * - * rtl_memory (global) internals. - * - *=========================================================================*/ -#define __L__ 32 -#define __P__ 24 -#define __N__ ((__L__) + (__P__)) -#define __M__ 0x10000 - -static const sal_Size __T__ = (__M__) * 2 / 3; - -typedef struct __rtl_memory_desc_st memory_type; -struct __rtl_memory_desc_st -{ - sal_Size m_length; - sal_Size m_offset; - memory_type *m_flink; - memory_type *m_blink; -}; - -static const int __C__ = 2 * sizeof(sal_Size); -static const int __Q__ = 2 * sizeof(memory_type*); - -typedef struct __rtl_memory_stat_st memory_stat; -struct __rtl_memory_stat_st -{ - sal_uInt64 m_dequeue; - sal_uInt64 m_enqueue; - sal_Int32 m_delta_q; - - sal_uInt64 m_deqsize; - sal_uInt64 m_enqsize; - sal_Int32 m_delta_n; -}; - -#define RTL_MEMORY_ALIGN(n, m) (((n) + ((m) - 1)) & ~((m) - 1)) -#define RTL_MEMORY_SIZEOF(a) RTL_MEMORY_ALIGN(sizeof(a), sizeof(memory_type)) - -struct __rtl_memory_global_st -{ - sal_Size m_magic; - sal_Size m_align; - - union { - mutex_type m_lock; - char m_data[RTL_MEMORY_SIZEOF(mutex_type)]; - } m_mutex; - - memory_type m_alloc_head; - memory_type m_spare_head; - memory_type m_queue_head[__N__]; - -#if OSL_DEBUG_LEVEL > 0 - memory_stat m_queue_stat[__N__]; -#endif /* OSL_DEBUG_LEVEL */ -}; - -static struct __rtl_memory_global_st g_memory = -{ - 0, 0, { RTL_MUTEX_INITIALIZER }, - { 0, 0, NULL, NULL }, { 0, 0, NULL, NULL }, { { 0, 0, NULL, NULL } }, -#if OSL_DEBUG_LEVEL > 0 - { { 0, 0, 0, 0, 0, 0 } } -#endif /* OSL_DEBUG_LEVEL */ -}; - -void SAL_CALL ___rtl_memory_init (void); -void SAL_CALL ___rtl_memory_fini (void); - -#define RTL_MEMORY_ENTER() \ -{ \ - if (!(g_memory.m_align)) ___rtl_memory_init(); \ - RTL_MUTEX_ACQUIRE(&(g_memory.m_mutex.m_lock)); \ -} - -#define RTL_MEMORY_LEAVE() \ -{ \ - RTL_MUTEX_RELEASE(&(g_memory.m_mutex.m_lock)); \ -} - -/*=========================================================================== - * - * rtl_memory (queue) internals. - * - *=========================================================================*/ -#if defined(PROFILE) || (OSL_DEBUG_LEVEL > 0) -static sal_Size queue (sal_Size n) -{ - /* k = n div __C__ */ - register sal_Size k = n / __C__, m = __L__; - - OSL_PRECOND((__L__ == 32), - "__rtl_memory_queue(): internal logic error"); - if (k > m) - { - /* k = k div __L__ = k div 32 */ - k >>= 5; - while ((k >>= 1) > 0) m++; - k = m; - } - - OSL_POSTCOND((0 < k) && (k < __N__), - "__rtl_memory_queue(): " - "internal error: index out of bounds"); - return (k); -} -#else /* PRODUCT */ -#define queue(k, n) \ -{ \ - (k) = ((n) / __C__); \ - if ((k) > __L__) \ - { \ - register sal_Size m = __L__; \ - (k) >>= 5; \ - while (((k) >>= 1) > 0) m++; \ - (k) = m; \ - } \ -} -#endif /* OSL_DEBUG_LEVEL || PRODUCT */ - -#define queue_start(entry) \ -{ \ - (entry)->m_flink = (entry); \ - (entry)->m_blink = (entry); \ -} - -#define queue_remove(entry) \ -{ \ - (entry)->m_blink->m_flink = (entry)->m_flink; \ - (entry)->m_flink->m_blink = (entry)->m_blink; \ - queue_start(entry); \ -} - -#define queue_insert_head(head, entry) \ -{ \ - (entry)->m_blink = (head); \ - (entry)->m_flink = (head)->m_flink; \ - (head)->m_flink = (entry); \ - (entry)->m_flink->m_blink = (entry); \ -} - -#define queue_insert_tail(head, entry) \ -{ \ - (entry)->m_flink = (head); \ - (entry)->m_blink = (head)->m_blink; \ - (head)->m_blink = (entry); \ - (entry)->m_blink->m_flink = (entry); \ -} - -/*=========================================================================== - * - * rtl_memory (debug) internals. - * - *=========================================================================*/ -#if OSL_DEBUG_LEVEL > 0 - -#define __dbg_memory_succ(entry, length) \ -(memory_type*)((char*)((entry)) + ((length) & ~0x1)) - -#define __dbg_memory_pred(entry, offset) \ -(memory_type*)((char*)((entry)) - ((offset) & ~0x1)) - -#define __dbg_memory_ensure(entry) (!((sal_Size)(entry) & 0x7)) - -/* - * __dbg_memory_dequeue. - */ -static void __dbg_memory_dequeue (sal_Size n) -{ - register sal_Size k = queue(n); - - g_memory.m_queue_stat[k].m_dequeue += 1; - g_memory.m_queue_stat[k].m_delta_q += 1; - - g_memory.m_queue_stat[k].m_deqsize += n; - g_memory.m_queue_stat[k].m_delta_n += n; -} - -/* - * __dbg_memory_enqueue. - */ -static void __dbg_memory_enqueue (sal_Size n) -{ - register sal_Size k = queue(n); - - g_memory.m_queue_stat[k].m_enqueue += 1; - g_memory.m_queue_stat[k].m_delta_q -= 1; - - g_memory.m_queue_stat[k].m_enqsize += n; - g_memory.m_queue_stat[k].m_delta_n -= n; -} - -/* - * __dbg_memory_insert. - */ -static void __dbg_memory_insert (memory_type **ppMemory) -{ - register memory_type * succ; - succ = __dbg_memory_succ (*ppMemory, sizeof(memory_type)); - - succ->m_length = (*ppMemory)->m_length - sizeof(memory_type); - succ->m_offset = (*ppMemory)->m_offset; - - queue_insert_tail (&(g_memory.m_alloc_head), (*ppMemory)); - (*ppMemory) = succ; -} - -/* - * __dbg_memory_remove. - */ -static void __dbg_memory_remove (memory_type **ppMemory) -{ - (*ppMemory) = __dbg_memory_pred (*ppMemory, sizeof(memory_type)); - queue_remove (*ppMemory); -} - -/* - * __dbg_memory_verify_chain. - */ -static int __dbg_memory_verify_chain (memory_type * x) -{ - if (!__dbg_memory_ensure(x)) - { - OSL_ENSURE(0, "__rtl_memory_verify(): invalid pointer alignment."); - return (0); - } - if (!__dbg_memory_ensure(x->m_length & ~0x1)) - { - OSL_ENSURE(0, "__rtl_memory_verify(): dynamic memory corruption"); - return (0); - } - if (!__dbg_memory_ensure(x->m_offset & ~0x1)) - { - OSL_ENSURE(0, "__rtl_memory_verify(): dynamic memory corruption"); - return (0); - } - if (!(x->m_length & ~0x1)) - { - OSL_ENSURE(0, "__rtl_memory_verify(): dynamic memory corruption"); - return (0); - } - return (1); -} - -/* - * __dbg_memory_verify_queue. - */ -static int __dbg_memory_verify_queue (memory_type * x) -{ - if (!__dbg_memory_ensure(x)) - { - OSL_ENSURE(0, "__rtl_memory_verify(): invalid pointer alignment."); - return (0); - } - if (!__dbg_memory_ensure(x->m_flink)) - { - OSL_ENSURE(0, "__rtl_memory_verify(): free memory corruption"); - return (0); - } - if (!__dbg_memory_ensure(x->m_blink)) - { - OSL_ENSURE(0, "__rtl_memory_verify(): free memory corruption"); - return (0); - } - if ((x == x->m_flink) || (x == x->m_blink)) - { - OSL_ENSURE(0, "__rtl_memory_verify(): internal logic error"); - return (0); - } - return (1); -} - -/* - * __dbg_memory_verify_alloc. - */ -static int __dbg_memory_verify_alloc (memory_type * x) -{ - register memory_type *head, *entry; - head = entry = &(g_memory.m_alloc_head); - - if (!__dbg_memory_ensure(x)) - { - OSL_ENSURE(0, "__rtl_memory_verify(): invalid pointer alignment."); - return (0); - } - while (!((entry = entry->m_flink) == head)) - { - if ((entry < x) && (x < __dbg_memory_succ(entry, entry->m_length))) - { - head = entry = __dbg_memory_succ(entry, sizeof(memory_type)); - while (!((x == entry) || (entry->m_offset & 0x1))) - { - /* no match, not last */ - if (!__dbg_memory_verify_chain (entry)) - return (0); - entry = __dbg_memory_succ(entry, entry->m_length); - } - - /* match, or last */ - if (!__dbg_memory_verify_chain (entry)) - return (0); - break; - } - } - if (!(x == entry)) - { - OSL_ENSURE(0, "__rtl_memory_verify(): memory not allocated."); - return (0); - } - return (1); -} - -/* - * __dbg_memory_verify. - */ -static int __dbg_memory_verify (memory_type * x, int debug) -{ - /* dispatch upon 'debug' level */ - if (debug) - { - /* verify allocation */ - if (!__dbg_memory_verify_alloc (x)) - return (0); - } - else - { - /* verify 'chain' fields */ - if (!__dbg_memory_verify_chain (x)) - return (0); - } - - /* verify 'used' bit */ - if (!(x->m_length & 0x1)) - { - OSL_ENSURE(0, "__rtl_memory_verify(): memory not used."); - return (0); - } - return (1); -} - -#if OSL_DEBUG_LEVEL > 1 -/* - * __dbg_memory_usage_update. - */ -static sal_Size __dbg_memory_usage_update (memory_stat * stat, sal_Size length) -{ - register sal_Size n = (length & ~0x1), k = queue(n); - - stat[k].m_dequeue += 1; - stat[k].m_deqsize += n; - - if (!(length & 0x1)) - { - /* not used */ - stat[k].m_enqueue += 1; - stat[k].m_enqsize += n; - return (n); - } - else - { - /* used */ - stat[k].m_delta_q += 1; - stat[k].m_delta_n += n; - return (0); - } -} - -/* - * __dbg_memory_usage. - */ -static void __dbg_memory_usage (memory_stat * total) -{ - register memory_type *head, *entry, *memory; - memory_stat stat[__N__]; - - memset (stat, 0, __N__ * sizeof(memory_stat)); - - head = entry = &(g_memory.m_alloc_head); - while (!((entry = entry->m_flink) == head)) - { - register sal_Size k = 0, n = entry->m_length - sizeof(memory_type); - - memory = __dbg_memory_succ(entry, sizeof(memory_type)); - while (!(memory->m_offset & 0x1)) - { - /* not last */ - k += __dbg_memory_usage_update (stat, memory->m_length); - memory = __dbg_memory_succ(memory, memory->m_length); - } - - k += __dbg_memory_usage_update (stat, memory->m_length); - OSL_TRACE("%x %10d %10d", (sal_Size)(entry), n, k); - } - - if (total) - { - sal_Size i; - - memset (total, 0, sizeof(memory_stat)); - for (i = 0; i < __N__; i++) - { - total->m_dequeue += stat[i].m_dequeue; - total->m_enqueue += stat[i].m_enqueue; - total->m_delta_q += stat[i].m_delta_q; - - total->m_deqsize += stat[i].m_deqsize; - total->m_enqsize += stat[i].m_enqsize; - total->m_delta_n += stat[i].m_delta_n; - } - } -} -#endif /* OSL_DEBUG_LEVEL */ - -#endif /* OSL_DEBUG_LEVEL */ -#if OSL_DEBUG_LEVEL > 0 - -#define DBG_MEMORY_DEQUEUE(n) __dbg_memory_dequeue((sal_Size)(n) & ~0x1) -#define DBG_MEMORY_ENQUEUE(n) __dbg_memory_enqueue((sal_Size)(n) & ~0x1) - -#define DBG_MEMORY_DEQFILL(entry, offset, length) \ - memset(((char*)(entry) + (offset)), 0x77777777, (length)) -#define DBG_MEMORY_ENQFILL(entry, offset, length) \ - memset(((char*)(entry) + (offset)), 0x33333333, (length)) - -#define DBG_MEMORY_INSERT(entry) __dbg_memory_insert((entry)) -#define DBG_MEMORY_REMOVE(entry) __dbg_memory_remove((entry)) - -#if OSL_DEBUG_LEVEL > 1 -#define DBG_MEMORY_VERIFY(entry) __dbg_memory_verify((entry), 1) -#else /* OSL_DEBUG_LEVEL > 0 */ -#define DBG_MEMORY_VERIFY(entry) __dbg_memory_verify((entry), 0) -#endif /* OSL_DEBUG_LEVEL */ - -#define DBG_MEMORY_VERIFY_CHAIN(entry) __dbg_memory_verify_chain((entry)) -#define DBG_MEMORY_VERIFY_QUEUE(entry) __dbg_memory_verify_queue((entry)) - -#else /* PRODUCT */ - -#define DBG_MEMORY_DEQUEUE(n) -#define DBG_MEMORY_ENQUEUE(n) - -#define DBG_MEMORY_DEQFILL(entry, offset, length) -#define DBG_MEMORY_ENQFILL(entry, offset, length) - -#define DBG_MEMORY_INSERT(entry) -#define DBG_MEMORY_REMOVE(entry) - -#define DBG_MEMORY_VERIFY(entry) -#define DBG_MEMORY_VERIFY_CHAIN(entry) -#define DBG_MEMORY_VERIFY_QUEUE(entry) - -#endif /* OSL_DEBUG_LEVEL || PRODUCT */ - -/*=========================================================================== - * - * rtl_memory (manager) internals. - * - *=========================================================================*/ -#define queue_cast(entry, offset) \ -((memory_type*)((char*)(entry) + (ptrdiff_t)(offset))) - -#define __rtl_memory_used(entry) ((entry)->m_length & 0x1) -#define __rtl_memory_last(entry) ((entry)->m_offset & 0x1) -#define __rtl_memory_offset(entry) \ - ((ptrdiff_t)((entry)->m_offset & ~0x1)) - -/* - * ___rtl_memory_init. - */ -void SAL_CALL ___rtl_memory_init (void) -{ -#if defined(RTL_MUTEX_INIT) - RTL_MUTEX_INIT (&(g_memory.m_mutex.m_lock)); -#endif /* RTL_MUTEX_INIT */ - - RTL_MUTEX_ACQUIRE(&(g_memory.m_mutex.m_lock)); - if (!(g_memory.m_align)) - { - sal_Size pagesize; - int i; - - queue_start (&(g_memory.m_alloc_head)); - queue_start (&(g_memory.m_spare_head)); - - for (i = 0; i < __N__; i++) - queue_start (&(g_memory.m_queue_head[i])); - for (i = 1; i <= __L__; i++) - g_memory.m_queue_head[i].m_length = i * __C__; - for (i = __L__ + 1; i < __N__; i++) - g_memory.m_queue_head[i].m_length = - 2 * g_memory.m_queue_head[i - 1].m_length; - - pagesize = __rtl_memory_vmpagesize(); - g_memory.m_align = RTL_MEMORY_ALIGN(__M__, pagesize); - } - RTL_MUTEX_RELEASE(&(g_memory.m_mutex.m_lock)); -} - -/* - * ___rtl_memory_fini. - */ -void SAL_CALL ___rtl_memory_fini (void) -{ -#if OSL_DEBUG_LEVEL > 1 - - memory_stat total; - - __dbg_memory_usage (&total); - if (total.m_delta_n > 0) - { - OSL_TRACE("___rtl_memory_fini(): " - "Leak: %10d (Alloc: %10d, Free: %10d)", - total.m_delta_n, - (sal_uInt32)(total.m_deqsize & 0xffffffff), - (sal_uInt32)(total.m_enqsize & 0xffffffff)); - } - -#endif /* OSL_DEBUG_LEVEL */ -} - -/* - * __rtl_memory_merge. - */ -#if defined(PROFILE) || (OSL_DEBUG_LEVEL > 0) -static void __rtl_memory_merge (memory_type * prev, memory_type * next) -{ - /* adjust length */ - prev->m_length += next->m_length; - if (!__rtl_memory_last(next)) - { - /* not last, adjust offset */ - register memory_type * succ = queue_cast(prev, prev->m_length); - DBG_MEMORY_VERIFY_CHAIN (succ); - succ->m_offset = prev->m_length | __rtl_memory_last(succ); - } - - /* propagate 'last' bit */ - prev->m_offset |= __rtl_memory_last(next); -} -#else /* PRODUCT */ -#define __rtl_memory_merge(prev, next) \ -{ \ - (prev)->m_length += (next)->m_length; \ - if (!__rtl_memory_last((next))) \ - { \ - register memory_type * succ = queue_cast((prev), (prev)->m_length); \ - succ->m_offset = (prev)->m_length | __rtl_memory_last(succ); \ - } \ - (prev)->m_offset |= __rtl_memory_last((next)); \ -} -#endif /* OSL_DEBUG_LEVEL || PRODUCT */ - -/* - * __rtl_memory_split. - */ -#if defined(PROFILE) || (OSL_DEBUG_LEVEL > 0) -static void __rtl_memory_split (memory_type * prev, memory_type * next) -{ - /* adjust length */ - prev->m_length -= next->m_length; - if (!__rtl_memory_last(prev)) - { - /* not last, adjust offset */ - register memory_type * succ = queue_cast(next, next->m_length); - DBG_MEMORY_VERIFY_CHAIN (succ); - succ->m_offset = next->m_length | __rtl_memory_last(succ); - } - - /* propagate 'last' bit */ - next->m_offset |= __rtl_memory_last(prev); - prev->m_offset &= ~0x1; -} -#else /* PRODUCT */ -#define __rtl_memory_split(prev, next) \ -{ \ - (prev)->m_length -= (next)->m_length; \ - if (!__rtl_memory_last((prev))) \ - { \ - register memory_type * succ = queue_cast((next), (next)->m_length); \ - succ->m_offset = (next)->m_length | __rtl_memory_last(succ); \ - } \ -\ - (next)->m_offset |= __rtl_memory_last((prev)); \ - (prev)->m_offset &= ~0x1; \ -} -#endif /* OSL_DEBUG_LEVEL || PRODUCT */ - -/* - * __rtl_memory_insert. - */ -#if defined(PROFILE) || (OSL_DEBUG_LEVEL > 0) -static void __rtl_memory_insert (memory_type * memory, sal_Size n) -{ - /* obtain queue head */ - register memory_type *head; - - head = &(g_memory.m_queue_head[queue(n)]); - DBG_MEMORY_VERIFY_CHAIN (head); - - /* insert at queue tail (first-in first-out) */ - queue_insert_tail (head, memory); -} -#else /* PRODUCT */ -#define __rtl_memory_insert(memory, n) \ -{ \ - register sal_Size h; \ -\ - queue(h, (n)); \ - queue_insert_tail (&(g_memory.m_queue_head[h]), (memory)); \ -} -#endif /* OSL_DEBUG_LEVEL || PRODUCT */ - -/* - * __rtl_memory_resize. - */ -#if defined(PROFILE) || (OSL_DEBUG_LEVEL > 0) -static void __rtl_memory_resize (memory_type * memory, sal_Size n) -{ - register sal_Size k = (memory->m_length - n); - - OSL_ENSURE(!(memory->m_length & 0x1), - "__rtl_memory_resize(): " - "internal logic error."); - - if ((k >= sizeof(memory_type)) && (n <= __T__)) - { - /* split */ - register memory_type * remain = queue_cast(memory, n); - - remain->m_length = k; remain->m_offset = n; - __rtl_memory_split (memory, remain); - - /* check postcond */ - if (!__rtl_memory_last(remain)) - { - /* not last, verify used next entry */ - register memory_type *next; - - next = queue_cast(remain, remain->m_length); - DBG_MEMORY_VERIFY_CHAIN (next); - - OSL_POSTCOND(__rtl_memory_used(next), - "__rtl_memory_resize(): " - "internal logic error."); - } - - /* enqueue */ - __rtl_memory_insert (remain, k); - DBG_MEMORY_VERIFY_QUEUE (remain); - } - - DBG_MEMORY_DEQUEUE(memory->m_length); -} -#else /* PRODUCT */ -#define __rtl_memory_resize(memory, n) \ -{ \ - register sal_Size kn = ((memory)->m_length - (n)); \ - if ((kn >= sizeof(memory_type)) && (n <= __T__)) \ - { \ - register memory_type * remain = queue_cast((memory), (n)); \ -\ - remain->m_length = kn; remain->m_offset = (n); \ - __rtl_memory_split ((memory), remain); \ -\ - __rtl_memory_insert (remain, kn); \ - } \ -} -#endif /* OSL_DEBUG_LEVEL || PRODUCT */ - -/* - * __rtl_memory_dequeue. - */ -#if defined(PROFILE) || (OSL_DEBUG_LEVEL > 0) -static void __rtl_memory_dequeue (memory_type **ppMemory, sal_Size n) -{ - register memory_type *head, *entry; - register sal_Size k, m = n; - - OSL_PRECOND(!*ppMemory, "__rtl_memory_dequeue(): internal logic error."); - for (k = queue(m); k < __N__; k++) - { - /* first fit (equals best fit w/ ascending insert) */ - head = &(g_memory.m_queue_head[k]); - for (entry = head->m_flink; entry != head; entry = entry->m_flink) - { - /* queue not empty */ - DBG_MEMORY_VERIFY_CHAIN (entry); - if (entry->m_length >= m) - { - /* remove entry */ - DBG_MEMORY_VERIFY_QUEUE (entry); - queue_remove (entry); - - /* assign result */ - *ppMemory = entry; - goto dequeue_leave; - } - } - } - - head = &(g_memory.m_spare_head); - for (entry = head->m_flink; entry != head; entry = entry->m_flink) - { - /* queue not empty */ - DBG_MEMORY_VERIFY_CHAIN (entry); - if (entry->m_length >= m) - { - /* remove entry */ - DBG_MEMORY_VERIFY_QUEUE (entry); - queue_remove (entry); - - /* assign result */ - *ppMemory = entry; - goto dequeue_leave; - } - } - -#if OSL_DEBUG_LEVEL > 0 - /* adjust for DBG_MEMORY_INSERT() overhead */ - m += sizeof(memory_type); -#endif /* OSL_DEBUG_LEVEL */ - - k = RTL_MEMORY_ALIGN((m > __M__) ? m : __M__, g_memory.m_align); - if (!((entry = RTL_MEMORY_ALLOC(k)) == 0)) - { - entry->m_length = k; - entry->m_offset = 0x1; /* set 'last' bit */ - - *ppMemory = entry; - DBG_MEMORY_INSERT(ppMemory); - } - -dequeue_leave: - OSL_POSTCOND(*ppMemory, "__rtl_memory_dequeue(): out of memory."); - if ((entry = *ppMemory) != 0) - { - /* adjust length */ - __rtl_memory_resize (entry, n); - - /* fill w/ 'uninitialized' pattern */ - DBG_MEMORY_DEQFILL (entry, __C__, entry->m_length - __C__); - } -#if OSL_DEBUG_LEVEL > 1 - if (!entry) - { - memory_stat total; - __dbg_memory_usage (&total); - } -#endif /* OSL_DEBUG_LEVEL */ -} -#else /* PRODUCT */ -#define __rtl_memory_dequeue(ppMemory, n, label) \ -{ \ - register memory_type *head, *entry; \ - register sal_Size h, m = (n); \ -\ - queue (h, m); \ - for (; h < __N__; h++) \ - { \ - head = &(g_memory.m_queue_head[h]); \ - for (entry = head->m_flink; entry != head; entry = entry->m_flink) \ - { \ - if (entry->m_length >= m) \ - { \ - queue_remove (entry); \ - goto label; \ - } \ - } \ - } \ -\ - head = &(g_memory.m_spare_head); \ - for (entry = head->m_flink; entry != head; entry = entry->m_flink) \ - { \ - if (entry->m_length >= m) \ - { \ - queue_remove (entry); \ - goto label; \ - } \ - } \ -\ - h = RTL_MEMORY_ALIGN((m > __M__) ? m : __M__, g_memory.m_align); \ - if (!((entry = RTL_MEMORY_ALLOC(h)) == 0)) \ - { \ - entry->m_length = h; \ - entry->m_offset = 0x1; \ - } \ -\ -label: \ - if (entry) \ - { \ - __rtl_memory_resize (entry, (n)); \ - *(ppMemory) = entry; \ - } \ -} -#endif /* OSL_DEBUG_LEVEL || PRODUCT */ - -#if defined(PROFILE) || (OSL_DEBUG_LEVEL > 0) -#define RTL_MEMORY_DEQUEUE(m, n, l) __rtl_memory_dequeue((m), (n)) -#else /* PRODUCT */ -#define RTL_MEMORY_DEQUEUE(m, n, l) __rtl_memory_dequeue(m, n, l) -#endif /* OSL_DEBUG_LEVEL || PRODUCT */ - -/* - * __rtl_memory_enqueue. - */ -#if defined(PROFILE) || (OSL_DEBUG_LEVEL > 0) -static void __rtl_memory_enqueue (memory_type **ppMemory) -{ - register memory_type *head = *ppMemory; - - OSL_ENSURE(!__rtl_memory_used(head), - "__rtl_memory_enqueue(): " - "internal logic error."); - DBG_MEMORY_ENQUEUE (head->m_length); - - /* fill w/ 'deinitialized' pattern */ - DBG_MEMORY_ENQFILL (head, __C__, head->m_length - __C__); - - /* try merge w/ next entry */ - if (!__rtl_memory_last(head)) - { - /* not last, check next in chain */ - register memory_type * next; - - next = queue_cast(head, head->m_length); - DBG_MEMORY_VERIFY_CHAIN (next); - - if (!__rtl_memory_used(next)) - { - /* next not used */ - DBG_MEMORY_VERIFY_QUEUE (next); - queue_remove (next); - - /* merge w/ next */ - __rtl_memory_merge (head, next); - DBG_MEMORY_ENQFILL (next, 0, sizeof(memory_type)); - } - } - - /* try merge w/ prev entry */ - if (__rtl_memory_offset(head) > 0) - { - /* not first, check prev in chain */ - register memory_type * prev; - - prev = queue_cast(head, -(__rtl_memory_offset(head))); - DBG_MEMORY_VERIFY_CHAIN (prev); - - if (!__rtl_memory_used(prev)) - { - /* prev not used */ - DBG_MEMORY_VERIFY_QUEUE (prev); - queue_remove (prev); - - /* merge w/ prev */ - __rtl_memory_merge (prev, head); - DBG_MEMORY_ENQFILL (head, 0, sizeof(memory_type)); - head = prev; - } - } - - if (!(head->m_offset == 0x1)) - { - /* page still used, enqueue */ - __rtl_memory_insert (head, head->m_length); - head = 0; - } - else if (head->m_length <= g_memory.m_align) - { - /* small page unused, check spare page */ - register memory_type * spare; - - spare = &(g_memory.m_spare_head); - if (spare->m_flink == spare) - { - /* keep as spare page */ - queue_insert_tail (spare, head); - head = 0; - } - } - if ((*ppMemory = head) != 0) - { - /* page unused, remove */ - DBG_MEMORY_REMOVE(ppMemory); - } -} -#else /* PRODUCT */ -#define __rtl_memory_enqueue(ppMemory) \ -{ \ - register memory_type *head = *(ppMemory); \ -\ - if (!__rtl_memory_last(head)) \ - { \ - register memory_type * next; \ - next = queue_cast(head, head->m_length); \ - if (!__rtl_memory_used(next)) \ - { \ - queue_remove (next); \ - __rtl_memory_merge (head, next); \ - } \ - } \ -\ - if (__rtl_memory_offset(head) > 0) \ - { \ - register memory_type * prev; \ - prev = queue_cast(head, -(__rtl_memory_offset(head))); \ - if (!__rtl_memory_used(prev)) \ - { \ - queue_remove (prev); \ - __rtl_memory_merge (prev, head); \ - head = prev; \ - } \ - } \ -\ - if (!(head->m_offset == 0x1)) \ - { \ - register memory_type * used = head; \ - __rtl_memory_insert (used, used->m_length); \ - head = 0; \ - } \ - else if (head->m_length <= g_memory.m_align) \ - { \ - register memory_type * spare; \ - spare = &(g_memory.m_spare_head); \ - if (spare->m_flink == spare) \ - { \ - queue_insert_tail (spare, head); \ - head = 0; \ - } \ - } \ -\ - *(ppMemory) = head; \ -} -#endif /* OSL_DEBUG_LEVEL || PRODUCT */ - -#define RTL_MEMORY_ENQUEUE(m) __rtl_memory_enqueue((m)) - -#endif /* FORCE_SYSALLOC */ - -/*=========================================================================== - * - * rtl_memory (manager) implementation. - * - *=========================================================================*/ -/* - * rtl_reallocateMemory. - */ -#ifndef FORCE_SYSALLOC -void* SAL_CALL rtl_reallocateMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C() -{ - memory_type * memory; - if (!(!p || !n)) - { - /* reallocate */ - register sal_Size datlen; - - memory = queue_cast(p, -(__C__)); p = 0; - n = RTL_MEMORY_ALIGN(n, __Q__) + __C__; - - RTL_MEMORY_ENTER(); - DBG_MEMORY_VERIFY(memory); - - /* clear 'used' bit */ - DBG_MEMORY_ENQUEUE (memory->m_length); - memory->m_length &= ~0x1; - - /* amount of data to be moved or copied */ - datlen = ((memory->m_length < n) ? memory->m_length : n); - - /* try merge w/ next entry */ - if (!__rtl_memory_last(memory)) - { - /* not last, check next in chain */ - register memory_type * next; - - next = queue_cast(memory, memory->m_length); - DBG_MEMORY_VERIFY_CHAIN(next); - - if (!__rtl_memory_used(next)) - { - /* next not used */ - DBG_MEMORY_VERIFY_QUEUE(next); - queue_remove (next); - - /* merge w/ next */ - __rtl_memory_merge (memory, next); - } - } - - /* try merge w/ prev entry */ - if (__rtl_memory_offset(memory) > 0) - { - /* not first, check prev in chain */ - register memory_type * prev; - - prev = queue_cast(memory, -(__rtl_memory_offset(memory))); - DBG_MEMORY_VERIFY_CHAIN (prev); - - if (!__rtl_memory_used(prev)) - { - /* prev not used, try merge, move */ - if ((memory->m_length + prev->m_length) >= n) - { - /* prev does fit */ - DBG_MEMORY_VERIFY_QUEUE (prev); - queue_remove (prev); - - /* merge w/ prev */ - __rtl_memory_merge (prev, memory); - - /* move to prev */ - memmove ( - queue_cast(prev, __C__), - queue_cast(memory, __C__), - datlen - __C__); - memory = prev; - } - } - } - - if (memory->m_length >= n) - { - /* adjust, set 'used' bit */ - __rtl_memory_resize (memory, n); - memory->m_length |= 0x1; - - /* assign result */ - p = queue_cast(memory, __C__); - } - else - { - /* allocate */ - memory_type * result = 0; - - /* restore 'used' bit */ - DBG_MEMORY_DEQUEUE (memory->m_length); - memory->m_length |= 0x80000000; - - RTL_MEMORY_DEQUEUE (&result, n, realloc_label_1); - if (result) - { - /* set 'used' bit */ - result->m_length |= 0x1; - - /* copy */ - memcpy ( - queue_cast(result, __C__), - queue_cast(memory, __C__), - datlen - __C__); - - /* clear 'used' bit, enqueue */ - memory->m_length &= 0x7fffffff; - RTL_MEMORY_ENQUEUE (&memory); - if (memory) - { - /* free memory page */ - RTL_MEMORY_FREE(memory, memory->m_length); - } - - /* assign result */ - p = queue_cast(result, __C__); - } - } - RTL_MEMORY_LEAVE(); - } - else if (!p) - { - /* allocate */ - memory = 0; - n = RTL_MEMORY_ALIGN(n, __Q__) + __C__; - - RTL_MEMORY_ENTER(); - RTL_MEMORY_DEQUEUE (&memory, n, realloc_label_2); - if (memory) - { - /* set 'used' bit */ - memory->m_length |= 0x1; - - /* assign result */ - p = queue_cast(memory, __C__); - } - RTL_MEMORY_LEAVE(); - } - else if (!n) - { - /* free */ - memory = queue_cast(p, -(__C__)); p = 0; - - RTL_MEMORY_ENTER(); - DBG_MEMORY_VERIFY(memory); - - /* clear 'used' bit, enqueue */ - memory->m_length &= ~0x1; - - RTL_MEMORY_ENQUEUE (&memory); - if (memory) - { - /* free memory page */ - RTL_MEMORY_FREE(memory, memory->m_length); - } - RTL_MEMORY_LEAVE(); - } - return (p); -} -#else /* FORCE_SYSALLOC */ -void* SAL_CALL rtl_reallocateMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C() -{ - return realloc(p, (sal_Size)(n)); -} -#endif /* FORCE_SYSALLOC */ - -/* - * rtl_allocateMemory. - */ -#ifndef FORCE_SYSALLOC -void* SAL_CALL rtl_allocateMemory (sal_Size n) SAL_THROW_EXTERN_C() -{ - void * p = 0; - if (n > 0) - { - memory_type * memory = 0; - n = RTL_MEMORY_ALIGN(n, __Q__) + __C__; - - RTL_MEMORY_ENTER(); - RTL_MEMORY_DEQUEUE (&memory, n, alloc_label); - if (memory) - { - /* set 'used' bit */ - memory->m_length |= 0x1; - - /* assign result */ - p = queue_cast(memory, __C__); - } - RTL_MEMORY_LEAVE(); - } - return (p); -} -#else /* FORCE_SYSALLOC */ -void* SAL_CALL rtl_allocateMemory (sal_Size n) SAL_THROW_EXTERN_C() -{ - return malloc((sal_Size)(n)); -} -#endif /* FORCE_SYSALLOC */ - -/* - * rtl_freeMemory. - */ -#ifndef FORCE_SYSALLOC -void SAL_CALL rtl_freeMemory (void * p) SAL_THROW_EXTERN_C() -{ - if (p) - { - memory_type * memory = queue_cast(p, -(__C__)); - - RTL_MEMORY_ENTER(); - DBG_MEMORY_VERIFY(memory); - - /* clear 'used' bit, enqueue */ - memory->m_length &= ~0x1; - - RTL_MEMORY_ENQUEUE (&memory); - if (memory) - { - /* free memory page */ - RTL_MEMORY_FREE(memory, memory->m_length); - } - RTL_MEMORY_LEAVE(); - } -} -#else /* FORCE_SYSALLOC */ -void SAL_CALL rtl_freeMemory (void * p) SAL_THROW_EXTERN_C() -{ - free(p); -} -#endif /* FORCE_SYSALLOC */ - -/* - * rtl_allocateZeroMemory. - */ -#ifndef FORCE_SYSALLOC -void* SAL_CALL rtl_allocateZeroMemory (sal_Size n) SAL_THROW_EXTERN_C() -{ - void * p = 0; - if (n > 0) - { - memory_type * memory = 0; - n = RTL_MEMORY_ALIGN(n, __Q__) + __C__; - - RTL_MEMORY_ENTER(); - RTL_MEMORY_DEQUEUE (&memory, n, alloc_label); /* NYI: demand zero */ - if (memory) - { - /* zero, set 'used' bit */ - memset ((char*)memory + __C__, 0, memory->m_length - __C__); - memory->m_length |= 0x1; - - /* assign result */ - p = queue_cast(memory, __C__); - } - RTL_MEMORY_LEAVE(); - } - return (p); -} -#else /* FORCE_SYSALLOC */ -void* SAL_CALL rtl_allocateZeroMemory (sal_Size n) SAL_THROW_EXTERN_C() -{ - return calloc((sal_Size)(n), 1); -} -#endif /* FORCE_SYSALLOC */ - -/* - * rtl_freeZeroMemory. - */ -#ifndef FORCE_SYSALLOC -void SAL_CALL rtl_freeZeroMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C() -{ - (void) n; /* unused */ - if (p) - { - memory_type * memory = queue_cast(p, -(__C__)); - - RTL_MEMORY_ENTER(); - DBG_MEMORY_VERIFY(memory); - - /* clear 'used' bit, zero, enqueue */ - memory->m_length &= ~0x1; - memset ((char*)memory + __C__, 0, memory->m_length - __C__); - - RTL_MEMORY_ENQUEUE (&memory); /* NYI: demand zero */ - if (memory) - { - /* free memory page */ - RTL_MEMORY_FREE(memory, memory->m_length); - } - RTL_MEMORY_LEAVE(); - } -} -#else /* FORCE_SYSALLOC */ -void SAL_CALL rtl_freeZeroMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C() -{ - if (p) - { - memset(p, 0, n); - free(p); - } -} -#endif /* FORCE_SYSALLOC */ - -/*=========================================================================== - * - * The End. - * - *=========================================================================*/ diff --git a/sal/rtl/source/alloc_arena.c b/sal/rtl/source/alloc_arena.c index f7325fcc616d..1e2ea5a741e4 100644 --- a/sal/rtl/source/alloc_arena.c +++ b/sal/rtl/source/alloc_arena.c @@ -28,22 +28,13 @@ #define _BSD_SOURCE /* sys/mman.h: MAP_ANON */ #include "alloc_arena.h" -#ifndef INCLUDED_RTL_ARENA_IMPL_H #include "alloc_impl.h" -#endif #include "internal/once.h" #include "sal/macros.h" #include "osl/diagnose.h" -#ifndef INCLUDED_STRING_H #include <string.h> -#endif - -#ifndef INCLUDED_STDIO_H #include <stdio.h> -#endif - -#include "sal/types.h" #ifdef OS2 #undef OSL_TRACE @@ -966,6 +957,7 @@ try_alloc: if (result != 0) { rtl_arena_type * arena = result; + VALGRIND_CREATE_MEMPOOL(arena, 0, 0); rtl_arena_constructor (arena); if (!source_arena) @@ -988,6 +980,7 @@ try_alloc: { rtl_arena_deactivate (arena); rtl_arena_destructor (arena); + VALGRIND_DESTROY_MEMPOOL(arena); rtl_arena_free (gp_arena_arena, arena, size); } } @@ -1013,6 +1006,7 @@ SAL_CALL rtl_arena_destroy ( { rtl_arena_deactivate (arena); rtl_arena_destructor (arena); + VALGRIND_DESTROY_MEMPOOL(arena); rtl_arena_free (gp_arena_arena, arena, sizeof(rtl_arena_type)); } } @@ -1068,6 +1062,10 @@ SAL_CALL rtl_arena_alloc ( rtl_arena_hash_insert (arena, segment); + /* DEBUG ONLY: mark allocated, undefined */ + OSL_DEBUG_ONLY(memset((void*)(segment->m_addr), 0x77777777, segment->m_size)); + VALGRIND_MEMPOOL_ALLOC(arena, segment->m_addr, segment->m_size); + (*pSize) = segment->m_size; addr = (void*)(segment->m_addr); } @@ -1111,6 +1109,11 @@ SAL_CALL rtl_arena_free ( { rtl_arena_segment_type *next, *prev; + /* DEBUG ONLY: mark unallocated, undefined */ + VALGRIND_MEMPOOL_FREE(arena, segment->m_addr); + /* OSL_DEBUG_ONLY() */ VALGRIND_MAKE_MEM_UNDEFINED(segment->m_addr, segment->m_size); + OSL_DEBUG_ONLY(memset((void*)(segment->m_addr), 0x33333333, segment->m_size)); + /* coalesce w/ adjacent free segment(s) */ rtl_arena_segment_coalesce (arena, segment); @@ -1302,6 +1305,7 @@ rtl_arena_once_init (void) static rtl_arena_type g_machdep_arena; OSL_ASSERT(gp_machdep_arena == 0); + VALGRIND_CREATE_MEMPOOL(&g_machdep_arena, 0, 0); rtl_arena_constructor (&g_machdep_arena); gp_machdep_arena = rtl_arena_activate ( @@ -1318,6 +1322,7 @@ rtl_arena_once_init (void) static rtl_arena_type g_default_arena; OSL_ASSERT(gp_default_arena == 0); + VALGRIND_CREATE_MEMPOOL(&g_default_arena, 0, 0); rtl_arena_constructor (&g_default_arena); gp_default_arena = rtl_arena_activate ( @@ -1336,6 +1341,7 @@ rtl_arena_once_init (void) static rtl_arena_type g_arena_arena; OSL_ASSERT(gp_arena_arena == 0); + VALGRIND_CREATE_MEMPOOL(&g_arena_arena, 0, 0); rtl_arena_constructor (&g_arena_arena); gp_arena_arena = rtl_arena_activate ( @@ -1361,7 +1367,18 @@ rtl_arena_init (void) /* ================================================================= */ -#if defined(__GNUC__) +/* + Issue http://udk.openoffice.org/issues/show_bug.cgi?id=92388 + + Mac OS X does not seem to support "__cxa__atexit", thus leading + to the situation that "__attribute__((destructor))__" functions + (in particular "rtl_{memory|cache|arena}_fini") become called + _before_ global C++ object d'tors. + + Delegated the call to "rtl_arena_fini()" into a dummy C++ object, + see alloc_fini.cxx . +*/ +#if defined(__GNUC__) && !defined(MACOSX) static void rtl_arena_fini (void) __attribute__((destructor)); #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) #pragma fini(rtl_arena_fini) diff --git a/sal/rtl/source/alloc_cache.c b/sal/rtl/source/alloc_cache.c index 4e2c030fb3a6..f4d34bfdb437 100644 --- a/sal/rtl/source/alloc_cache.c +++ b/sal/rtl/source/alloc_cache.c @@ -507,6 +507,10 @@ rtl_cache_slab_alloc ( addr = (void*)rtl_cache_hash_insert (cache, bufctl); else addr = bufctl; + + /* DEBUG ONLY: mark allocated, undefined */ + OSL_DEBUG_ONLY(memset(addr, 0x77777777, cache->m_type_size)); + VALGRIND_MEMPOOL_ALLOC(cache, addr, cache->m_type_size); } RTL_MEMORY_LOCK_RELEASE(&(cache->m_slab_lock)); @@ -529,6 +533,11 @@ rtl_cache_slab_free ( RTL_MEMORY_LOCK_ACQUIRE(&(cache->m_slab_lock)); + /* DEBUG ONLY: mark unallocated, undefined */ + VALGRIND_MEMPOOL_FREE(cache, addr); + /* OSL_DEBUG_ONLY() */ VALGRIND_MAKE_MEM_UNDEFINED(addr, cache->m_type_size); + OSL_DEBUG_ONLY(memset(addr, 0x33333333, cache->m_type_size)); + /* determine slab from addr */ if (cache->m_features & RTL_CACHE_FEATURE_HASH) { @@ -635,8 +644,13 @@ rtl_cache_magazine_clear ( void * obj = mag->m_objects[mag->m_mag_used - 1]; mag->m_objects[mag->m_mag_used - 1] = 0; + /* DEBUG ONLY: mark cached object allocated, undefined */ + VALGRIND_MEMPOOL_ALLOC(cache, obj, cache->m_type_size); if (cache->m_destructor != 0) { + /* DEBUG ONLY: keep constructed object defined */ + VALGRIND_MAKE_MEM_DEFINED(obj, cache->m_type_size); + /* destruct object */ (cache->m_destructor)(obj, cache->m_userarg); } @@ -965,11 +979,16 @@ rtl_cache_deactivate ( rtl_cache_type * cache ) { + int active = 1; + /* remove from cache list */ RTL_MEMORY_LOCK_ACQUIRE(&(g_cache_list.m_lock)); + active = QUEUE_STARTED_NAMED(cache, cache_) == 0; QUEUE_REMOVE_NAMED(cache, cache_); RTL_MEMORY_LOCK_RELEASE(&(g_cache_list.m_lock)); + OSL_PRECOND(active, "rtl_cache_deactivate(): orphaned cache."); + /* cleanup magazine layer */ if (cache->m_magazine_cache != 0) { @@ -1121,6 +1140,7 @@ try_alloc: if (result != 0) { rtl_cache_type * cache = result; + VALGRIND_CREATE_MEMPOOL(cache, 0, 0); (void) rtl_cache_constructor (cache); if (!source) @@ -1148,6 +1168,7 @@ try_alloc: /* activation failed */ rtl_cache_deactivate (cache); rtl_cache_destructor (cache); + VALGRIND_DESTROY_MEMPOOL(cache); rtl_arena_free (gp_cache_arena, cache, size); } } @@ -1172,6 +1193,7 @@ void SAL_CALL rtl_cache_destroy ( { rtl_cache_deactivate (cache); rtl_cache_destructor (cache); + VALGRIND_DESTROY_MEMPOOL(cache); rtl_arena_free (gp_cache_arena, cache, sizeof(rtl_cache_type)); } } @@ -1201,6 +1223,14 @@ SAL_CALL rtl_cache_alloc ( if ((curr != 0) && (curr->m_mag_used > 0)) { obj = curr->m_objects[--curr->m_mag_used]; +#if defined(HAVE_VALGRIND_MEMCHECK_H) + VALGRIND_MEMPOOL_ALLOC(cache, obj, cache->m_type_size); + if (cache->m_constructor != 0) + { + /* keep constructed object defined */ + VALGRIND_MAKE_MEM_DEFINED(obj, cache->m_type_size); + } +#endif /* HAVE_VALGRIND_MEMCHECK_H */ cache->m_cpu_stats.m_alloc += 1; RTL_MEMORY_LOCK_RELEASE(&(cache->m_depot_lock)); @@ -1244,7 +1274,6 @@ SAL_CALL rtl_cache_alloc ( rtl_cache_slab_free (cache, obj), obj = 0; } } - return (obj); } @@ -1269,6 +1298,9 @@ SAL_CALL rtl_cache_free ( if ((curr != 0) && (curr->m_mag_used < curr->m_mag_size)) { curr->m_objects[curr->m_mag_used++] = obj; +#if defined(HAVE_VALGRIND_MEMCHECK_H) + VALGRIND_MEMPOOL_FREE(cache, obj); +#endif /* HAVE_VALGRIND_MEMCHECK_H */ cache->m_cpu_stats.m_free += 1; RTL_MEMORY_LOCK_RELEASE(&(cache->m_depot_lock)); @@ -1582,6 +1614,7 @@ rtl_cache_once_init (void) static rtl_cache_type g_cache_magazine_cache; OSL_ASSERT(gp_cache_magazine_cache == 0); + VALGRIND_CREATE_MEMPOOL(&g_cache_magazine_cache, 0, 0); (void) rtl_cache_constructor (&g_cache_magazine_cache); gp_cache_magazine_cache = rtl_cache_activate ( @@ -1606,6 +1639,7 @@ rtl_cache_once_init (void) static rtl_cache_type g_cache_slab_cache; OSL_ASSERT(gp_cache_slab_cache == 0); + VALGRIND_CREATE_MEMPOOL(&g_cache_slab_cache, 0, 0); (void) rtl_cache_constructor (&g_cache_slab_cache); gp_cache_slab_cache = rtl_cache_activate ( @@ -1627,6 +1661,7 @@ rtl_cache_once_init (void) static rtl_cache_type g_cache_bufctl_cache; OSL_ASSERT(gp_cache_bufctl_cache == 0); + VALGRIND_CREATE_MEMPOOL(&g_cache_bufctl_cache, 0, 0); (void) rtl_cache_constructor (&g_cache_bufctl_cache); gp_cache_bufctl_cache = rtl_cache_activate ( @@ -1657,7 +1692,18 @@ rtl_cache_init (void) /* ================================================================= */ -#if defined(__GNUC__) +/* + Issue http://udk.openoffice.org/issues/show_bug.cgi?id=92388 + + Mac OS X does not seem to support "__cxa__atexit", thus leading + to the situation that "__attribute__((destructor))__" functions + (in particular "rtl_{memory|cache|arena}_fini") become called + _before_ global C++ object d'tors. + + Delegated the call to "rtl_cache_fini()" into a dummy C++ object, + see alloc_fini.cxx . +*/ +#if defined(__GNUC__) && !defined(MACOSX) static void rtl_cache_fini (void) __attribute__((destructor)); #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) #pragma fini(rtl_cache_fini) @@ -1678,18 +1724,21 @@ rtl_cache_fini (void) cache = gp_cache_bufctl_cache, gp_cache_bufctl_cache = 0; rtl_cache_deactivate (cache); rtl_cache_destructor (cache); + VALGRIND_DESTROY_MEMPOOL(cache); } if (gp_cache_slab_cache != 0) { cache = gp_cache_slab_cache, gp_cache_slab_cache = 0; rtl_cache_deactivate (cache); rtl_cache_destructor (cache); + VALGRIND_DESTROY_MEMPOOL(cache); } if (gp_cache_magazine_cache != 0) { cache = gp_cache_magazine_cache, gp_cache_magazine_cache = 0; rtl_cache_deactivate (cache); rtl_cache_destructor (cache); + VALGRIND_DESTROY_MEMPOOL(cache); } if (gp_cache_arena != 0) { diff --git a/sal/rtl/source/memory_fini.cxx b/sal/rtl/source/alloc_fini.cxx index f88f09887595..cb04a525e75e 100755 --- a/sal/rtl/source/memory_fini.cxx +++ b/sal/rtl/source/alloc_fini.cxx @@ -25,30 +25,31 @@ * ************************************************************************/ - /* Issue http://udk.openoffice.org/issues/show_bug.cgi?id=92388 Mac OS X does not seem to support "__cxa__atexit", thus leading to the situation that "__attribute__((destructor))__" functions - (in particular "rtl_memory_fini") become called _before_ global - C++ object d'tors. + (in particular "rtl_{memory|cache|arena}_fini") become called + _before_ global C++ object d'tors. Using a C++ dummy object instead. */ -#include <stdio.h> - extern "C" void rtl_memory_fini (void); +extern "C" void rtl_cache_fini (void); +extern "C" void rtl_arena_fini (void); - -struct RTL_Memory_Fini { - ~RTL_Memory_Fini() ; +struct RTL_Alloc_Fini +{ + ~RTL_Alloc_Fini() ; }; -RTL_Memory_Fini::~RTL_Memory_Fini() { +RTL_Alloc_Fini::~RTL_Alloc_Fini() +{ rtl_memory_fini(); + rtl_cache_fini(); + rtl_arena_fini(); } - -static RTL_Memory_Fini rtl_Memory_Fini; +static RTL_Alloc_Fini g_RTL_Alloc_Fini; diff --git a/sal/rtl/source/alloc_global.c b/sal/rtl/source/alloc_global.c index 5137f868127d..5da66ca49d96 100644 --- a/sal/rtl/source/alloc_global.c +++ b/sal/rtl/source/alloc_global.c @@ -26,6 +26,7 @@ ************************************************************************/ #include "rtl/alloc.h" +#include "alloc_impl.h" #ifndef INCLUDED_STRING_H #include <string.h> @@ -44,7 +45,6 @@ #include <stdio.h> #define INCLUDED_STDIO_H #endif -#include "alloc_impl.h" #include "internal/once.h" #include "sal/macros.h" #include "osl/diagnose.h" @@ -151,11 +151,11 @@ rtl_memory_init (void) Mac OS X does not seem to support "__cxa__atexit", thus leading to the situation that "__attribute__((destructor))__" functions - (in particular "rtl_memory_fini") become called _before_ global - C++ object d'tors. + (in particular "rtl_{memory|cache|arena}_fini") become called + _before_ global C++ object d'tors. - Delegated the call to "rtl_memory_fini" into a dummy C++ object, - see memory_fini.cxx . + Delegated the call to "rtl_memory_fini()" into a dummy C++ object, + see alloc_fini.cxx . */ #if defined(__GNUC__) && !defined(MACOSX) static void rtl_memory_fini (void) __attribute__((destructor)); diff --git a/sal/rtl/source/alloc_impl.h b/sal/rtl/source/alloc_impl.h index d3d1924ddf91..a95b7c47465c 100644 --- a/sal/rtl/source/alloc_impl.h +++ b/sal/rtl/source/alloc_impl.h @@ -240,6 +240,30 @@ typedef CRITICAL_SECTION rtl_memory_lock_type; #define RTL_CACHE_FLAG_QUANTUMCACHE (2 << 13) /* used as arena quantum cache */ +/** Valgrind support macros. + */ +#if !defined(HAVE_MEMCHECK_H) || (OSL_DEBUG_LEVEL == 0) +#if !defined(NVALGRIND) +#define NVALGRIND 1 +#endif /* ! NVALGRIND */ +#endif /* ! HAVE_MEMCHECK_H || (OSL_DEBUG_LEVEL == 0) */ + +#if defined(NVALGRIND) +#define VALGRIND_MAKE_MEM_UNDEFINED(addr, size) +#define VALGRIND_MAKE_MEM_DEFINED(addr, size) +#define VALGRIND_MALLOCLIKE_BLOCK(addr, sizeB, rzB, is_zeroed) +#define VALGRIND_FREELIKE_BLOCK(addr, rzB) +#define VALGRIND_CREATE_MEMPOOL(pool, rzB, is_zeroed) +#define VALGRIND_DESTROY_MEMPOOL(pool) +#define VALGRIND_MEMPOOL_ALLOC(pool, addr, size) +#define VALGRIND_MEMPOOL_FREE(pool, addr) +#elif defined(HAVE_MEMCHECK_H) +#include <memcheck.h> +#if !defined(FORCE_SYSALLOC) +#define FORCE_SYSALLOC 1 +#endif /* !FORCE_SYSALLOC */ +#endif /* NVALGRIND || HAVE_MEMCHECK_H */ + #ifdef __cplusplus } #endif diff --git a/sal/rtl/source/makefile.mk b/sal/rtl/source/makefile.mk index 9968d8992be4..145aa50b8be0 100644 --- a/sal/rtl/source/makefile.mk +++ b/sal/rtl/source/makefile.mk @@ -46,6 +46,11 @@ TARGETTYPE=CUI .INCLUDE : settings.mk +.IF "$(VALGRIND_CFLAGS)" != "" +CFLAGS += $(VALGRIND_CFLAGS) +CDEFS += -DHAVE_MEMCHECK_H=1 +.ENDIF # VALGRIND_CFLAGS + .IF "$(ALLOC)" == "SYS_ALLOC" || "$(ALLOC)" == "TCMALLOC" || "$(ALLOC)" == "JEMALLOC" CDEFS+= -DFORCE_SYSALLOC .ENDIF @@ -96,7 +101,7 @@ SLOFILES= \ $(SLO)$/alloc_arena.obj .IF "$(OS)"=="MACOSX" -SLOFILES+=$(SLO)$/memory_fini.obj +SLOFILES+=$(SLO)$/alloc_fini.obj .ENDIF @@ -129,7 +134,7 @@ OBJFILES= \ $(OBJ)$/alloc_arena.obj .IF "$(OS)"=="MACOSX" -OBJFILES+=$(OBJ)$/memory_fini.obj +OBJFILES+=$(OBJ)$/alloc_fini.obj .ENDIF diff --git a/store/source/lockbyte.cxx b/store/source/lockbyte.cxx index f1145a029c29..7e4ac7bcbb00 100644 --- a/store/source/lockbyte.cxx +++ b/store/source/lockbyte.cxx @@ -600,7 +600,8 @@ oslInterlockedCount SAL_CALL MappedLockBytes::release() void MappedLockBytes::allocate_Impl (void ** ppPage, sal_uInt16 * pnSize) { OSL_PRECOND((ppPage != 0) && (pnSize != 0), "contract violation"); - *ppPage = 0, *pnSize = m_nPageSize; + if ((ppPage != 0) && (pnSize != 0)) + *ppPage = 0, *pnSize = m_nPageSize; } void MappedLockBytes::deallocate_Impl (void * pPage) diff --git a/store/source/lockbyte.hxx b/store/source/lockbyte.hxx index ef34b8708f26..b2b6c905f9fd 100644 --- a/store/source/lockbyte.hxx +++ b/store/source/lockbyte.hxx @@ -26,7 +26,7 @@ ************************************************************************/ #ifndef _STORE_LOCKBYTE_HXX_ -#define _STORE_LOCKBYTE_HXX_ "$Revision: 1.1.2.1 $" +#define _STORE_LOCKBYTE_HXX_ #ifndef _SAL_TYPES_H_ #include "sal/types.h" diff --git a/store/source/object.hxx b/store/source/object.hxx index 1061b9c568a9..a3b5ab1c6e63 100644 --- a/store/source/object.hxx +++ b/store/source/object.hxx @@ -26,7 +26,7 @@ ************************************************************************/ #ifndef _STORE_OBJECT_HXX_ -#define _STORE_OBJECT_HXX_ "$Revision: 1.1.2.1 $" +#define _STORE_OBJECT_HXX_ #ifndef _SAL_TYPES_H_ #include "sal/types.h" diff --git a/store/source/storbase.cxx b/store/source/storbase.cxx index 6eb005e453d8..690bff8d258e 100644 --- a/store/source/storbase.cxx +++ b/store/source/storbase.cxx @@ -158,7 +158,8 @@ PageData::Allocator_Impl::~Allocator_Impl() void PageData::Allocator_Impl::allocate_Impl (void ** ppPage, sal_uInt16 * pnSize) { OSL_PRECOND((ppPage != 0) && (pnSize != 0), "contract violation"); - *ppPage = rtl_cache_alloc(m_page_cache), *pnSize = m_page_size; + if ((ppPage != 0) && (pnSize != 0)) + *ppPage = rtl_cache_alloc(m_page_cache), *pnSize = m_page_size; } void PageData::Allocator_Impl::deallocate_Impl (void * pPage) diff --git a/store/source/stordir.hxx b/store/source/stordir.hxx index 66dd14bd81a6..2e3d79e71319 100644 --- a/store/source/stordir.hxx +++ b/store/source/stordir.hxx @@ -26,7 +26,7 @@ ************************************************************************/ #ifndef _STORE_STORDIR_HXX_ -#define _STORE_STORDIR_HXX_ "$Revision: 1.1.2.2 $" +#define _STORE_STORDIR_HXX_ #ifndef _SAL_TYPES_H_ #include <sal/types.h> diff --git a/udkapi/com/sun/star/container/XStringKeyMap.idl b/udkapi/com/sun/star/container/XStringKeyMap.idl index cf2b87d49b49..49848e2da791 100644 --- a/udkapi/com/sun/star/container/XStringKeyMap.idl +++ b/udkapi/com/sun/star/container/XStringKeyMap.idl @@ -56,7 +56,7 @@ module com { module sun { module star { module container { /** maps strings to anys. - @since OOo 2.3.0 + @since OOo 2.3 */ interface XStringKeyMap diff --git a/udkapi/com/sun/star/io/XAsyncOutputMonitor.idl b/udkapi/com/sun/star/io/XAsyncOutputMonitor.idl index aa5a0ba1802c..1aa25e82f253 100644 --- a/udkapi/com/sun/star/io/XAsyncOutputMonitor.idl +++ b/udkapi/com/sun/star/io/XAsyncOutputMonitor.idl @@ -59,7 +59,7 @@ module com { module sun { module star { module io { should be called after the series of calls to <member scope="com::sun::star::io">XOutputStream::writeBytes</member>.</p> - @since OOo2.0.0 + @since OOo 2.0 */ interface XAsyncOutputMonitor { /** diff --git a/udkapi/com/sun/star/java/InvalidJavaSettingsException.idl b/udkapi/com/sun/star/java/InvalidJavaSettingsException.idl index 588ac4933b05..66fa96465b10 100755 --- a/udkapi/com/sun/star/java/InvalidJavaSettingsException.idl +++ b/udkapi/com/sun/star/java/InvalidJavaSettingsException.idl @@ -41,7 +41,7 @@ module com { module sun { module star { module java { by distributors to determine what versions are supported. If this file is modified, then the current settings are regarded as invalid.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ exception InvalidJavaSettingsException: JavaInitializationException { diff --git a/udkapi/com/sun/star/java/JavaNotFoundException.idl b/udkapi/com/sun/star/java/JavaNotFoundException.idl index 3f8a994decc1..5dbc369a9f6d 100644 --- a/udkapi/com/sun/star/java/JavaNotFoundException.idl +++ b/udkapi/com/sun/star/java/JavaNotFoundException.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module java { /** indicates that no suitable JRE was found. - @since OOo 2.0.0 + @since OOo 2.0 */ exception JavaNotFoundException: JavaInitializationException { diff --git a/udkapi/com/sun/star/java/RestartRequiredException.idl b/udkapi/com/sun/star/java/RestartRequiredException.idl index a41b7de14b6a..c07271e424a1 100755 --- a/udkapi/com/sun/star/java/RestartRequiredException.idl +++ b/udkapi/com/sun/star/java/RestartRequiredException.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module java { /** indicates that the office must be restarted before a JRE can be used. - @since OOo 2.0.0 + @since OOo 2.0 */ exception RestartRequiredException: JavaInitializationException { diff --git a/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl index 96b8957683ff..a19dd7f528fd 100644 --- a/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl +++ b/udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl @@ -41,7 +41,7 @@ interface XCompoundTypeDescription; <p>This type supersedes <type>XInterfaceAttributeTypeDescription</type>, which does not support extended attributes.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XInterfaceAttributeTypeDescription2: XInterfaceAttributeTypeDescription diff --git a/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl index 31ab93e4ecac..18be75166617 100644 --- a/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl +++ b/udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl @@ -39,7 +39,7 @@ interface XTypeDescription; <p>This type supersedes <type>XInterfaceTypeDescription</type>, which only supported single inheritance.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XInterfaceTypeDescription2: XInterfaceTypeDescription { /** Returns a sequence of all directly inherited (mandatory) base interface diff --git a/udkapi/com/sun/star/reflection/XParameter.idl b/udkapi/com/sun/star/reflection/XParameter.idl index d7b8aaa16cbb..ca827fe08d8f 100644 --- a/udkapi/com/sun/star/reflection/XParameter.idl +++ b/udkapi/com/sun/star/reflection/XParameter.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module reflection { <p>This type supersedes <type>XMethodParameter</type>, which only supports parameters of interface methods (which cannot have rest parameters).</p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XParameter: XMethodParameter { /** diff --git a/udkapi/com/sun/star/reflection/XPublished.idl b/udkapi/com/sun/star/reflection/XPublished.idl index afb7cefa8a9a..4b3bc090dcfd 100644 --- a/udkapi/com/sun/star/reflection/XPublished.idl +++ b/udkapi/com/sun/star/reflection/XPublished.idl @@ -96,7 +96,7 @@ module com { module sun { module star { module reflection { supported.</li> </ul> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XPublished { /** diff --git a/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl b/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl index 2f8f05ba82cc..4a45e69b20f0 100644 --- a/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl +++ b/udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl @@ -38,7 +38,7 @@ interface XParameter; /** Reflects a service constructor. - @since OOo 2.0.0 + @since OOo 2.0 */ interface XServiceConstructorDescription { /** diff --git a/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl b/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl index 2536a2d2fe16..988bd5f66c18 100644 --- a/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl +++ b/udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl @@ -41,7 +41,7 @@ interface XTypeDescription; <p>This type supersedes <type>XServiceTypeDescription</type>, which only supports obsolete, accumulation-based services.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XServiceTypeDescription2: XServiceTypeDescription { /** diff --git a/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl b/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl index c4b42d786b00..b7083a6a8abf 100644 --- a/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl +++ b/udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl @@ -40,7 +40,7 @@ interface XTypeDescription; <p>This type supersedes <type>XSingletonTypeDescription</type>, which only supports obsolete, service-based singletons.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XSingletonTypeDescription2: XSingletonTypeDescription { /** diff --git a/udkapi/com/sun/star/reflection/XStructTypeDescription.idl b/udkapi/com/sun/star/reflection/XStructTypeDescription.idl index 69063323874c..6635492179c9 100644 --- a/udkapi/com/sun/star/reflection/XStructTypeDescription.idl +++ b/udkapi/com/sun/star/reflection/XStructTypeDescription.idl @@ -66,7 +66,7 @@ interface XTypeDescription; sequence.</li> </ul> - @since OOo 2.0.0 + @since OOo 2.0 */ interface XStructTypeDescription: XCompoundTypeDescription { /** diff --git a/udkapi/com/sun/star/script/BasicErrorException.idl b/udkapi/com/sun/star/script/BasicErrorException.idl index 63a91b8e6373..7b627a993700 100644 --- a/udkapi/com/sun/star/script/BasicErrorException.idl +++ b/udkapi/com/sun/star/script/BasicErrorException.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module script { /** is thrown in order to transport an error to Basic. - @since OOo 2.0.0 + @since OOo 2.0 */ published exception BasicErrorException: com::sun::star::uno::Exception { diff --git a/udkapi/com/sun/star/uri/ExternalUriReferenceTranslator.idl b/udkapi/com/sun/star/uri/ExternalUriReferenceTranslator.idl index 3ed909101441..ba649a09551f 100644 --- a/udkapi/com/sun/star/uri/ExternalUriReferenceTranslator.idl +++ b/udkapi/com/sun/star/uri/ExternalUriReferenceTranslator.idl @@ -35,7 +35,7 @@ published interface XExternalUriReferenceTranslator; /** translates between external and internal URI references. - @since OOo 2.0.0 + @since OOo 2.0 */ published service ExternalUriReferenceTranslator: XExternalUriReferenceTranslator; diff --git a/udkapi/com/sun/star/uri/RelativeUriExcessParentSegments.idl b/udkapi/com/sun/star/uri/RelativeUriExcessParentSegments.idl index 6d65648b7950..00b30462b60a 100644 --- a/udkapi/com/sun/star/uri/RelativeUriExcessParentSegments.idl +++ b/udkapi/com/sun/star/uri/RelativeUriExcessParentSegments.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module uri { @see com::sun::star::uri::XUriReferenceFactory::makeAbsolute for a method that uses this enumeration. - @since OOo 2.0.0 + @since OOo 2.0 */ published enum RelativeUriExcessParentSegments { /** diff --git a/udkapi/com/sun/star/uri/UriReferenceFactory.idl b/udkapi/com/sun/star/uri/UriReferenceFactory.idl index 678258d75ce0..c01d9eadac12 100644 --- a/udkapi/com/sun/star/uri/UriReferenceFactory.idl +++ b/udkapi/com/sun/star/uri/UriReferenceFactory.idl @@ -68,7 +68,7 @@ published interface XUriReferenceFactory; service does not support <type scope="com::sun::star::uri">XUriSchemeParser</type>.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ published service UriReferenceFactory: XUriReferenceFactory; diff --git a/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTscript.idl b/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTscript.idl index 50da8154e43a..c071ce6addac 100644 --- a/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTscript.idl +++ b/udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTscript.idl @@ -48,7 +48,7 @@ published interface XUriSchemeParser; Rather, it should be used indirectly through the <type scope="com::sun::star::uri">UriReferenceFactory</type> service.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ published service UriSchemeParser_vndDOTsunDOTstarDOTscript: XUriSchemeParser {}; diff --git a/udkapi/com/sun/star/uri/VndSunStarPkgUrlReferenceFactory.idl b/udkapi/com/sun/star/uri/VndSunStarPkgUrlReferenceFactory.idl index f652851cf280..9edd29a6c702 100644 --- a/udkapi/com/sun/star/uri/VndSunStarPkgUrlReferenceFactory.idl +++ b/udkapi/com/sun/star/uri/VndSunStarPkgUrlReferenceFactory.idl @@ -35,7 +35,7 @@ published interface XVndSunStarPkgUrlReferenceFactory; /** creates “vnd.sun.star.pkg” URL references. - @since OOo 2.0.0 + @since OOo 2.0 */ published service VndSunStarPkgUrlReferenceFactory: XVndSunStarPkgUrlReferenceFactory; diff --git a/udkapi/com/sun/star/uri/XExternalUriReferenceTranslator.idl b/udkapi/com/sun/star/uri/XExternalUriReferenceTranslator.idl index 3dc6b8bfca77..d97c677ebd36 100644 --- a/udkapi/com/sun/star/uri/XExternalUriReferenceTranslator.idl +++ b/udkapi/com/sun/star/uri/XExternalUriReferenceTranslator.idl @@ -54,7 +54,7 @@ module com { module sun { module star { module uri { references (that do not include a scheme) are left unmodified by the translation process.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ published interface XExternalUriReferenceTranslator { /** diff --git a/udkapi/com/sun/star/uri/XUriReference.idl b/udkapi/com/sun/star/uri/XUriReference.idl index 79ad88f47a1c..eccd19164248 100644 --- a/udkapi/com/sun/star/uri/XUriReference.idl +++ b/udkapi/com/sun/star/uri/XUriReference.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module uri { <type scope="com::sun::star::uri">XUriReference</type> and additional, scheme-specific interfaces. - @since OOo 2.0.0 + @since OOo 2.0 */ published interface XUriReference: com::sun::star::uno::XInterface { /** diff --git a/udkapi/com/sun/star/uri/XUriReferenceFactory.idl b/udkapi/com/sun/star/uri/XUriReferenceFactory.idl index bd62235b985d..a7bc1514f98c 100644 --- a/udkapi/com/sun/star/uri/XUriReferenceFactory.idl +++ b/udkapi/com/sun/star/uri/XUriReferenceFactory.idl @@ -40,7 +40,7 @@ module com { module sun { module star { module uri { <p>See <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a> for a description of URI references and related terms.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ published interface XUriReferenceFactory: com::sun::star::uno::XInterface { /** diff --git a/udkapi/com/sun/star/uri/XUriSchemeParser.idl b/udkapi/com/sun/star/uri/XUriSchemeParser.idl index 61a8173d9ab4..a267b38b4329 100644 --- a/udkapi/com/sun/star/uri/XUriSchemeParser.idl +++ b/udkapi/com/sun/star/uri/XUriSchemeParser.idl @@ -39,7 +39,7 @@ module com { module sun { module star { module uri { <p>See <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a> for a description of URIs and related terms.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ published interface XUriSchemeParser: com::sun::star::uno::XInterface { /** diff --git a/udkapi/com/sun/star/uri/XVndSunStarPkgUrlReferenceFactory.idl b/udkapi/com/sun/star/uri/XVndSunStarPkgUrlReferenceFactory.idl index e6db55f9905b..179253b8de78 100644 --- a/udkapi/com/sun/star/uri/XVndSunStarPkgUrlReferenceFactory.idl +++ b/udkapi/com/sun/star/uri/XVndSunStarPkgUrlReferenceFactory.idl @@ -37,7 +37,7 @@ published interface XUriReference; /** creates “vnd.sun.star.pkg” URL references. - @since OOo 2.0.0 + @since OOo 2.0 */ published interface XVndSunStarPkgUrlReferenceFactory { /** diff --git a/udkapi/com/sun/star/uri/XVndSunStarScriptUrl.idl b/udkapi/com/sun/star/uri/XVndSunStarScriptUrl.idl index 753ed90b1cef..ceae7926f04d 100644 --- a/udkapi/com/sun/star/uri/XVndSunStarScriptUrl.idl +++ b/udkapi/com/sun/star/uri/XVndSunStarScriptUrl.idl @@ -61,7 +61,7 @@ module com { module sun { module star { module uri { without considering case folding or normalization. There may be multiple parameters with equal keys.</p> - @since OOo 2.0.0 + @since OOo 2.0 */ published interface XVndSunStarScriptUrl: com::sun::star::uno::XInterface { /** diff --git a/unoil/climaker/version.txt b/unoil/climaker/version.txt index 2678d1bc035b..f59c2f9482b4 100644..100755 --- a/unoil/climaker/version.txt +++ b/unoil/climaker/version.txt @@ -25,8 +25,8 @@ # #************************************************************************* -CLI_OOOTYPES_NEW_VERSION=1.0.7.0 -CLI_OOOTYPES_OLD_VERSION=1.0.0.0-1.0.6.0 -CLI_OOOTYPES_POLICY_VERSION=7.0.0.0 +CLI_OOOTYPES_NEW_VERSION=1.0.8.0 +CLI_OOOTYPES_OLD_VERSION=1.0.0.0-1.0.7.0 +CLI_OOOTYPES_POLICY_VERSION=8.0.0.0 CLI_OOOTYPES_POLICY_ASSEMBLY=policy.1.0.cli_oootypes diff --git a/unoil/util/makefile.mk b/unoil/util/makefile.mk index f5d8125b81f8..c2bd22ef2733 100644 --- a/unoil/util/makefile.mk +++ b/unoil/util/makefile.mk @@ -35,7 +35,7 @@ TARGET = unoil MAXLINELENGTH = 100000 -JARCLASSDIRS = com drafts +JARCLASSDIRS = com JARTARGET = $(TARGET).jar JARCOMPRESS = TRUE |