Commit Graph

11829 Commits

Author SHA1 Message Date
Benjamin Bender
c423f16a23 [2.1][TwigBridge] Fixes Issue #7342 in TwigBridge 2013-03-13 14:31:33 +01:00
Fabien Potencier
d77b97cb07 merged branch jfsimon/issue-5940 (PR #7304)
This PR was squashed before being merged into the 2.1 branch (closes #7304).

Commits
-------

5bc30bb [Translation] added xliff loader/dumper with resname support

Discussion
----------

[Translation] added xliff loader/dumper with resname support

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #5940

---------------------------------------------------------------------------

by jfsimon at 2013-03-08T15:49:18Z

@Tobion what do you think of `XliffFileWithResnameDumper` and `XliffFileWithResnameLoader`?

---------------------------------------------------------------------------

by robinduval at 2013-03-08T15:49:58Z

💯 great idea !

---------------------------------------------------------------------------

by lizjulien at 2013-03-08T15:51:45Z

🌟 better.

---------------------------------------------------------------------------

by saro0h at 2013-03-08T15:52:50Z

👍  Can't be worse than the previous one

---------------------------------------------------------------------------

by dxb at 2013-03-08T16:00:32Z

+1

---------------------------------------------------------------------------

by Tobion at 2013-03-08T16:07:59Z

@jfsimon yes the name make sense. It is not possible to add this feature without BC break?
And if not, why not simply add an option/enable method to the existing classes. Having new classes for this seems awkward to me.

---------------------------------------------------------------------------

by jfsimon at 2013-03-08T16:17:44Z

@Tobion I totaly agree with you, but this has been discussed in #5940.
Does the presence of the `resname` attribute in the `trans-unit` tags represent a BC break?
Would opening another PR with this solution be a good idea?

---------------------------------------------------------------------------

by stof at 2013-03-08T17:01:00Z

Your XliffFileWithResnameLoader is able to load all files supported by XliffFileLoader so IMO you don't need to add a new class.

---------------------------------------------------------------------------

by jfsimon at 2013-03-08T18:21:32Z

@stof would the `resname` attribute addition in the dumped XLIFF be considered as a BC break?

---------------------------------------------------------------------------

by jfsimon at 2013-03-09T13:16:32Z

@stof done.
@mvrhov done.
2013-03-12 12:04:38 +01:00
Jean-François Simon
5bc30bb98a [Translation] added xliff loader/dumper with resname support 2013-03-12 12:04:38 +01:00
Fabien Potencier
e508ecc729 merged branch jfsimon/issue-6747 (PR #7281)
This PR was squashed before being merged into the 2.1 branch (closes #7281).

Commits
-------

e3547c6 [TwigBridge] fixes

Discussion
----------

[TwigBridge] fixes `TranslationDefaultDomainNodeVisitor`

... by adding scope management.

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #6747

---------------------------------------------------------------------------

by vicb at 2013-03-06T15:14:57Z

Are `open` and `close` good names ? I would prefer `addChild` and `getParent` as there is nothing that is really opened or closed ?

Edit: by looking at the code a second time, I think open & close make sense .

---------------------------------------------------------------------------

by jfsimon at 2013-03-07T13:46:13Z

@vicb I know this is not consistent with the rest of the framework.
I dont think @fabpot will like them.

---------------------------------------------------------------------------

by stof at 2013-03-07T13:53:14Z

what about enter and leave ? It would be consistent with the naming used for scopes in the DI component

---------------------------------------------------------------------------

by vicb at 2013-03-07T13:59:35Z

@stof I like your proposal. My main concern being "leave" (former "close"), @jfsimon could you throw when a scope is used after it has been left ?

---------------------------------------------------------------------------

by jfsimon at 2013-03-07T14:01:56Z

go for enter/leave, but why throwing an exception on using a leaved scope?

---------------------------------------------------------------------------

by vicb at 2013-03-07T14:05:22Z

because if you have a ref to a left scope, you can still use it which is bad
2013-03-12 11:55:49 +01:00
Jean-François Simon
e3547c60dd [TwigBridge] fixes 2013-03-12 11:55:49 +01:00
Fabien Potencier
a27f7d8c59 merged branch franmomu/patch-1 (PR #7317)
This PR was merged into the 2.1 branch.

Commits
-------

547350c [FrameworkBundle] Fix code status in dockblock

Discussion
----------

[FrameworkBundle] Fixed code status in docblock

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

---------------------------------------------------------------------------

by Tobion at 2013-03-09T15:23:46Z

👍
2013-03-10 08:25:48 +01:00
Fran Moreno
547350c951 [FrameworkBundle] Fix code status in dockblock 2013-03-09 14:56:26 +01:00
Fabien Potencier
ee495f8b58 merged branch kriswallsmith/class-loader/idempotent (PR #7245)
This PR was merged into the 2.1 branch.

Commits
-------

27cc0df Merge pull request #1 from merk/class-loader/idempotent
95af84c Fixed test to use Reflection
bb08247 [ClassLoader] tweaked test
73bead7 [ClassLoader] made DebugClassLoader idempotent

Discussion
----------

[ClassLoader] made DebugClassLoader idempotent

The DebugClassLoader will wrap itself if `enable()` is called multiple time, such as when running functional tests.

Please merge to 2.2 and master ASAP.

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | ~
| License       | MIT
| Doc PR        | ~

---------------------------------------------------------------------------

by kriswallsmith at 2013-03-07T16:38:55Z

ping @fabpot: this will speed up lots of functional tests :)

---------------------------------------------------------------------------

by kriswallsmith at 2013-03-08T04:51:51Z

@fabpot fixed by @merk
2013-03-08 07:14:55 +01:00
Kris Wallsmith
27cc0df835 Merge pull request #1 from merk/class-loader/idempotent
Fixed test to use Reflection
2013-03-07 20:51:06 -08:00
Tim Nagel
95af84c0b8 Fixed test to use Reflection 2013-03-08 15:45:32 +11:00
Fabien Potencier
7241be9b64 [Finder] fixed a potential issue on Solaris where INF value is wrong (refs #7269) 2013-03-06 20:26:55 +01:00
sualko
a31deebd15 Update RouteCompiler.php
Fixes INF problem on solaris.
2013-03-06 20:26:16 +01:00
Fabien Potencier
f9d683eb8d merged branch lazyhammer/crawler-relative-links-2.1 (PR #7244)
This PR was merged into the 2.1 branch.

Commits
-------

a4ec677 [DomCrawler] Fix relative path handling in links

Discussion
----------

[2.1][DomCrawler] Fix relative path handling in links

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #7219
| License       | MIT
| Doc PR        | n/a

Added relative path canonicalization according to RFC 3986, section 5.2.4

---------------------------------------------------------------------------

by vicb at 2013-03-02T14:48:46Z

@fabpot seems like 2.1 as a deps issue if you look at travis logs
2013-03-06 20:18:40 +01:00
Fabien Potencier
82f6389ac3 merged branch jfsimon/issue-6502 (PR #7260)
This PR was squashed before being merged into the 2.1 branch (closes #7260).

Commits
-------

1d3da29 [FrameworkBundle] avoids cache:clear to break if new/old folders already exist

Discussion
----------

[FrameworkBundle] avoids cache:clear to break if new/old folders already exist

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #6502

---------------------------------------------------------------------------

by mahmouds at 2013-03-04T19:07:20Z

👍
2013-03-06 20:12:21 +01:00
Jean-François Simon
1d3da29779 [FrameworkBundle] avoids cache:clear to break if new/old folders already exist 2013-03-06 20:12:21 +01:00
Fabien Potencier
b9cdb9a26d [HttpKernel] Fixed possible profiler token collision (closes #7272, closes #7171) 2013-03-06 20:10:14 +01:00
Fabien Potencier
5f2cea3ef0 merged branch jfsimon/issue-6203-2.0 (PR #7239)
This PR was squashed before being merged into the 2.1 branch (closes #7239).

Commits
-------

d1f5d25 [FrameworkBundle] Fixes invalid serialized objects in cache

Discussion
----------

[FrameworkBundle] Fixes invalid serialized objects in cache

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #6203

Fixes 2 problems:
*  malformed router chache filenames (matcher & dumper)
*  invalid cache file paths in serialized objects (.meta files)
2013-03-06 18:29:15 +01:00
Jean-François Simon
d1f5d25483 [FrameworkBundle] Fixes invalid serialized objects in cache 2013-03-06 18:29:15 +01:00
Fabien Potencier
ae46cfb723 merged branch gimler/cleamup_yaml (PR #7264)
This PR was submitted for the master branch but it was merged into the 2.1 branch instead (closes #7264).

Commits
-------

edda254 remove dead code in yaml component

Discussion
----------

remove dead code in yaml component

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| License       | MIT

Cleanup unused code.

---------------------------------------------------------------------------

by fabpot at 2013-03-06T16:27:57Z

Can you explain why it is not needed anymore?

---------------------------------------------------------------------------

by igorw at 2013-03-06T16:44:30Z

`$subject` is no longer used anywhere. The `substr` is now done inline in the `preg_match` call. This code is effectively dead.
2013-03-06 18:01:03 +01:00
Gordon Franke
9d88495817 remove dead code in yaml component 2013-03-06 18:01:03 +01:00
Fabien Potencier
22c1aa3636 fixed typo 2013-03-06 17:55:57 +01:00
Fabien Potencier
380306717c merged branch trivago/webprofiler_redis_add_select (PR #7177)
This PR was squashed before being merged into the 2.1 branch (closes #7177).

Commits
-------

c82c754 RedisProfilerStorage wrong db-number/index-number selected

Discussion
----------

RedisProfilerStorage wrong db-number/index-number selected

bug: in the webprofiler the wrong database (0) is selected when storage should not go to index 0. on redis connect the default behaviour is to select index/database number 0, but it is necessary to select a special index/database.
see: http://rediscookbook.org/multiple_databases.html

[HttpKernel] [Profiler] [RedisProfilerStorage] added select for a db-number/db-index to dsn-patttern

| Q             | A
| ------------- | ---
| Bug fix?      | [yes]
| New feature?  | [no]
| BC breaks?    | [no]
| Deprecations? | [no]
| Tests pass?   | [yes]
| Fixed tickets |
| License       | MIT

Usage with index/db-number = 7 :
```xml
<!-- config_dev.xml -->

<symfony:profiler only-exceptions="false" dsn="redis://127.0.0.1:6379/7" lifetime="3600" />

```

```yml
#config_dev.yml

framework:
...
    profiler:
    ...
        dsn: redis://127.0.0.1:6379/7

```

---------------------------------------------------------------------------

by fabpot at 2013-02-27T07:21:02Z

Can you also add some unit tests?

---------------------------------------------------------------------------

by JohnDoe007 at 2013-02-27T09:36:28Z

@fabpot the function getRedis() is currently not testable, I think. this means I have to do a bigger change to the class, add a public function initRedis() or something and move initialize code there to make the initialization process, where my change is, testable. is this ok to do it in that bugfix/pull request? or should I add this test change to master and only adding this small bugfix to the 2.1-branch?

---------------------------------------------------------------------------

by fabpot at 2013-03-06T16:47:37Z

Thanks, I've merged the fix. Can you work on the changes needed to allow the code to be testable (on the master branch)?
2013-03-06 17:50:58 +01:00
René Kerner
c82c754b8e RedisProfilerStorage wrong db-number/index-number selected 2013-03-06 17:50:58 +01:00
Fabien Potencier
446f56847b merged branch jfsimon/issue-7232-2.1 (PR #7236)
This PR was merged into the 2.1 branch.

Commits
-------

6681df0 [Console] fixed StringInput binding
6b98883 [Console] added string input test
32f1904 Revert "merged branch jfsimon/issue-6749 (PR #7220)"

Discussion
----------

[Console] fixes tests

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #7231

---------------------------------------------------------------------------

by gigablah at 2013-03-02T13:25:10Z

Apparently 5b19c892cf broke the console shell. I was wondering why all commands executed through the shell in 2.2.0 were throwing "Too many arguments" exception.

---------------------------------------------------------------------------

by stof at 2013-03-02T13:27:09Z

@gigablah This is already fixed in the 2.2 branch as this PR has already been merged in 2.2 (but the revert is also needed in 2.1)

---------------------------------------------------------------------------

by gigablah at 2013-03-02T13:51:44Z

Ah, guess I'll have to wait for it to be pushed to the symfony/console repository then.
2013-03-06 17:40:53 +01:00
Fabien Potencier
dcb1441d23 [DependencyInjection] added a test for the previous merge (refs #7261) 2013-03-06 17:38:10 +01:00
Fabien Potencier
71cba81b89 merged branch chx/master (PR #7261)
This PR was submitted for the master branch but it was merged into the 2.1 branch instead (closes #7261).

Commits
-------

ff8c5ca Unset loading[$id] in ContainerBuilder on exception

Discussion
----------

Unset loading[$id] in ContainerBuilder on exception

This is the same functionality that Container provides.

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

---------------------------------------------------------------------------

by vicb at 2013-03-04T22:43:07Z

could you add a unit test and use the standard PR header (symfony.com > doc > contributing). thanks.

---------------------------------------------------------------------------

by igorw at 2013-03-04T22:48:02Z

Can you add a test case? EDIT: I guess someone beat me to that comment. :)
2013-03-06 17:37:21 +01:00
chx
e86fefa709 Unset loading[$id] in ContainerBuilder on exception 2013-03-06 17:37:21 +01:00
Kris Wallsmith
bb08247ece [ClassLoader] tweaked test 2013-03-03 08:31:27 -08:00
Kris Wallsmith
73bead7eb6 [ClassLoader] made DebugClassLoader idempotent 2013-03-02 11:24:53 -08:00
Dmitrii Chekaliuk
a4ec6772df [DomCrawler] Fix relative path handling in links
Added relative path canonicalization according to RFC 3986, section 5.2.4
2013-03-02 17:23:18 +02:00
Jean-François Simon
6681df0a12 [Console] fixed StringInput binding 2013-03-01 17:50:10 +01:00
Jean-François Simon
6b98883903 [Console] added string input test 2013-03-01 17:44:08 +01:00
Jean-François Simon
32f190481a Revert "merged branch jfsimon/issue-6749 (PR #7220)"
This reverts commit f52120bdd3, reversing
changes made to 66c2be30d0.
2013-03-01 17:42:51 +01:00
Fabien Potencier
0e7b5fb3bb fixed CS 2013-03-01 11:39:52 +01:00
Fabien Potencier
08757db05e Merge branch '2.0' into 2.1
* 2.0:
  [Console] Fixed comment

Conflicts:
	src/Symfony/Component/Console/Output/OutputInterface.php
2013-03-01 07:42:22 +01:00
Fabien Potencier
1114f73ced merged branch yahuarkuntur/master (PR #7224)
This PR was submitted for the master branch but it was merged into the 2.1 branch instead (closes #7224).

Commits
-------

801a71f [Console] Options small typo

Discussion
----------

[Console] Fix small Options typo

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| License       | MIT
2013-02-28 23:03:28 +01:00
Brian Debuire
e2ef708f1a Options small typo 2013-02-28 23:03:28 +01:00
Fabien Potencier
f52120bdd3 merged branch jfsimon/issue-6749 (PR #7220)
This PR was merged into the 2.1 branch.

Commits
-------

5b19c89 [Console] fixed unparsed StringInput tokens
635b1fc StringInput resets the given options.

Discussion
----------

[Console] fixes unparsed StringInput tokens

`StringInput` instances call `setToken` after constructor, `parse` method is called in constructor, so `StringInput` tokens where never parsed.

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #6749
2013-02-28 18:08:29 +01:00
Jean-François Simon
5b19c892cf [Console] fixed unparsed StringInput tokens 2013-02-28 17:44:20 +01:00
Fabien Potencier
66c2be30d0 merged branch jfsimon/issue-6943 (PR #7206)
This PR was squashed before being merged into the 2.1 branch (closes #7206).

Commits
-------

bae83c7 [TwigBridge] fixed trans twig extractor

Discussion
----------

[TwigBridge] fixed trans twig extractor

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #6943
2013-02-28 15:09:19 +01:00
Jean-François Simon
bae83c7c81 [TwigBridge] fixed trans twig extractor 2013-02-28 15:09:18 +01:00
Fabien Potencier
8e99eb07d3 merged branch matthijsvandenbos/matthijsvandenbos/link-handle-scheme (PR #7214)
This PR was merged into the 2.1 branch.

Commits
-------

8f8ba38 [DomCrawler] fix handling of schemes by Link::getUri()

Discussion
----------

[DomCrawler] fixed handling of schemes by Link::getUri()

A link (anchor tag with an href attr) in pages crawled by the Crawler
can contain any valid URI, including mailto: links.

Currently this is not correctly supported by `Link::getUri`.
Schemes that do not start with 'http' are treated as relative URIs
and appenden to the base URI. This leads to strange URIs like this:
http://foo.com/mailto:foo@bar.com

Fixed `Link::getUri` to treat any URI with a schema part as an
absolute URL. Updated the unit tests to test for this.

---------------------------------------------------------------------------

by matthijsvandenbos at 2013-02-28T11:55:18Z

Ok, I will update the pull request

---------------------------------------------------------------------------

by matthijsvandenbos at 2013-02-28T12:25:45Z

Fixed
2013-02-28 13:27:29 +01:00
Matthijs van den Bos
8f8ba380d6 [DomCrawler] fix handling of schemes by Link::getUri()
A link (anchor tag with an href attr) in crawled by the Crawler
can contain any valid URI, including mailto: links.

Currently this is not correctly supported by Link::getUri.
Schemes that do not start with 'http' are treated as relative URIs
and appenden to the base URI. This leads to strange URIs like this:
http://foo.com/mailto:foo@bar.com

Fixed Link::getUri to treat any URI with a schema part as an
absolute URL. Updated the unit tests to test for this.
2013-02-28 13:15:59 +01:00
Fabien Potencier
cb2277ac94 merged branch DenisGorbachev/2.0 (PR #7198)
This PR was merged into the 2.0 branch.

Commits
-------

3be3dde [Console] Fixed comment

Discussion
----------

[Console] Fixed comment

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -
2013-02-27 12:39:01 +01:00
Denis Gorbachev
3be3dde806 [Console] Fixed comment 2013-02-27 22:08:35 +13:00
Fabien Potencier
83382bc798 [TwigBridge] fixed the translator extractor that were not trimming the text in trans tags (closes #7056)
Trimming was not done by the extractor but it was the default behavior
of the TransNode class. Now, things are consistent between the two.
2013-02-27 08:36:53 +01:00
Fabien Potencier
d10ad0f9e7 merged branch lsmith77/debugclassloader_findfile_2_1 (PR #7168)
This PR was merged into the 2.1 branch.

Commits
-------

0690709 added a DebuClassLoader::findFile() method to make the wrapping less invasive

Discussion
----------

added a DebuClassLoader::findFile() method to make the wrapping less invasive

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT

i have classified it as a bug fix, since due to the wrapping it can break assumptions about the loaded class loader, so implementing this method at least doesnt break the assumption that ``findFile()`` is available.

actually i think we should also introduced a loader interface to reduce the duct typing

---------------------------------------------------------------------------

by stof at 2013-02-24T16:39:46Z

👎 for the interface:

- it would make the use of the autoloader more difficult (you would have to require the interface before requiring the loader)
- it would forbid using these wrappers with the composer ClassLoader

---------------------------------------------------------------------------

by digitalkaoz at 2013-02-24T19:16:36Z

mh, i think all autoloaders should follow a common interface, maybe its worth to think about a PSR?

---------------------------------------------------------------------------

by lsmith77 at 2013-02-24T19:27:27Z

ah I see

---------------------------------------------------------------------------

by stof at 2013-02-24T20:33:07Z

@digitalkaoz Such an interface would have to be in PHP itself, otherwise, you would have to require it first each time (as it cannot be autoloaded before registering the autoloader). And an autoloader in PHP is just a callable.

---------------------------------------------------------------------------

by digitalkaoz at 2013-02-24T20:47:10Z

Yes @stof, i know, but it would be nice if all autoloaders follows a common pattern , call it a convention ;)
2013-02-27 08:22:37 +01:00
Fabien Potencier
0c09b9392a merged branch matthijsvandenbos/matthijsvandenbos/basetag-href-fix (PR #7178)
This PR was submitted for the master branch but it was merged into the 2.1 branch instead (closes #7178).

Commits
-------

c41f640 [DomCrawler] Fixed handling absent href attribute in base tag

Discussion
----------

[DomCrawler] Fixed handling absent href attribute in base tag

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

# Description
The HTML5 spec states that the href attribute is optional for the
base tag. The current code causes an exception on conforming HTML.
Fixed the DomCrawler::addHtmlContent() method to support this.
Added Unit Test to check for this situation.

# Explanantion
Currently, if the base tag doesn't have an href attribute, the uri for the DomCrawler gets set to an empty string. This is incorrect behaviour, especially because it breaks DomCrawler::links(). The Symfony\Component\DomCrawler\Link objects it creates, expect a non-empty string in their constructor arguments and throw an InvalidArgumentException.

# References
http://www.w3.org/TR/html-markup/base.html#base.attrs.href
http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-base-element
2013-02-26 17:49:54 +01:00
Matthijs van den Bos
b1ea8e5b68 Fixed handling absent href attribute in base tag
The HTML5 spec states that the href attribute is optional for the
base tag. Fixed the DomCrawler::addHtmlContent() method to support this

See here and here:
http://www.w3.org/TR/html-markup/base.html#base.attrs.href
http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-base-element
2013-02-26 17:49:54 +01:00
Lukas Kahwe Smith
0690709dbb added a DebuClassLoader::findFile() method to make the wrapping less invasive 2013-02-24 16:51:26 +01:00