- Jul 15, 2015
-
-
Markus Klein authored
@author information can be found in version control. Cluttering our code with these tags does not make much sense and they are outdated by definition or would sum up to impressive lists. As decided on acme 2015, we drop them now. Releases: master Resolves: #68152 Change-Id: Iec1ea0f873b44ab6027c94ba8353a9fdb5477bdd Reviewed-on: http://review.typo3.org/41264 Reviewed-by:
Wouter Wolters <typo3@wouterwolters.nl> Tested-by:
Wouter Wolters <typo3@wouterwolters.nl> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Jul 14, 2015
-
-
Nicole Cordes authored
The PageRenderer is a Singleton and only one instance exists during runtime. This patch cleans up the usage and prevents sharing the PageRenderer object over public getters. This helps to improve the api and get rid of unnecessary functions. Releases: master Resolves: #68074 Change-Id: I66abd565df96ff0b8fb31d24a04721ca8ecb3f3a Reviewed-on: http://review.typo3.org/41131 Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Benjamin Mack <benni@typo3.org> Tested-by:
Benjamin Mack <benni@typo3.org>
-
- Jul 13, 2015
-
-
Stefan Neufeind authored
The usage of the ternary operator just for conversion to boolean like ... ? TRUE : FALSE is be replaced by a normal (bool) typecast. Change-Id: Ia32f63b423ffa7e066c9cf8bb002dde51b419bfa Resolves: #68063 Releases: master Reviewed-on: http://review.typo3.org/41110 Reviewed-by:
Markus Klein <markus.klein@typo3.org> Tested-by:
Markus Klein <markus.klein@typo3.org> Reviewed-by:
Stefan Neufeind <typo3.neufeind@speedpartner.de> Tested-by:
Stefan Neufeind <typo3.neufeind@speedpartner.de>
-
- Mar 26, 2015
-
-
Benjamin Mack authored
Resolves: #65292 Releases: master Change-Id: Ib94e59bf5d9896186aa6923eab50a2236308bd6a Reviewed-on: http://review.typo3.org/38113 Reviewed-by:
Wouter Wolters <typo3@wouterwolters.nl> Tested-by:
Wouter Wolters <typo3@wouterwolters.nl> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de>
-
- Mar 15, 2015
-
-
Andreas Fernandez authored
The used bitmasks of JsConfirmation and Permission are put into "enums" and their representing constants are used instead of the raw bitmask values. Resolves: #65455 Releases: master Change-Id: I1910bb960b69836ea29c16c91d730ac74c22f929 Reviewed-on: http://review.typo3.org/37455 Reviewed-by:
Nicole Cordes <typo3@cordes.co> Tested-by:
Nicole Cordes <typo3@cordes.co> Reviewed-by:
Mathias Brodala <mbrodala@pagemachine.de> Reviewed-by:
Stefan Neufeind <typo3.neufeind@speedpartner.de> Reviewed-by:
Frank Nägler <typo3@naegler.net> Tested-by:
Frank Nägler <typo3@naegler.net>
-
- Mar 10, 2015
-
-
Nicole Cordes authored
Due to a wrong language file path no setting information for the CleanerTask of the recycler are shown. Releases: master Resolves: #65647 Change-Id: I21b45a0efd1e9c03d4b6bae6475826ac55262b6f Reviewed-on: http://review.typo3.org/37713 Reviewed-by:
Steffen Müller <typo3@t3node.com> Tested-by:
Steffen Müller <typo3@t3node.com> Reviewed-by:
Markus Klein <klein.t3@reelworx.at> Tested-by:
Markus Klein <klein.t3@reelworx.at>
-
- Mar 06, 2015
-
-
Andreas Fernandez authored
Fix two broken tasks in the scheduler: "Remove deleted records" from EXT:recycler refers to the right xlf now. "System Status Update" belongs to EXT:reports again Resolves: #65558 Releases: master Change-Id: I50319632f1a26cd48f36b1ec872d8cf04da8992b Reviewed-on: http://review.typo3.org/37583 Reviewed-by:
Nicole Cordes <typo3@cordes.co> Reviewed-by:
Markus Klein <klein.t3@reelworx.at> Tested-by:
Markus Klein <klein.t3@reelworx.at> Reviewed-by:
Wouter Wolters <typo3@wouterwolters.nl> Tested-by:
Wouter Wolters <typo3@wouterwolters.nl>
-
- Mar 02, 2015
-
-
Philipp Bergsmann authored
Scheduler task to remove deleted records from content table(s) which are older than x days. If a deleted record also contains an upload field, then the file is also deleted. Releases: master Resolves: #32651 Change-Id: I58577c05a1a3b228579c05578cc8fdf2e3b393fa Reviewed-on: http://review.typo3.org/9013 Reviewed-by:
Markus Klein <klein.t3@reelworx.at> Reviewed-by:
Nicole Cordes <typo3@cordes.co> Tested-by:
Nicole Cordes <typo3@cordes.co> Reviewed-by:
Wouter Wolters <typo3@wouterwolters.nl> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de>
-
Frederic Gaus authored
Rename label "table" to "record type" in recycler Change-Id: I81226203e3bcb705320563bc508d74f69d8142c1 Resolves: #43368 Releases: master Reviewed-on: http://review.typo3.org/36710 Reviewed-by:
Andreas Fernandez <andreas.fernandez@aspedia.de> Tested-by:
Andreas Fernandez <andreas.fernandez@aspedia.de> Reviewed-by:
Stefan Neufeind <typo3.neufeind@speedpartner.de> Reviewed-by:
Wouter Wolters <typo3@wouterwolters.nl> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Feb 06, 2015
-
-
Andreas Fernandez authored
This patch improves the usability and fixes a small bug: - Add the clearable to the search form - Count deleted records correctly Resolves: #64911 Releases: master Change-Id: I0fc702697ce1c630d39f6b127f605c9d8aa5afb4 Reviewed-on: http://review.typo3.org/36716 Reviewed-by:
Mathias Schreiber <mathias.schreiber@wmdb.de> Tested-by:
Mathias Schreiber <mathias.schreiber@wmdb.de> Reviewed-by:
Wouter Wolters <typo3@wouterwolters.nl> Tested-by:
Wouter Wolters <typo3@wouterwolters.nl>
-
- Feb 04, 2015
-
-
Frederic Gaus authored
Fix a few coding issues in new EXT:recycler * Remove IDE warnings * Correct phpDoc * Remove an unused variable * Introduce a int typecast of GP:id * Replace spaces with tabs Change-Id: I8eaadd51c29506958d7fa80c375ddf943dfbac2f Resolves: #64844 Releases: master Reviewed-on: http://review.typo3.org/36646 Reviewed-by:
Andreas Fernandez <andreas.fernandez@aspedia.de> Tested-by:
Andreas Fernandez <andreas.fernandez@aspedia.de> Reviewed-by:
Wouter Wolters <typo3@wouterwolters.nl> Tested-by:
Wouter Wolters <typo3@wouterwolters.nl>
-
- Jan 31, 2015
-
-
Göran Bodenschatz authored
Resolves: #64690 Releases: master Change-Id: Ia785278f0210416a0075e8e6eed712d97fd7272a Reviewed-on: http://review.typo3.org/36513 Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Stephan Großberndt <stephan@grossberndt.de> Tested-by:
Stephan Großberndt <stephan@grossberndt.de> Reviewed-by:
Steffen Müller <typo3@t3node.com> Tested-by:
Steffen Müller <typo3@t3node.com>
-
- Jan 30, 2015
-
-
Andreas Fernandez authored
Due to the use of a wrong _GP variable, the recycler can only load the first two pages. Also, reset the paginator upon table change. Resolves: #64652 Releases: master Change-Id: I0519b5fd721e46f07e9b9e0003d812317d88660e Reviewed-on: http://review.typo3.org/36450 Reviewed-by:
Mathias Schreiber <mathias.schreiber@wmdb.de> Tested-by:
Mathias Schreiber <mathias.schreiber@wmdb.de> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Jan 29, 2015
-
-
Felix Kopp authored
Refactors the recycler extension to a modern architecture. The backend is based on Extbase and Fluid, the UI is based on jQuery and Twitter Bootstrap now. Due to restrictions in the core, non-admin users cannot restore deleted pages for now. Kudos to Felix Kopp for porting the base to Extbase and Fluid. Releases: master Resolves: #64420 Change-Id: I9d330981af0b42703b8352c1d61bec818e08b38e Reviewed-on: http://review.typo3.org/36109 Reviewed-by:
Benjamin Mack <benni@typo3.org> Tested-by:
Benjamin Mack <benni@typo3.org> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Jan 18, 2015
-
-
Markus Klein authored
It is faster to compare a string with === '' to find out if it's empty than to run strlen() on it. The replacement rules are applied as follows: * if (strlen($str)) => if ((string)$str !== '') * if (!is_string($str) || strlen($str) === 0) => if (!is_string($str) || $str === '') * If it can be seen easily that $str is a string, the typecast is omitted. Change-Id: I888d70e42f925bd57ad23b873b72d6a38acb39ef Resolves: #54091 Releases: master Reviewed-on: http://review.typo3.org/27794 Reviewed-by:
Mathias Schreiber <mathias.schreiber@wmdb.de> Tested-by:
Mathias Schreiber <mathias.schreiber@wmdb.de> Reviewed-by:
Stefan Neufeind <typo3.neufeind@speedpartner.de> Tested-by:
Stefan Neufeind <typo3.neufeind@speedpartner.de>
-
- Jan 03, 2015
-
-
Pascal Dürsteler authored
This refactors the copy-pasted method from ext:recycler into LanguageService.php. Resolves: #57225 Releases: master Change-Id: I0312068b70583feeff9d4cbf5f96fbac75baa793 Reviewed-on: http://review.typo3.org/28694 Reviewed-by:
Wouter Wolters <typo3@wouterwolters.nl> Tested-by:
Wouter Wolters <typo3@wouterwolters.nl> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de>
-
- Dec 29, 2014
-
-
Mathias Schreiber authored
This lowers the memory usage. Iterate on the original array instead of an array_keys()-copy which lowers memory usage and enhances performance. Change-Id: If65fae1665e242667d621f086a55a22a8d5309ed Resolves: #64004 Releases: master, 6.2 Reviewed-on: http://review.typo3.org/35373 Reviewed-by:
Mathias Schreiber <mathias.schreiber@wmdb.de> Tested-by:
Mathias Schreiber <mathias.schreiber@wmdb.de> Reviewed-by:
Jigal van Hemert <jigal.van.hemert@typo3.org> Tested-by:
Jigal van Hemert <jigal.van.hemert@typo3.org>
-
- Dec 17, 2014
-
-
Roland Waldner authored
Most of TYPO3's PHP files have an empty line before a class' closing curly brace. This commit adds this empty line (if it is missing) before a class' closing curly brace. This is not part of the TYPO3 CMS CGL but increases consistency in this area. This regular expression was used to add the empty lines: Search: (}\n)(}) Replace: $1\n$2 Resolves: #63942 Release: master Change-Id: Icd6547322ac8b7310956d347fd73c90bde2bbfa7 Reviewed-on: http://review.typo3.org/35527 Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Dec 13, 2014
-
-
Roland Waldner authored
This regular expression was used to replace PHPDoc style comments with ordinary comments: Search: /\*\*(\n \* This file is part of the TYPO3 CMS project.) Replace with: /*$1 Resolves: #63328 Releases: master Change-Id: Ic8f11dbfefee94a19657c8fe8426c81d1cb435d8 Reviewed-on: http://review.typo3.org/35103 Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Benjamin Mack <benni@typo3.org> Tested-by:
Benjamin Mack <benni@typo3.org>
-
- Dec 08, 2014
-
-
Wouter Wolters authored
Resolves: #63587 Releases: master Change-Id: I3a1fa569374f1bc65c82c0c34a73fa339f384e4c Reviewed-on: http://review.typo3.org/35064 Tested-by:
Stefan Neufeind <typo3.neufeind@speedpartner.de> Reviewed-by:
Stefan Neufeind <typo3.neufeind@speedpartner.de> Reviewed-by:
Markus Klein <klein.t3@reelworx.at> Tested-by:
Markus Klein <klein.t3@reelworx.at>
-
- Nov 13, 2014
-
-
Benjamin Mack authored
Due to a BackendUtility cleanup there were some methods related to help texts that were broken and unstructured. Additionally, some methods are deprecated for removal as they haven't been used since TYPO3 CMS 4.5. Resolves: #62864 Releases: master Change-Id: I3e51e25d74b282aa698df493fa4f87a54d87f823 Reviewed-on: http://review.typo3.org/33987 Reviewed-by:
Christian Buelter <buelter@kennziffer.com> Tested-by:
Christian Buelter <buelter@kennziffer.com> Reviewed-by:
Frank Nägler <typo3@naegler.net> Tested-by:
Frank Nägler <typo3@naegler.net> Reviewed-by:
Wouter Wolters <typo3@wouterwolters.nl> Tested-by:
Wouter Wolters <typo3@wouterwolters.nl>
-
Xavier Perseguers authored
Since PHP 5.5 is a requirement, calls to GeneralUtility::makeInstance() should use the ::class construct instead of a string argument. Releases: master Resolves: #61788 Change-Id: Ia2efc5a4cb7ecea80b8a1c8e5ff7b5d6fa9a07ce Reviewed-on: http://review.typo3.org/32913 Reviewed-by:
Wouter Wolters <typo3@wouterwolters.nl> Tested-by:
Wouter Wolters <typo3@wouterwolters.nl> Reviewed-by:
Alexander Opitz <opitz.alexander@googlemail.com> Tested-by:
Alexander Opitz <opitz.alexander@googlemail.com> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Markus Klein <klein.t3@reelworx.at> Tested-by:
Markus Klein <klein.t3@reelworx.at> Reviewed-by:
Xavier Perseguers <xavier@typo3.org> Tested-by:
Xavier Perseguers <xavier@typo3.org>
-
- Nov 08, 2014
-
-
Wouter Wolters authored
This patch solves normal cleanup tasks: * Correcting phpDoc * Adding missing phpDocs * Using short classnames * Removing unused variables and parameters Releases: master Resolves: #62698 Change-Id: I12409727c8839a9823bb5664d3cdcf6ee2c2133e Reviewed-on: http://review.typo3.org/33904 Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Stefan Neufeind <typo3.neufeind@speedpartner.de> Tested-by:
Stefan Neufeind <typo3.neufeind@speedpartner.de>
-
Wouter Wolters authored
* recycler * reports * rsaauth * saltedpasswords * sv * taskcenter * tstemplate Resolves: #62774 Releases: master Change-Id: I43641c9e10e361be7d1312fe5e549a03144e8c0f Reviewed-on: http://review.typo3.org/33894 Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Nov 03, 2014
-
-
Wouter Wolters authored
Resolves: #62664 Releases: master Change-Id: Ib8e0695fc234ab67a2f73a65737e07cf9a2d19c6 Reviewed-on: http://review.typo3.org/33757 Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Markus Klein <klein.t3@reelworx.at> Tested-by:
Markus Klein <klein.t3@reelworx.at>
-
- Oct 28, 2014
-
-
Wouter Wolters authored
* Use bool in @return * Use int in @return * Use bool in @param * Use int in @param * Remove extra tabs and spaces in @param Resolves: #62506 Releases: master Change-Id: I673888aa08855a1364150d0060d0f205fc1f83a2 Reviewed-on: http://review.typo3.org/33577 Reviewed-by:
Stefan Froemken <froemken@gmail.com> Tested-by:
Stefan Froemken <froemken@gmail.com> Reviewed-by:
Frank Nägler <typo3@naegler.net> Tested-by:
Frank Nägler <typo3@naegler.net>
-
- Oct 27, 2014
-
-
Frank Nägler authored
This is a follow-up patch for https://review.typo3.org/33522/ Resolves: #62467 Releases: master Change-Id: I19333d6e6c987f7e2f84faeabc01a9c724831bc4 Reviewed-on: http://review.typo3.org/33533 Reviewed-by:
Wouter Wolters <typo3@wouterwolters.nl> Tested-by:
Wouter Wolters <typo3@wouterwolters.nl> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
Frank Nägler authored
This patch is a follow-up patch for https://review.typo3.org/33523/ Resolves: #62468 Releases: master Change-Id: Ib16ab5378047b91759f3e5c38952fb57d3afb7ce Reviewed-on: http://review.typo3.org/33527 Reviewed-by:
Cedric Ziel <cedric@cedric-ziel.com> Tested-by:
Cedric Ziel <cedric@cedric-ziel.com> Reviewed-by:
Wouter Wolters <typo3@wouterwolters.nl> Tested-by:
Wouter Wolters <typo3@wouterwolters.nl>
-
- Oct 25, 2014
-
-
Wouter Wolters authored
Resolves: #62467 Releases: master Change-Id: I927a16b0fa89c5b859b56a7549548102ac04037f Reviewed-on: http://review.typo3.org/33522 Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Frank Nägler <typo3@naegler.net> Tested-by:
Frank Nägler <typo3@naegler.net>
-
- Jun 22, 2014
-
-
Michael Schams authored
This patch replaces the copyright/license header in PHP files with a new, simplified one. The new header does not show the year figure, nor an author name, and refers to the LICENSE.txt file for the full copyright information. License is: GPL2 or any later version. This is a multi-part commit due to the huge number of changed files. See issue #59784 for further details. Resolves: #59784 Releases: 6.3, 6.2 Change-Id: I1eacf9bf4537776e850d091d9d50bc72f8c2b20d Reviewed-on: https://review.typo3.org/31029 Reviewed-by: Krzysztof Adamczyk Tested-by: Krzysztof Adamczyk Reviewed-by: Markus Klein Tested-by: Markus Klein
-
- Mar 23, 2014
-
-
Helmut Hummel authored
All core extensions need to benefit from the new Ajax API and will be CSRF protected by that. Resolves: #57196 Releases: 6.2 Change-Id: I8f6f45fc9426a0e9ae15e61670f52b7cf9f461af Reviewed-on: https://review.typo3.org/28654 Reviewed-by: Markus Klein Tested-by: Markus Klein
-
- Mar 13, 2014
-
-
Wouter Wolters authored
* Remove deprecated require_once call Resolves: #56835 Releases: 6.2 Change-Id: I7d79b4c9947c5f3da82c66a4dbb0e3d2e0fd9284 Reviewed-on: https://review.typo3.org/28313 Reviewed-by: Georg Ringer Tested-by: Georg Ringer Reviewed-by: Stefan Neufeind Tested-by: Stefan Neufeind
-
- Feb 23, 2014
-
-
Stefan Neufeind authored
This reverts commit de27a20a Change-Id: I078d2f7bbff605c91d83a9853e8feb9c31d57ccc Reviewed-on: https://review.typo3.org/27792 Reviewed-by: Stefan Neufeind Tested-by: Stefan Neufeind
-
Markus Klein authored
It is faster to compare a string with === '' to find out if it's empty than to run strlen() on it. The replacement rules are applied as follows: * if (strlen($str)) => if ((string)$str !== '') * if (!is_string($str) || strlen($str) === 0) => if (!is_string($str) || $str === '') * If it can be seen easily that $str is a string, the typecast is omitted. Resolves: #54091 Releases: 6.2 Change-Id: I59c5cbccea4f98b8f282377e6aa67d970859a457 Reviewed-on: https://review.typo3.org/27091 Reviewed-by: Stefan Neufeind Tested-by: Stefan Neufeind
-
- Feb 10, 2014
-
-
Georg Ringer authored
Change-Id: I40990623e3d53e70666438acafc27275ac36b621 Resolves: #55827 Releases: 6.2 Reviewed-on: https://review.typo3.org/27523 Reviewed-by: Christian Kuhn Tested-by: Christian Kuhn
-
- Feb 09, 2014
-
-
Christian Kuhn authored
Change-Id: I5d2233c5eb0860740e1858bf2f96a919fee26e5e Resolves: #55804 Related: #47756 Releases: 6.2 Reviewed-on: https://review.typo3.org/27505 Reviewed-by: Wouter Wolters Tested-by: Wouter Wolters Reviewed-by: Oliver Klee Reviewed-by: Anja Leichsenring Tested-by: Anja Leichsenring
-
- Feb 01, 2014
-
-
Jo Hasenau authored
This patch replaces most of around 1600 occurrences of intval() and every (integer) in the whole core. Additionally it changes GeneralUtility::intExplode to use references and typecasting as well. Some occurrences of strstr() together with intval() have been replaced with strpos() as well. And some superfluous intval calls have been removed or reduced to a single one i.e. for protected variables or before loops. Patch updated after Core CGL decision from 30.01.2014 Resolves: #54265 Releases: 6.2 Change-Id: Iba57ffad1f4233ffa1a9f7d3ca5bfe9d2b53f1e8 Reviewed-on: https://review.typo3.org/26740 Reviewed-by: Stefan Neufeind Tested-by: Stefan Neufeind
-
- Oct 01, 2013
-
-
Christian Kuhn authored
Change-Id: Iaa92566c53301e49396fc9fb26b0b339c48d567b Resolves: #52360 Releases: 6.2 Reviewed-on: https://review.typo3.org/24212 Reviewed-by: Christian Kuhn Tested-by: Christian Kuhn Reviewed-by: Ernesto Baschny Tested-by: Ernesto Baschny Reviewed-by: Anja Leichsenring Tested-by: Anja Leichsenring
-
- Aug 29, 2013
-
-
Stefan Neufeind authored
Change-Id: I5d631cf408758e89c69b129bb414d1ee14289bdd Resolves: #51158 Releases: 6.2 Reviewed-on: https://review.typo3.org/23182 Reviewed-by: Kai Ole Hartwig Tested-by: Kai Ole Hartwig Reviewed-by: Christian Kuhn Tested-by: Christian Kuhn
-
- Aug 12, 2013
-
-
Felix Kopp authored
The most relevant text should always be highly visible. Integrate the CSS class "lead" for introductions. Lead brings a slightly larger font size and should be used for the first short introduction text only. "Lead" is a semantical annotation. Follow-ups: Bring lead texts for all backend modules. Change-Id: I10305c2d2ed66526d7e882aceff17b5d317cfbb3 Resolves: #51022 Releases: 6.2 Reviewed-on: https://review.typo3.org/23050 Reviewed-by: Christian Kuhn Tested-by: Christian Kuhn Reviewed-by: Wouter Wolters Tested-by: Wouter Wolters
-