Commit graph

413 commits

Author SHA1 Message Date
Jorge González
d7f93f5bcf adding a related message to the enableCrypto InvalidArgumentException 2012-07-24 14:08:54 +01:00
Jorge González
17db6f9d23 Merge branch '2.3' of https://github.com/cakephp/cakephp into feature/smtp-tls 2012-07-23 22:24:10 +01:00
mark_story
71507796c7 Add docs. 2012-07-21 21:35:45 -04:00
mark_story
6ce4a3a1ec Add tests for contentDisposition flag.
Fixes #3042
2012-07-21 21:22:04 -04:00
Joey Jan
9deb966657 Add ability to disable content-disposition for email attachments.
This solves issues with outlook and text/calendar attachments.

Refs #3042
2012-07-21 21:01:45 -04:00
Jorge González
55c92065c6 adding a tls option to SmtpTransport to support TLS SMTP servers like MS Exchange 2010 2012-07-21 20:28:38 +01:00
Jorge González
27a895d7d8 adding enableCrypto() method to CakeSocket class 2012-07-21 14:23:47 +01:00
mark_story
3c6b50953b Merge branch 'master' into 2.3
Conflicts:
	lib/Cake/VERSION.txt
2012-07-18 22:12:51 -04:00
euromark
3945c0e6a8 rtim files 2012-07-18 03:55:29 +02:00
ADmad
c5d1260421 Added CakeResponse::file() for serving files as response 2012-07-11 01:24:00 +05:30
AD7six
790a53d794 Revert "sort the mimeTypes map alphabetically"
This reverts commit 90ae2df38e.

The mime type is used by CakeResponse::mapType to determine which mime
type maps to which alias. As this is done in the order of the mimetype
map the mimetype map is order sensitive.
2012-07-06 12:23:20 +02:00
Rodrigo Moyle
e10f6f57a3 Fix notice error when parsing input data.
Prevent error in CakeRequest from parsing input data in
PUT and DELETE requests.

Fixes #3002

Signed-off-by: mark_story <mark@mark-story.com>
2012-07-05 22:06:02 -04:00
AD7six
90ae2df38e sort the mimeTypes map alphabetically
except for html which is at the top. Easier maintainance
2012-07-03 16:12:48 +02:00
AD7six
8a09b3d454 update mimetype map
References:

http://www.iana.org/assignments/media-types/application/index.html
http://www.iana.org/assignments/media-types/audio/index.html
https://github.com/h5bp/html5-boilerplate/blob/master/.htaccess#L86
2012-07-03 16:07:57 +02:00
Jose Lorenzo Rodriguez
ec7ec73b66 Merge branch '2.1' into 2.2 2012-07-01 17:35:24 -04:30
José Lorenzo Rodríguez
476209df03 Changing docs in CakeRequest:accepts() as they were misleading, you are required to pass a correct mimetype and not an alias 2012-06-26 14:38:07 -05:30
Matt Hamann
a7ef245de5 Added 'helpers' to _applyConfig.
Allows default Helpers to be modified by EmailConfig setup.

Conflicts:

	lib/Cake/Network/Email/CakeEmail.php
2012-06-22 21:44:17 -04:00
mark_story
54679023f9 Add support for DELETE + form encoded data.
Much like PUT, DELETE requests will automatically parse
form-urlencoded request bodies and set them as $this->data.
2012-06-17 20:03:45 -04:00
AD7six
b509bdb04b Automatically handle PUT requests
make the following "just work"

    curl -X PUT -d foo=bar http://...
2012-06-06 22:59:37 +02:00
Rachman Chavik
8966f1b324 create CakeRequest in View instead of in CakeEmail 2012-06-04 22:21:41 +07:00
Rachman Chavik
9bafc5a3bb CakeEmail: create request object before rendering
Closes #2931
2012-06-04 09:18:29 +07:00
mark_story
4b8c469004 Merge branch '2.1' into 2.2
Conflicts:
	lib/Cake/VERSION.txt
2012-05-26 21:11:36 -04:00
mark_story
aa85451159 Fix incorrect return type. 2012-05-23 19:52:29 -04:00
José Lorenzo Rodríguez
ed15634ccb Merge pull request #663 from jellehenkens/api-docs-mixed-params
Updating @param mixed docblock lines to proper multi type @param's
2012-05-22 08:38:23 -07:00
mark_story
0ed6752110 Fix coding standards. 2012-05-21 20:29:00 -04:00
Norio Suzuki
f816f6ae1b Supported japanese legacy charset and changed to use upper case charset in Content-Type line 2012-05-21 20:28:59 -04:00
Jelle Henkens
f7ce5262b7 Updating mixed @param documentation to seperate list of accepted types 2012-05-21 21:55:10 +01:00
Jelle Henkens
327f809016 Removing duplicate if statement 2012-05-20 23:12:50 +01:00
mark_story
2c1b5d978d Optimize the content type search.
Move most commonly used types to the top
of the list.  This reduces the time spent
iterating content types.
2012-05-09 22:53:54 -04:00
Norio Suzuki
05bcc4fe58 Delete a space between ! and empty 2012-05-09 00:16:17 +09:00
Norio Suzuki
db20600d02 Fix SMTP Transparency (RFC5321 4.5.2. first line period) 2012-05-07 22:34:14 +00:00
ADmad
49f8e73ab3 Allow bulk storing/updating of mime types. Closes #2844 2012-05-03 01:39:12 +05:30
Ceeram
74ee75b0ef Merge branch '2.1' into 2.2 2012-04-23 10:34:04 +02:00
mark_story
2480ee1beb Fix coding standards. 2012-04-20 20:52:10 -04:00
euromark
a5c323064f domain configurable for mailing in CLI environment 2012-04-20 03:38:26 +02:00
mark_story
b54c3b0308 Convert FILES processing to use recursion.
Fixes issues with deeply nested file data issues.
Fixes #2796
2012-04-17 22:28:08 -04:00
mark_story
21ba5bf04a Merge branch '2.1' into 2.2 2012-04-17 21:47:24 -04:00
Renan Gonçalves
b0b36e8fba Defining default values for CakeRequest, those params are present anywhere except when there isn't a Route match. 2012-04-13 15:58:45 +02:00
mark_story
9f9feec222 Merge branch '2.2-hash' into 2.2
Conflicts:
	lib/Cake/Test/Case/Model/Datasource/DboSourceTest.php
	lib/Cake/View/Helper/FormHelper.php
2012-04-10 21:32:37 -04:00
mark_story
a24aca6ffc Fix a few code standards errors. 2012-04-06 22:56:01 -04:00
mark_story
4eea72205b Merge branch '2.1' into 2.2 2012-04-06 21:34:11 -04:00
mark_story
b3419be0fb Fix issues loading response classes from plugins.
Fixes #2759
2012-04-06 20:38:14 -04:00
Norio Suzuki
26b93afc3c fixed CakeEmail::reset, no initialized charset and headerCharset property 2012-04-01 23:42:18 +00:00
Rachman Chavik
6fa30db504 CakeEmail can use theme when rendering template 2012-03-28 22:01:30 +07:00
mark_story
19e0d8d946 Switch usage to Hash where possible. 2012-03-26 22:32:53 -04:00
Norio Suzuki
358b84b577 Add charset() / headerCharset() methods to CakeEmail class 2012-03-16 12:54:30 +00:00
Juan Basso
c754fb2dcb Updated copyright to 2012. 2012-03-12 22:46:46 -04:00
Juan Basso
3b1bd90ad6 Updated copyright to 2012. 2012-03-12 22:46:07 -04:00
mark_story
150c9fc6a3 Remove parse_str() its buggy and wrong.
parse_str() replaces `.` with _ and drops duplicated keys, which is
incorrect.  Replace parse_str with an updated version of parseQuery
from 1.x

Fixes #2629
Fixes #2647
2012-03-08 21:05:28 -05:00
mark_story
17eb0e4f68 Fix duplicate values when merging POST data.
Fixes #2648
2012-03-06 20:22:13 -05:00
mark_story
a6da736149 Fix coding standards errors in Network/ 2012-03-04 11:18:20 -05:00
Mark Story
6599422a7a Merge pull request #534 from dogmatic69/2622
Fixes #2622
2012-02-28 12:11:44 -08:00
dogmatic69
ac06880241 making the name lowercase in the addDetector method so that it will be found in the is() method fixes #2622 with tests. 2012-02-28 16:05:32 +00:00
mark_story
0568746bfd Merge branch '2.0' into 2.1
Conflicts:
	lib/Cake/Model/CakeSchema.php
2012-02-26 12:04:28 -05:00
euromark
e94d307ee1 code conventions 2012-02-25 19:46:05 -05:00
José Lorenzo Rodríguez
2840dc74d3 Merge pull request #528 from vantienvnn/2.0
CakeRequest::here explicitly using & as a query string separator to overcome issue in some badly configured 5.3 servers
2012-02-24 06:51:12 -08:00
vantienvnn
c0b2d8ad9d Fixed #2615 2012-02-24 21:35:50 +07:00
Ceeram
8eea263d71 fixing incorrect post data 2012-02-23 20:00:51 -05:00
Ceeram
55b8f66095 fixing incorrect post data 2012-02-22 22:49:42 +01:00
Christopher Vrooman
585f1e2c31 Minor changes to two error messages. 2012-02-19 14:47:49 -02:00
mark_story
943d928084 Merge branch '2.0' into 2.1 2012-02-18 22:19:38 -05:00
mark_story
89df484fc5 Remove un-necessary Set::merge().
Using Set::merge() on an empty array causes issues with out of order
numeric keys. Only merge if necessary.

Fixes #2595
2012-02-18 22:18:16 -05:00
mark_story
20229eeb43 Merge branch '2.0' into 2.1 2012-02-18 11:22:18 -05:00
teddy
0ea00c5f07 urldecode $this->url before unsetting it from CakeRequest->query 2012-02-18 11:03:36 -05:00
Majna
1dbafe1d4f Fix docblocks. 2012-02-17 13:51:20 +01:00
Thomas Ploch
1a07f55d43 Renamed parameter to CakeResponse::cookie() to match cakephp standard naming. 2012-02-13 09:59:45 +01:00
Thomas Ploch
574b5dcd41 Merge branch '2.1' of https://github.com/cakephp/cakephp into 2.1-cookie-response 2012-02-13 09:56:39 +01:00
mark_story
2afb05b590 Merge branch '2.0' into 2.1
Conflicts:
	app/View/Pages/home.ctp
	lib/Cake/Config/config.php
	lib/Cake/Core/App.php
	lib/Cake/VERSION.txt
	lib/Cake/View/Helper/NumberHelper.php
2012-02-12 10:06:13 -05:00
mark_story
4c01ba7224 Add ics mime type.
Fixes #2565
2012-02-11 11:39:24 -05:00
mark_story
0207a61e9b Move alias wrapping into _formatAddress()
Fixes #2502
2012-02-11 10:16:08 -05:00
Thomas Ploch
059a5f21ed Fixed TODO: Refactored setting of Cookies into CakeResponse. 2012-02-09 14:24:10 +01:00
ADmad
12bf1348f5 Merge branch '2.0' into 2.1 2012-02-05 17:55:46 +05:30
ADmad
6f09f5dfc8 Added missing file extension to mime type mapping for files used with html5 audio/video tags 2012-02-05 05:41:02 +05:30
mark_story
ace9fefb02 Merge branch '2.0' into 2.1 2012-02-03 21:54:50 -05:00
mark_story
f5d05d9ea9 Fix https + query string requests.
Using https + query strings would result in port 80 instead of the
default https port.

Fixes #2530
2012-02-01 21:10:56 -05:00
mark_story
167a551656 Fix incorrect doc block. 2012-02-01 19:30:56 -05:00
Ceeram
c8eae93292 Merge branch '2.0' into 2.1
Conflicts:
	lib/Cake/Network/Http/HttpSocket.php
2012-02-01 12:11:01 +01:00
Ceeram
cccf663c23 omit equal sign if query component is not a key value pair 2012-02-01 12:04:52 +01:00
Ceeram
7eda0affe3 Merge branch '2.0' into 2.1
Conflicts:
	lib/Cake/View/ThemeView.php
2012-01-26 21:40:18 +01:00
mark_story
f02a3b0531 Wrap aliases containing , in ""
Fixes #2502
2012-01-25 21:03:03 -05:00
Jose Lorenzo Rodriguez
a1daaf5960 Merge branch '2.1-http' into 2.1 2012-01-21 15:51:34 -04:30
mark_story
df5d9ac3d1 Merge branch '2.0' into 2.1
Conflicts:
	lib/Cake/Model/Model.php
	lib/Cake/Test/Case/Routing/RouterTest.php
2012-01-20 20:28:15 -05:00
mark_story
e6f5ebc257 Merge changes from hmic/CakeEmail-2.0
Adds parameters for file attachments instead of having
boundary prefixes in multiple places.

Fixes #GH433
2012-01-20 20:17:02 -05:00
Jose Lorenzo Rodriguez
00a5510b1d Readability changes 2012-01-19 22:26:59 -04:30
Jose Lorenzo Rodriguez
979f7a28b5 Fixing a couple bugs in CakeResponse::checkNotModified() and implementing conditional rendering in
RequestHandlerComponent
2012-01-19 01:08:45 -04:30
Jose Lorenzo Rodriguez
b79e0ad8f3 Moving checkModified() to CakeResponse, having it in the RequestHandler has too restrivtive 2012-01-19 01:08:45 -04:30
José Lorenzo Rodríguez
6839f0c450 Fixing typo in docblock 2012-01-19 01:08:44 -04:30
Jose Lorenzo Rodriguez
8e979cc83e Implementing CakeResponse::notModified() 2012-01-19 01:08:44 -04:30
Jose Lorenzo Rodriguez
dbd097debb Implementing the CakeResponse::etag() 2012-01-19 01:08:44 -04:30
Jose Lorenzo Rodriguez
803d49c7c6 Adding CakeResponse::vary() 2012-01-19 01:08:44 -04:30
Jose Lorenzo Rodriguez
3240f6221e Implementing mustRevaidate() 2012-01-19 01:08:44 -04:30
Jose Lorenzo Rodriguez
552c70a571 Removing Pragma headers, implementing sharedMaxAge in CakeResponse 2012-01-19 01:08:44 -04:30
Jose Lorenzo Rodriguez
d9987c96db Implementing sharable() and maxAge() in CakeResponse for a finer grain and easier control of cache headers 2012-01-19 01:08:44 -04:30
Jose Lorenzo Rodriguez
130b827e6f Implementing the modified() method in CakeResponse to have an easier way of setting the modification time 2012-01-19 01:08:44 -04:30
Jose Lorenzo Rodriguez
bab7e772d2 Adding expires() to CakeResponse to help adding expiration dates to the http response cache directives 2012-01-19 01:08:43 -04:30
Jose Lorenzo Rodriguez
f32c703e7e Not appending the charset information for content types that are not text/* in CakeResponse 2012-01-19 01:08:43 -04:30
Jose Lorenzo Rodriguez
4d19d536f6 Saving a few bytes by unsetting the content if the response status code is 204 (No Content) or 304 (Not Modified) 2012-01-19 01:08:43 -04:30
Jose Lorenzo Rodriguez
5b42cb8130 Adding length() method to CakeResponse as a shortcut for Content-Length. If you wish to force not Content-Length use length(false) 2012-01-19 01:08:43 -04:30
Jose Lorenzo Rodriguez
336ba1965e Adding protocol() method to CakeResponse to be able to change it on the fly 2012-01-19 01:08:43 -04:30
mark_story
97ce118294 Merge branch '2.0' into 2.1
Conflicts:
	lib/Cake/Utility/ClassRegistry.php
2012-01-11 20:59:31 -05:00
mark_story
4d73f4e6a1 Fix boundaries used in multi-part messages.
Inline attachments should use the multipart/related boundary.  Otherwise
sections will be incorrectly nested.

Fixes #2413
2012-01-11 20:44:42 -05:00
Hans-Joachim Michl
29cfdb4b41 Fixed wrong boundary marker for inline-files, inline-files should start new rel-boundaries, not (outer-)mixed-boundaries.
Amavis spits out this error:
X-Amavis-Alert: BAD HEADER MIME error: error: unexpected end of parts before epilogue
2012-01-11 20:30:49 -05:00
mark_story
dbea15650b Add iPad to the list of mobile clients.
Fixes #2452
2012-01-09 21:33:13 -05:00
mark_story
15c7493e39 Merge branch '2.0' into 2.1 2012-01-06 23:02:16 -05:00
mark_story
95ec741b6c Changing SCRIPT_NAME to PHP_SELF
Several shared hosts have issues with SCRIPT_NAME having an incorrect value.
Revert back to using PHP_SELF like in 1.3.

Fixes #2437
Fixes #2334
Fixes #2268
2012-01-04 21:10:29 -05:00
mark_story
997aa8a37b I'm an idiot. Fix the parse error. 2012-01-01 21:29:13 -05:00
mark_story
83987bee17 Merge branch '2.0' into 2.1
Conflicts:
	lib/Cake/Network/CakeRequest.php
2012-01-01 21:15:27 -05:00
mark_story
ac408b38e3 Add Windows Phone OS to mobile browser list.
Fixes #2428
2012-01-01 12:57:35 -05:00
mark_story
23178df504 Merge branch '2.0' into 2.1
Conflicts:
	lib/Cake/Config/config.php
	lib/Cake/VERSION.txt
	lib/Cake/View/Helper/FormHelper.php
2011-12-29 20:03:42 -05:00
Mark Story
83b28c42cf Fix failing tests and missing boundary markers.
When sending html + text emails, there were duplicate multipart/alternative sections
and the trailing top level boundary was missing.
2011-12-27 23:38:21 -05:00
Mark Story
0e4af546d6 Update sending attachments.
Both inline and external attachments, as well as mixed sets of
inline and external attachments should work now.  Re-built the internals
of message rendering to remove duplication and redundant code paths.

Fixes #2413
Fixes #2320
2011-12-27 22:51:47 -05:00
Mark Story
53598c722c Pulling out view rendering from boundary setting. 2011-12-27 22:51:47 -05:00
Mark Story
8414d37e48 Add docblock examples for attachments. 2011-12-27 22:51:47 -05:00
ADmad
389072708a Merge branch '2.0' into 2.1
Conflicts:
	lib/Cake/Test/Case/Model/ModelReadTest.php
	lib/Cake/Utility/Debugger.php
2011-12-22 03:15:04 +05:30
Kyle Robinson Young
51f9837db4 Code standards formatting 2011-12-15 22:52:07 -08:00
mark_story
2e8498e166 Merge branch '2.0' into 2.1
Conflicts:
	lib/Cake/Model/Datasource/Database/Postgres.php
	lib/Cake/Test/Case/Console/TaskCollectionTest.php
	lib/Cake/Test/Case/Model/ModelIntegrationTest.php
	lib/Cake/Test/Case/Utility/ClassRegistryTest.php
	lib/Cake/Utility/ClassRegistry.php
2011-12-11 22:51:40 -05:00
mark_story
b7f6645cec Fix issue with url parsing and /?
PHP's parse_url fails to parse url's containing
`/?`.  It returns false instead of something useful.

Fixes #2354
2011-12-08 21:48:40 -05:00
Kyle Robinson Young
c836ba08a3 Add/move docblocks to make text available in the API docs 2011-12-08 07:35:02 -08:00
euromark
be770bd9b8 Typo fix in HttpSocket
`schema` should be `scheme`, this fixes the only use of
schema in HttpSocket.

Fixes #2345

Signed-off-by: mark_story <mark@mark-story.com>
2011-12-06 21:07:12 -05:00
mark_story
1bc3583133 Add usage to HttpSocket::configAuth()
Fixes #2336
2011-12-04 13:45:53 -05:00
mark_story
6d269ce25d Merge branch '2.0' into 2.1
Conflicts:
	lib/Cake/Config/config.php
	lib/Cake/Console/Command/Task/ModelTask.php
	lib/Cake/Console/Command/TestsuiteShell.php
	lib/Cake/Model/CakeSchema.php
	lib/Cake/Model/Datasource/Database/Sqlite.php
	lib/Cake/Test/Case/Model/ModelTestBase.php
	lib/Cake/Test/Case/Routing/DispatcherTest.php
	lib/Cake/Test/Case/Utility/FileTest.php
	lib/Cake/VERSION.txt
2011-12-03 13:45:28 -05:00
mark_story
22352a0227 Fix missing directory in dispatcher with rewrite off.
When re-writing is disabled, and the deployment directory
contains either 'app' or 'webroot' the computed path was
incorrect.

Fixes #2330
2011-12-02 23:39:33 -05:00
Kyle Robinson Young
8197f87dbc Spelling and grammar fixes 2011-12-01 21:58:09 -08:00
mark_story
390db7beba Fix issue with dots in request URLs.
Dots in request url's often resulted in an additional get parameter
being added.

Fixes #2303
2011-11-26 21:24:53 -05:00
mark_story
fa0ec44dfd Merge branch '2.0' into 2.1
Conflicts:
	lib/Cake/Test/Case/Console/Command/CommandListShellTest.php
	lib/Cake/Test/Case/Error/ExceptionRendererTest.php
	lib/Cake/Test/Case/Utility/DebuggerTest.php
	lib/Cake/Test/Case/View/Helper/TextHelperTest.php
2011-11-16 21:31:16 -05:00
mark_story
9c5ad71abc Add CakeRequest::__isset()
Fixes #2266
2011-11-16 20:21:07 -05:00
mark_story
542e5c91de Merge branch '2.1' of github.com:cakephp/cakephp into 2.1 2011-11-15 23:11:07 -05:00
mark_story
fb7d931bef Merge branch '2.0' into 2.1
Conflicts:
	lib/Cake/Config/config.php
	lib/Cake/VERSION.txt
2011-11-15 23:10:34 -05:00
Renan Gonçalves aka renan.saddam
1db915faec Merge pull request #314 from challet/HttpSocket_handle_redirect
move 'redirect' to request, and allow to use int values as ttl
2011-11-15 03:09:15 -08:00
mark_story
87f5b6cf26 Fix more strict errors.
Fix strict errors in test files.
Remove a test in CakeEmail as array -> string causes a notice
in PHP 5.4
2011-11-13 20:47:55 -05:00
Clément Hallet
ecb88791c8 move 'redirect' to request, and allow to use int values as ttl 2011-11-13 17:45:33 +01:00
mark_story
254357e9c9 Merge branch '2.0' into 2.1 2011-11-11 22:38:11 -05:00
José Lorenzo Rodríguez
497ada8895 Merge pull request #311 from challet/HttpSocket_handle_redirect
optionnaly handles redirect before return the response
2011-11-09 09:42:52 -08:00
mark_story
89ced25fad Making HttpResponse more tolerant of line endings. 2011-11-08 19:23:36 -05:00
Clément Hallet
62ae6d57e9 optionnaly handles redirect before return the response 2011-11-08 18:55:58 +01:00
ADmad
01aa91b3cf Fixing bug where content length was not set for clients which don't accept compressed response. Closes #2225 2011-11-07 02:04:57 +05:30
Jose Lorenzo Rodriguez
d74b64d475 Merge remote-tracking branch 'origin/2.0' into 2.1 2011-11-04 12:09:31 -04:30
mark_story
0304bb8796 Merge branch '2.0' into 2.1
Conflicts:
	lib/Cake/Config/config.php
	lib/Cake/VERSION.txt
2011-11-03 22:04:00 -04:00
Jose Lorenzo Rodriguez
2711178b4b Fixing Content-Length calculation when there is buffered output that will be sent before the response body. fixes #2208 2011-11-03 21:09:30 -04:30
Lubos Remplik
985dcad802 MimeType audio/ogg added 2011-11-01 08:17:36 -07:00
Yasushi Ichikawa
4aeb5b461d delete App::uses Multibyte class. It is no longer needed. 2011-10-31 23:47:36 +09:00
Yasushi Ichikawa
f39c683130 check mbstring.func_overload before using strlen() 2011-10-31 23:29:59 +09:00
Yasushi Ichikawa
e53287583e return byte length instead of number of characters in Content-Length 2011-10-31 18:31:08 +09:00
Juan Basso
fcd96bcc60 Using native methods to query in HttpSocket. 2011-10-29 15:40:41 -04:00
Jose Lorenzo Rodriguez
9866882506 Not sending a content-length for redirection status codes that are not supposed to have any content 2011-10-27 23:18:49 -04:30
Jose Lorenzo Rodriguez
4a453cc384 Fixes #2175
Adding automatic Content-Length header to hint browser of the end of the response when using persistent connections
2011-10-27 22:15:37 -04:30
mark_story
ad524b25ef Merge branch '2.0' into 2.1 2011-10-25 22:29:03 -04:00
Maggion Emmanuel
3dc9fee5c0 Typo 2011-10-25 22:22:10 -04:00
mark_story
621cb43e93 Add Opera Mobi to mobile detectors.
This was missed in a merge with 1.3.
Fixes #2087
2011-10-24 21:12:06 -04:00
mark_story
d6f7669f54 Merge branch '2.0' into 2.1 2011-10-23 21:07:09 -04:00