try including the ostream<<OUString operator directly with OUString
The theory is that - the operator is suboptimal, because it always uses utf-8 as the encoding, which might possibly lead to some encoding problem somewhere but - the SAL_LOG macros need it anyway, or they are otherwise cumbersome with OUString - as people learn to use the macros more, rtl/oustringostreaminserter.hxx will be included in more and more places, eventually possibly triggering the above problem anyway - people probably should not just blindly do ostream << oustring if they have special encoding requirements So let's try to simply always have the operator available and see how it works out.
This commit is contained in:
parent
7d540bd08e
commit
2ac5b08361
3 changed files with 15 additions and 14 deletions
|
@ -34,14 +34,6 @@
|
|||
#include "rtl/textenc.h"
|
||||
#include "rtl/ustring.hxx"
|
||||
|
||||
/** Include this header to support rtl::OUString in std::ostream (and thus in
|
||||
CPPUNIT_ASSERT macros, for example).
|
||||
|
||||
The rtl::OUString is converted to UTF-8.
|
||||
|
||||
@since LibreOffice 3.5.
|
||||
*/
|
||||
|
||||
// The unittest uses slightly different code to help check that the proper
|
||||
// calls are made. The class is put into a different namespace to make
|
||||
// sure the compiler generates a different (if generating also non-inline)
|
||||
|
@ -57,6 +49,14 @@ namespace rtl {
|
|||
#undef rtl
|
||||
#endif
|
||||
|
||||
/**
|
||||
Support for rtl::OUString in std::ostream (and thus in
|
||||
CPPUNIT_ASSERT or SAL_INFO macros, for example).
|
||||
|
||||
The rtl::OUString is converted to UTF-8.
|
||||
|
||||
@since LibreOffice 3.5.
|
||||
*/
|
||||
template< typename charT, typename traits > std::basic_ostream<charT, traits> &
|
||||
operator <<(
|
||||
std::basic_ostream<charT, traits> & stream, rtl::OUString const & string)
|
||||
|
|
|
@ -2085,4 +2085,9 @@ inline OString OUStringToOString( const OUString & rUnicode,
|
|||
|
||||
#endif /* _RTL_USTRING_HXX */
|
||||
|
||||
// Include the ostream << operator directly here, so that it's always available
|
||||
// for SAL_INFO etc. Make sure it's outside of #ifdef _RTL_USTRING_HXX, because
|
||||
// includes ustring.hxx back.
|
||||
#include <rtl/oustringostreaminserter.hxx>
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
|
|
@ -197,13 +197,9 @@ inline char const * unwrapStream(SAL_UNUSED_PARAMETER StreamIgnore const &) {
|
|||
|
||||
SAL_INFO("foo", "string " << s << " of length " << n)
|
||||
|
||||
would be an example of such a call; if the given s is of type rtl::OUString,
|
||||
would be an example of such a call.
|
||||
|
||||
\#include "rtl/oustringostreaminserter.hxx"
|
||||
|
||||
would make sure that an appropriate operator << is available.
|
||||
|
||||
In either case, the composed message should be in UTF-8 and it should
|
||||
In the composed message should be in UTF-8 and it should
|
||||
contain no vertical formatting characters and no null characters
|
||||
|
||||
For the _IF variants, log output is only generated if the given condition is
|
||||
|
|
Loading…
Reference in a new issue