Commit Graph

8424 Commits

Author SHA1 Message Date
Claude Paroz 41848b078a [1.5.x] Fixed #19833 -- Fixed import parameter encoding in get_runner
Thanks Danilo Bargen for the report.
Backport of 63236161 from master.
2013-02-16 13:32:03 +01:00
Claude Paroz 5a803ce10e [1.5.x] Fixed geos test to prevent random failure
Points in the test fixtures have 20 as max coordinate.
Backport of 87854b0bdf from master.
2013-02-15 20:15:31 +01:00
Claude Paroz 1b54c85a53 [1.5.x] Avoided unneeded assertion on Python 3
Fixes failure introduced in 02e5909f7a.
2013-02-15 16:11:53 +01:00
Claude Paroz 5921f15c11 [1.5.x] Fixed #19807 -- Sanitized getpass input in createsuperuser
Python 2 getpass on Windows doesn't accept unicode, even when
containing only ascii chars.
Thanks Semmel for the report and tests.
Backport of 02e5909f7a from master.
2013-02-15 15:51:17 +01:00
Julien Phalip 42e87c17f2 [1.5.x] Fixed #19829 -- Fixed index lookups for NumPy arrays in templates.
Backport of 7d5e35cdb4
2013-02-15 00:18:49 -08:00
Russell Keith-Magee bc6746ac30 [1.5.x] Fixed #19822 -- Added validation for uniqueness on USERNAME_FIELD on custom User models.
Thanks to Claude Peroz for the draft patch.

(cherry picked from commit f5e4a699ca)
2013-02-15 09:02:14 +08:00
Ramiro Morales 6f29147488 [1.5.x] Fixed #19729 -- Removed leftover refactoring helper variables.
Thanks chrismedrela for the report.

Refs #6262, 44b9076 and 4d94c0c.

826d9de00e from master.
2013-02-14 20:45:36 -03:00
Carl Meyer f83bec4847 [1.5.x] Fix admindocs on Python 3, where None cannot be sorted with strings.
This fixes two tests in admin_views which were failing on Python 3, but only if
the tests were run with docutils installed.
2013-02-12 17:12:44 -07:00
Anssi Kääriäinen 743263a105 [1.5.x] Removed try-except in django.db.close_connection()
The reason was that the except clause needed to remove a connection
from the django.db.connections dict, but other parts of Django do not
expect this to happen. In addition the except clause was silently
swallowing the exception messages.

Refs #19707, special thanks to Carl Meyer for pointing out that this
approach should be taken.
2013-02-13 00:22:10 +02:00
Anssi Kääriäinen 77f6eb2a60 [1.5.x] Made custom m2m fields without through easier to use
The change in f105fbe52b made through=None
m2m fields fail in cases where they worked before. It isn't possible to
create such fields using public APIs. The fix is trivial, so it seems
worth adding it.

This is not a backport from master. Master has gotten enough other
changes to related fields internal API that this fix alone isn't enough
to do any good.
2013-02-10 21:54:48 +02:00
Anssi Kääriäinen b18ad807e0 [1.5.x] Fixed #19720 -- Oracle ordering related delete regression
When a query had a complex where condition (a condition targeting more
than the base table) a subquery was used for deletion. However, the
query had default ordering from the model's meta and Oracle doesn't
work with ordered subqueries.

The regression was caused by fast-path deletion code introduced in
1cd6e04cd4 for fixing #18676.

Thanks to Dylan Klomparens for the report.

Backpatch of 8ef3235034
2013-02-10 19:58:22 +02:00
Anssi Kääriäinen d8e68f421e [1.5.x] Fixed #19638 -- Skipped tx support testing for some DBs
PostgreSQL and Oracle always support transactions, so the create table
and rollback test is non-necessary on those DBs.

Thanks to shai for report.

Backpatch of 0478780b8e
2013-02-10 19:08:15 +02:00
Anssi Kääriäinen 60186aa2e5 [1.5.x] Fixed #19707 -- Reset transaction state after requests
Backpatch of a4e97cf315
2013-02-10 14:09:58 +02:00
Preston Holmes bb12ea2cf1 [1.5.x] Made modwsgi groups_for_user consistent with check_password
2b5f848207 based its changes on #19061
that made the is_active attribute mandatory for user models.
The try/except was not removed for the groups_for_user function.

refs #19780
2013-02-09 09:33:34 -08:00
Claude Paroz b8c6de31a6 [1.5.x] Fixed #19779 -- Checked contrib.sites presence in RedirectFallbackMiddleware
Thanks Aymeric Augustin for the report and directions for the patch.
Backport of 2ed90eac from master.
2013-02-08 16:36:57 +01:00
Preston Holmes 830b9fde46 [1.5.x] Fixed #19776 -- Added missing import for backport
line was present on master from 1520748dac
2013-02-08 00:28:37 -08:00
Preston Holmes 660f80c3d6 [1.5.x] Fixed #19662 -- alter auth modelbackend to accept custom username fields
Thanks to Aymeric and Carl for the review.
2013-02-07 16:08:23 -08:00
Aymeric Augustin 833ccd4b5b [1.5.x] Fixed #19772 -- Handled APPEND_SLASH correctly in the redirects app.
Backport of 64623a2.
2013-02-07 22:38:14 +01:00
Claude Paroz 20ac33100c Partially revert 9efe1a721, strip_tags improvements
The new regex seems not stable enough for being released. Stripping
with regex might need reevaluation for the next release.
Refs #19237.
2013-02-06 21:19:41 +01:00
Claude Paroz 933e956ba4 [1.5.x] Fixed #19745 -- Forced resolution of verbose names in createsupersuser
Thanks Baptiste Mispelon for the report and Preston Holmes for the review.
Backport of 2390fe3f4 from master.
2013-02-06 10:06:57 +01:00
Claude Paroz 7a90c6adcc [1.5.x] Updated translations (bn/es/eu/lb/mn) 2013-02-04 21:09:20 +01:00
Claude Paroz f5232597ea [1.5.x] Fixed #19725 -- Made createsuperuser handle non-ascii prompts
Thanks Michisu for the report.
Backport of 55c585f1c from master.
2013-02-04 10:11:29 +01:00
Julien Phalip be5369fd24 [1.5.x] Fixed #19333 -- Moved compress.py outside of the admin static folder. Thanks to camilonova, Russell Keith-Magee, Aymeric Augustin and Ramiro Morales for the feedback.
Backport of c9c40bc6bc
2013-02-02 15:03:05 -08:00
Nick Sandford e18bd68dbc [1.5.x] Fixed #19445 -- Skip admin fieldsets validation when the ModelAdmin.get_form() method is overridden.
Backport of 0694d2196f
2013-02-02 14:55:59 -08:00
Claude Paroz 974909bc9a [1.5.x] Lowered field ordering requirement in ogrinspect test
This test was randomly failing depending on the library environment.
Backport of a1c470a6f from master.
2013-02-02 14:02:43 +01:00
Claude Paroz aaf6f39743 [1.5.x] Added missing parentheses in if clause
Backport of 1f8e7bb07 from master.
2013-02-02 12:14:53 +01:00
Claude Paroz c39be8b836 [1.5.x] Fixed #18144 -- Added backwards compatibility with old unsalted MD5 passwords
Thanks apreobrazhensky at gmail.com for the report.
Backport of 63d6a50dd from master.
2013-02-02 12:03:08 +01:00
Aymeric Augustin db49b6d2b2 [1.5.x] Fixed #19708 -- Exception in timezone.override(None).
Thanks rafales.

Backport of 9a4a1ce.
2013-01-31 16:02:03 +01:00
Aymeric Augustin 11ec0253ab [1.5.x] Fixed #19692 -- Completed deprecation of mimetype in favor of content_type.
Thanks Tim for the report and initial patch.

Backport of 89cb771 from master.
2013-01-31 13:55:00 +01:00
Aymeric Augustin d5ad9d3dfe [1.5.x] Fixed #19076 -- Added content_type attribute to TemplateView.
Thanks Gavin Wahl.

Backport of 23e319d.
2013-01-30 21:34:39 +01:00
Tim Graham 5da6ce11ed [1.5.x] Fixed typos in docs and comments
Backport of ee26797cff from master
2013-01-29 10:58:24 -07:00
Claude Paroz 2d8b0315f4 [1.5.x] Fixed #19665 -- Ensured proper stderr output for Command.run_from_argv
Thanks Stefan Koegl for the report and Simon Charette for the review.
Backport of b9c8bbf37 from master.
2013-01-25 14:57:18 +01:00
Tim Graham 42fcfcaa52 [1.5.x] Fixed #19577 - Added HTML escaping to admin examples.
Thanks foo@ for the report and Florian Apolloner for the review.

Backport of eafc036476 from master
2013-01-25 06:56:38 -05:00
Aymeric Augustin 9328ef0e84 [1.5.x] Avoided a possible regression in 5097d3c5.
QuerySet.none() returns an instance of EmptyQuerySet, which may have
undesirable side effects in the presence of custom query set classes.

The implementation of .none() was refactored in master to have the same
effect as .filter(pk__in=[]).

Refs #19652.

Thanks Simon Charrette for the report.
2013-01-24 11:30:05 +01:00
Anssi Kääriäinen f4132140f5 [1.5.x] Fixed #19652 -- Fixed .none() regression in related fields
The regression was caused by using .none() when querying for related
models, and the origin field's value was None. This resulted in missing
custom related manager subclass as .none() returns plain QuerySet.

This isn't backport from master, in master .none() correctly preserves
the queryset's class.

Patch provided by Simon Charette, with some minor polish by committer.
2013-01-23 08:26:34 +02:00
Tim Graham dc0bf53276 [1.5.x] Fixed #19477 - Documented generic_inlineformset_factory
Thanks epicserve for the suggestion.

Backport of 214fb700b9 from master
2013-01-22 18:18:32 -05:00
Florian Apolloner 5f3c45f745 [1.5.X] Fixed #19596 -- Use `_default_manager` instead of `objects` in the auth app.
This is needed to support custom user models which don't define a manager
named `objects`.

Backport of cc4de61a2b from master.
2013-01-22 12:50:40 +01:00
Jani Tiainen 457290326f [1.5.x] Fixed #19606 -- Adjusted cx_Oracle unicode detection.
Backpatch of d194f29057
2013-01-19 09:43:26 +02:00
Claude Paroz 1e95d5ba82 Updated contrib apps translations 2013-01-15 17:30:18 +01:00
Claude Paroz 3f9ab5209f Updated localflavor translations 2013-01-15 17:30:18 +01:00
Claude Paroz 321a6da0d4 Updated core translations 2013-01-15 17:30:17 +01:00
Claude Paroz 5a53f1043c [1.5.x] Fixed #19092 -- Completed Lithuanian date/time formats
Thanks Tadas Dailyda for the report and the patch.
Backport of 2f8ab2f1b0 from master.
2013-01-15 13:49:21 +01:00
Stephan Jaekel fb130cb40e [1.5.x] Fixed #18026 -- Don't return an anonymous dict if extra_data in storage is empty.
Backport of 97121cb9 from master.
2013-01-12 15:51:15 +01:00
Claude Paroz b3887ab98a [1.5.x] Fixed #19488 -- Made i18n_patterns redirect work with non-slash-ending paths
Thanks Daniel Gerzo for the report and the initial patch.
Backport of bcdb4898c from master.
2013-01-11 21:35:45 +01:00
Claude Paroz 1d03ff06bb [1.5.x] Fixed #19585 -- Fixed loading cookie value as a dict
This regression was introduced by the 'unicode_literals' patch.
Backport of f08e739bc2 from master.
2013-01-11 21:14:39 +01:00
Tim Graham c94fcc4117 [1.5.x] Fixed #10239 - Added docs for modelform_factory
Thanks ingenieroariel for the suggestion and slurms for the review.

Backport of 71d76ec011 from master
2013-01-11 06:01:19 -05:00
Nick Sandford b4544dbd5b [1.5.x] Fixed #19573 -- Allow override of username field label in AuthenticationForm
Backport of cdad0b28d from master.
2013-01-10 09:07:06 +01:00
Preston Holmes af8e858c15 [1.5.x] Fixed #19546 - ensure that deprecation warnings are shown during tests
refs #18985
2013-01-09 08:19:56 -08:00
Simon Charette 78739faedb [1.5.x] Fixed #19576 -- Use `six.with_metaclass` uniformously accross code base.
Backport of f58efd07f from master.
2013-01-08 20:16:14 +01:00
Anssi Kääriäinen 9d6d0de7c1 [1.5.x] Fixed #17541 -- Fixed non-saved/nullable fk querying
Backpatch of 55da775ce1
2013-01-08 21:03:53 +02:00
Claude Paroz beef02eeaa [1.5.x] Updated deprecated test assertions 2013-01-08 19:11:40 +01:00
Claude Paroz 012229914c [1.5.x] Created special PostgreSQL text indexes when unique is True
Refs #19441.
Backport of c698c55966 from master.
2013-01-07 21:02:02 +01:00
James Bennett f23d3ce8d4 [1.5.x] Bump version numbers for 1.5 RC 1. 2013-01-04 12:49:58 -06:00
Claude Paroz 96301d21bb [1.5.x] Fixed #19192 -- Allowed running tests with dummy db backend
Thanks Simon Charette for the initial patch, and Jan Bednařík for
his work on the ticket.
Backport of b740da3504 from master.
2013-01-04 14:03:55 +01:00
Claude Paroz b641357a37 [1.5.x] Replaced deprecated sslerror by ssl.SSLError
The exact conditions on which this exception is raised are not
known, but this replacement is the best guess we can do at this
point.
Backport of 850630b4b7 from master.
2013-01-03 22:17:30 +01:00
Claude Paroz 5b8c0d22cc [1.5.x] Fixed #19382 -- Stopped smtp backend raising exception when already closed
Thanks Sebastian Noack for the report and the initial patch.
Backport of ffa50ca35 from master.
2013-01-03 20:45:57 +01:00
Claude Paroz 4081042ef5 [1.5.x] Fixed #19134 -- Allowed closing smtp backend when the server is stopped
Thanks Sebastian Noack for the report and the initial patch.
Backport of 1b3f832ab7 from master.
2013-01-03 20:45:29 +01:00
Claude Paroz a893ee3315 Fixed #19426 -- Adapted EmptyQuerySet.distinct signature
1.5-only change, as EmptyQuerySet will be refactored in 1.6.
Thanks hongshuning@gmail.com for the patch.
2013-01-03 18:03:51 +01:00
Simon Charette 70cc95d1cc [1.5.x] Fixed #19545 -- Make sure media/is_multipart work with empty formsets
Backport of 3fc43c964e from master.
2013-01-03 15:17:14 +01:00
Aymeric Augustin 056ace0f39 [1.5.x] Fixed #19547 -- Caching of related instances.
When &'ing or |'ing querysets, wrong values could be cached, and crashes
could happen.

Thanks Marc Tamlyn for figuring out the problem and writing the patch.

Backport of 07fbc6a.
2013-01-02 22:22:14 +01:00
Claude Paroz fff9752cb3 [1.5.x] Removed unusable parameters to empty_form property
Backport of 884f77bd1 from master.
2013-01-01 21:02:33 +01:00
Claude Paroz 3f2f50699e [1.5.x] Updated translation catalogs for core and admin 2013-01-01 16:13:37 +01:00
Aymeric Augustin 56e5472766 [1.5.x] Fixed #19519 again -- Regression in LiveServerTestCase after fd1279a4.
Backport of 328f5b5.
2013-01-01 10:14:24 +01:00
Julien Phalip dfd8623de4 [1.5.x] Fixed #19453 -- Ensured that the decorated function's arguments are obfuscated in the @sensitive_variables decorator's frame, in case the variables associated with those arguments were meant to be obfuscated from the decorated function's frame.
Thanks to vzima for the report.
Backport of 9180146d21
2012-12-31 09:51:13 -08:00
Aymeric Augustin fd1279a44d [1.5.x] Fixed #19519 -- Fired request_finished in the WSGI iterable's close().
Backport of acc5396.
2012-12-31 12:49:10 +01:00
Aymeric Augustin ac72782e61 [1.5.x] Fixed #16241 -- Ensured the WSGI iterable's close() is always called.
Thanks Graham Dumpleton for the report.

Backport of a53c474.
2012-12-31 12:48:43 +01:00
Claude Paroz 814c3b2e2a [1.5.x] Fixed #19537 -- Made CheckboxInput._has_changed handle 'False' string
Thanks dibrovsd@gmail.com for the report.
Backport of d11038acb2 from master.
2012-12-31 10:24:48 +01:00
Julien Phalip fa71536129 [1.5.x] Added further flexibility to ModelAdmin for controlling post-save redirections.
Refs #19505.
Backport of cee40c7d79
2012-12-30 23:11:58 -08:00
Anssi Kääriäinen e871e02178 [1.5.x] Made gis get_default_columns mirror changes in normal compiler
The copy-pasted part of gis compiler's get_default_columns wasn't
changed to match changes in a0155f3534.
2012-12-30 12:22:26 +02:00
Aymeric Augustin 5097d3c5fa [1.5.x] Fix #19524 -- Incorrect caching of parents of unsaved model instances.
Thanks qcwxezdas for the report. Refs #13839.

Backport of e9c24be.
2012-12-28 23:35:08 +01:00
Aymeric Augustin 3cb87ec605 [1.5.x] Fixed #19525 -- Reverted dcd4383107 and 05d333ba3b.
Refs #9893, #18515.

Thanks Russell for the report.

Backport of db278c3 from master.
2012-12-27 09:43:41 +01:00
Claude Paroz 4f67ab6376 [1.5.x] Fixed #16408 -- Re-fixed value conversion with Spatialite backend
Backport of 0907d3c6f from master.
2012-12-26 12:48:27 +01:00
Julien Phalip 3ad34c231b [1.5.x] Fixed #19505 -- A more flexible implementation for customizable admin redirect urls.
Work by Julien Phalip.

Refs #8001, #18310, #19505. See also 0b908b92a2.

35d1cd0b28 from master.
2012-12-24 18:12:13 -03:00
Aymeric Augustin cd914175c8 [1.5.x] Prevented caching of streaming responses.
The test introduced in 4b278131 accidentally passed because of a
limitation of Python < 3.3.

Refs #17758, #7581.

Backport of 1c8be95 from master.
2012-12-24 20:30:20 +01:00
Florian Apolloner ef98ae2910 [1.5.X] Fixed #19204 -- Replaced python2-style exception syntax.
Thanks to garrison for the report and patch.

Backport of 4a71b84266 from master
2012-12-24 14:06:47 +01:00
Luke Plant 2164cd00ec [1.5.x] Fixed HTML comparisons of class="foo bar" and class="bar foo" in tests
Refs #17758

Backport of 8bc410b445 from master
2012-12-24 02:21:36 +00:00
Luke Plant b362a55969 [1.5.x] Made admin generated changelist URLs independent of dict ordering
Backport of c31c2c92b8 from master
2012-12-24 02:20:32 +00:00
Ian Clelland 5f07d24eaa [1.5.x] Sort HTML attributes on generated forms
Backport of 6b9f130278 from master
2012-12-24 02:20:19 +00:00
Ian Clelland 515cf94b60 [1.5.x] Use new TestCase methods for equality comparisons
Backport of 8d35fd4c32 from master
2012-12-24 02:19:16 +00:00
Ian Clelland 5eba053459 [1.5.x] Add assertJSONEqual method to TestCase
Backport of 089d9ca1df from master
2012-12-24 02:18:56 +00:00
Ian Clelland f2a7b52cfb [1.5.x] Add assertInHTML method to TestCase
Backport of dc704516c2 from master
2012-12-24 02:18:06 +00:00
Claude Paroz 3aba929bcc [1.5.x] Fixed #19509 -- Fixed crypt/bcrypt non-ascii password encoding
Also systematically added non-ascii passwords in hashers test suite.
Thanks Vaal for the report.
Backport of 0dc3fc954 from master.
2012-12-22 16:04:49 +01:00
Aymeric Augustin 9919638137 [1.5.x] Fixed #19468 -- Decoded request.path correctly on Python 3.
Thanks aliva for the report and claudep for the feedback.

Backport of 1e4a27d from master.
2012-12-22 14:45:06 +01:00
Aymeric Augustin db22145afb [1.5.x] Fixed #19487 -- Used str in the test client's WSGI environ.
This regression was introduced by the unicode_literals patch. The WSGI
spec mandates that environ contains native strings.

Backport of d9a0b6a.
2012-12-22 11:06:05 +01:00
Anssi Kääriäinen a0155f3534 [1.5.x] Refactored proxy model skipping in get_default_columns()
The refactoring allows custom subclasses to use different default
columns than the base model.
2012-12-21 20:56:04 +02:00
Claude Paroz 9e7183073f [1.5.x] Added compatibility with legacy message length
Added compatibility code to not break when decoding messages
encoded on pre-1.5 versions.
Refs #19387. Thanks Florian Apolloner for noticing the issue.
2012-12-21 13:36:22 +01:00
Claude Paroz be10289d03 [1.5.x] Fixed #19387 -- Preserved SafeData status in contrib.messages
Thanks Anton Baklanov for the report and the patch.
Backport of e277301c2 from master.
2012-12-21 10:10:21 +01:00
Russell Keith-Magee b7607003a5 [1.5.x] Fixed #19401 -- Ensure that swappable model references are case insensitive.
This is necessary because get_model() checks are case insensitive, and if the swapable check isn't, the
swappable logic gets tied up in knots with models that are partially swapped out.

Thanks to chris@cogdon.org for the report and extensive analysis, and Preston for his work on the draft patch.

Backport of c04c03d from trunk.
2012-12-20 16:14:10 +08:00
Patryk Zawadzki 9892919b0d [1.5.x] Fixed #18172 -- Made models with __iter__ usable in ModelMultipleChoiceField
Thanks to Patryk Zawadzki for the patch.

Backpatch of 3989ce52ef
2012-12-19 22:56:19 +02:00
Tim Graham 034c355118 [1.5.X] Fixed #19470 - Clarified widthratio example.
Thanks orblivion for the suggestion.

Backport of 6534a95ac3 from master
2012-12-18 08:20:51 -05:00
Claude Paroz ddea0e0d7e [1.5.x] Fixed #19441 -- Created PostgreSQL varchar index when unique=True
Thanks Dylan Verheul for the report and Anssi Kääriäinen for the
review.
Backport of 55972ee5c from master.
2012-12-18 10:04:47 +01:00
Anssi Kääriäinen 1caa483914 [1.5.x] Fixed #19197 -- fixed convert_values() for nullable numeric fields
Cleaned up the implementation of base convert_values() a little, and
made sure it accepts None as a value for numeric fields.

There are no tests attached. The reason is that not all of the
convert_values() accept None as a value for numeric fields (for example
sqlite3.convert_values()).

The reason the base convert_values() needs to accept None is that this
situation might arise in custom compilers for 3rd party backends. It
is easy to keep the convert_values() working, so lets do that.

Backpatch of 12a96bfa26
2012-12-17 00:09:05 +02:00
Claude Paroz 0bbc7c2b49 [1.5.x] Fixed #19483 -- Improved import error message in contrib.comments
Thanks Valentin Lorentz for the report and the suggested fix.
Backport of ed711c4bd from master.
2012-12-16 21:13:30 +01:00
Tim Graham 53b40d75b7 [1.5.X] Fixed #18718 - Documented django.utils.encoding.filepath_to_uri
Backport of 507c081484 from master
2012-12-16 14:40:10 -05:00
Russell Keith-Magee 06b5f5fcb6 [1.5.X] Corrected tests depending on the error message on the AuthenticationForm.
Refs #19368, and the fix introduced in 27f8129d64.

Backport of 9facca28b6 from trunk.
2012-12-16 07:22:25 +08:00
Claude Paroz 55aae4b863 Updated translation catalog for contrib.auth 2012-12-15 23:27:55 +01:00
Russell Keith-Magee 9534192c10 [1.5.X] Fixed #19368 -- Ensured that login error messages adapt to changes in the User model.
Thanks to un33k for the report.

Backport of 27f8129d64 from master.
2012-12-15 22:48:09 +08:00
Russell Keith-Magee 311bd0055d [1.5.X} Fixed #19412 -- Added PermissionsMixin to the auth.User heirarchy.
This makes it easier to make a ModelBackend-compliant (with regards to
permissions) User model.

Thanks to cdestigter for the report about the relationship between
ModelBackend and permissions, and to the many users on django-dev that
contributed to the discussion about mixins.

Backport of 47e1df896b from master.
2012-12-15 22:47:48 +08:00
Aymeric Augustin 44e56238d7 [1.5.x] Fixed #2304 -- Documented TRANSACTIONS_MANAGED.
Backport of a001f3c.
2012-12-14 21:16:04 +01:00
Claude Paroz c20c3a20a3 [1.5.x] Fixed #19432 -- Provided better error message for get_object_or_404
Thanks Kit Sunde for the report and Brian Holdefehr for the initial
patch.
Backport of 6ed6a18a0 from master.
2012-12-12 22:05:49 +01:00