From 26364f4fd346c36f2c3ba4c2228d62de845fe13e Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Sat, 10 Nov 2012 10:48:15 +0100 Subject: [PATCH] deduplicate OString std::basic_ostream operators I wanted to add one, based on OUString one, and Stephan on IRC agreed it's a good idea. Then it turned out we already had it in sal unit tests, sdext and unodevtools as well. Get rid of all these, and have a single implementation in string.hxx, so it can be used everywhere. Change-Id: Ibb820f20a138d055fd87036253c627fb862a31fe --- sal/inc/rtl/string.hxx | 14 ++++++ sal/qa/rtl/strings/test_strings_replace.cxx | 12 ----- sdext/source/pdfimport/test/tests.cxx | 10 ---- .../source/skeletonmaker/cppcompskeleton.cxx | 1 - .../source/skeletonmaker/cpptypemaker.cxx | 1 - .../source/skeletonmaker/javacompskeleton.cxx | 1 - .../source/skeletonmaker/javatypemaker.cxx | 1 - .../skeletonmaker/ostringostreaminserter.hxx | 49 ------------------- .../source/skeletonmaker/skeletoncommon.cxx | 1 - .../source/skeletonmaker/skeletonmaker.cxx | 1 - 10 files changed, 14 insertions(+), 77 deletions(-) delete mode 100644 unodevtools/source/skeletonmaker/ostringostreaminserter.hxx diff --git a/sal/inc/rtl/string.hxx b/sal/inc/rtl/string.hxx index a135d4ed400b..e45b837b7fe6 100644 --- a/sal/inc/rtl/string.hxx +++ b/sal/inc/rtl/string.hxx @@ -1479,6 +1479,20 @@ struct OStringHash /* ======================================================================= */ +/** + Support for rtl::OString in std::ostream (and thus in + CPPUNIT_ASSERT or SAL_INFO macros, for example). + + @since LibreOffice 3.7 + */ +template< typename charT, typename traits > std::basic_ostream & +operator <<( + std::basic_ostream & stream, rtl::OString const & string) +{ + return stream << string.getStr(); + // best effort; potentially loses data due to embedded null characters +} + } /* Namespace */ #ifdef RTL_USING diff --git a/sal/qa/rtl/strings/test_strings_replace.cxx b/sal/qa/rtl/strings/test_strings_replace.cxx index 5e1b0cfb9c74..a46245f3c0fa 100644 --- a/sal/qa/rtl/strings/test_strings_replace.cxx +++ b/sal/qa/rtl/strings/test_strings_replace.cxx @@ -37,18 +37,6 @@ #include "rtl/ustring.h" #include "rtl/ustring.hxx" -namespace rtl { - -template< typename charT, typename traits > std::basic_ostream & -operator <<( - std::basic_ostream & stream, rtl::OString const & string) -{ - return stream << string.getStr(); - // best effort; potentially loses data due to embedded null characters -} - -} - namespace { class Test: public CppUnit::TestFixture { diff --git a/sdext/source/pdfimport/test/tests.cxx b/sdext/source/pdfimport/test/tests.cxx index a452ba0b4828..547561916352 100644 --- a/sdext/source/pdfimport/test/tests.cxx +++ b/sdext/source/pdfimport/test/tests.cxx @@ -72,16 +72,6 @@ using namespace ::pdfparse; using namespace ::pdfi; using namespace ::com::sun::star; -namespace rtl -{ - template< typename charT, typename traits > std::basic_ostream & - operator <<( - std::basic_ostream & stream, rtl::OString const & string) - { - return stream << string.getStr(); - } -} - namespace { diff --git a/unodevtools/source/skeletonmaker/cppcompskeleton.cxx b/unodevtools/source/skeletonmaker/cppcompskeleton.cxx index f274456006e3..21dec5f8ec40 100644 --- a/unodevtools/source/skeletonmaker/cppcompskeleton.cxx +++ b/unodevtools/source/skeletonmaker/cppcompskeleton.cxx @@ -19,7 +19,6 @@ #include "codemaker/commoncpp.hxx" -#include "ostringostreaminserter.hxx" #include "skeletoncommon.hxx" #include "skeletoncpp.hxx" diff --git a/unodevtools/source/skeletonmaker/cpptypemaker.cxx b/unodevtools/source/skeletonmaker/cpptypemaker.cxx index 61f91d3b2278..b66a049c0342 100644 --- a/unodevtools/source/skeletonmaker/cpptypemaker.cxx +++ b/unodevtools/source/skeletonmaker/cpptypemaker.cxx @@ -19,7 +19,6 @@ #include "codemaker/commoncpp.hxx" -#include "ostringostreaminserter.hxx" #include "skeletoncommon.hxx" #include "skeletoncpp.hxx" diff --git a/unodevtools/source/skeletonmaker/javacompskeleton.cxx b/unodevtools/source/skeletonmaker/javacompskeleton.cxx index 4f09fc768b06..772a55a0c75d 100644 --- a/unodevtools/source/skeletonmaker/javacompskeleton.cxx +++ b/unodevtools/source/skeletonmaker/javacompskeleton.cxx @@ -19,7 +19,6 @@ #include "codemaker/commonjava.hxx" -#include "ostringostreaminserter.hxx" #include "skeletoncommon.hxx" #include "skeletonjava.hxx" diff --git a/unodevtools/source/skeletonmaker/javatypemaker.cxx b/unodevtools/source/skeletonmaker/javatypemaker.cxx index c60f62118567..96870f5a9a8c 100644 --- a/unodevtools/source/skeletonmaker/javatypemaker.cxx +++ b/unodevtools/source/skeletonmaker/javatypemaker.cxx @@ -19,7 +19,6 @@ #include "codemaker/commonjava.hxx" -#include "ostringostreaminserter.hxx" #include "skeletoncommon.hxx" #include "skeletonjava.hxx" diff --git a/unodevtools/source/skeletonmaker/ostringostreaminserter.hxx b/unodevtools/source/skeletonmaker/ostringostreaminserter.hxx deleted file mode 100644 index f4e35a364d7e..000000000000 --- a/unodevtools/source/skeletonmaker/ostringostreaminserter.hxx +++ /dev/null @@ -1,49 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * Version: MPL 1.1 / GPLv3+ / LGPLv3+ - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License or as specified alternatively below. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * Major Contributor(s): - * Copyright (C) 2011 Red Hat, Inc., Stephan Bergmann - * (initial developer) ] - * - * All Rights Reserved. - * - * For minor contributions see the git repository. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 3 or later (the "GPLv3+"), or - * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), - * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable - * instead of those above. - */ - -#ifndef INCLUDED_UNODEVTOOLS_SOURCE_SKELETONMAKER_OSTRINGOSTREAMINSERTER_HXX -#define INCLUDED_UNODEVTOOLS_SOURCE_SKELETONMAKER_OSTRINGOSTREAMINSERTER_HXX - -#include "sal/config.h" - -#include - -#include "rtl/string.hxx" - -template< typename charT, typename traits > std::basic_ostream & -operator <<( - std::basic_ostream & stream, rtl::OString const & string) -{ - return stream << string.getStr(); - // potentially loses data due to embedded null characters -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/unodevtools/source/skeletonmaker/skeletoncommon.cxx b/unodevtools/source/skeletonmaker/skeletoncommon.cxx index 92a765757479..e32fda26e030 100644 --- a/unodevtools/source/skeletonmaker/skeletoncommon.cxx +++ b/unodevtools/source/skeletonmaker/skeletoncommon.cxx @@ -23,7 +23,6 @@ #include "codemaker/commoncpp.hxx" #include "codemaker/generatedtypeset.hxx" -#include "ostringostreaminserter.hxx" #include "skeletoncommon.hxx" #include diff --git a/unodevtools/source/skeletonmaker/skeletonmaker.cxx b/unodevtools/source/skeletonmaker/skeletonmaker.cxx index e93b93550090..1b20636ed0ed 100644 --- a/unodevtools/source/skeletonmaker/skeletonmaker.cxx +++ b/unodevtools/source/skeletonmaker/skeletonmaker.cxx @@ -23,7 +23,6 @@ #include "rtl/ustrbuf.hxx" #include "unodevtools/typemanager.hxx" #include "unodevtools/options.hxx" -#include "ostringostreaminserter.hxx" #include "skeletonjava.hxx" #include "skeletoncpp.hxx"