summaryrefslogtreecommitdiffstats
path: root/cppuhelper
Commit message (Collapse)AuthorAgeFilesLines
* New loplugin:dataStephan Bergmann2019-05-223-4/+4
| | | | | | | | | | ...following up on 1453c2c8f13bac64ecd1981af7cebf1c421808ac "prefer vector::data to &vector[0]" Change-Id: I7c113747d92d144a521d49b89384dd8bf1215c01 Reviewed-on: https://gerrit.libreoffice.org/72765 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* regenerate PCH headersLuboš Luňák2019-05-121-2/+2
| | | | | | | Change-Id: I4894023e42cbfa32916ee3ddfb2cfb5426cfc69f Reviewed-on: https://gerrit.libreoffice.org/72195 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
* regenerate PCH headers for the 4 new levelsLuboš Luňák2019-05-091-15/+19
| | | | | | | | | Plus some build fixes triggered by this. Change-Id: I59b21def706598ceffd45ae5b1f0262ec9c1ad50 Reviewed-on: https://gerrit.libreoffice.org/71581 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
* Fix typoAndrea Gelmini2019-04-201-1/+1
| | | | | | | Change-Id: I08d6e2cb30c54b9e7b11498850e5f5cd7de1a98d Reviewed-on: https://gerrit.libreoffice.org/70994 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
* preload: cleanup disabled messages and simplify flow.Michael Meeks2019-03-291-90/+86
| | | | | | | Change-Id: I249b81afe5ec2fab5e0aaf73a2cde62173fa803e Reviewed-on: https://gerrit.libreoffice.org/69912 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
* preload: add the ability to disable various components.Michael Meeks2019-03-251-2/+36
| | | | | | | | | | Helps filter stupid stuff that makes no sense for online - eg. reportbuilder or jdbc. Change-Id: I40e06954c45fdefd21528202f4587ae83eb994c2 Reviewed-on: https://gerrit.libreoffice.org/69567 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
* tdf#120703 PVS: remove redundant static castsMike Kaganski2019-03-171-1/+1
| | | | | | | | | | V572 It is odd that the object which was created using 'new' operator is immediately cast to another type. Change-Id: I6d1523e71b3e06be1cf41abaabb44e49fe11cd8e Reviewed-on: https://gerrit.libreoffice.org/69369 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* re-land "new loplugin typedefparam""Noel Grandin2019-03-051-3/+3
| | | | | | | | | | This reverts commit c9bb48386bad7d2a40e6958883328145ae439cad, and adds a bunch more fixes. Change-Id: Ib584d302a73125528eba85fa1e722cb6fc41538a Reviewed-on: https://gerrit.libreoffice.org/68680 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* Revert "new loplugin typedefparam"Noel Grandin2019-03-041-3/+3
| | | | | | | This reverts commit 9865440d217d975206a3f91612f0666312bc8fd8. This is not ready to land yet, seems like the latest update of the logic reveals a bunch more places I need to fix before it can land.
* new loplugin typedefparamNoel Grandin2019-03-041-3/+3
| | | | | | | | | | verify that parameters use the exact same typedef-names (if any) in definition and declaration Change-Id: I55d2817f599b0253904dce2d35a1a93967e15a77 Reviewed-on: https://gerrit.libreoffice.org/68439 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* Simplify containers iterations in cppcanvas, cppu, cppuhelperArkadiy Illarionov2019-03-036-295/+165
| | | | | | | | | Use range-based loop or replace with STL functions Change-Id: I72bf7cdb632c04e2fc8d4f7ab85cb6571222aa07 Reviewed-on: https://gerrit.libreoffice.org/68636 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* Some uses of C++17 class template argument deductionStephan Bergmann2019-02-192-6/+6
| | | | | | | Change-Id: I47c469c0fcdff41d83729be9489c946e81ef3686 Reviewed-on: https://gerrit.libreoffice.org/68020 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* tdf#42949 Fix IWYU warnings in cppuhelper/Gabor Kelemen2019-02-1428-71/+63
| | | | | | | | | | Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I0eebd82b96d630da0597166cf87d398072607c13 Reviewed-on: https://gerrit.libreoffice.org/67473 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
* loplugin:indentation in cppu..cuiNoel Grandin2019-02-084-19/+20
| | | | | | | Change-Id: If625e5bf38ca8e1f12686038c7c9be8d0303b6f6 Reviewed-on: https://gerrit.libreoffice.org/67536 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* Do not use indexed getToken for a single callMatteo Casalin2018-12-281-2/+1
| | | | | | | Change-Id: Ib1026754a7db034af5910d84d008d0ef997ebb96 Reviewed-on: https://gerrit.libreoffice.org/65672 Tested-by: Jenkins Reviewed-by: Matteo Casalin <matteo.casalin@yahoo.com>
* kde5: remove older kde/tde plugins, and references to thatThorsten Behrens2018-12-171-8/+0
| | | | | | | | | | KDE4 is out of maintenance upstream since Nov. 2014, and binaries provided by TDF have switched to KDE5 as the official backend. Change-Id: I165465b56d3ba3a18912b203c06ae8fc6111c0c9 Reviewed-on: https://gerrit.libreoffice.org/60014 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* Remove obsolete SAL_FALLTHROUGH completelyStephan Bergmann2018-12-082-4/+4
| | | | | | | | | | ...after 7ffdd830d5fb52f2ca25aa80277d22ea6d89970b "HAVE_CPP_ATTRIBUTE_FALLTHROUGH is always true now" Change-Id: I54e5ff4e036a6bb3e5774d1c0524158aae18e937 Reviewed-on: https://gerrit.libreoffice.org/64800 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* improve function-local statics in basic..cuiNoel Grandin2018-11-211-3/+1
| | | | | | | Change-Id: If737e8478f6f1c8fffb060ce132d80e0f07ef8ee Reviewed-on: https://gerrit.libreoffice.org/63701 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* cppCheck narrowed variableScope rEntryZdibák Zoltán2018-11-111-2/+2
| | | | | | | Change-Id: I04b0b0dc85afdceead9766d8a45e21055074d5fc Reviewed-on: https://gerrit.libreoffice.org/63248 Tested-by: Jenkins Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
* clang-tidy: (WIP) bugprone-too-small-loop-variable findings 2Tamás Zolnai2018-11-101-9/+9
| | | | | | | Change-Id: I1ddf3fe0e5fad265ae14712a23469b684253079d Reviewed-on: https://gerrit.libreoffice.org/63241 Tested-by: Jenkins Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
* replace double-checked locking patterns with thread safe local staticsMike Kaganski2018-11-042-30/+9
| | | | | | | Change-Id: I1bf67196e97411aeecc13ed4f91d1088a315e323 Reviewed-on: https://gerrit.libreoffice.org/62839 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* tdf#120703 (PVS): V519 The variable is assigned values twice successivelyMike Kaganski2018-10-271-5/+1
| | | | | | | Change-Id: I9265425a215609ef6bf4298ba39c8399f215ce27 Reviewed-on: https://gerrit.libreoffice.org/62406 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* remove more rtl::OUString and OString prefixesNoel Grandin2018-10-2429-552/+528
| | | | | | | | | which seem to have snuck back in since the great rounds of removals. Change-Id: I85f7f5f4801c0b48dae8b50f51f83595b286d6a1 Reviewed-on: https://gerrit.libreoffice.org/62229 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* pvs-studio: V794 The assignment operator should be protectedCaolán McNamara2018-10-221-6/+12
| | | | | | | | Change-Id: Ia443a0e61a091d877c8da26bf7d45bf4261f8669 Reviewed-on: https://gerrit.libreoffice.org/62166 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
* loplugin:staticvar in cppuhelper..desktopNoel Grandin2018-10-171-1/+1
| | | | | | | Change-Id: I21cf6bafab6e865b90b29caa73183a8e00b538d1 Reviewed-on: https://gerrit.libreoffice.org/61865 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* clang-tidy readability-redundant-smartptr-getNoel Grandin2018-10-172-8/+6
| | | | | | | | | redundant get() call on smart pointer Change-Id: Icb5a03bbc15e79a30d3d135a507d22914d15c2bd Reviewed-on: https://gerrit.libreoffice.org/61837 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* Extend loplugin:redundantinline to catch inline functions w/o external linkageStephan Bergmann2018-10-099-26/+26
| | | | | | | | | | | | | | | | ...where "inline" (in its meaning of "this function can be defined in multiple translation units") thus doesn't make much sense. (As discussed in compilerplugins/clang/redundantinline.cxx, exempt such "static inline" functions in include files for now.) All the rewriting has been done automatically by the plugin, except for one instance in sw/source/ui/frmdlg/column.cxx that used to involve an #if), plus some subsequent solenv/clang-format/reformat-formatted-files. Change-Id: Ib8b996b651aeafc03bbdc8890faa05ed50517224 Reviewed-on: https://gerrit.libreoffice.org/61573 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* loplugin:useuniqueptr in ComponentContextNoel Grandin2018-10-011-44/+29
| | | | | | | | | no need to store such small movable and ref-counted objects separately Change-Id: Idf4262a8edbfe07fcb4b96d1025924224b72b5b6 Reviewed-on: https://gerrit.libreoffice.org/61113 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* New loplugin:externalStephan Bergmann2018-09-173-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...warning about (for now only) functions and variables with external linkage that likely don't need it. The problems with moving entities into unnamed namespacs and breaking ADL (as alluded to in comments in compilerplugins/clang/external.cxx) are illustrated by the fact that while struct S1 { int f() { return 0; } }; int f(S1 s) { return s.f(); } namespace N { struct S2: S1 { int f() { return 1; } }; int f(S2 s) { return s.f(); } } int main() { return f(N::S2()); } returns 1, both moving just the struct S2 into an nunnamed namespace, struct S1 { int f() { return 0; } }; int f(S1 s) { return s.f(); } namespace N { namespace { struct S2: S1 { int f() { return 1; } }; } int f(S2 s) { return s.f(); } } int main() { return f(N::S2()); } as well as moving just the function f overload into an unnamed namespace, struct S1 { int f() { return 0; } }; int f(S1 s) { return s.f(); } namespace N { struct S2: S1 { int f() { return 1; } }; namespace { int f(S2 s) { return s.f(); } } } int main() { return f(N::S2()); } would each change the program to return 0 instead. Change-Id: I4d09f7ac5e8f9bcd6e6bde4712608444b642265c Reviewed-on: https://gerrit.libreoffice.org/60539 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* Re-think cppu::throwException() and the C++/UNO bridge on iOSTor Lillqvist2018-09-151-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It seems that on iOS, where we don't have any Java, Python, BASIC, or other scripting, the only thing that would use the C++/UNO bridge functionality that invokes codeSnippet() was cppu::throwException(). codeSnippet() is part of what corresponds to the code that uses run-time-generated machine code on other platforms. We can't generate code at run-time on iOS, that has been known forever. Instead we have used some manually written assembler to handle it instead. We used to have a Perl script to generate a set of code snippets for different cases, different numbers of parameters of the called function and whatnot, but that went away at some stage some year ago. (It is unclear whether that broke the C++/UNO bridge on iOS, or whether the stuff continued to work even after that.) Anyway, this handwritten assembly, or the manual construction of internal data structures for exceptions, or something else, seemed to have bit-rotten. Exceptions thrown with cppu::throwException() were not catchable properly any longer. Instead of digging in and trying to understand what is wrong, I chose another solution. It turns out that the number of types of exception objects thrown by cppu::throwException() is fairly small. During startup of the LibreOffice code, and loading of an .odt document, only one kind of exception is thrown this way... (The lovely css::ucb:InteractiveAugmentedIOException.) So we can simply have code that checks what the type of object being thrown is, and explicitgly throws such an object then with a normal C++ throw statement. Seems to work. Sadly the cppu::getCaughtException() API still needs some inline assembly in the C++/UNO brige. That seems to work though, knock on wood. This commit also adds a small "unit test" for iOS, copied from cppuhelperm to ImplSVMain(). Ideally we should not copy code around of course, but have a separate unit test app for iOS that would somehow include relevant unit tests from source files all over the place. Later. Change-Id: Ib6d9d5b6fb8cc684ec15c97a312ca2f720e87069 Reviewed-on: https://gerrit.libreoffice.org/60506 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
* tdf#42949 Fix IWYU warnings in include/cppuhelper/*Gabor Kelemen2018-09-106-0/+7
| | | | | | | | | | Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: Ib420e9216b8313f5ed7634ec375e39ceb741fd45 Reviewed-on: https://gerrit.libreoffice.org/59297 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
* replace rtl_allocateMemory with std::mallocNoel Grandin2018-08-291-1/+1
| | | | | | | | | where used directly, since rtl_allocateMemory now just calls into std::malloc Change-Id: I59f85bdb7efdf6baa30e8fcd2370c0f8e9c999ad Reviewed-on: https://gerrit.libreoffice.org/59685 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* Fix typo in codeAndrea Gelmini2018-08-281-1/+1
| | | | | | | | | | | | To complete commit: e9fa088735bfbd34bc81f1925438691f746db070 It passed "make check" on Linux Change-Id: I2772b1ac5d4024bb11f3e09e24afc566b7091fb8 Reviewed-on: https://gerrit.libreoffice.org/59693 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
* Fix typosAndrea Gelmini2018-08-131-1/+1
| | | | | | | Change-Id: Ie3baa2f843a98c1edc523050db53beaa2c803394 Reviewed-on: https://gerrit.libreoffice.org/58801 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
* No more need for CppunitTest_cppuhelper_qa_weak to be a subsequentcheckStephan Bergmann2018-08-091-4/+0
| | | | | | | | | | ...as gbuild can handle such dependencies from tests to libraries from modules higher up in the hierarchy Change-Id: Ia3993c50feba3916572febe0748c99561b8a8675 Reviewed-on: https://gerrit.libreoffice.org/58775 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* Remove unnecessary test dependencyStephan Bergmann2018-08-091-1/+0
| | | | | | | Change-Id: I8202cf38e4b54fc4b457d2a7d70ad42b29ee9dec Reviewed-on: https://gerrit.libreoffice.org/58769 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* No need for CppunitTest_cppuhelper_qa_misc to be a subsequentcheckStephan Bergmann2018-08-091-1/+1
| | | | | | | Change-Id: I5b27c4803a9927ff9e2be084e7abbae7fdf94f55 Reviewed-on: https://gerrit.libreoffice.org/58696 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* fillUnoException not working on std::rethrow_exception exceptionsCaolán McNamara2018-08-041-0/+32
| | | | | | | | | | | | | | | | | | | used since... commit dacc1b40df67d154c96b256b0d920460f38c3d11 Date: Sat Jul 28 16:33:22 2018 +0100 ofz#9597 rethrown IOException not caught by catch IOException the adjustedPtr seems to be as expected, but the type_info not. Presumably these are thrown as 'dependent exceptions' (?) https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/eh_type.cc#L42 Change-Id: Ibd736abe941bb1d5facdb88139b3a0e6cf32cf1f Reviewed-on: https://gerrit.libreoffice.org/58477 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
* replace double checked locking patternsJochen Nitschke2018-07-291-15/+7
| | | | | | | | | with thread safe static initialization Change-Id: I4c751a47e3bdf52bbfb67d4f3aabd6f442e30118 Reviewed-on: https://gerrit.libreoffice.org/58287 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* Fix typosAndrea Gelmini2018-07-191-1/+1
| | | | | | | Change-Id: If7365b05c8f4fd1bf130678cb28f05c9a1add4c7 Reviewed-on: https://gerrit.libreoffice.org/57598 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
* Add missing sal/log.hxx headersGabor Kelemen2018-07-165-0/+5
| | | | | | | | | | | | | | rtl/string.hxx and rtl/ustring.hxx both unnecessarily #include <sal/log.hxx> (and don't make use of it themselves), but many other files happen to depend on it. This is a continuation of commit 6ff2d84ade299cb3d14d4110e4cf1a4b8070c030 to be able to remove those unneeded includes. This commit adds missing headers to every file found by: grep -FwL sal/log.hxx $(git grep -Elw 'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF|SAL_DETAIL_LOG_STREAM|SAL_WHERE|SAL_STREAM|SAL_DEBUG') to directories from connectivity to cui Change-Id: I9903c10d0a04bbeb93d0f776d1d252b152459499 Reviewed-on: https://gerrit.libreoffice.org/57408 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
* tdf#96099 Remove trivial std::map typedefs in [cd]*Arkadiy Illarionov2018-06-291-5/+3
| | | | | | | Change-Id: I043d265d3d73a3e16f05d5ca7e29a09341651d82 Reviewed-on: https://gerrit.libreoffice.org/56639 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* cppuhelper : use rtl::isAlphaNumeric instead of recreate the method.Arnaud Versini2018-05-311-16/+6
| | | | | | | Change-Id: I30bd9e0bf99c2a115b67a59377b2d2ef6fdefef0 Reviewed-on: https://gerrit.libreoffice.org/54194 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Arnaud Versini <arnaud.versini@libreoffice.org>
* loplugin:unusedfields-in-constructor in variousNoel Grandin2018-05-291-3/+2
| | | | | | | Change-Id: Ie0fb647938e3cf730976fb2e435b92bfd67ef645 Reviewed-on: https://gerrit.libreoffice.org/54998 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* Improve re-throwing of UNO exceptionsNoel Grandin2018-05-253-52/+76
| | | | | | | | | | | | | | | | | (*) if we are already throwing a Wrapped*Exception, get the exception using cppu::getCaughtexception. (*) when catching and then immediately throwing UNO exceptions, use cppu::getCaughtException to prevent exception slicing (*) if we are going to catch an exception and then immediately throw a RuntimeException, rather throw a WrappedTargetRuntimeException and preserve the original exception information. Change-Id: Ia7a501a50ae0e6f4d05186333c8517fdcb17d558 Reviewed-on: https://gerrit.libreoffice.org/54692 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* loplugin:oncevar extend to tools/gen.hxx typesNoel Grandin2018-02-261-1/+1
| | | | | | | Change-Id: I5c75875da44334569c02e2ff039b33c38397a0a2 Reviewed-on: https://gerrit.libreoffice.org/50283 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* Pre-load key UNO mappings.Michael Meeks2018-02-111-0/+20
| | | | | | | Change-Id: I415e07d737c734d63ac969783464babcbb9ea884 Reviewed-on: https://gerrit.libreoffice.org/48365 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
* lok: allow libraries to pre-init themselves.Michael Meeks2018-02-111-0/+13
| | | | | | | | | | | | Populate static module references before entering a jail containing no code. Implement for scfilt, scui, swui, sdui. Change-Id: I8fec2aa78e67053a7945926c818122bd4290103c Reviewed-on: https://gerrit.libreoffice.org/49545 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
* cppuhelper: MSVC: pragma warning: make more specific, remove obsoleteMike Kaganski2018-02-011-4/+0
| | | | | | | Change-Id: Ib097ea1764d275a3123d0dccf05d52315b4858a1 Reviewed-on: https://gerrit.libreoffice.org/48971 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* SAL_W32 is just an alias for _WIN32Stephan Bergmann2018-01-191-2/+2
| | | | | | | | | ...so consistently use the latter instead of the former Change-Id: I144d5e7c472632f93b2258461510346bc85892d9 Reviewed-on: https://gerrit.libreoffice.org/48135 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>