diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2012-11-23 13:41:15 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-11-23 14:04:51 +0100 |
commit | 44ea5d14140cccdc77a5fd8e2473804e879880df (patch) | |
tree | 77700e8cddf9176d5bc0604336129c76c22bc824 /idlc/source/idlc.cxx | |
parent | Ignoring dependencies on .hdl files is unsound when cppumaker changes (diff) | |
download | core-44ea5d14140cccdc77a5fd8e2473804e879880df.tar.gz core-44ea5d14140cccdc77a5fd8e2473804e879880df.zip |
Adding SAL_DEPRECATED_INTERNAL to an implementation function is pointless
...as there are typically no direct calls to it anyway. What is apparently
needed is to decorate the cppumaker-generated headers instead:
* cppumaker obtains deprecation-information from the documentation strings in
.rdb files. As these are normally generated by idlc without documentation
included (no -C), idlc got changed to nevertheless contain documentation
consisting of just "@deprecated" in this case, to allow to easily tunnel this
information to cppumaker always.
* The mechanism of parsing for "@deprecated" in documentation strings is
somewhat crude, of course.
* For now, cppumaker only decorates C++ functions that correspond to UNOIDL
interface attributes and methods. More should be possible (but, e.g., being
able to decorate a complete C++ class corresponding to a deprecated UNOIDL
interface type depends on whether all platforms would accept
SAL_DEPRECATED_INTERNAL at the same position in a C++ class declaration.
* This could also be extended to other languages than C++/cppumaker.
* Always using SAL_DEPRECATED_INERNAL instead of SAL_DEPRECATED for decoration
is to keep things simple and our codebase working. Improvements are possible
here, too, of course.
Change-Id: Ia2917892f780d477652e4cd9f286588a6898c3f5
Diffstat (limited to 'idlc/source/idlc.cxx')
-rw-r--r-- | idlc/source/idlc.cxx | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/idlc/source/idlc.cxx b/idlc/source/idlc.cxx index a064e7b1d4a3..895a54554ff6 100644 --- a/idlc/source/idlc.cxx +++ b/idlc/source/idlc.cxx @@ -274,11 +274,19 @@ void Idlc::reset() m_includes.clear(); } -sal_Bool Idlc::isDocValid() +OUString Idlc::processDocumentation() { - if ( m_bGenerateDoc ) - return m_bIsDocValid; - return sal_False;; + OUString doc; + if (m_bIsDocValid) { + OString raw(getDocumentation()); + if (m_bGenerateDoc) { + doc = OStringToOUString(raw, RTL_TEXTENCODING_UTF8); + } else if (raw.indexOf("@deprecated") != -1) { + //TODO: this check is somewhat crude + doc = "@deprecated"; + } + } + return doc; } static void lcl_writeString(::osl::File & rFile, ::osl::FileBase::RC & o_rRC, |