From 09ebb4597f5955b41fb693f3eed1d66f286e8448 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Roland=20H=C3=A4der?=
Date: Wed, 20 Apr 2011 04:22:48 +0000
Subject: [PATCH] eol-style set #3
---
.gitattributes | 465 ++++---
.../third_party/php_mailer/ChangeLog.txt | 660 +++++-----
inc/classes/third_party/php_mailer/LICENSE | 1008 +++++++--------
inc/classes/third_party/php_mailer/README | 386 +++---
.../php_mailer/docs/extending.html | 296 ++---
.../third_party/php_mailer/docs/faq.html | 134 +-
.../php_mailer/examples/contents.html | 24 +-
.../php_mailer/examples/index.html | 146 +--
.../php_mailer/test/phpmailer_test.php | 1144 ++++++++---------
.../third_party/php_mailer/test/phpunit.php | 756 +++++------
prop-set.sh | 11 +
11 files changed, 2512 insertions(+), 2518 deletions(-)
diff --git a/.gitattributes b/.gitattributes
index 14d4ecc2..f9dbe0df 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,46 +1,40 @@
* text=auto !eol
/application-external.txt svneol=native#text/plain
-docs/COPYING -text
-docs/COPYING.documents -text
-docs/COPYING.software -text
-docs/NEWS -text
-docs/README -text
-docs/THANKS -text
docs/TODOs.txt svneol=native#text/plain
-inc/.htaccess -text svneol=unset#text/plain
+inc/.htaccess svneol=native#text/plain
inc/classes.php svneol=native#text/plain
-inc/classes/.htaccess -text svneol=unset#text/plain
-inc/classes/exceptions/.htaccess -text svneol=unset#text/plain
-inc/classes/exceptions/actions/.htaccess -text svneol=unset#text/plain
+inc/classes/.htaccess svneol=native#text/plain
+inc/classes/exceptions/.htaccess svneol=native#text/plain
+inc/classes/exceptions/actions/.htaccess svneol=native#text/plain
inc/classes/exceptions/actions/class_InvalidActionException.php svneol=native#text/plain
-inc/classes/exceptions/auth/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/auth/.htaccess svneol=native#text/plain
inc/classes/exceptions/auth/class_UserAuthorizationException.php svneol=native#text/plain
inc/classes/exceptions/class_ svneol=native#text/plain
inc/classes/exceptions/class_FrameworkException.php svneol=native#text/plain
-inc/classes/exceptions/compressor/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/compressor/.htaccess svneol=native#text/plain
inc/classes/exceptions/compressor/class_MismatchingCompressorsException.php svneol=native#text/plain
-inc/classes/exceptions/controller/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/controller/.htaccess svneol=native#text/plain
inc/classes/exceptions/controller/class_DefaultControllerException.php svneol=native#text/plain
inc/classes/exceptions/controller/class_InvalidControllerException.php svneol=native#text/plain
-inc/classes/exceptions/criteria/.htaccess -text svneol=unset#text/plain
-inc/classes/exceptions/crypto/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/criteria/.htaccess svneol=native#text/plain
+inc/classes/exceptions/crypto/.htaccess svneol=native#text/plain
inc/classes/exceptions/crypto/class_EncryptInvalidLengthException.php svneol=native#text/plain
inc/classes/exceptions/crypto/class_EncryptMissingException.php svneol=native#text/plain
-inc/classes/exceptions/database/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/database/.htaccess svneol=native#text/plain
inc/classes/exceptions/database/class_ svneol=native#text/plain
inc/classes/exceptions/database/class_DatabaseException.php svneol=native#text/plain
-inc/classes/exceptions/database/general/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/database/general/.htaccess svneol=native#text/plain
inc/classes/exceptions/database/general/class_SqlException.php svneol=native#text/plain
-inc/classes/exceptions/database/local_file/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/database/local_file/.htaccess svneol=native#text/plain
inc/classes/exceptions/database/local_file/class_SavePathIsEmptyException.php svneol=native#text/plain
inc/classes/exceptions/database/local_file/class_SavePathIsNoDirectoryException.php svneol=native#text/plain
inc/classes/exceptions/database/local_file/class_SavePathReadProtectedException.php svneol=native#text/plain
inc/classes/exceptions/database/local_file/class_SavePathWriteProtectedException.php svneol=native#text/plain
-inc/classes/exceptions/database/wrapper/.htaccess -text svneol=unset#text/plain
-inc/classes/exceptions/filter/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/database/wrapper/.htaccess svneol=native#text/plain
+inc/classes/exceptions/filter/.htaccess svneol=native#text/plain
inc/classes/exceptions/filter/class_FilterChainException.php svneol=native#text/plain
inc/classes/exceptions/filter/class_InvalidFilterChainException.php svneol=native#text/plain
-inc/classes/exceptions/helper/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/helper/.htaccess svneol=native#text/plain
inc/classes/exceptions/helper/class_FormClosedException.php svneol=native#text/plain
inc/classes/exceptions/helper/class_FormGroupClosedException.php svneol=native#text/plain
inc/classes/exceptions/helper/class_FormOpenedException.php svneol=native#text/plain
@@ -50,7 +44,7 @@ inc/classes/exceptions/helper/class_HelperSubGroupAlreadyCreatedException.php sv
inc/classes/exceptions/helper/class_InvalidFormNameException.php svneol=native#text/plain
inc/classes/exceptions/helper/class_NoGroupOpenedException.php svneol=native#text/plain
inc/classes/exceptions/helper/class_UserInstanceMissingException.php svneol=native#text/plain
-inc/classes/exceptions/io/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/io/.htaccess svneol=native#text/plain
inc/classes/exceptions/io/class_DirPointerNotOpenedException.php svneol=native#text/plain
inc/classes/exceptions/io/class_FileIoException.php svneol=native#text/plain
inc/classes/exceptions/io/class_FileNotFoundException.php svneol=native#text/plain
@@ -63,14 +57,14 @@ inc/classes/exceptions/io/class_InvalidResourceException.php svneol=native#text/
inc/classes/exceptions/io/class_PathIsEmptyException.php svneol=native#text/plain
inc/classes/exceptions/io/class_PathIsNoDirectoryException.php svneol=native#text/plain
inc/classes/exceptions/io/class_PathReadProtectedException.php svneol=native#text/plain
-inc/classes/exceptions/language/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/language/.htaccess svneol=native#text/plain
inc/classes/exceptions/language/class_InvalidLanguagePathStringException.php svneol=native#text/plain
inc/classes/exceptions/language/class_LanguagePathIsEmptyException.php svneol=native#text/plain
inc/classes/exceptions/language/class_LanguagePathIsNoDirectoryException.php svneol=native#text/plain
inc/classes/exceptions/language/class_LanguagePathReadProtectedException.php svneol=native#text/plain
inc/classes/exceptions/language/class_MissingFileIoHandlerException.php svneol=native#text/plain
inc/classes/exceptions/language/class_MissingLanguageHandlerException.php svneol=native#text/plain
-inc/classes/exceptions/main/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/main/.htaccess svneol=native#text/plain
inc/classes/exceptions/main/class_AssertionException.php svneol=native#text/plain
inc/classes/exceptions/main/class_ClassMismatchException.php svneol=native#text/plain
inc/classes/exceptions/main/class_ClassNotFoundException.php svneol=native#text/plain
@@ -94,23 +88,23 @@ inc/classes/exceptions/main/class_NullPointerException.php svneol=native#text/pl
inc/classes/exceptions/main/class_ResponseHeadersAlreadySentException.php svneol=native#text/plain
inc/classes/exceptions/main/class_UnsupportedOperationException.php svneol=native#text/plain
inc/classes/exceptions/main/class_VariableIsNotSetException.php svneol=native#text/plain
-inc/classes/exceptions/result/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/result/.htaccess svneol=native#text/plain
inc/classes/exceptions/result/class_InvalidDatabaseResultException.php svneol=native#text/plain
inc/classes/exceptions/result/class_ResultUpdateException.php svneol=native#text/plain
-inc/classes/exceptions/socket/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/socket/.htaccess svneol=native#text/plain
inc/classes/exceptions/socket/class_InvalidServerSocketException.php svneol=native#text/plain
inc/classes/exceptions/socket/class_InvalidSocketException.php svneol=native#text/plain
inc/classes/exceptions/socket/class_NoSocketRegisteredException.php svneol=native#text/plain
inc/classes/exceptions/socket/class_SocketShutdownException.php svneol=native#text/plain
-inc/classes/exceptions/stacker/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/stacker/.htaccess svneol=native#text/plain
inc/classes/exceptions/stacker/class_AlreadyInitializedStackerException.php svneol=native#text/plain
inc/classes/exceptions/stacker/class_EmptyStackerException.php svneol=native#text/plain
inc/classes/exceptions/stacker/class_FullStackerException.php svneol=native#text/plain
inc/classes/exceptions/stacker/class_NoStackerException.php svneol=native#text/plain
-inc/classes/exceptions/state/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/state/.htaccess svneol=native#text/plain
inc/classes/exceptions/state/class_InvalidStateException.php svneol=native#text/plain
inc/classes/exceptions/state/class_InvalidStateInstanceException.php svneol=native#text/plain
-inc/classes/exceptions/template/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/template/.htaccess svneol=native#text/plain
inc/classes/exceptions/template/class_BasePathIsEmptyException.php svneol=native#text/plain
inc/classes/exceptions/template/class_BasePathIsNoDirectoryException.php svneol=native#text/plain
inc/classes/exceptions/template/class_BasePathReadProtectedException.php svneol=native#text/plain
@@ -118,59 +112,59 @@ inc/classes/exceptions/template/class_InvalidBasePathStringException.php svneol=
inc/classes/exceptions/template/class_NoVariableException.php svneol=native#text/plain
inc/classes/exceptions/template/class_UnexpectedTemplateTypeException.php svneol=native#text/plain
inc/classes/exceptions/template/class_UnsupportedTemplateEngineException.php svneol=native#text/plain
-inc/classes/exceptions/user/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/user/.htaccess svneol=native#text/plain
inc/classes/exceptions/user/class_AccountPasswordMismatchException.php svneol=native#text/plain
inc/classes/exceptions/user/class_UserEmailMissingException.php svneol=native#text/plain
inc/classes/exceptions/user/class_UserPasswordMismatchException.php svneol=native#text/plain
inc/classes/exceptions/user/class_UsernameMissingException.php svneol=native#text/plain
-inc/classes/exceptions/xml/.htaccess -text svneol=unset#text/plain
+inc/classes/exceptions/xml/.htaccess svneol=native#text/plain
inc/classes/exceptions/xml/class_InvalidXmlNodeException.php svneol=native#text/plain
inc/classes/exceptions/xml/class_XmlNodeMismatchException.php svneol=native#text/plain
inc/classes/exceptions/xml/class_XmlParserException.php svneol=native#text/plain
-inc/classes/interfaces/.htaccess -text svneol=unset#text/plain
-inc/classes/interfaces/actions/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/.htaccess svneol=native#text/plain
+inc/classes/interfaces/actions/.htaccess svneol=native#text/plain
inc/classes/interfaces/actions/class_PerformableAction.php svneol=native#text/plain
-inc/classes/interfaces/actions/commands/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/actions/commands/.htaccess svneol=native#text/plain
inc/classes/interfaces/actions/commands/class_Commandable.php svneol=native#text/plain
-inc/classes/interfaces/application/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/application/.htaccess svneol=native#text/plain
inc/classes/interfaces/application/class_ManageableApplication.php svneol=native#text/plain
-inc/classes/interfaces/auth/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/auth/.htaccess svneol=native#text/plain
inc/classes/interfaces/auth/class_Authorizeable.php svneol=native#text/plain
-inc/classes/interfaces/cache/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/cache/.htaccess svneol=native#text/plain
inc/classes/interfaces/cache/class_Cacheable.php svneol=native#text/plain
-inc/classes/interfaces/captcha/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/captcha/.htaccess svneol=native#text/plain
inc/classes/interfaces/captcha/class_SolveableCaptcha.php svneol=native#text/plain
inc/classes/interfaces/class_ svneol=native#text/plain
inc/classes/interfaces/class_FrameworkInterface.php svneol=native#text/plain
-inc/classes/interfaces/compressor/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/compressor/.htaccess svneol=native#text/plain
inc/classes/interfaces/compressor/class_Compressor.php svneol=native#text/plain
-inc/classes/interfaces/controller/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/controller/.htaccess svneol=native#text/plain
inc/classes/interfaces/controller/class_Controller.php svneol=native#text/plain
-inc/classes/interfaces/criteria/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/criteria/.htaccess svneol=native#text/plain
inc/classes/interfaces/criteria/class_Criteria.php svneol=native#text/plain
-inc/classes/interfaces/criteria/extended/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/criteria/extended/.htaccess svneol=native#text/plain
inc/classes/interfaces/criteria/extended/class_LocalSearchCriteria.php svneol=native#text/plain
inc/classes/interfaces/criteria/extended/class_LocalUpdateCriteria.php svneol=native#text/plain
inc/classes/interfaces/criteria/extended/class_StoreableCriteria.php svneol=native#text/plain
-inc/classes/interfaces/crypto/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/crypto/.htaccess svneol=native#text/plain
inc/classes/interfaces/crypto/class_Cryptable.php svneol=native#text/plain
-inc/classes/interfaces/database/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/database/.htaccess svneol=native#text/plain
inc/classes/interfaces/database/class_FrameworkDatabaseInterface.php svneol=native#text/plain
inc/classes/interfaces/database/class_Updateable.php svneol=native#text/plain
-inc/classes/interfaces/database/frontend/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/database/frontend/.htaccess svneol=native#text/plain
inc/classes/interfaces/database/frontend/class_DatabaseFrontendInterface.php svneol=native#text/plain
-inc/classes/interfaces/database/middleware/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/database/middleware/.htaccess svneol=native#text/plain
inc/classes/interfaces/database/middleware/class_DatabaseConnector.php svneol=native#text/plain
-inc/classes/interfaces/database/wrapper/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/database/wrapper/.htaccess svneol=native#text/plain
inc/classes/interfaces/database/wrapper/class_BookablePointsWrapper.php svneol=native#text/plain
inc/classes/interfaces/database/wrapper/class_ManageableAccountWrapper.php svneol=native#text/plain
-inc/classes/interfaces/debug/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/debug/.htaccess svneol=native#text/plain
inc/classes/interfaces/debug/class_Debugger.php svneol=native#text/plain
-inc/classes/interfaces/discovery/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/discovery/.htaccess svneol=native#text/plain
inc/classes/interfaces/discovery/class_Discoverable.php svneol=native#text/plain
-inc/classes/interfaces/filter/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/filter/.htaccess svneol=native#text/plain
inc/classes/interfaces/filter/class_Filterable.php svneol=native#text/plain
-inc/classes/interfaces/helper/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/helper/.htaccess svneol=native#text/plain
inc/classes/interfaces/helper/class_HelpableLogin.php svneol=native#text/plain
inc/classes/interfaces/helper/class_HelpableTemplate.php svneol=native#text/plain
inc/classes/interfaces/helper/class_Helper.php svneol=native#text/plain
@@ -178,94 +172,94 @@ inc/classes/interfaces/helper/login/.htaccess svneol=native#text/plain
inc/classes/interfaces/helper/login/class_HelpableLogin.php svneol=native#text/plain
inc/classes/interfaces/helper/template/.htaccess svneol=native#text/plain
inc/classes/interfaces/helper/template/class_HelpableTemplate.php svneol=native#text/plain
-inc/classes/interfaces/io/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/io/.htaccess svneol=native#text/plain
inc/classes/interfaces/io/class_Streamable.php svneol=native#text/plain
-inc/classes/interfaces/io/file/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/io/file/.htaccess svneol=native#text/plain
inc/classes/interfaces/io/file/class_FileInputStreamer.php svneol=native#text/plain
inc/classes/interfaces/io/file/class_FileOutputStreamer.php svneol=native#text/plain
-inc/classes/interfaces/io/output/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/io/output/.htaccess svneol=native#text/plain
inc/classes/interfaces/io/output/class_OutputStreamer.php svneol=native#text/plain
-inc/classes/interfaces/language/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/language/.htaccess svneol=native#text/plain
inc/classes/interfaces/language/class_ManageableLanguage.php svneol=native#text/plain
-inc/classes/interfaces/login/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/login/.htaccess svneol=native#text/plain
inc/classes/interfaces/login/class_LoginableUser.php svneol=native#text/plain
-inc/classes/interfaces/mailer/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/mailer/.htaccess svneol=native#text/plain
inc/classes/interfaces/mailer/class_DeliverableMail.php svneol=native#text/plain
-inc/classes/interfaces/menu/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/menu/.htaccess svneol=native#text/plain
inc/classes/interfaces/menu/class_RenderableMenu.php svneol=native#text/plain
-inc/classes/interfaces/parser/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/parser/.htaccess svneol=native#text/plain
inc/classes/interfaces/parser/class_Parseable.php svneol=native#text/plain
-inc/classes/interfaces/points/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/points/.htaccess svneol=native#text/plain
inc/classes/interfaces/points/class_BookablePoints.php svneol=native#text/plain
-inc/classes/interfaces/reader/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/reader/.htaccess svneol=native#text/plain
inc/classes/interfaces/reader/class_ReadableNews.php svneol=native#text/plain
-inc/classes/interfaces/registration/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/registration/.htaccess svneol=native#text/plain
inc/classes/interfaces/registration/class_UserRegister.php svneol=native#text/plain
-inc/classes/interfaces/registry/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/registry/.htaccess svneol=native#text/plain
inc/classes/interfaces/registry/class_Register.php svneol=native#text/plain
inc/classes/interfaces/registry/class_Registerable.php svneol=native#text/plain
-inc/classes/interfaces/registry/socket/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/registry/socket/.htaccess svneol=native#text/plain
inc/classes/interfaces/registry/socket/class_RegisterableSocket.php svneol=native#text/plain
-inc/classes/interfaces/request/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/request/.htaccess svneol=native#text/plain
inc/classes/interfaces/request/class_Requestable.php svneol=native#text/plain
-inc/classes/interfaces/resolver/.htaccess -text svneol=unset#text/plain
-inc/classes/interfaces/resolver/actions/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/resolver/.htaccess svneol=native#text/plain
+inc/classes/interfaces/resolver/actions/.htaccess svneol=native#text/plain
inc/classes/interfaces/resolver/actions/class_ActionResolver.php svneol=native#text/plain
inc/classes/interfaces/resolver/class_Resolver.php svneol=native#text/plain
-inc/classes/interfaces/resolver/commands/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/resolver/commands/.htaccess svneol=native#text/plain
inc/classes/interfaces/resolver/commands/class_CommandResolver.php svneol=native#text/plain
-inc/classes/interfaces/resolver/controller/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/resolver/controller/.htaccess svneol=native#text/plain
inc/classes/interfaces/resolver/controller/class_ControllerResolver.php svneol=native#text/plain
-inc/classes/interfaces/resolver/state/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/resolver/state/.htaccess svneol=native#text/plain
inc/classes/interfaces/resolver/state/class_StateResolver.php svneol=native#text/plain
-inc/classes/interfaces/response/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/response/.htaccess svneol=native#text/plain
inc/classes/interfaces/response/class_Responseable.php svneol=native#text/plain
-inc/classes/interfaces/result/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/result/.htaccess svneol=native#text/plain
inc/classes/interfaces/result/class_SearchableResult.php svneol=native#text/plain
inc/classes/interfaces/result/class_UpdateableResult.php svneol=native#text/plain
-inc/classes/interfaces/stacker/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/stacker/.htaccess svneol=native#text/plain
inc/classes/interfaces/stacker/class_Stackable.php svneol=native#text/plain
-inc/classes/interfaces/state/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/state/.htaccess svneol=native#text/plain
inc/classes/interfaces/state/class_Stateable.php svneol=native#text/plain
-inc/classes/interfaces/streams/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/streams/.htaccess svneol=native#text/plain
inc/classes/interfaces/streams/class_Streamable.php svneol=native#text/plain
-inc/classes/interfaces/streams/crypto/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/streams/crypto/.htaccess svneol=native#text/plain
inc/classes/interfaces/streams/crypto/class_EncryptableStream.php svneol=native#text/plain
inc/classes/interfaces/streams/input/.htaccess svneol=native#text/plain
inc/classes/interfaces/streams/input/class_InputStreamable.php svneol=native#text/plain
inc/classes/interfaces/streams/output/.htaccess svneol=native#text/plain
inc/classes/interfaces/streams/output/class_OutputStreamable.php svneol=native#text/plain
-inc/classes/interfaces/template/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/template/.htaccess svneol=native#text/plain
inc/classes/interfaces/template/class_CompileableTemplate.php svneol=native#text/plain
inc/classes/interfaces/template/view/class_ViewHelper.php svneol=native#text/plain
-inc/classes/interfaces/user/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/user/.htaccess svneol=native#text/plain
inc/classes/interfaces/user/class_ManageableAccount.php svneol=native#text/plain
-inc/classes/interfaces/user/extended/.htaccess -text svneol=unset#text/plain
+inc/classes/interfaces/user/extended/.htaccess svneol=native#text/plain
inc/classes/interfaces/user/extended/class_ManageableGuest.php svneol=native#text/plain
inc/classes/interfaces/user/extended/class_ManageableMember.php svneol=native#text/plain
-inc/classes/main/.htaccess -text svneol=unset#text/plain
-inc/classes/main/actions/.htaccess -text svneol=unset#text/plain
+inc/classes/main/.htaccess svneol=native#text/plain
+inc/classes/main/actions/.htaccess svneol=native#text/plain
inc/classes/main/actions/class_ svneol=native#text/plain
inc/classes/main/actions/class_BaseAction.php svneol=native#text/plain
-inc/classes/main/actions/post_registration/.htaccess -text svneol=unset#text/plain
+inc/classes/main/actions/post_registration/.htaccess svneol=native#text/plain
inc/classes/main/actions/post_registration/class_LoginAfterRegistrationAction.php svneol=native#text/plain
-inc/classes/main/actions/web/.htaccess -text svneol=unset#text/plain
+inc/classes/main/actions/web/.htaccess svneol=native#text/plain
inc/classes/main/actions/web/class_WebLoginProfileAction.php svneol=native#text/plain
-inc/classes/main/application/.htaccess -text svneol=unset#text/plain
+inc/classes/main/application/.htaccess svneol=native#text/plain
inc/classes/main/application/class_BaseApplication.php svneol=native#text/plain
-inc/classes/main/auth/.htaccess -text svneol=unset#text/plain
+inc/classes/main/auth/.htaccess svneol=native#text/plain
inc/classes/main/auth/class_CookieAuth.php svneol=native#text/plain
-inc/classes/main/cache/.htaccess -text svneol=unset#text/plain
+inc/classes/main/cache/.htaccess svneol=native#text/plain
inc/classes/main/cache/class_MemoryCache.php svneol=native#text/plain
inc/classes/main/class_ svneol=native#text/plain
inc/classes/main/class_BaseFrameworkSystem.php svneol=native#text/plain
inc/classes/main/class_FrameworkArrayObject.php svneol=native#text/plain
-inc/classes/main/commands/.htaccess -text svneol=unset#text/plain
+inc/classes/main/commands/.htaccess svneol=native#text/plain
inc/classes/main/commands/class_ svneol=native#text/plain
inc/classes/main/commands/class_BaseCommand.php svneol=native#text/plain
-inc/classes/main/commands/image/.htaccess -text svneol=unset#text/plain
+inc/classes/main/commands/image/.htaccess svneol=native#text/plain
inc/classes/main/commands/image/class_ImageCodeCaptchaCommand.php svneol=native#text/plain
-inc/classes/main/commands/web/.htaccess -text svneol=unset#text/plain
+inc/classes/main/commands/web/.htaccess svneol=native#text/plain
inc/classes/main/commands/web/class_ svneol=native#text/plain
inc/classes/main/commands/web/class_WebConfirmCommand.php svneol=native#text/plain
inc/classes/main/commands/web/class_WebDoFormCommand.php svneol=native#text/plain
@@ -279,32 +273,32 @@ inc/classes/main/commands/web/class_WebProblemCommand.php svneol=native#text/pla
inc/classes/main/commands/web/class_WebRegisterCommand.php svneol=native#text/plain
inc/classes/main/commands/web/class_WebResendLinkCommand.php svneol=native#text/plain
inc/classes/main/commands/web/class_WebStatusCommand.php svneol=native#text/plain
-inc/classes/main/compressor/.htaccess -text svneol=unset#text/plain
+inc/classes/main/compressor/.htaccess svneol=native#text/plain
inc/classes/main/compressor/class_Bzip2Compressor.php svneol=native#text/plain
inc/classes/main/compressor/class_GzipCompressor.php svneol=native#text/plain
inc/classes/main/compressor/class_NullCompressor.php svneol=native#text/plain
-inc/classes/main/console/.htaccess -text svneol=unset#text/plain
+inc/classes/main/console/.htaccess svneol=native#text/plain
inc/classes/main/console/class_ConsoleTools.php svneol=native#text/plain
-inc/classes/main/container/.htaccess -text svneol=unset#text/plain
+inc/classes/main/container/.htaccess svneol=native#text/plain
inc/classes/main/container/class_ svneol=native#text/plain
inc/classes/main/container/class_BaseContainer.php svneol=native#text/plain
-inc/classes/main/container/socket/.htaccess -text svneol=unset#text/plain
+inc/classes/main/container/socket/.htaccess svneol=native#text/plain
inc/classes/main/container/socket/class_SocketContainer.php svneol=native#text/plain
-inc/classes/main/controller/.htaccess -text svneol=unset#text/plain
-inc/classes/main/controller/captcha/.htaccess -text svneol=unset#text/plain
+inc/classes/main/controller/.htaccess svneol=native#text/plain
+inc/classes/main/controller/captcha/.htaccess svneol=native#text/plain
inc/classes/main/controller/captcha/class_ImageCodeCaptchaController.php svneol=native#text/plain
inc/classes/main/controller/class_ svneol=native#text/plain
inc/classes/main/controller/class_BaseController.php svneol=native#text/plain
-inc/classes/main/controller/console/.htaccess -text svneol=unset#text/plain
+inc/classes/main/controller/console/.htaccess svneol=native#text/plain
inc/classes/main/controller/console/class_ConsoleDefaultController.php svneol=native#text/plain
inc/classes/main/controller/console/class_ConsoleDefaultNewsController.php svneol=native#text/plain
-inc/classes/main/controller/form/.htaccess -text svneol=unset#text/plain
+inc/classes/main/controller/form/.htaccess svneol=native#text/plain
inc/classes/main/controller/form/class_WebDoFormController.php svneol=native#text/plain
-inc/classes/main/controller/image/.htaccess -text svneol=unset#text/plain
+inc/classes/main/controller/image/.htaccess svneol=native#text/plain
inc/classes/main/controller/image/class_ImageDefaultController.php svneol=native#text/plain
-inc/classes/main/controller/login/.htaccess -text svneol=unset#text/plain
+inc/classes/main/controller/login/.htaccess svneol=native#text/plain
inc/classes/main/controller/login/class_WebLoginAreaController.php svneol=native#text/plain
-inc/classes/main/controller/web/.htaccess -text svneol=unset#text/plain
+inc/classes/main/controller/web/.htaccess svneol=native#text/plain
inc/classes/main/controller/web/class_ svneol=native#text/plain
inc/classes/main/controller/web/class_WebConfirmController.php svneol=native#text/plain
inc/classes/main/controller/web/class_WebDefaultController.php svneol=native#text/plain
@@ -316,88 +310,88 @@ inc/classes/main/controller/web/class_WebLogoutDoneController.php svneol=native#
inc/classes/main/controller/web/class_WebProblemController.php svneol=native#text/plain
inc/classes/main/controller/web/class_WebRegisterController.php svneol=native#text/plain
inc/classes/main/controller/web/class_WebStatusController.php svneol=native#text/plain
-inc/classes/main/criteria/.htaccess -text svneol=unset#text/plain
+inc/classes/main/criteria/.htaccess svneol=native#text/plain
inc/classes/main/criteria/class_BaseCriteria.php svneol=native#text/plain
-inc/classes/main/criteria/dataset/.htaccess -text svneol=unset#text/plain
+inc/classes/main/criteria/dataset/.htaccess svneol=native#text/plain
inc/classes/main/criteria/dataset/class_DataSetCriteria.php svneol=native#text/plain
-inc/classes/main/criteria/search/.htaccess -text svneol=unset#text/plain
+inc/classes/main/criteria/search/.htaccess svneol=native#text/plain
inc/classes/main/criteria/search/class_SearchCriteria.php svneol=native#text/plain
-inc/classes/main/criteria/update/.htaccess -text svneol=unset#text/plain
+inc/classes/main/criteria/update/.htaccess svneol=native#text/plain
inc/classes/main/criteria/update/class_UpdateCriteria.php svneol=native#text/plain
-inc/classes/main/crypto/.htaccess -text svneol=unset#text/plain
+inc/classes/main/crypto/.htaccess svneol=native#text/plain
inc/classes/main/crypto/class_CryptoHelper.php svneol=native#text/plain
-inc/classes/main/database/.htaccess -text svneol=unset#text/plain
+inc/classes/main/database/.htaccess svneol=native#text/plain
inc/classes/main/database/class_ svneol=native#text/plain
inc/classes/main/database/class_BaseDatabaseFrontend.php svneol=native#text/plain
inc/classes/main/database/class_BaseDatabaseWrapper.php svneol=native#text/plain
-inc/classes/main/database/databases/.htaccess -text svneol=unset#text/plain
+inc/classes/main/database/databases/.htaccess svneol=native#text/plain
inc/classes/main/database/databases/class_LocalFileDatabase.php svneol=native#text/plain
-inc/classes/main/database/wrapper/.htaccess -text svneol=unset#text/plain
+inc/classes/main/database/wrapper/.htaccess svneol=native#text/plain
inc/classes/main/database/wrapper/class_NewsDatabaseWrapper.php svneol=native#text/plain
inc/classes/main/database/wrapper/class_PaymentsDatabaseWrapper.php svneol=native#text/plain
inc/classes/main/database/wrapper/class_UserDatabaseWrapper.php svneol=native#text/plain
inc/classes/main/database/wrapper/class_UserPointsDatabaseWrapper.php svneol=native#text/plain
-inc/classes/main/debug/.htaccess -text svneol=unset#text/plain
+inc/classes/main/debug/.htaccess svneol=native#text/plain
inc/classes/main/debug/class_DebugConsoleOutput.php svneol=native#text/plain
inc/classes/main/debug/class_DebugErrorLogOutput.php svneol=native#text/plain
inc/classes/main/debug/class_DebugWebOutput.php svneol=native#text/plain
-inc/classes/main/decorator/.htaccess -text svneol=unset#text/plain
+inc/classes/main/decorator/.htaccess svneol=native#text/plain
inc/classes/main/decorator/class_BaseDecorator.php svneol=native#text/plain
-inc/classes/main/decorator/template/.htaccess -text svneol=unset#text/plain
+inc/classes/main/decorator/template/.htaccess svneol=native#text/plain
inc/classes/main/decorator/template/class_XmlRewriterTemplateDecorator.php svneol=native#text/plain
-inc/classes/main/decorator/xml/.htaccess -text svneol=unset#text/plain
+inc/classes/main/decorator/xml/.htaccess svneol=native#text/plain
inc/classes/main/decorator/xml/class_XmlCompactorDecorator.php svneol=native#text/plain
-inc/classes/main/discovery/.htaccess -text svneol=unset#text/plain
+inc/classes/main/discovery/.htaccess svneol=native#text/plain
inc/classes/main/discovery/class_ svneol=native#text/plain
inc/classes/main/discovery/class_BaseDiscovery.php svneol=native#text/plain
-inc/classes/main/discovery/payment/.htaccess -text svneol=unset#text/plain
+inc/classes/main/discovery/payment/.htaccess svneol=native#text/plain
inc/classes/main/discovery/payment/class_LocalPaymentDiscovery.php svneol=native#text/plain
-inc/classes/main/factories/.htaccess -text svneol=unset#text/plain
-inc/classes/main/factories/cache/.htaccess -text svneol=unset#text/plain
+inc/classes/main/factories/.htaccess svneol=native#text/plain
+inc/classes/main/factories/cache/.htaccess svneol=native#text/plain
inc/classes/main/factories/cache/class_CacheFactory.php svneol=native#text/plain
inc/classes/main/factories/class_BaseFactory.php svneol=native#text/plain
-inc/classes/main/factories/database/.htaccess -text svneol=unset#text/plain
+inc/classes/main/factories/database/.htaccess svneol=native#text/plain
inc/classes/main/factories/database/class_DatabaseWrapperFactory.php svneol=native#text/plain
-inc/classes/main/factories/objects/.htaccess -text svneol=unset#text/plain
+inc/classes/main/factories/objects/.htaccess svneol=native#text/plain
inc/classes/main/factories/objects/class_ObjectFactory.php svneol=native#text/plain
-inc/classes/main/factories/registry/.htaccess -text svneol=unset#text/plain
+inc/classes/main/factories/registry/.htaccess svneol=native#text/plain
inc/classes/main/factories/registry/class_SocketRegistryFactory.php svneol=native#text/plain
-inc/classes/main/factories/web/.htaccess -text svneol=unset#text/plain
+inc/classes/main/factories/web/.htaccess svneol=native#text/plain
inc/classes/main/factories/web/class_WebNewsFactory.php svneol=native#text/plain
inc/classes/main/factories/xml/.htaccess svneol=native#text/plain
inc/classes/main/factories/xml/class_XmlTemplateEngineFactory.php svneol=native#text/plain
-inc/classes/main/filter/.htaccess -text svneol=unset#text/plain
-inc/classes/main/filter/auth/.htaccess -text svneol=unset#text/plain
+inc/classes/main/filter/.htaccess svneol=native#text/plain
+inc/classes/main/filter/auth/.htaccess svneol=native#text/plain
inc/classes/main/filter/auth/class_UserAuthFilter.php svneol=native#text/plain
-inc/classes/main/filter/change/.htaccess -text svneol=unset#text/plain
+inc/classes/main/filter/change/.htaccess svneol=native#text/plain
inc/classes/main/filter/change/class_EmailChangeFilter.php svneol=native#text/plain
inc/classes/main/filter/change/class_PasswordChangeFilter.php svneol=native#text/plain
-inc/classes/main/filter/checkboxes/.htaccess -text svneol=unset#text/plain
+inc/classes/main/filter/checkboxes/.htaccess svneol=native#text/plain
inc/classes/main/filter/checkboxes/class_RulesAcceptedFilter.php svneol=native#text/plain
inc/classes/main/filter/class_ svneol=native#text/plain
inc/classes/main/filter/class_BaseFilter.php svneol=native#text/plain
inc/classes/main/filter/class_BaseFilterDecorator.php svneol=native#text/plain
inc/classes/main/filter/class_FilterChain.php svneol=native#text/plain
-inc/classes/main/filter/crypto/.htaccess -text svneol=unset#text/plain
+inc/classes/main/filter/crypto/.htaccess svneol=native#text/plain
inc/classes/main/filter/crypto/class_CaptchaEncryptFilter.php svneol=native#text/plain
-inc/classes/main/filter/decorator/.htaccess -text svneol=unset#text/plain
-inc/classes/main/filter/guest/.htaccess -text svneol=unset#text/plain
+inc/classes/main/filter/decorator/.htaccess svneol=native#text/plain
+inc/classes/main/filter/guest/.htaccess svneol=native#text/plain
inc/classes/main/filter/guest/class_UserNameIsGuestFilter.php svneol=native#text/plain
-inc/classes/main/filter/news/.htaccess -text svneol=unset#text/plain
+inc/classes/main/filter/news/.htaccess svneol=native#text/plain
inc/classes/main/filter/news/class_NewsDownloadFilter.php svneol=native#text/plain
inc/classes/main/filter/news/class_NewsProcessFilter.php svneol=native#text/plain
-inc/classes/main/filter/null/.htaccess -text svneol=unset#text/plain
+inc/classes/main/filter/null/.htaccess svneol=native#text/plain
inc/classes/main/filter/null/class_NullFilter.php svneol=native#text/plain
-inc/classes/main/filter/payment/.htaccess -text svneol=unset#text/plain
+inc/classes/main/filter/payment/.htaccess svneol=native#text/plain
inc/classes/main/filter/payment/class_PaymentDiscoveryFilter.php svneol=native#text/plain
-inc/classes/main/filter/update/.htaccess -text svneol=unset#text/plain
+inc/classes/main/filter/update/.htaccess svneol=native#text/plain
inc/classes/main/filter/update/class_UserStatusConfimedUpdateFilter.php svneol=native#text/plain
inc/classes/main/filter/update/class_UserUpdateFilter.php svneol=native#text/plain
-inc/classes/main/filter/validator/.htaccess -text svneol=unset#text/plain
+inc/classes/main/filter/validator/.htaccess svneol=native#text/plain
inc/classes/main/filter/validator/class_EmailValidatorFilter.php svneol=native#text/plain
inc/classes/main/filter/validator/class_PasswordValidatorFilter.php svneol=native#text/plain
inc/classes/main/filter/validator/class_UserNameValidatorFilter.php svneol=native#text/plain
-inc/classes/main/filter/verifier/.htaccess -text svneol=unset#text/plain
+inc/classes/main/filter/verifier/.htaccess svneol=native#text/plain
inc/classes/main/filter/verifier/class_AccountPasswordVerifierFilter.php svneol=native#text/plain
inc/classes/main/filter/verifier/class_ConfirmCodeVerifierFilter.php svneol=native#text/plain
inc/classes/main/filter/verifier/class_GraphicalCodeCaptchaVerifierFilter.php svneol=native#text/plain
@@ -407,182 +401,176 @@ inc/classes/main/filter/verifier/class_UserGuestVerifierFilter.php svneol=native
inc/classes/main/filter/verifier/class_UserNameVerifierFilter.php svneol=native#text/plain
inc/classes/main/filter/verifier/class_UserStatusVerifierFilter.php svneol=native#text/plain
inc/classes/main/filter/verifier/class_UserUnconfirmedVerifierFilter.php svneol=native#text/plain
-inc/classes/main/helper/.htaccess -text svneol=unset#text/plain
-inc/classes/main/helper/captcha/.htaccess -text svneol=unset#text/plain
+inc/classes/main/helper/.htaccess svneol=native#text/plain
+inc/classes/main/helper/captcha/.htaccess svneol=native#text/plain
inc/classes/main/helper/captcha/class_ svneol=native#text/plain
inc/classes/main/helper/captcha/class_BaseCaptcha.php svneol=native#text/plain
-inc/classes/main/helper/captcha/images/.htaccess -text svneol=unset#text/plain
+inc/classes/main/helper/captcha/images/.htaccess svneol=native#text/plain
inc/classes/main/helper/captcha/images/class_ImageHelper.php svneol=native#text/plain
-inc/classes/main/helper/captcha/web/.htaccess -text svneol=unset#text/plain
+inc/classes/main/helper/captcha/web/.htaccess svneol=native#text/plain
inc/classes/main/helper/captcha/web/class_GraphicalCodeCaptcha.php svneol=native#text/plain
inc/classes/main/helper/class_ svneol=native#text/plain
inc/classes/main/helper/class_BaseHelper.php svneol=native#text/plain
-inc/classes/main/helper/login/.htaccess -text svneol=unset#text/plain
+inc/classes/main/helper/login/.htaccess svneol=native#text/plain
inc/classes/main/helper/login/class_BaseLoginHelper.php svneol=native#text/plain
-inc/classes/main/helper/web/.htaccess -text svneol=unset#text/plain
-inc/classes/main/helper/web/blocks/.htaccess -text svneol=unset#text/plain
+inc/classes/main/helper/web/.htaccess svneol=native#text/plain
+inc/classes/main/helper/web/blocks/.htaccess svneol=native#text/plain
inc/classes/main/helper/web/blocks/class_WebBlockHelper.php svneol=native#text/plain
inc/classes/main/helper/web/class_ svneol=native#text/plain
inc/classes/main/helper/web/class_BaseWebHelper.php svneol=native#text/plain
-inc/classes/main/helper/web/forms/.htaccess -text svneol=unset#text/plain
+inc/classes/main/helper/web/forms/.htaccess svneol=native#text/plain
inc/classes/main/helper/web/forms/class_WebFormHelper.php svneol=native#text/plain
-inc/classes/main/helper/web/links/.htaccess -text svneol=unset#text/plain
+inc/classes/main/helper/web/links/.htaccess svneol=native#text/plain
inc/classes/main/helper/web/links/class_WebLinkHelper.php svneol=native#text/plain
-inc/classes/main/images/.htaccess -text svneol=unset#text/plain
+inc/classes/main/images/.htaccess svneol=native#text/plain
inc/classes/main/images/class_ svneol=native#text/plain
inc/classes/main/images/class_BaseImage.php svneol=native#text/plain
-inc/classes/main/images/extended/.htaccess -text svneol=unset#text/plain
+inc/classes/main/images/extended/.htaccess svneol=native#text/plain
inc/classes/main/images/extended/class_PngImage.php svneol=native#text/plain
-inc/classes/main/io/.htaccess -text svneol=unset#text/plain
+inc/classes/main/io/.htaccess svneol=native#text/plain
inc/classes/main/io/class_FileIoStream.php svneol=native#text/plain
inc/classes/main/io/class_FrameworkDirectoryPointer.php svneol=native#text/plain
inc/classes/main/io/class_FrameworkFileInputPointer.php svneol=native#text/plain
inc/classes/main/io/class_FrameworkFileOutputPointer.php svneol=native#text/plain
-inc/classes/main/language/.htaccess -text svneol=unset#text/plain
+inc/classes/main/language/.htaccess svneol=native#text/plain
inc/classes/main/language/class_LanguageSystem.php svneol=native#text/plain
-inc/classes/main/mailer/.htaccess -text svneol=unset#text/plain
+inc/classes/main/mailer/.htaccess svneol=native#text/plain
inc/classes/main/mailer/class_ svneol=native#text/plain
inc/classes/main/mailer/class_BaseMailer.php svneol=native#text/plain
-inc/classes/main/mailer/debug/.htaccess -text svneol=unset#text/plain
+inc/classes/main/mailer/debug/.htaccess svneol=native#text/plain
inc/classes/main/mailer/debug/class_DebugMailer.php svneol=native#text/plain
-inc/classes/main/menu/.htaccess -text svneol=unset#text/plain
+inc/classes/main/menu/.htaccess svneol=native#text/plain
inc/classes/main/menu/class_BaseMenu.php svneol=native#text/plain
-inc/classes/main/output/.htaccess -text svneol=unset#text/plain
+inc/classes/main/output/.htaccess svneol=native#text/plain
inc/classes/main/output/class_ConsoleOutput.php svneol=native#text/plain
inc/classes/main/output/class_WebOutput.php svneol=native#text/plain
-inc/classes/main/parser/.htaccess -text svneol=unset#text/plain
+inc/classes/main/parser/.htaccess svneol=native#text/plain
inc/classes/main/parser/class_ svneol=native#text/plain
inc/classes/main/parser/class_BaseParser.php svneol=native#text/plain
-inc/classes/main/parser/xml/.htaccess -text svneol=unset#text/plain
+inc/classes/main/parser/xml/.htaccess svneol=native#text/plain
inc/classes/main/parser/xml/class_XmlParser.php svneol=native#text/plain
-inc/classes/main/points/.htaccess -text svneol=unset#text/plain
+inc/classes/main/points/.htaccess svneol=native#text/plain
inc/classes/main/points/class_UserPoints.php svneol=native#text/plain
-inc/classes/main/reader/.htaccess -text svneol=unset#text/plain
+inc/classes/main/reader/.htaccess svneol=native#text/plain
inc/classes/main/reader/class_ConsoleNewsReader.php svneol=native#text/plain
inc/classes/main/reader/class_DefaultNewsReader.php svneol=native#text/plain
-inc/classes/main/registration/.htaccess -text svneol=unset#text/plain
+inc/classes/main/registration/.htaccess svneol=native#text/plain
inc/classes/main/registration/class_BaseRegistration.php svneol=native#text/plain
-inc/classes/main/registry/.htaccess -text svneol=unset#text/plain
+inc/classes/main/registry/.htaccess svneol=native#text/plain
inc/classes/main/registry/class_ svneol=native#text/plain
inc/classes/main/registry/class_BaseRegistry.php svneol=native#text/plain
-inc/classes/main/registry/generic/.htaccess -text svneol=unset#text/plain
+inc/classes/main/registry/generic/.htaccess svneol=native#text/plain
inc/classes/main/registry/generic/class_Registry.php svneol=native#text/plain
-inc/classes/main/registry/sub/.htaccess -text svneol=unset#text/plain
+inc/classes/main/registry/sub/.htaccess svneol=native#text/plain
inc/classes/main/registry/sub/class_SubRegistry.php svneol=native#text/plain
-inc/classes/main/request/.htaccess -text svneol=unset#text/plain
+inc/classes/main/request/.htaccess svneol=native#text/plain
inc/classes/main/request/class_ svneol=native#text/plain
inc/classes/main/request/class_BaseRequest.php svneol=native#text/plain
-inc/classes/main/request/console/.htaccess -text svneol=unset#text/plain
+inc/classes/main/request/console/.htaccess svneol=native#text/plain
inc/classes/main/request/console/class_ConsoleRequest.php svneol=native#text/plain
-inc/classes/main/request/web/.htaccess -text svneol=unset#text/plain
+inc/classes/main/request/web/.htaccess svneol=native#text/plain
inc/classes/main/request/web/class_HttpRequest.php svneol=native#text/plain
-inc/classes/main/resolver/.htaccess -text svneol=unset#text/plain
-inc/classes/main/resolver/action/.htaccess -text svneol=unset#text/plain
+inc/classes/main/resolver/.htaccess svneol=native#text/plain
+inc/classes/main/resolver/action/.htaccess svneol=native#text/plain
inc/classes/main/resolver/action/class_BaseActionResolver.php svneol=native#text/plain
-inc/classes/main/resolver/action/web/.htaccess -text svneol=unset#text/plain
+inc/classes/main/resolver/action/web/.htaccess svneol=native#text/plain
inc/classes/main/resolver/action/web/class_WebActionResolver.php svneol=native#text/plain
inc/classes/main/resolver/class_BaseResolver.php svneol=native#text/plain
-inc/classes/main/resolver/command/.htaccess -text svneol=unset#text/plain
+inc/classes/main/resolver/command/.htaccess svneol=native#text/plain
inc/classes/main/resolver/command/class_BaseCommandResolver.php svneol=native#text/plain
-inc/classes/main/resolver/command/console/.htaccess -text svneol=unset#text/plain
+inc/classes/main/resolver/command/console/.htaccess svneol=native#text/plain
inc/classes/main/resolver/command/console/class_ConsoleCommandResolver.php svneol=native#text/plain
-inc/classes/main/resolver/command/image/.htaccess -text svneol=unset#text/plain
+inc/classes/main/resolver/command/image/.htaccess svneol=native#text/plain
inc/classes/main/resolver/command/image/class_ImageCommandResolver.php svneol=native#text/plain
-inc/classes/main/resolver/command/web/.htaccess -text svneol=unset#text/plain
+inc/classes/main/resolver/command/web/.htaccess svneol=native#text/plain
inc/classes/main/resolver/command/web/class_ svneol=native#text/plain
inc/classes/main/resolver/command/web/class_WebCommandResolver.php svneol=native#text/plain
-inc/classes/main/resolver/controller/.htaccess -text svneol=unset#text/plain
+inc/classes/main/resolver/controller/.htaccess svneol=native#text/plain
inc/classes/main/resolver/controller/class_BaseControllerResolver.php svneol=native#text/plain
-inc/classes/main/resolver/controller/console/.htaccess -text svneol=unset#text/plain
+inc/classes/main/resolver/controller/console/.htaccess svneol=native#text/plain
inc/classes/main/resolver/controller/console/class_ConsoleControllerResolver.php svneol=native#text/plain
-inc/classes/main/resolver/controller/image/.htaccess -text svneol=unset#text/plain
+inc/classes/main/resolver/controller/image/.htaccess svneol=native#text/plain
inc/classes/main/resolver/controller/image/class_ImageControllerResolver.php svneol=native#text/plain
-inc/classes/main/resolver/controller/web/.htaccess -text svneol=unset#text/plain
+inc/classes/main/resolver/controller/web/.htaccess svneol=native#text/plain
inc/classes/main/resolver/controller/web/class_WebControllerResolver.php svneol=native#text/plain
inc/classes/main/resolver/request/.htaccess svneol=native#text/plain
-inc/classes/main/response/.htaccess -text svneol=unset#text/plain
+inc/classes/main/response/.htaccess svneol=native#text/plain
inc/classes/main/response/class_BaseResponse.php svneol=native#text/plain
-inc/classes/main/response/console/.htaccess -text svneol=unset#text/plain
+inc/classes/main/response/console/.htaccess svneol=native#text/plain
inc/classes/main/response/console/class_ConsoleResponse.php svneol=native#text/plain
-inc/classes/main/response/http/.htaccess -text svneol=unset#text/plain
+inc/classes/main/response/http/.htaccess svneol=native#text/plain
inc/classes/main/response/http/class_HttpResponse.php svneol=native#text/plain
-inc/classes/main/response/image/.htaccess -text svneol=unset#text/plain
+inc/classes/main/response/image/.htaccess svneol=native#text/plain
inc/classes/main/response/image/class_ImageResponse.php svneol=native#text/plain
-inc/classes/main/result/.htaccess -text svneol=unset#text/plain
+inc/classes/main/result/.htaccess svneol=native#text/plain
inc/classes/main/result/class_DatabaseResult.php svneol=native#text/plain
-inc/classes/main/rng/.htaccess -text svneol=unset#text/plain
+inc/classes/main/rng/.htaccess svneol=native#text/plain
inc/classes/main/rng/class_RandomNumberGenerator.php svneol=native#text/plain
-inc/classes/main/stacker/.htaccess -text svneol=unset#text/plain
+inc/classes/main/stacker/.htaccess svneol=native#text/plain
inc/classes/main/stacker/class_ svneol=native#text/plain
inc/classes/main/stacker/class_BaseStacker.php svneol=native#text/plain
-inc/classes/main/stacker/fifo/.htaccess -text svneol=unset#text/plain
+inc/classes/main/stacker/fifo/.htaccess svneol=native#text/plain
inc/classes/main/stacker/fifo/class_FiFoStacker.php svneol=native#text/plain
-inc/classes/main/stacker/filo/.htaccess -text svneol=unset#text/plain
+inc/classes/main/stacker/filo/.htaccess svneol=native#text/plain
inc/classes/main/stacker/filo/class_FiLoStacker.php svneol=native#text/plain
-inc/classes/main/streams/.htaccess -text svneol=unset#text/plain
+inc/classes/main/streams/.htaccess svneol=native#text/plain
inc/classes/main/streams/class_ svneol=native#text/plain
inc/classes/main/streams/class_BaseStream.php svneol=native#text/plain
-inc/classes/main/streams/crypto/.htaccess -text svneol=unset#text/plain
+inc/classes/main/streams/crypto/.htaccess svneol=native#text/plain
inc/classes/main/streams/crypto/class_McryptStream.php svneol=native#text/plain
inc/classes/main/streams/crypto/class_NullCryptoStream.php svneol=native#text/plain
inc/classes/main/streams/input/.htaccess svneol=native#text/plain
inc/classes/main/streams/input/class_BaseInputStream.php svneol=native#text/plain
inc/classes/main/streams/output/.htaccess svneol=native#text/plain
inc/classes/main/streams/output/class_BaseOutputStream.php svneol=native#text/plain
-inc/classes/main/template/.htaccess -text svneol=unset#text/plain
+inc/classes/main/template/.htaccess svneol=native#text/plain
inc/classes/main/template/class_ svneol=native#text/plain
inc/classes/main/template/class_BaseTemplateEngine.php svneol=native#text/plain
-inc/classes/main/template/console/.htaccess -text svneol=unset#text/plain
+inc/classes/main/template/console/.htaccess svneol=native#text/plain
inc/classes/main/template/console/class_ConsoleTemplateEngine.php svneol=native#text/plain
-inc/classes/main/template/image/.htaccess -text svneol=unset#text/plain
+inc/classes/main/template/image/.htaccess svneol=native#text/plain
inc/classes/main/template/image/class_ImageTemplateEngine.php svneol=native#text/plain
-inc/classes/main/template/mail/.htaccess -text svneol=unset#text/plain
+inc/classes/main/template/mail/.htaccess svneol=native#text/plain
inc/classes/main/template/mail/class_MailTemplateEngine.php svneol=native#text/plain
-inc/classes/main/template/menu/.htaccess -text svneol=unset#text/plain
+inc/classes/main/template/menu/.htaccess svneol=native#text/plain
inc/classes/main/template/menu/class_MenuTemplateEngine.php svneol=native#text/plain
-inc/classes/main/template/web/.htaccess -text svneol=unset#text/plain
+inc/classes/main/template/web/.htaccess svneol=native#text/plain
inc/classes/main/template/web/class_WebTemplateEngine.php svneol=native#text/plain
-inc/classes/main/user/.htaccess -text svneol=unset#text/plain
+inc/classes/main/user/.htaccess svneol=native#text/plain
inc/classes/main/user/class_BaseUser.php svneol=native#text/plain
-inc/classes/main/user/guest/.htaccess -text svneol=unset#text/plain
+inc/classes/main/user/guest/.htaccess svneol=native#text/plain
inc/classes/main/user/guest/class_Guest.php svneol=native#text/plain
-inc/classes/main/user/member/.htaccess -text svneol=unset#text/plain
+inc/classes/main/user/member/.htaccess svneol=native#text/plain
inc/classes/main/user/member/class_Member.php svneol=native#text/plain
-inc/classes/middleware/.htaccess -text svneol=unset#text/plain
+inc/classes/middleware/.htaccess svneol=native#text/plain
inc/classes/middleware/class_BaseMiddleware.php svneol=native#text/plain
-inc/classes/middleware/compressor/.htaccess -text svneol=unset#text/plain
+inc/classes/middleware/compressor/.htaccess svneol=native#text/plain
inc/classes/middleware/compressor/class_CompressorChannel.php svneol=native#text/plain
-inc/classes/middleware/database/.htaccess -text svneol=unset#text/plain
+inc/classes/middleware/database/.htaccess svneol=native#text/plain
inc/classes/middleware/database/class_DatabaseConnection.php svneol=native#text/plain
-inc/classes/middleware/debug/.htaccess -text svneol=unset#text/plain
+inc/classes/middleware/debug/.htaccess svneol=native#text/plain
inc/classes/middleware/debug/class_DebugMiddleware.php svneol=native#text/plain
-inc/classes/middleware/io/.htaccess -text svneol=unset#text/plain
+inc/classes/middleware/io/.htaccess svneol=native#text/plain
inc/classes/middleware/io/class_FileIoHandler.php svneol=native#text/plain
-inc/classes/third_party/.htaccess -text svneol=unset#text/plain
-inc/classes/third_party/akismet/.htaccess -text svneol=unset#text/plain
-inc/classes/third_party/akismet/akismet.class.php -text svneol=unset#text/plain
-inc/classes/third_party/api/.htaccess -text svneol=unset#text/plain
-inc/classes/third_party/api/primusportal/.htaccess -text svneol=unset#text/plain
-inc/classes/third_party/api/primusportal/class_PrimeraApi.php -text svneol=unset#text/plain
-inc/classes/third_party/api/wernisportal/.htaccess -text svneol=unset#text/plain
-inc/classes/third_party/api/wernisportal/class_WernisApi.php -text svneol=unset#text/plain
-inc/classes/third_party/php_mailer/.htaccess -text svneol=unset#text/plain
-inc/classes/third_party/php_mailer/ChangeLog.txt -text svneol=unset#text/plain
-inc/classes/third_party/php_mailer/LICENSE -text
-inc/classes/third_party/php_mailer/README -text
-inc/classes/third_party/php_mailer/class.phpmailer.php -text svneol=unset#text/plain
-inc/classes/third_party/php_mailer/class.pop3.php -text svneol=unset#text/plain
-inc/classes/third_party/php_mailer/class.smtp.php -text svneol=unset#text/plain
-inc/classes/third_party/php_mailer/docs/extending.html -text
-inc/classes/third_party/php_mailer/docs/faq.html -text
+inc/classes/third_party/.htaccess svneol=native#text/plain
+inc/classes/third_party/akismet/.htaccess svneol=native#text/plain
+inc/classes/third_party/akismet/akismet.class.php svneol=native#text/plain
+inc/classes/third_party/api/.htaccess svneol=native#text/plain
+inc/classes/third_party/api/primusportal/.htaccess svneol=native#text/plain
+inc/classes/third_party/api/primusportal/class_PrimeraApi.php svneol=native#text/plain
+inc/classes/third_party/api/wernisportal/.htaccess svneol=native#text/plain
+inc/classes/third_party/api/wernisportal/class_WernisApi.php svneol=native#text/plain
+inc/classes/third_party/php_mailer/.htaccess svneol=native#text/plain
+inc/classes/third_party/php_mailer/ChangeLog.txt svneol=native#text/plain
+inc/classes/third_party/php_mailer/class.phpmailer.php svneol=native#text/plain
+inc/classes/third_party/php_mailer/class.pop3.php svneol=native#text/plain
+inc/classes/third_party/php_mailer/class.smtp.php svneol=native#text/plain
inc/classes/third_party/php_mailer/docs/pop3_article.txt svneol=native#text/plain
inc/classes/third_party/php_mailer/docs/use_gmail.txt svneol=native#text/plain
-inc/classes/third_party/php_mailer/examples/contents.html -text
inc/classes/third_party/php_mailer/examples/images/bkgrnd.gif -text svneol=unset#image/gif
inc/classes/third_party/php_mailer/examples/images/phpmailer.gif -text svneol=unset#image/gif
inc/classes/third_party/php_mailer/examples/images/phpmailer.png -text svneol=unset#image/png
inc/classes/third_party/php_mailer/examples/images/phpmailer_mini.gif -text svneol=unset#image/gif
-inc/classes/third_party/php_mailer/examples/index.html -text
inc/classes/third_party/php_mailer/examples/pop3_before_smtp_test.php svneol=native#text/plain
inc/classes/third_party/php_mailer/examples/test_gmail.php svneol=native#text/plain
inc/classes/third_party/php_mailer/examples/test_mail.php svneol=native#text/plain
@@ -602,49 +590,44 @@ inc/classes/third_party/php_mailer/language/phpmailer.lang-fo.php svneol=native#
inc/classes/third_party/php_mailer/language/phpmailer.lang-fr.php svneol=native#text/plain
inc/classes/third_party/php_mailer/language/phpmailer.lang-hu.php svneol=native#text/plain
inc/classes/third_party/php_mailer/language/phpmailer.lang-it.php svneol=native#text/plain
-inc/classes/third_party/php_mailer/language/phpmailer.lang-ja.php -text svneol=unset#text/plain
-inc/classes/third_party/php_mailer/language/phpmailer.lang-nl.php -text svneol=unset#text/plain
-inc/classes/third_party/php_mailer/language/phpmailer.lang-no.php -text svneol=unset#text/plain
-inc/classes/third_party/php_mailer/language/phpmailer.lang-pl.php -text svneol=unset#text/plain
-inc/classes/third_party/php_mailer/language/phpmailer.lang-ro.php -text svneol=unset#text/plain
-inc/classes/third_party/php_mailer/language/phpmailer.lang-ru.php -text svneol=unset#text/plain
-inc/classes/third_party/php_mailer/language/phpmailer.lang-se.php -text svneol=unset#text/plain
-inc/classes/third_party/php_mailer/language/phpmailer.lang-tr.php -text svneol=unset#text/plain
-inc/classes/third_party/php_mailer/test/phpmailer_test.php -text svneol=unset#text/plain
-inc/classes/third_party/php_mailer/test/phpunit.php -text svneol=unset#text/plain
+inc/classes/third_party/php_mailer/language/phpmailer.lang-ja.php svneol=native#text/plain
+inc/classes/third_party/php_mailer/language/phpmailer.lang-nl.php svneol=native#text/plain
+inc/classes/third_party/php_mailer/language/phpmailer.lang-no.php svneol=native#text/plain
+inc/classes/third_party/php_mailer/language/phpmailer.lang-pl.php svneol=native#text/plain
+inc/classes/third_party/php_mailer/language/phpmailer.lang-ro.php svneol=native#text/plain
+inc/classes/third_party/php_mailer/language/phpmailer.lang-ru.php svneol=native#text/plain
+inc/classes/third_party/php_mailer/language/phpmailer.lang-se.php svneol=native#text/plain
+inc/classes/third_party/php_mailer/language/phpmailer.lang-tr.php svneol=native#text/plain
+inc/classes/third_party/php_mailer/test/phpmailer_test.php svneol=native#text/plain
+inc/classes/third_party/php_mailer/test/phpunit.php svneol=native#text/plain
inc/classes/third_party/php_mailer/test/test.png -text svneol=unset#image/png
inc/config.php svneol=native#text/plain
-inc/config/.htaccess -text svneol=unset#text/plain
+inc/config/.htaccess svneol=native#text/plain
inc/config/class_FrameworkConfiguration.php svneol=native#text/plain
inc/config/config-hubmaster.php svneol=native#text/plain
inc/database.php svneol=native#text/plain
-inc/database/.htaccess -text svneol=unset#text/plain
+inc/database/.htaccess svneol=native#text/plain
inc/database/lib-local.php svneol=native#text/plain
inc/file_io.php svneol=native#text/plain
inc/hooks.php svneol=native#text/plain
inc/includes.php svneol=native#text/plain
inc/language.php svneol=native#text/plain
-inc/language/.htaccess -text svneol=unset#text/plain
-inc/loader/.htaccess -text svneol=unset#text/plain
+inc/language/.htaccess svneol=native#text/plain
+inc/loader/.htaccess svneol=native#text/plain
inc/loader/class_ClassLoader.php svneol=native#text/plain
inc/output.php svneol=native#text/plain
inc/selector.php svneol=native#text/plain
-/setup-repos.sh -text
/svn-externals.txt svneol=native#text/plain
-templates/.htaccess -text svneol=unset#text/plain
-templates/README.1st -text
-templates/_compiled/.htaccess -text svneol=unset#text/plain
-templates/images/.htaccess -text svneol=unset#text/plain
-templates/images/_cache/.htaccess -text svneol=unset#text/plain
-templates/menus/.htaccess -text svneol=unset#text/plain
-templates/menus/_cache/.htaccess -text svneol=unset#text/plain
+templates/.htaccess svneol=native#text/plain
+templates/_compiled/.htaccess svneol=native#text/plain
+templates/images/.htaccess svneol=native#text/plain
+templates/images/_cache/.htaccess svneol=native#text/plain
+templates/menus/.htaccess svneol=native#text/plain
+templates/menus/_cache/.htaccess svneol=native#text/plain
tests/ConfigTest.php svneol=native#text/plain
tests/RegistryTest.php svneol=native#text/plain
tests/RequestTest.php svneol=native#text/plain
tests/Test.php svneol=native#text/plain
-tests/all-tests.sh -text
tests/old/contract-test.php svneol=native#text/plain
tests/old/loader-test.php svneol=native#text/plain
tests/old/personell-test.php svneol=native#text/plain
-tests/unittest.sh -text
-/todo-builder.sh -text
diff --git a/inc/classes/third_party/php_mailer/ChangeLog.txt b/inc/classes/third_party/php_mailer/ChangeLog.txt
index 9533ccd9..5de251ee 100644
--- a/inc/classes/third_party/php_mailer/ChangeLog.txt
+++ b/inc/classes/third_party/php_mailer/ChangeLog.txt
@@ -1,330 +1,330 @@
-ChangeLog
-
-NOTE: THIS VERSION OF PHPMAILER IS DESIGNED FOR PHP5/PHP6. IT WILL NOT WORK WITH PHP4.
-
-Version 2.3 (November 06, 2008)
-
-* added Arabic language (many thanks to Bahjat Al Mostafa)
-* removed English language from language files and made it a default within
- class.phpmailer.php - if no language is found, it will default to use
- the english language translation
-* fixed public/private declarations
-* corrected line 1728, $basedir to $directory
-* added $sign_cert_file to avoid improper duplicate use of $sign_key_file
-* corrected $this->Hello on line 612 to $this->Helo
-* changed default of $LE to "\r\n" to comply with RFC 2822. Can be set by the user
- if default is not acceptable
-* removed trim() from return results in EncodeQP
-* /test and three files it contained are removed from version 2.3
-* fixed phpunit.php for compliance with PHP5
-* changed $this->AltBody = $textMsg; to $this->AltBody = html_entity_decode($textMsg);
-* We have removed the /phpdoc from the downloads. All documentation is now on
- the http://phpmailer.codeworxtech.com website.
-
-Version 2.2.1 () July 19 2008
-
-* fixed line 1092 in class.smtp.php (my apologies, error on my part)
-
-Version 2.2 () July 15 2008
-
-* Fixed redirect issue (display of UTF-8 in thank you redirect)
-* fixed error in getResponse function declaration (class.pop3.php)
-* PHPMailer now PHP6 compliant
-* fixed line 1092 in class.smtp.php (endless loop from missing = sign)
-
-Version 2.1 (Wed, June 04 2008)
-
-** NOTE: WE HAVE A NEW LANGUAGE VARIABLE FOR DIGITALLY SIGNED S/MIME EMAILS.
- IF YOU CAN HELP WITH LANGUAGES OTHER THAN ENGLISH AND SPANISH, IT WOULD BE
- APPRECIATED.
-
-* added S/MIME functionality (ability to digitally sign emails)
- BIG THANKS TO "sergiocambra" for posting this patch back in November 2007.
- The "Signed Emails" functionality adds the Sign method to pass the private key
- filename and the password to read it, and then email will be sent with
- content-type multipart/signed and with the digital signature attached.
-* fully compatible with E_STRICT error level
- - Please note:
- In about half the test environments this development version was subjected
- to, an error was thrown for the date() functions used (line 1565 and 1569).
- This is NOT a PHPMailer error, it is the result of an incorrectly configured
- PHP5 installation. The fix is to modify your 'php.ini' file and include the
- date.timezone = America/New York
- directive, to your own server timezone
- - If you do get this error, and are unable to access your php.ini file:
- In your PHP script, add
- date_default_timezone_set('America/Toronto');
- - do not try to use
- $myVar = date_default_timezone_get();
- as a test, it will throw an error.
-* added ability to define path (mainly for embedded images)
- function MsgHTML($message,$basedir='') ... where:
- $basedir is the fully qualified path
-* fixed MsgHTML() function:
- - Embedded Images where images are specified by :// will not be altered or embedded
-* fixed the return value of SMTP exit code ( pclose )
-* addressed issue of multibyte characters in subject line and truncating
-* added ability to have user specified Message ID
- (default is still that PHPMailer create a unique Message ID)
-* corrected unidentified message type to 'application/octet-stream'
-* fixed chunk_split() multibyte issue (thanks to Colin Brown, et al).
-* added check for added attachments
-* enhanced conversion of HTML to text in MsgHTML (thanks to "brunny")
-
-Version 2.1.0beta2 (Sun, Dec 02 2007)
-* implemented updated EncodeQP (thanks to coolbru, aka Marcus Bointon)
-* finished all testing, all known bugs corrected, enhancements tested
-- note: will NOT work with PHP4.
-
-please note, this is BETA software
-** DO NOT USE THIS IN PRODUCTION OR LIVE PROJECTS
-INTENDED STRICTLY FOR TESTING
-
-Version 2.1.0beta1
-please note, this is BETA software
-** DO NOT USE THIS IN PRODUCTION OR LIVE PROJECTS
-INTENDED STRICTLY FOR TESTING
-
-Version 2.0.0 rc2 (Fri, Nov 16 2007), interim release
-* implements new property to control VERP in class.smtp.php
- example (requires instantiating class.smtp.php):
- $mail->do_verp = true;
-* POP-before-SMTP functionality included, thanks to Richard Davey
- (see class.pop3.php & pop3_before_smtp_test.php for examples)
-* included example showing how to use PHPMailer with GMAIL
-* fixed the missing Cc in SendMail() and Mail()
-
-******************
-A note on sending bulk emails:
-
-If the email you are sending is not personalized, consider using the
-"undisclosed-recipient:;" strategy. That is, put all of your recipients
-in the Bcc field and set the To field to "undisclosed-recipients:;".
-It's a lot faster (only one send) and saves quite a bit on resources.
-Contrary to some opinions, this will not get you listed in spam engines -
-it's a legitimate way for you to send emails.
-
-A partial example for use with PHPMailer:
-
-$mail->AddAddress("undisclosed-recipients:;");
-$mail->AddBCC("email1@anydomain.com,email2@anyotherdomain.com,email3@anyalternatedomain.com");
-
-Many email service providers restrict the number of emails that can be sent
-in any given time period. Often that is between 50 - 60 emails maximum
-per hour or per send session.
-
-If that's the case, then break up your Bcc lists into chunks that are one
-less than your limit, and put a pause in your script.
-*******************
-
-Version 2.0.0 rc1 (Thu, Nov 08 2007), interim release
-* dramatically simplified using inline graphics ... it's fully automated and requires no user input
-* added automatic document type detection for attachments and pictures
-* added MsgHTML() function to replace Body tag for HTML emails
-* fixed the SendMail security issues (input validation vulnerability)
-* enhanced the AddAddresses functionality so that the "Name" portion is used in the email address
-* removed the need to use the AltBody method (set from the HTML, or default text used)
-* set the PHP Mail() function as the default (still support SendMail, SMTP Mail)
-* removed the need to set the IsHTML property (set automatically)
-* added Estonian language file by Indrek Päri
-* added header injection patch
-* added "set" method to permit users to create their own pseudo-properties like 'X-Headers', etc.
- example of use:
- $mail->set('X-Priority', '3');
- $mail->set('X-MSMail-Priority', 'Normal');
-* fixed warning message in SMTP get_lines method
-* added TLS/SSL SMTP support
- example of use:
- $mail = new PHPMailer();
- $mail->Mailer = "smtp";
- $mail->Host = "smtp.example.com";
- $mail->SMTPSecure = "tls"; // option
- //$mail->SMTPSecure = "ssl"; // option
- ...
- $mail->Send();
-* PHPMailer has been tested with PHP4 (4.4.7) and PHP5 (5.2.7)
-* Works with PHP installed as a module or as CGI-PHP
-- NOTE: will NOT work with PHP5 in E_STRICT error mode
-
-Version 1.73 (Sun, Jun 10 2005)
-* Fixed denial of service bug: http://www.cybsec.com/vuln/PHPMailer-DOS.pdf
-* Now has a total of 20 translations
-* Fixed alt attachments bug: http://tinyurl.com/98u9k
-
-Version 1.72 (Wed, May 25 2004)
-* Added Dutch, Swedish, Czech, Norwegian, and Turkish translations.
-* Received: Removed this method because spam filter programs like
-SpamAssassin reject this header.
-* Fixed error count bug.
-* SetLanguage default is now "language/".
-* Fixed magic_quotes_runtime bug.
-
-Version 1.71 (Tue, Jul 28 2003)
-* Made several speed enhancements
-* Added German and Italian translation files
-* Fixed HELO/AUTH bugs on keep-alive connects
-* Now provides an error message if language file does not load
-* Fixed attachment EOL bug
-* Updated some unclear documentation
-* Added additional tests and improved others
-
-Version 1.70 (Mon, Jun 20 2003)
-* Added SMTP keep-alive support
-* Added IsError method for error detection
-* Added error message translation support (SetLanguage)
-* Refactored many methods to increase library performance
-* Hello now sends the newer EHLO message before HELO as per RFC 2821
-* Removed the boundary class and replaced it with GetBoundary
-* Removed queue support methods
-* New $Hostname variable
-* New Message-ID header
-* Received header reformat
-* Helo variable default changed to $Hostname
-* Removed extra spaces in Content-Type definition (#667182)
-* Return-Path should be set to Sender when set
-* Adds Q or B encoding to headers when necessary
-* quoted-encoding should now encode NULs \000
-* Fixed encoding of body/AltBody (#553370)
-* Adds "To: undisclosed-recipients:;" when all recipients are hidden (BCC)
-* Multiple bug fixes
-
-Version 1.65 (Fri, Aug 09 2002)
-* Fixed non-visible attachment bug (#585097) for Outlook
-* SMTP connections are now closed after each transaction
-* Fixed SMTP::Expand return value
-* Converted SMTP class documentation to phpDocumentor format
-
-Version 1.62 (Wed, Jun 26 2002)
-* Fixed multi-attach bug
-* Set proper word wrapping
-* Reduced memory use with attachments
-* Added more debugging
-* Changed documentation to phpDocumentor format
-
-Version 1.60 (Sat, Mar 30 2002)
-* Sendmail pipe and address patch (Christian Holtje)
-* Added embedded image and read confirmation support (A. Ognio)
-* Added unit tests
-* Added SMTP timeout support (*nix only)
-* Added possibly temporary PluginDir variable for SMTP class
-* Added LE message line ending variable
-* Refactored boundary and attachment code
-* Eliminated SMTP class warnings
-* Added SendToQueue method for future queuing support
-
-Version 1.54 (Wed, Dec 19 2001)
-* Add some queuing support code
-* Fixed a pesky multi/alt bug
-* Messages are no longer forced to have "To" addresses
-
-Version 1.50 (Thu, Nov 08 2001)
-* Fix extra lines when not using SMTP mailer
-* Set WordWrap variable to int with a zero default
-
-Version 1.47 (Tue, Oct 16 2001)
-* Fixed Received header code format
-* Fixed AltBody order error
-* Fixed alternate port warning
-
-Version 1.45 (Tue, Sep 25 2001)
-* Added enhanced SMTP debug support
-* Added support for multiple ports on SMTP
-* Added Received header for tracing
-* Fixed AddStringAttachment encoding
-* Fixed possible header name quote bug
-* Fixed wordwrap() trim bug
-* Couple other small bug fixes
-
-Version 1.41 (Wed, Aug 22 2001)
-* Fixed AltBody bug w/o attachments
-* Fixed rfc_date() for certain mail servers
-
-Version 1.40 (Sun, Aug 12 2001)
-* Added multipart/alternative support (AltBody)
-* Documentation update
-* Fixed bug in Mercury MTA
-
-Version 1.29 (Fri, Aug 03 2001)
-* Added AddStringAttachment() method
-* Added SMTP authentication support
-
-Version 1.28 (Mon, Jul 30 2001)
-* Fixed a typo in SMTP class
-* Fixed header issue with Imail (win32) SMTP server
-* Made fopen() calls for attachments use "rb" to fix win32 error
-
-Version 1.25 (Mon, Jul 02 2001)
-* Added RFC 822 date fix (Patrice)
-* Added improved error handling by adding a $ErrorInfo variable
-* Removed MailerDebug variable (obsolete with new error handler)
-
-Version 1.20 (Mon, Jun 25 2001)
-* Added quoted-printable encoding (Patrice)
-* Set Version as public and removed PrintVersion()
-* Changed phpdoc to only display public variables and methods
-
-Version 1.19 (Thu, Jun 21 2001)
-* Fixed MS Mail header bug
-* Added fix for Bcc problem with mail(). *Does not work on Win32*
- (See PHP bug report: http://www.php.net/bugs.php?id=11616)
-* mail() no longer passes a fifth parameter when not needed
-
-Version 1.15 (Fri, Jun 15 2001)
-[Note: these changes contributed by Patrice Fournier]
-* Changed all remaining \n to \r\n
-* Bcc: header no longer writen to message except
-when sent directly to sendmail
-* Added a small message to non-MIME compliant mail reader
-* Added Sender variable to change the Sender email
-used in -f for sendmail/mail and in 'MAIL FROM' for smtp mode
-* Changed boundary setting to a place it will be set only once
-* Removed transfer encoding for whole message when using multipart
-* Message body now uses Encoding in multipart messages
-* Can set encoding and type to attachments 7bit, 8bit
-and binary attachment are sent as is, base64 are encoded
-* Can set Encoding to base64 to send 8 bits body
-through 7 bits servers
-
-Version 1.10 (Tue, Jun 12 2001)
-* Fixed win32 mail header bug (printed out headers in message body)
-
-Version 1.09 (Fri, Jun 08 2001)
-* Changed date header to work with Netscape mail programs
-* Altered phpdoc documentation
-
-Version 1.08 (Tue, Jun 05 2001)
-* Added enhanced error-checking
-* Added phpdoc documentation to source
-
-Version 1.06 (Fri, Jun 01 2001)
-* Added optional name for file attachments
-
-Version 1.05 (Tue, May 29 2001)
-* Code cleanup
-* Eliminated sendmail header warning message
-* Fixed possible SMTP error
-
-Version 1.03 (Thu, May 24 2001)
-* Fixed problem where qmail sends out duplicate messages
-
-Version 1.02 (Wed, May 23 2001)
-* Added multiple recipient and attachment Clear* methods
-* Added Sendmail public variable
-* Fixed problem with loading SMTP library multiple times
-
-Version 0.98 (Tue, May 22 2001)
-* Fixed problem with redundant mail hosts sending out multiple messages
-* Added additional error handler code
-* Added AddCustomHeader() function
-* Added support for Microsoft mail client headers (affects priority)
-* Fixed small bug with Mailer variable
-* Added PrintVersion() function
-
-Version 0.92 (Tue, May 15 2001)
-* Changed file names to class.phpmailer.php and class.smtp.php to match
- current PHP class trend.
-* Fixed problem where body not being printed when a message is attached
-* Several small bug fixes
-
-Version 0.90 (Tue, April 17 2001)
-* Intial public release
+ChangeLog
+
+NOTE: THIS VERSION OF PHPMAILER IS DESIGNED FOR PHP5/PHP6. IT WILL NOT WORK WITH PHP4.
+
+Version 2.3 (November 06, 2008)
+
+* added Arabic language (many thanks to Bahjat Al Mostafa)
+* removed English language from language files and made it a default within
+ class.phpmailer.php - if no language is found, it will default to use
+ the english language translation
+* fixed public/private declarations
+* corrected line 1728, $basedir to $directory
+* added $sign_cert_file to avoid improper duplicate use of $sign_key_file
+* corrected $this->Hello on line 612 to $this->Helo
+* changed default of $LE to "\r\n" to comply with RFC 2822. Can be set by the user
+ if default is not acceptable
+* removed trim() from return results in EncodeQP
+* /test and three files it contained are removed from version 2.3
+* fixed phpunit.php for compliance with PHP5
+* changed $this->AltBody = $textMsg; to $this->AltBody = html_entity_decode($textMsg);
+* We have removed the /phpdoc from the downloads. All documentation is now on
+ the http://phpmailer.codeworxtech.com website.
+
+Version 2.2.1 () July 19 2008
+
+* fixed line 1092 in class.smtp.php (my apologies, error on my part)
+
+Version 2.2 () July 15 2008
+
+* Fixed redirect issue (display of UTF-8 in thank you redirect)
+* fixed error in getResponse function declaration (class.pop3.php)
+* PHPMailer now PHP6 compliant
+* fixed line 1092 in class.smtp.php (endless loop from missing = sign)
+
+Version 2.1 (Wed, June 04 2008)
+
+** NOTE: WE HAVE A NEW LANGUAGE VARIABLE FOR DIGITALLY SIGNED S/MIME EMAILS.
+ IF YOU CAN HELP WITH LANGUAGES OTHER THAN ENGLISH AND SPANISH, IT WOULD BE
+ APPRECIATED.
+
+* added S/MIME functionality (ability to digitally sign emails)
+ BIG THANKS TO "sergiocambra" for posting this patch back in November 2007.
+ The "Signed Emails" functionality adds the Sign method to pass the private key
+ filename and the password to read it, and then email will be sent with
+ content-type multipart/signed and with the digital signature attached.
+* fully compatible with E_STRICT error level
+ - Please note:
+ In about half the test environments this development version was subjected
+ to, an error was thrown for the date() functions used (line 1565 and 1569).
+ This is NOT a PHPMailer error, it is the result of an incorrectly configured
+ PHP5 installation. The fix is to modify your 'php.ini' file and include the
+ date.timezone = America/New York
+ directive, to your own server timezone
+ - If you do get this error, and are unable to access your php.ini file:
+ In your PHP script, add
+ date_default_timezone_set('America/Toronto');
+ - do not try to use
+ $myVar = date_default_timezone_get();
+ as a test, it will throw an error.
+* added ability to define path (mainly for embedded images)
+ function MsgHTML($message,$basedir='') ... where:
+ $basedir is the fully qualified path
+* fixed MsgHTML() function:
+ - Embedded Images where images are specified by :// will not be altered or embedded
+* fixed the return value of SMTP exit code ( pclose )
+* addressed issue of multibyte characters in subject line and truncating
+* added ability to have user specified Message ID
+ (default is still that PHPMailer create a unique Message ID)
+* corrected unidentified message type to 'application/octet-stream'
+* fixed chunk_split() multibyte issue (thanks to Colin Brown, et al).
+* added check for added attachments
+* enhanced conversion of HTML to text in MsgHTML (thanks to "brunny")
+
+Version 2.1.0beta2 (Sun, Dec 02 2007)
+* implemented updated EncodeQP (thanks to coolbru, aka Marcus Bointon)
+* finished all testing, all known bugs corrected, enhancements tested
+- note: will NOT work with PHP4.
+
+please note, this is BETA software
+** DO NOT USE THIS IN PRODUCTION OR LIVE PROJECTS
+INTENDED STRICTLY FOR TESTING
+
+Version 2.1.0beta1
+please note, this is BETA software
+** DO NOT USE THIS IN PRODUCTION OR LIVE PROJECTS
+INTENDED STRICTLY FOR TESTING
+
+Version 2.0.0 rc2 (Fri, Nov 16 2007), interim release
+* implements new property to control VERP in class.smtp.php
+ example (requires instantiating class.smtp.php):
+ $mail->do_verp = true;
+* POP-before-SMTP functionality included, thanks to Richard Davey
+ (see class.pop3.php & pop3_before_smtp_test.php for examples)
+* included example showing how to use PHPMailer with GMAIL
+* fixed the missing Cc in SendMail() and Mail()
+
+******************
+A note on sending bulk emails:
+
+If the email you are sending is not personalized, consider using the
+"undisclosed-recipient:;" strategy. That is, put all of your recipients
+in the Bcc field and set the To field to "undisclosed-recipients:;".
+It's a lot faster (only one send) and saves quite a bit on resources.
+Contrary to some opinions, this will not get you listed in spam engines -
+it's a legitimate way for you to send emails.
+
+A partial example for use with PHPMailer:
+
+$mail->AddAddress("undisclosed-recipients:;");
+$mail->AddBCC("email1@anydomain.com,email2@anyotherdomain.com,email3@anyalternatedomain.com");
+
+Many email service providers restrict the number of emails that can be sent
+in any given time period. Often that is between 50 - 60 emails maximum
+per hour or per send session.
+
+If that's the case, then break up your Bcc lists into chunks that are one
+less than your limit, and put a pause in your script.
+*******************
+
+Version 2.0.0 rc1 (Thu, Nov 08 2007), interim release
+* dramatically simplified using inline graphics ... it's fully automated and requires no user input
+* added automatic document type detection for attachments and pictures
+* added MsgHTML() function to replace Body tag for HTML emails
+* fixed the SendMail security issues (input validation vulnerability)
+* enhanced the AddAddresses functionality so that the "Name" portion is used in the email address
+* removed the need to use the AltBody method (set from the HTML, or default text used)
+* set the PHP Mail() function as the default (still support SendMail, SMTP Mail)
+* removed the need to set the IsHTML property (set automatically)
+* added Estonian language file by Indrek Päri
+* added header injection patch
+* added "set" method to permit users to create their own pseudo-properties like 'X-Headers', etc.
+ example of use:
+ $mail->set('X-Priority', '3');
+ $mail->set('X-MSMail-Priority', 'Normal');
+* fixed warning message in SMTP get_lines method
+* added TLS/SSL SMTP support
+ example of use:
+ $mail = new PHPMailer();
+ $mail->Mailer = "smtp";
+ $mail->Host = "smtp.example.com";
+ $mail->SMTPSecure = "tls"; // option
+ //$mail->SMTPSecure = "ssl"; // option
+ ...
+ $mail->Send();
+* PHPMailer has been tested with PHP4 (4.4.7) and PHP5 (5.2.7)
+* Works with PHP installed as a module or as CGI-PHP
+- NOTE: will NOT work with PHP5 in E_STRICT error mode
+
+Version 1.73 (Sun, Jun 10 2005)
+* Fixed denial of service bug: http://www.cybsec.com/vuln/PHPMailer-DOS.pdf
+* Now has a total of 20 translations
+* Fixed alt attachments bug: http://tinyurl.com/98u9k
+
+Version 1.72 (Wed, May 25 2004)
+* Added Dutch, Swedish, Czech, Norwegian, and Turkish translations.
+* Received: Removed this method because spam filter programs like
+SpamAssassin reject this header.
+* Fixed error count bug.
+* SetLanguage default is now "language/".
+* Fixed magic_quotes_runtime bug.
+
+Version 1.71 (Tue, Jul 28 2003)
+* Made several speed enhancements
+* Added German and Italian translation files
+* Fixed HELO/AUTH bugs on keep-alive connects
+* Now provides an error message if language file does not load
+* Fixed attachment EOL bug
+* Updated some unclear documentation
+* Added additional tests and improved others
+
+Version 1.70 (Mon, Jun 20 2003)
+* Added SMTP keep-alive support
+* Added IsError method for error detection
+* Added error message translation support (SetLanguage)
+* Refactored many methods to increase library performance
+* Hello now sends the newer EHLO message before HELO as per RFC 2821
+* Removed the boundary class and replaced it with GetBoundary
+* Removed queue support methods
+* New $Hostname variable
+* New Message-ID header
+* Received header reformat
+* Helo variable default changed to $Hostname
+* Removed extra spaces in Content-Type definition (#667182)
+* Return-Path should be set to Sender when set
+* Adds Q or B encoding to headers when necessary
+* quoted-encoding should now encode NULs \000
+* Fixed encoding of body/AltBody (#553370)
+* Adds "To: undisclosed-recipients:;" when all recipients are hidden (BCC)
+* Multiple bug fixes
+
+Version 1.65 (Fri, Aug 09 2002)
+* Fixed non-visible attachment bug (#585097) for Outlook
+* SMTP connections are now closed after each transaction
+* Fixed SMTP::Expand return value
+* Converted SMTP class documentation to phpDocumentor format
+
+Version 1.62 (Wed, Jun 26 2002)
+* Fixed multi-attach bug
+* Set proper word wrapping
+* Reduced memory use with attachments
+* Added more debugging
+* Changed documentation to phpDocumentor format
+
+Version 1.60 (Sat, Mar 30 2002)
+* Sendmail pipe and address patch (Christian Holtje)
+* Added embedded image and read confirmation support (A. Ognio)
+* Added unit tests
+* Added SMTP timeout support (*nix only)
+* Added possibly temporary PluginDir variable for SMTP class
+* Added LE message line ending variable
+* Refactored boundary and attachment code
+* Eliminated SMTP class warnings
+* Added SendToQueue method for future queuing support
+
+Version 1.54 (Wed, Dec 19 2001)
+* Add some queuing support code
+* Fixed a pesky multi/alt bug
+* Messages are no longer forced to have "To" addresses
+
+Version 1.50 (Thu, Nov 08 2001)
+* Fix extra lines when not using SMTP mailer
+* Set WordWrap variable to int with a zero default
+
+Version 1.47 (Tue, Oct 16 2001)
+* Fixed Received header code format
+* Fixed AltBody order error
+* Fixed alternate port warning
+
+Version 1.45 (Tue, Sep 25 2001)
+* Added enhanced SMTP debug support
+* Added support for multiple ports on SMTP
+* Added Received header for tracing
+* Fixed AddStringAttachment encoding
+* Fixed possible header name quote bug
+* Fixed wordwrap() trim bug
+* Couple other small bug fixes
+
+Version 1.41 (Wed, Aug 22 2001)
+* Fixed AltBody bug w/o attachments
+* Fixed rfc_date() for certain mail servers
+
+Version 1.40 (Sun, Aug 12 2001)
+* Added multipart/alternative support (AltBody)
+* Documentation update
+* Fixed bug in Mercury MTA
+
+Version 1.29 (Fri, Aug 03 2001)
+* Added AddStringAttachment() method
+* Added SMTP authentication support
+
+Version 1.28 (Mon, Jul 30 2001)
+* Fixed a typo in SMTP class
+* Fixed header issue with Imail (win32) SMTP server
+* Made fopen() calls for attachments use "rb" to fix win32 error
+
+Version 1.25 (Mon, Jul 02 2001)
+* Added RFC 822 date fix (Patrice)
+* Added improved error handling by adding a $ErrorInfo variable
+* Removed MailerDebug variable (obsolete with new error handler)
+
+Version 1.20 (Mon, Jun 25 2001)
+* Added quoted-printable encoding (Patrice)
+* Set Version as public and removed PrintVersion()
+* Changed phpdoc to only display public variables and methods
+
+Version 1.19 (Thu, Jun 21 2001)
+* Fixed MS Mail header bug
+* Added fix for Bcc problem with mail(). *Does not work on Win32*
+ (See PHP bug report: http://www.php.net/bugs.php?id=11616)
+* mail() no longer passes a fifth parameter when not needed
+
+Version 1.15 (Fri, Jun 15 2001)
+[Note: these changes contributed by Patrice Fournier]
+* Changed all remaining \n to \r\n
+* Bcc: header no longer writen to message except
+when sent directly to sendmail
+* Added a small message to non-MIME compliant mail reader
+* Added Sender variable to change the Sender email
+used in -f for sendmail/mail and in 'MAIL FROM' for smtp mode
+* Changed boundary setting to a place it will be set only once
+* Removed transfer encoding for whole message when using multipart
+* Message body now uses Encoding in multipart messages
+* Can set encoding and type to attachments 7bit, 8bit
+and binary attachment are sent as is, base64 are encoded
+* Can set Encoding to base64 to send 8 bits body
+through 7 bits servers
+
+Version 1.10 (Tue, Jun 12 2001)
+* Fixed win32 mail header bug (printed out headers in message body)
+
+Version 1.09 (Fri, Jun 08 2001)
+* Changed date header to work with Netscape mail programs
+* Altered phpdoc documentation
+
+Version 1.08 (Tue, Jun 05 2001)
+* Added enhanced error-checking
+* Added phpdoc documentation to source
+
+Version 1.06 (Fri, Jun 01 2001)
+* Added optional name for file attachments
+
+Version 1.05 (Tue, May 29 2001)
+* Code cleanup
+* Eliminated sendmail header warning message
+* Fixed possible SMTP error
+
+Version 1.03 (Thu, May 24 2001)
+* Fixed problem where qmail sends out duplicate messages
+
+Version 1.02 (Wed, May 23 2001)
+* Added multiple recipient and attachment Clear* methods
+* Added Sendmail public variable
+* Fixed problem with loading SMTP library multiple times
+
+Version 0.98 (Tue, May 22 2001)
+* Fixed problem with redundant mail hosts sending out multiple messages
+* Added additional error handler code
+* Added AddCustomHeader() function
+* Added support for Microsoft mail client headers (affects priority)
+* Fixed small bug with Mailer variable
+* Added PrintVersion() function
+
+Version 0.92 (Tue, May 15 2001)
+* Changed file names to class.phpmailer.php and class.smtp.php to match
+ current PHP class trend.
+* Fixed problem where body not being printed when a message is attached
+* Several small bug fixes
+
+Version 0.90 (Tue, April 17 2001)
+* Intial public release
diff --git a/inc/classes/third_party/php_mailer/LICENSE b/inc/classes/third_party/php_mailer/LICENSE
index 03851a33..f3f1b3b6 100644
--- a/inc/classes/third_party/php_mailer/LICENSE
+++ b/inc/classes/third_party/php_mailer/LICENSE
@@ -1,504 +1,504 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- , 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ , 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/inc/classes/third_party/php_mailer/README b/inc/classes/third_party/php_mailer/README
index f2e2b795..3f0ee3fa 100644
--- a/inc/classes/third_party/php_mailer/README
+++ b/inc/classes/third_party/php_mailer/README
@@ -1,193 +1,193 @@
-/*******************************************************************
-* The http://phpmailer.codeworxtech.com/ website now carries a few *
-* advertisements through the Google Adsense network. Please visit *
-* the advertiser sites and help us offset some of our costs. *
-* Thanks .... *
-********************************************************************/
-
-PHPMailer
-Full Featured Email Transfer Class for PHP
-==========================================
-
-Version 2.3 (November 08, 2008)
-
-We have removed the /phpdoc from the downloads. All documentation is now on
-the http://phpmailer.codeworxtech.com website.
-
-The phpunit.php has been updated to support PHP5.
-
-For all other changes and notes, please see the changelog.
-
-Donations are accepted at PayPal with our id "paypal@worxteam.com".
-
-Version 2.2 (July 15 2008)
-
-- see the changelog.
-
-Version 2.1 (June 04 2008)
-
-With this release, we are announcing that the development of PHPMailer for PHP5
-will be our focus from this date on. We have implemented all the enhancements
-and fixes from the latest release of PHPMailer for PHP4.
-
-Far more important, though, is that this release of PHPMailer (v2.1) is
-fully tested with E_STRICT error checking enabled.
-
-** NOTE: WE HAVE A NEW LANGUAGE VARIABLE FOR DIGITALLY SIGNED S/MIME EMAILS.
- IF YOU CAN HELP WITH LANGUAGES OTHER THAN ENGLISH AND SPANISH, IT WOULD BE
- APPRECIATED.
-
-We have now added S/MIME functionality (ability to digitally sign emails).
-BIG THANKS TO "sergiocambra" for posting this patch back in November 2007.
-The "Signed Emails" functionality adds the Sign method to pass the private key
-filename and the password to read it, and then email will be sent with
-content-type multipart/signed and with the digital signature attached.
-
-A quick note on E_STRICT:
-
-- In about half the test environments the development version was subjected
- to, an error was thrown for the date() functions (used at line 1565 and 1569).
- This is NOT a PHPMailer error, it is the result of an incorrectly configured
- PHP5 installation. The fix is to modify your 'php.ini' file and include the
- date.timezone = America/New York
- directive, (for your own server timezone)
-- If you do get this error, and are unable to access your php.ini file, there is
- a workaround. In your PHP script, add
- date_default_timezone_set('America/Toronto');
-
- * do NOT try to use
- $myVar = date_default_timezone_get();
- as a test, it will throw an error.
-
-We have also included more example files to show the use of "sendmail", "mail()",
-"smtp", and "gmail".
-
-We are also looking for more programmers to join the volunteer development team.
-If you have an interest in this, please let us know.
-
-Enjoy!
-
-
-Version 2.1.0beta1 & beta2
-
-please note, this is BETA software
-** DO NOT USE THIS IN PRODUCTION OR LIVE PROJECTS
-INTENDED STRICTLY FOR TESTING
-
-** NOTE:
-
-As of November 2007, PHPMailer has a new project team headed by industry
-veteran Andy Prevost (codeworxtech). The first release in more than two
-years will focus on fixes, adding ease-of-use enhancements, provide
-basic compatibility with PHP4 and PHP5 using PHP5 backwards compatibility
-features. A new release is planned before year-end 2007 that will provide
-full compatiblity with PHP4 and PHP5, as well as more bug fixes.
-
-We are looking for project developers to assist in restoring PHPMailer to
-its leadership position. Our goals are to simplify use of PHPMailer, provide
-good documentation and examples, and retain backward compatibility to level
-1.7.3 standards.
-
-If you are interested in helping out, visit http://sourceforge.net/projects/phpmailer
-and indicate your interest.
-
-**
-
-http://phpmailer.sourceforge.net/
-
-This software is licenced under the LGPL. Please read LICENSE for information on the
-software availability and distribution.
-
-Class Features:
-- Send emails with multiple TOs, CCs, BCCs and REPLY-TOs
-- Redundant SMTP servers
-- Multipart/alternative emails for mail clients that do not read HTML email
-- Support for 8bit, base64, binary, and quoted-printable encoding
-- Uses the same methods as the very popular AspEmail active server (COM) component
-- SMTP authentication
-- Native language support
-- Word wrap, and more!
-
-Why you might need it:
-
-Many PHP developers utilize email in their code. The only PHP function
-that supports this is the mail() function. However, it does not expose
-any of the popular features that many email clients use nowadays like
-HTML-based emails and attachments. There are two proprietary
-development tools out there that have all the functionality built into
-easy to use classes: AspEmail(tm) and AspMail. Both of these
-programs are COM components only available on Windows. They are also a
-little pricey for smaller projects.
-
-Since I do Linux development IÂ’ve missed these tools for my PHP coding.
-So I built a version myself that implements the same methods (object
-calls) that the Windows-based components do. It is open source and the
-LGPL license allows you to place the class in your proprietary PHP
-projects.
-
-
-Installation:
-
-Copy class.phpmailer.php into your php.ini include_path. If you are
-using the SMTP mailer then place class.smtp.php in your path as well.
-In the language directory you will find several files like
-phpmailer.lang-en.php. If you look right before the .php extension
-that there are two letters. These represent the language type of the
-translation file. For instance "en" is the English file and "br" is
-the Portuguese file. Chose the file that best fits with your language
-and place it in the PHP include path. If your language is English
-then you have nothing more to do. If it is a different language then
-you must point PHPMailer to the correct translation. To do this, call
-the PHPMailer SetLanguage method like so:
-
-// To load the Portuguese version
-$mail->SetLanguage("br", "/optional/path/to/language/directory/");
-
-That's it. You should now be ready to use PHPMailer!
-
-
-A Simple Example:
-
-IsSMTP(); // set mailer to use SMTP
-$mail->Host = "smtp1.example.com;smtp2.example.com"; // specify main and backup server
-$mail->SMTPAuth = true; // turn on SMTP authentication
-$mail->Username = "jswan"; // SMTP username
-$mail->Password = "secret"; // SMTP password
-
-$mail->From = "from@example.com";
-$mail->FromName = "Mailer";
-$mail->AddAddress("josh@example.net", "Josh Adams");
-$mail->AddAddress("ellen@example.com"); // name is optional
-$mail->AddReplyTo("info@example.com", "Information");
-
-$mail->WordWrap = 50; // set word wrap to 50 characters
-$mail->AddAttachment("/var/tmp/file.tar.gz"); // add attachments
-$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // optional name
-$mail->IsHTML(true); // set email format to HTML
-
-$mail->Subject = "Here is the subject";
-$mail->Body = "This is the HTML message body in bold!";
-$mail->AltBody = "This is the body in plain text for non-HTML mail clients";
-
-if(!$mail->Send())
-{
- echo "Message could not be sent. ";
- echo "Mailer Error: " . $mail->ErrorInfo;
- exit;
-}
-
-echo "Message has been sent";
-?>
-
-CHANGELOG
-
-See ChangeLog.txt
-
-Download: http://sourceforge.net/project/showfiles.php?group_id=26031
-
-Andy Prevost
+/*******************************************************************
+* The http://phpmailer.codeworxtech.com/ website now carries a few *
+* advertisements through the Google Adsense network. Please visit *
+* the advertiser sites and help us offset some of our costs. *
+* Thanks .... *
+********************************************************************/
+
+PHPMailer
+Full Featured Email Transfer Class for PHP
+==========================================
+
+Version 2.3 (November 08, 2008)
+
+We have removed the /phpdoc from the downloads. All documentation is now on
+the http://phpmailer.codeworxtech.com website.
+
+The phpunit.php has been updated to support PHP5.
+
+For all other changes and notes, please see the changelog.
+
+Donations are accepted at PayPal with our id "paypal@worxteam.com".
+
+Version 2.2 (July 15 2008)
+
+- see the changelog.
+
+Version 2.1 (June 04 2008)
+
+With this release, we are announcing that the development of PHPMailer for PHP5
+will be our focus from this date on. We have implemented all the enhancements
+and fixes from the latest release of PHPMailer for PHP4.
+
+Far more important, though, is that this release of PHPMailer (v2.1) is
+fully tested with E_STRICT error checking enabled.
+
+** NOTE: WE HAVE A NEW LANGUAGE VARIABLE FOR DIGITALLY SIGNED S/MIME EMAILS.
+ IF YOU CAN HELP WITH LANGUAGES OTHER THAN ENGLISH AND SPANISH, IT WOULD BE
+ APPRECIATED.
+
+We have now added S/MIME functionality (ability to digitally sign emails).
+BIG THANKS TO "sergiocambra" for posting this patch back in November 2007.
+The "Signed Emails" functionality adds the Sign method to pass the private key
+filename and the password to read it, and then email will be sent with
+content-type multipart/signed and with the digital signature attached.
+
+A quick note on E_STRICT:
+
+- In about half the test environments the development version was subjected
+ to, an error was thrown for the date() functions (used at line 1565 and 1569).
+ This is NOT a PHPMailer error, it is the result of an incorrectly configured
+ PHP5 installation. The fix is to modify your 'php.ini' file and include the
+ date.timezone = America/New York
+ directive, (for your own server timezone)
+- If you do get this error, and are unable to access your php.ini file, there is
+ a workaround. In your PHP script, add
+ date_default_timezone_set('America/Toronto');
+
+ * do NOT try to use
+ $myVar = date_default_timezone_get();
+ as a test, it will throw an error.
+
+We have also included more example files to show the use of "sendmail", "mail()",
+"smtp", and "gmail".
+
+We are also looking for more programmers to join the volunteer development team.
+If you have an interest in this, please let us know.
+
+Enjoy!
+
+
+Version 2.1.0beta1 & beta2
+
+please note, this is BETA software
+** DO NOT USE THIS IN PRODUCTION OR LIVE PROJECTS
+INTENDED STRICTLY FOR TESTING
+
+** NOTE:
+
+As of November 2007, PHPMailer has a new project team headed by industry
+veteran Andy Prevost (codeworxtech). The first release in more than two
+years will focus on fixes, adding ease-of-use enhancements, provide
+basic compatibility with PHP4 and PHP5 using PHP5 backwards compatibility
+features. A new release is planned before year-end 2007 that will provide
+full compatiblity with PHP4 and PHP5, as well as more bug fixes.
+
+We are looking for project developers to assist in restoring PHPMailer to
+its leadership position. Our goals are to simplify use of PHPMailer, provide
+good documentation and examples, and retain backward compatibility to level
+1.7.3 standards.
+
+If you are interested in helping out, visit http://sourceforge.net/projects/phpmailer
+and indicate your interest.
+
+**
+
+http://phpmailer.sourceforge.net/
+
+This software is licenced under the LGPL. Please read LICENSE for information on the
+software availability and distribution.
+
+Class Features:
+- Send emails with multiple TOs, CCs, BCCs and REPLY-TOs
+- Redundant SMTP servers
+- Multipart/alternative emails for mail clients that do not read HTML email
+- Support for 8bit, base64, binary, and quoted-printable encoding
+- Uses the same methods as the very popular AspEmail active server (COM) component
+- SMTP authentication
+- Native language support
+- Word wrap, and more!
+
+Why you might need it:
+
+Many PHP developers utilize email in their code. The only PHP function
+that supports this is the mail() function. However, it does not expose
+any of the popular features that many email clients use nowadays like
+HTML-based emails and attachments. There are two proprietary
+development tools out there that have all the functionality built into
+easy to use classes: AspEmail(tm) and AspMail. Both of these
+programs are COM components only available on Windows. They are also a
+little pricey for smaller projects.
+
+Since I do Linux development IÂ’ve missed these tools for my PHP coding.
+So I built a version myself that implements the same methods (object
+calls) that the Windows-based components do. It is open source and the
+LGPL license allows you to place the class in your proprietary PHP
+projects.
+
+
+Installation:
+
+Copy class.phpmailer.php into your php.ini include_path. If you are
+using the SMTP mailer then place class.smtp.php in your path as well.
+In the language directory you will find several files like
+phpmailer.lang-en.php. If you look right before the .php extension
+that there are two letters. These represent the language type of the
+translation file. For instance "en" is the English file and "br" is
+the Portuguese file. Chose the file that best fits with your language
+and place it in the PHP include path. If your language is English
+then you have nothing more to do. If it is a different language then
+you must point PHPMailer to the correct translation. To do this, call
+the PHPMailer SetLanguage method like so:
+
+// To load the Portuguese version
+$mail->SetLanguage("br", "/optional/path/to/language/directory/");
+
+That's it. You should now be ready to use PHPMailer!
+
+
+A Simple Example:
+
+IsSMTP(); // set mailer to use SMTP
+$mail->Host = "smtp1.example.com;smtp2.example.com"; // specify main and backup server
+$mail->SMTPAuth = true; // turn on SMTP authentication
+$mail->Username = "jswan"; // SMTP username
+$mail->Password = "secret"; // SMTP password
+
+$mail->From = "from@example.com";
+$mail->FromName = "Mailer";
+$mail->AddAddress("josh@example.net", "Josh Adams");
+$mail->AddAddress("ellen@example.com"); // name is optional
+$mail->AddReplyTo("info@example.com", "Information");
+
+$mail->WordWrap = 50; // set word wrap to 50 characters
+$mail->AddAttachment("/var/tmp/file.tar.gz"); // add attachments
+$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // optional name
+$mail->IsHTML(true); // set email format to HTML
+
+$mail->Subject = "Here is the subject";
+$mail->Body = "This is the HTML message body in bold!";
+$mail->AltBody = "This is the body in plain text for non-HTML mail clients";
+
+if(!$mail->Send())
+{
+ echo "Message could not be sent.
";
+ echo "Mailer Error: " . $mail->ErrorInfo;
+ exit;
+}
+
+echo "Message has been sent";
+?>
+
+CHANGELOG
+
+See ChangeLog.txt
+
+Download: http://sourceforge.net/project/showfiles.php?group_id=26031
+
+Andy Prevost
diff --git a/inc/classes/third_party/php_mailer/docs/extending.html b/inc/classes/third_party/php_mailer/docs/extending.html
index f7c3200a..310f97a3 100644
--- a/inc/classes/third_party/php_mailer/docs/extending.html
+++ b/inc/classes/third_party/php_mailer/docs/extending.html
@@ -1,148 +1,148 @@
-
-
-Examples using phpmailer
-
-
-
-
-Examples using phpmailer
-
-1. Advanced Example
-
-
-This demonstrates sending out multiple email messages with binary attachments
-from a MySQL database with multipart/alternative support.
-
-
-
-
-require("class.phpmailer.php");
-
-$mail = new phpmailer();
-
-$mail->From = "list@example.com";
-$mail->FromName = "List manager";
-$mail->Host = "smtp1.example.com;smtp2.example.com";
-$mail->Mailer = "smtp";
-
-@MYSQL_CONNECT("localhost","root","password");
-@mysql_select_db("my_company");
-$query = "SELECT full_name, email, photo FROM employee WHERE id=$id";
-$result = @MYSQL_QUERY($query);
-
-while ($row = mysql_fetch_array ($result))
-{
- // HTML body
- $body = "Hello <font size=\"4\">" . $row["full_name"] . "</font>, <p>";
- $body .= "<i>Your</i> personal photograph to this message.<p>";
- $body .= "Sincerely, <br>";
- $body .= "phpmailer List manager";
-
- // Plain text body (for mail clients that cannot read HTML)
- $text_body = "Hello " . $row["full_name"] . ", \n\n";
- $text_body .= "Your personal photograph to this message.\n\n";
- $text_body .= "Sincerely, \n";
- $text_body .= "phpmailer List manager";
-
- $mail->Body = $body;
- $mail->AltBody = $text_body;
- $mail->AddAddress($row["email"], $row["full_name"]);
- $mail->AddStringAttachment($row["photo"], "YourPhoto.jpg");
-
- if(!$mail->Send())
- echo "There has been a mail error sending to " . $row["email"] . "<br>";
-
- // Clear all addresses and attachments for next loop
- $mail->ClearAddresses();
- $mail->ClearAttachments();
-}
-
- |
-
-
-
-
-
2. Extending phpmailer
-
-
-Extending classes with inheritance is one of the most
-powerful features of object-oriented
-programming. It allows you to make changes to the
-original class for your
-own personal use without hacking the original
-classes. Plus, it is very
-easy to do. I've provided an example:
-
-
-Here's a class that extends the phpmailer class and sets the defaults
-for the particular site:
-PHP include file: mail.inc.php
-
-
-
-
-
-
-require("class.phpmailer.php");
-
-class my_phpmailer extends phpmailer {
- // Set default variables for all new objects
- var $From = "from@example.com";
- var $FromName = "Mailer";
- var $Host = "smtp1.example.com;smtp2.example.com";
- var $Mailer = "smtp"; // Alternative to IsSMTP()
- var $WordWrap = 75;
-
- // Replace the default error_handler
- function error_handler($msg) {
- print("My Site Error");
- print("Description:");
- printf("%s", $msg);
- exit;
- }
-
- // Create an additional function
- function do_something($something) {
- // Place your new code here
- }
-}
- |
-
-
-
-
-Now here's a normal PHP page in the site, which will have all the defaults set
-above:
-Normal PHP file: mail_test.php
-
-
-
-
-
-
-require("mail.inc.php");
-
-// Instantiate your new class
-$mail = new my_phpmailer;
-
-// Now you only need to add the necessary stuff
-$mail->AddAddress("josh@example.com", "Josh Adams");
-$mail->Subject = "Here is the subject";
-$mail->Body = "This is the message body";
-$mail->AddAttachment("c:/temp/11-10-00.zip", "new_name.zip"); // optional name
-
-if(!$mail->Send())
-{
- echo "There was an error sending the message";
- exit;
-}
-
-echo "Message was sent successfully";
-
- |
-
-
-
-
-
-
+
+
+Examples using phpmailer
+
+
+
+
+Examples using phpmailer
+
+1. Advanced Example
+
+
+This demonstrates sending out multiple email messages with binary attachments
+from a MySQL database with multipart/alternative support.
+
+
+
+
+require("class.phpmailer.php");
+
+$mail = new phpmailer();
+
+$mail->From = "list@example.com";
+$mail->FromName = "List manager";
+$mail->Host = "smtp1.example.com;smtp2.example.com";
+$mail->Mailer = "smtp";
+
+@MYSQL_CONNECT("localhost","root","password");
+@mysql_select_db("my_company");
+$query = "SELECT full_name, email, photo FROM employee WHERE id=$id";
+$result = @MYSQL_QUERY($query);
+
+while ($row = mysql_fetch_array ($result))
+{
+ // HTML body
+ $body = "Hello <font size=\"4\">" . $row["full_name"] . "</font>, <p>";
+ $body .= "<i>Your</i> personal photograph to this message.<p>";
+ $body .= "Sincerely, <br>";
+ $body .= "phpmailer List manager";
+
+ // Plain text body (for mail clients that cannot read HTML)
+ $text_body = "Hello " . $row["full_name"] . ", \n\n";
+ $text_body .= "Your personal photograph to this message.\n\n";
+ $text_body .= "Sincerely, \n";
+ $text_body .= "phpmailer List manager";
+
+ $mail->Body = $body;
+ $mail->AltBody = $text_body;
+ $mail->AddAddress($row["email"], $row["full_name"]);
+ $mail->AddStringAttachment($row["photo"], "YourPhoto.jpg");
+
+ if(!$mail->Send())
+ echo "There has been a mail error sending to " . $row["email"] . "<br>";
+
+ // Clear all addresses and attachments for next loop
+ $mail->ClearAddresses();
+ $mail->ClearAttachments();
+}
+
+ |
+
+
+
+
+
2. Extending phpmailer
+
+
+Extending classes with inheritance is one of the most
+powerful features of object-oriented
+programming. It allows you to make changes to the
+original class for your
+own personal use without hacking the original
+classes. Plus, it is very
+easy to do. I've provided an example:
+
+
+Here's a class that extends the phpmailer class and sets the defaults
+for the particular site:
+PHP include file: mail.inc.php
+
+
+
+
+
+
+require("class.phpmailer.php");
+
+class my_phpmailer extends phpmailer {
+ // Set default variables for all new objects
+ var $From = "from@example.com";
+ var $FromName = "Mailer";
+ var $Host = "smtp1.example.com;smtp2.example.com";
+ var $Mailer = "smtp"; // Alternative to IsSMTP()
+ var $WordWrap = 75;
+
+ // Replace the default error_handler
+ function error_handler($msg) {
+ print("My Site Error");
+ print("Description:");
+ printf("%s", $msg);
+ exit;
+ }
+
+ // Create an additional function
+ function do_something($something) {
+ // Place your new code here
+ }
+}
+ |
+
+
+
+
+Now here's a normal PHP page in the site, which will have all the defaults set
+above:
+Normal PHP file: mail_test.php
+
+
+
+
+
+
+require("mail.inc.php");
+
+// Instantiate your new class
+$mail = new my_phpmailer;
+
+// Now you only need to add the necessary stuff
+$mail->AddAddress("josh@example.com", "Josh Adams");
+$mail->Subject = "Here is the subject";
+$mail->Body = "This is the message body";
+$mail->AddAttachment("c:/temp/11-10-00.zip", "new_name.zip"); // optional name
+
+if(!$mail->Send())
+{
+ echo "There was an error sending the message";
+ exit;
+}
+
+echo "Message was sent successfully";
+
+ |
+
+
+
+
+
+
diff --git a/inc/classes/third_party/php_mailer/docs/faq.html b/inc/classes/third_party/php_mailer/docs/faq.html
index 54ac1837..f71c6c89 100644
--- a/inc/classes/third_party/php_mailer/docs/faq.html
+++ b/inc/classes/third_party/php_mailer/docs/faq.html
@@ -1,67 +1,67 @@
-
-
-PHPMailer FAQ
-
-
-
-
-
-
PHPMailer FAQ
-
-
- - Q: I'm using the SMTP mailer and I keep on getting a timeout message
- well before the X seconds I set it for. What gives?
- A: PHP versions 4.0.4pl1 and earlier have a bug in which sockets timeout
- early. You can fix this by re-compiling PHP 4.0.4pl1 with this fix:
- timeoutfix.diff. Otherwise you can wait for the new PHP release.
-
- - Q: I am concerned that using include files will take up too much
- processing time on my computer. How can I make it run faster?
- A: PHP by itself is very fast. Much faster than ASP or JSP running on
- the same type of server. This is because it has very little overhead compared
- to its competitors and it pre-compiles all of
- its code before it runs each script (in PHP4). However, all of
- this compiling and re-compiling can take up a lot of valuable
- computer resources. However, there are programs out there that compile
- PHP code and store it in memory (or on mmaped files) to reduce the
- processing immensely. Two of these: APC
- (Alternative PHP Cache) and Afterburner
- (Win32 download)
- are excellent free tools that do just this. If you have the money
- you might also try Zend Cache, it is
- even faster than the open source varieties. All of these tools make your
- scripts run faster while also reducing the load on your server. I have tried
- them myself and they are quite stable too.
-
- - Q: What mailer gives me the best performance?
- A: On a single machine the sendmail (or Qmail) is fastest overall.
- Next fastest is mail() to give you the best performance. Both do not have the overhead of SMTP.
- If you have you have your mail server on a another machine then
- SMTP is your only option, but you do get the benefit of redundant mail servers.
- If you are running a mailing list with thousands of names, the fastest mailers in order are: SMTP, sendmail (or Qmail), mail().
-
- - Q: When I try to attach a file with on my server I get a
- "Could not find {file} on filesystem error". Why is this?
- A: If you are using a Unix machine this is probably because the user
- running your web server does not have read access to the directory in question. If you are using Windows,
- then the problem probably is that you have used single backslashes to denote directories (\).
- A single backslash has a special meaning to PHP so these are not
- valid. Instead use double backslashes ("\\") or a single forward
- slash ("/").
-
-
-
-
-
-
-
-
+
+
+PHPMailer FAQ
+
+
+
+
+
+
PHPMailer FAQ
+
+
+ - Q: I'm using the SMTP mailer and I keep on getting a timeout message
+ well before the X seconds I set it for. What gives?
+ A: PHP versions 4.0.4pl1 and earlier have a bug in which sockets timeout
+ early. You can fix this by re-compiling PHP 4.0.4pl1 with this fix:
+ timeoutfix.diff. Otherwise you can wait for the new PHP release.
+
+ - Q: I am concerned that using include files will take up too much
+ processing time on my computer. How can I make it run faster?
+ A: PHP by itself is very fast. Much faster than ASP or JSP running on
+ the same type of server. This is because it has very little overhead compared
+ to its competitors and it pre-compiles all of
+ its code before it runs each script (in PHP4). However, all of
+ this compiling and re-compiling can take up a lot of valuable
+ computer resources. However, there are programs out there that compile
+ PHP code and store it in memory (or on mmaped files) to reduce the
+ processing immensely. Two of these: APC
+ (Alternative PHP Cache) and Afterburner
+ (Win32 download)
+ are excellent free tools that do just this. If you have the money
+ you might also try Zend Cache, it is
+ even faster than the open source varieties. All of these tools make your
+ scripts run faster while also reducing the load on your server. I have tried
+ them myself and they are quite stable too.
+
+ - Q: What mailer gives me the best performance?
+ A: On a single machine the sendmail (or Qmail) is fastest overall.
+ Next fastest is mail() to give you the best performance. Both do not have the overhead of SMTP.
+ If you have you have your mail server on a another machine then
+ SMTP is your only option, but you do get the benefit of redundant mail servers.
+ If you are running a mailing list with thousands of names, the fastest mailers in order are: SMTP, sendmail (or Qmail), mail().
+
+ - Q: When I try to attach a file with on my server I get a
+ "Could not find {file} on filesystem error". Why is this?
+ A: If you are using a Unix machine this is probably because the user
+ running your web server does not have read access to the directory in question. If you are using Windows,
+ then the problem probably is that you have used single backslashes to denote directories (\).
+ A single backslash has a special meaning to PHP so these are not
+ valid. Instead use double backslashes ("\\") or a single forward
+ slash ("/").
+
+
+
+
+
+
+
+
diff --git a/inc/classes/third_party/php_mailer/examples/contents.html b/inc/classes/third_party/php_mailer/examples/contents.html
index 70c7e307..3efbda27 100644
--- a/inc/classes/third_party/php_mailer/examples/contents.html
+++ b/inc/classes/third_party/php_mailer/examples/contents.html
@@ -1,12 +1,12 @@
-
-
-
-
- This is a test of PHPMailer v2.0.0 rc1.
-
-This particular example uses
HTML, with a <div> tag and inline
-styles.
-
-Also note the use of the PHPMailer at the top with no specific code to handle
-including it in the body of the email.
-
+
+
+
+
+ This is a test of PHPMailer v2.0.0 rc1.
+
+This particular example uses
HTML, with a <div> tag and inline
+styles.
+
+Also note the use of the PHPMailer at the top with no specific code to handle
+including it in the body of the email.
+
diff --git a/inc/classes/third_party/php_mailer/examples/index.html b/inc/classes/third_party/php_mailer/examples/index.html
index d0a8b9d9..3ac45d3b 100644
--- a/inc/classes/third_party/php_mailer/examples/index.html
+++ b/inc/classes/third_party/php_mailer/examples/index.html
@@ -1,73 +1,73 @@
-The example file "test_mail.php" contents include:
-
-
-<?php
-
-include_once('../class.phpmailer.php');
-
-$mail = new PHPMailer();
-
-$body = $mail->getFile('contents.html');
-
-$body = eregi_replace("[\]",'',$body);
-$subject = eregi_replace("[\]",'',$subject);
-
-$mail->From = "name@yourdomain.com";
-$mail->FromName = "First Last";
-
-$mail->Subject = "PHPMailer Test Subject";
-
-$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
-
-$mail->MsgHTML($body);
-
-$mail->AddAddress("whoto@otherdomain.com", "John Doe");
-
-if(!$mail->Send()) {
- echo 'Failed to send mail';
-} else {
- echo 'Mail sent';
-}
-
-?>
-
-
-
-Although you could use full compabitility with PHPMailer 1.7.3, this example
-shows how to use the new features. If you view 'contents.html', you will note
-that there is a background image used in the <body tag as well as an image used
-with a regular <img tag. Here's what the HTML file looks like:
-
-
-
-<body background="images/bkgrnd.gif" style="margin: 0px;">
-<div style="width: 640px; font-family: Arial, Helvetica, sans-serif; font-size: 11px;">
-<div align="center"><img src="images/phpmailer.gif" style="height: 90px; width: 340px"></div><br>
-<br>
- This is a test of PHPMailer v2.0.0 rc1.<br>
-<br>
-This particular example uses <strong>HTML</strong>, with a <div> tag and inline<br>
-styles.<br>
-<br>
-Also note the use of the PHPMailer at the top with no specific code to handle
-including it in the body of the email.</div>
-</body>
-
-
-
-A few things to notice in the PHP script that generates the email:
-
- - the use of $mail->AltBody is completely optional. If not used, PHPMailer
- will use the HTML text with htmlentities().
- - the background= and <img src= images were processed without any directives
- or methods from the PHP script
- - there is no specific code to define the image type ... that is handled
- automatically by PHPMailer when it parses the images
- - we are using a new class method '$mail->MsgHTML($body)' ... that is what will handle the parsing of the images and creating the AltBody text
-
-Of course, you can still use PHPMailer the same way you have in the past.
-That provides full compatibility with all existing scripts, while new scripts
-can take advantage of the new features.
-Modify test_mail.php now with your own email address and try it out.
-To see what the email SHOULD look like in your HTML compatible email viewer: click here
-
+The example file "test_mail.php" contents include:
+
+
+<?php
+
+include_once('../class.phpmailer.php');
+
+$mail = new PHPMailer();
+
+$body = $mail->getFile('contents.html');
+
+$body = eregi_replace("[\]",'',$body);
+$subject = eregi_replace("[\]",'',$subject);
+
+$mail->From = "name@yourdomain.com";
+$mail->FromName = "First Last";
+
+$mail->Subject = "PHPMailer Test Subject";
+
+$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
+
+$mail->MsgHTML($body);
+
+$mail->AddAddress("whoto@otherdomain.com", "John Doe");
+
+if(!$mail->Send()) {
+ echo 'Failed to send mail';
+} else {
+ echo 'Mail sent';
+}
+
+?>
+
+
+
+Although you could use full compabitility with PHPMailer 1.7.3, this example
+shows how to use the new features. If you view 'contents.html', you will note
+that there is a background image used in the <body tag as well as an image used
+with a regular <img tag. Here's what the HTML file looks like:
+
+
+
+<body background="images/bkgrnd.gif" style="margin: 0px;">
+<div style="width: 640px; font-family: Arial, Helvetica, sans-serif; font-size: 11px;">
+<div align="center"><img src="images/phpmailer.gif" style="height: 90px; width: 340px"></div><br>
+<br>
+ This is a test of PHPMailer v2.0.0 rc1.<br>
+<br>
+This particular example uses <strong>HTML</strong>, with a <div> tag and inline<br>
+styles.<br>
+<br>
+Also note the use of the PHPMailer at the top with no specific code to handle
+including it in the body of the email.</div>
+</body>
+
+
+
+A few things to notice in the PHP script that generates the email:
+
+ - the use of $mail->AltBody is completely optional. If not used, PHPMailer
+ will use the HTML text with htmlentities().
+ - the background= and <img src= images were processed without any directives
+ or methods from the PHP script
+ - there is no specific code to define the image type ... that is handled
+ automatically by PHPMailer when it parses the images
+ - we are using a new class method '$mail->MsgHTML($body)' ... that is what will handle the parsing of the images and creating the AltBody text
+
+Of course, you can still use PHPMailer the same way you have in the past.
+That provides full compatibility with all existing scripts, while new scripts
+can take advantage of the new features.
+Modify test_mail.php now with your own email address and try it out.
+To see what the email SHOULD look like in your HTML compatible email viewer: click here
+
diff --git a/inc/classes/third_party/php_mailer/test/phpmailer_test.php b/inc/classes/third_party/php_mailer/test/phpmailer_test.php
index 22d6f42b..ffbe4bd4 100644
--- a/inc/classes/third_party/php_mailer/test/phpmailer_test.php
+++ b/inc/classes/third_party/php_mailer/test/phpmailer_test.php
@@ -1,572 +1,572 @@
-TestCase( $name );
- }
-
- /**
- * Run before each test is started.
- */
- function setUp() {
- global $global_vars;
- global $INCLUDE_DIR;
-
- $this->Mail = new PHPMailer();
-
- $this->Mail->Priority = 3;
- $this->Mail->Encoding = "8bit";
- $this->Mail->CharSet = "iso-8859-1";
- $this->Mail->From = "unit_test@phpmailer.sf.net";
- $this->Mail->FromName = "Unit Tester";
- $this->Mail->Sender = "";
- $this->Mail->Subject = "Unit Test";
- $this->Mail->Body = "";
- $this->Mail->AltBody = "";
- $this->Mail->WordWrap = 0;
- $this->Mail->Host = $global_vars["mail_host"];
- $this->Mail->Port = 25;
- $this->Mail->Helo = "localhost.localdomain";
- $this->Mail->SMTPAuth = false;
- $this->Mail->Username = "";
- $this->Mail->Password = "";
- $this->Mail->PluginDir = $INCLUDE_DIR;
- $this->Mail->AddReplyTo("no_reply@phpmailer.sf.net", "Reply Guy");
- $this->Mail->Sender = "unit_test@phpmailer.sf.net";
-
- if(strlen($this->Mail->Host) > 0)
- $this->Mail->Mailer = "smtp";
- else
- {
- $this->Mail->Mailer = "mail";
- $this->Sender = "unit_test@phpmailer.sf.net";
- }
-
- global $global_vars;
- $this->SetAddress($global_vars["mail_to"], "Test User");
- if(strlen($global_vars["mail_cc"]) > 0)
- $this->SetAddress($global_vars["mail_cc"], "Carbon User", "cc");
- }
-
- /**
- * Run after each test is completed.
- */
- function tearDown() {
- // Clean global variables
- $this->Mail = NULL;
- $this->ChangeLog = array();
- $this->NoteLog = array();
- }
-
-
- /**
- * Build the body of the message in the appropriate format.
- * @private
- * @returns void
- */
- function BuildBody() {
- $this->CheckChanges();
-
- // Determine line endings for message
- if($this->Mail->ContentType == "text/html" || strlen($this->Mail->AltBody) > 0)
- {
- $eol = "
";
- $bullet = "";
- $bullet_start = "";
- }
- else
- {
- $eol = "\n";
- $bullet = " - ";
- $bullet_start = "";
- $bullet_end = "";
- }
-
- $ReportBody = "";
-
- $ReportBody .= "---------------------" . $eol;
- $ReportBody .= "Unit Test Information" . $eol;
- $ReportBody .= "---------------------" . $eol;
- $ReportBody .= "phpmailer version: " . $this->Mail->Version . $eol;
- $ReportBody .= "Content Type: " . $this->Mail->ContentType . $eol;
-
- if(strlen($this->Mail->Host) > 0)
- $ReportBody .= "Host: " . $this->Mail->Host . $eol;
-
- // If attachments then create an attachment list
- if(count($this->Mail->attachment) > 0)
- {
- $ReportBody .= "Attachments:" . $eol;
- $ReportBody .= $bullet_start;
- for($i = 0; $i < count($this->Mail->attachment); $i++)
- {
- $ReportBody .= $bullet . "Name: " . $this->Mail->attachment[$i][1] . ", ";
- $ReportBody .= "Encoding: " . $this->Mail->attachment[$i][3] . ", ";
- $ReportBody .= "Type: " . $this->Mail->attachment[$i][4] . $eol;
- }
- $ReportBody .= $bullet_end . $eol;
- }
-
- // If there are changes then list them
- if(count($this->ChangeLog) > 0)
- {
- $ReportBody .= "Changes" . $eol;
- $ReportBody .= "-------" . $eol;
-
- $ReportBody .= $bullet_start;
- for($i = 0; $i < count($this->ChangeLog); $i++)
- {
- $ReportBody .= $bullet . $this->ChangeLog[$i][0] . " was changed to [" .
- $this->ChangeLog[$i][1] . "]" . $eol;
- }
- $ReportBody .= $bullet_end . $eol . $eol;
- }
-
- // If there are notes then list them
- if(count($this->NoteLog) > 0)
- {
- $ReportBody .= "Notes" . $eol;
- $ReportBody .= "-----" . $eol;
-
- $ReportBody .= $bullet_start;
- for($i = 0; $i < count($this->NoteLog); $i++)
- {
- $ReportBody .= $bullet . $this->NoteLog[$i] . $eol;
- }
- $ReportBody .= $bullet_end;
- }
-
- // Re-attach the original body
- $this->Mail->Body .= $eol . $eol . $ReportBody;
- }
-
- /**
- * Check which default settings have been changed for the report.
- * @private
- * @returns void
- */
- function CheckChanges() {
- if($this->Mail->Priority != 3)
- $this->AddChange("Priority", $this->Mail->Priority);
- if($this->Mail->Encoding != "8bit")
- $this->AddChange("Encoding", $this->Mail->Encoding);
- if($this->Mail->CharSet != "iso-8859-1")
- $this->AddChange("CharSet", $this->Mail->CharSet);
- if($this->Mail->Sender != "")
- $this->AddChange("Sender", $this->Mail->Sender);
- if($this->Mail->WordWrap != 0)
- $this->AddChange("WordWrap", $this->Mail->WordWrap);
- if($this->Mail->Mailer != "mail")
- $this->AddChange("Mailer", $this->Mail->Mailer);
- if($this->Mail->Port != 25)
- $this->AddChange("Port", $this->Mail->Port);
- if($this->Mail->Helo != "localhost.localdomain")
- $this->AddChange("Helo", $this->Mail->Helo);
- if($this->Mail->SMTPAuth)
- $this->AddChange("SMTPAuth", "true");
- }
-
- /**
- * Adds a change entry.
- * @private
- * @returns void
- */
- function AddChange($sName, $sNewValue) {
- $cur = count($this->ChangeLog);
- $this->ChangeLog[$cur][0] = $sName;
- $this->ChangeLog[$cur][1] = $sNewValue;
- }
-
- /**
- * Adds a simple note to the message.
- * @public
- * @returns void
- */
- function AddNote($sValue) {
- $this->NoteLog[] = $sValue;
- }
-
- /**
- * Adds all of the addresses
- * @public
- * @returns void
- */
- function SetAddress($sAddress, $sName = "", $sType = "to") {
- switch($sType)
- {
- case "to":
- $this->Mail->AddAddress($sAddress, $sName);
- break;
- case "cc":
- $this->Mail->AddCC($sAddress, $sName);
- break;
- case "bcc":
- $this->Mail->AddBCC($sAddress, $sName);
- break;
- }
- }
-
- /////////////////////////////////////////////////
- // UNIT TESTS
- /////////////////////////////////////////////////
-
- /**
- * Try a plain message.
- */
- function test_WordWrap() {
-
- $this->Mail->WordWrap = 40;
- $my_body = "Here is the main body of this message. It should " .
- "be quite a few lines. It should be wrapped at the " .
- "40 characters. Make sure that it is.";
- $nBodyLen = strlen($my_body);
- $my_body .= "\n\nThis is the above body length: " . $nBodyLen;
-
- $this->Mail->Body = $my_body;
- $this->Mail->Subject .= ": Wordwrap";
-
- $this->BuildBody();
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
- }
-
- /**
- * Try a plain message.
- */
- function test_Low_Priority() {
-
- $this->Mail->Priority = 5;
- $this->Mail->Body = "Here is the main body. There should be " .
- "a reply to address in this message.";
- $this->Mail->Subject .= ": Low Priority";
- $this->Mail->AddReplyTo("nobody@nobody.com", "Nobody (Unit Test)");
-
- $this->BuildBody();
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
- }
-
- /**
- * Simple plain file attachment test.
- */
- function test_Multiple_Plain_FileAttachment() {
-
- $this->Mail->Body = "Here is the text body";
- $this->Mail->Subject .= ": Plain + Multiple FileAttachments";
-
- if(!$this->Mail->AddAttachment("test.png"))
- {
- $this->assert(false, $this->Mail->ErrorInfo);
- return;
- }
-
- if(!$this->Mail->AddAttachment("phpmailer_test.php", "test.txt"))
- {
- $this->assert(false, $this->Mail->ErrorInfo);
- return;
- }
-
- $this->BuildBody();
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
- }
-
- /**
- * Simple plain string attachment test.
- */
- function test_Plain_StringAttachment() {
-
- $this->Mail->Body = "Here is the text body";
- $this->Mail->Subject .= ": Plain + StringAttachment";
-
- $sAttachment = "These characters are the content of the " .
- "string attachment.\nThis might be taken from a ".
- "database or some other such thing. ";
-
- $this->Mail->AddStringAttachment($sAttachment, "string_attach.txt");
-
- $this->BuildBody();
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
- }
-
- /**
- * Plain quoted-printable message.
- */
- function test_Quoted_Printable() {
-
- $this->Mail->Body = "Here is the main body";
- $this->Mail->Subject .= ": Plain + Quoted-printable";
- $this->Mail->Encoding = "quoted-printable";
-
- $this->BuildBody();
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
- }
-
- /**
- * Try a plain message.
- */
- function test_Html() {
-
- $this->Mail->IsHTML(true);
- $this->Mail->Subject .= ": HTML only";
-
- $this->Mail->Body = "This is a test message written in HTML. " .
- "Go to " .
- "http://phpmailer.sourceforge.net/ for new versions of " .
- "phpmailer. Thank you!";
-
- $this->BuildBody();
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
- }
-
- /**
- * Simple HTML and attachment test
- */
- function test_HTML_Attachment() {
-
- $this->Mail->Body = "This is the HTML part of the email.";
- $this->Mail->Subject .= ": HTML + Attachment";
- $this->Mail->IsHTML(true);
-
- if(!$this->Mail->AddAttachment("phpmailer_test.php", "test_attach.txt"))
- {
- $this->assert(false, $this->Mail->ErrorInfo);
- return;
- }
-
- $this->BuildBody();
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
- }
-
- /**
- * An embedded attachment test.
- */
- function test_Embedded_Image() {
-
- $this->Mail->Body = "Embedded Image: " .
- "Here is an image!";
- $this->Mail->Subject .= ": Embedded Image";
- $this->Mail->IsHTML(true);
-
- if(!$this->Mail->AddEmbeddedImage("test.png", "my-attach", "test.png",
- "base64", "image/png"))
- {
- $this->assert(false, $this->Mail->ErrorInfo);
- return;
- }
-
- $this->BuildBody();
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
- }
-
- /**
- * An embedded attachment test.
- */
- function test_Multi_Embedded_Image() {
-
- $this->Mail->Body = "Embedded Image: " .
- "Here is an image!";
- $this->Mail->Subject .= ": Embedded Image + Attachment";
- $this->Mail->IsHTML(true);
-
- if(!$this->Mail->AddEmbeddedImage("test.png", "my-attach", "test.png",
- "base64", "image/png"))
- {
- $this->assert(false, $this->Mail->ErrorInfo);
- return;
- }
-
- if(!$this->Mail->AddAttachment("phpmailer_test.php", "test.txt"))
- {
- $this->assert(false, $this->Mail->ErrorInfo);
- return;
- }
-
- $this->BuildBody();
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
- }
-
- /**
- * Simple multipart/alternative test.
- */
- function test_AltBody() {
-
- $this->Mail->Body = "This is the HTML part of the email.";
- $this->Mail->AltBody = "Here is the text body of this message. " .
- "It should be quite a few lines. It should be wrapped at the " .
- "40 characters. Make sure that it is.";
- $this->Mail->WordWrap = 40;
- $this->AddNote("This is a mulipart alternative email");
- $this->Mail->Subject .= ": AltBody + Word Wrap";
-
- $this->BuildBody();
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
- }
-
- /**
- * Simple HTML and attachment test
- */
- function test_AltBody_Attachment() {
-
- $this->Mail->Body = "This is the HTML part of the email.";
- $this->Mail->AltBody = "This is the text part of the email.";
- $this->Mail->Subject .= ": AltBody + Attachment";
- $this->Mail->IsHTML(true);
-
- if(!$this->Mail->AddAttachment("phpmailer_test.php", "test_attach.txt"))
- {
- $this->assert(false, $this->Mail->ErrorInfo);
- return;
- }
-
- $this->BuildBody();
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
-
- $fp = fopen("message.txt", "w");
- fwrite($fp, $this->Mail->CreateHeader() . $this->Mail->CreateBody());
- fclose($fp);
- }
-
- function test_MultipleSend() {
- $this->Mail->Body = "Sending two messages without keepalive";
- $this->BuildBody();
- $subject = $this->Mail->Subject;
-
- $this->Mail->Subject = $subject . ": SMTP 1";
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
-
- $this->Mail->Subject = $subject . ": SMTP 2";
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
- }
-
- function test_SmtpKeepAlive() {
- $this->Mail->Body = "This was done using the SMTP keep-alive.";
- $this->BuildBody();
- $subject = $this->Mail->Subject;
-
- $this->Mail->SMTPKeepAlive = true;
- $this->Mail->Subject = $subject . ": SMTP keep-alive 1";
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
-
- $this->Mail->Subject = $subject . ": SMTP keep-alive 2";
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
- $this->Mail->SmtpClose();
- }
-
- /**
- * Tests this denial of service attack:
- * http://www.cybsec.com/vuln/PHPMailer-DOS.pdf
- */
- function test_DenialOfServiceAttack() {
- $this->Mail->Body = "This should no longer cause a denial of service.";
- $this->BuildBody();
-
- $this->Mail->Subject = str_repeat("A", 998);
- $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
- }
-
- function test_Error() {
- $this->Mail->Subject .= ": This should be sent";
- $this->BuildBody();
- $this->Mail->ClearAllRecipients(); // no addresses should cause an error
- $this->assert($this->Mail->IsError() == false, "Error found");
- $this->assert($this->Mail->Send() == false, "Send succeeded");
- $this->assert($this->Mail->IsError(), "No error found");
- $this->assertEquals('You must provide at least one ' .
- 'recipient email address.', $this->Mail->ErrorInfo);
- $this->Mail->AddAddress(get("mail_to"));
- $this->assert($this->Mail->Send(), "Send failed");
- }
-}
-
-/**
- * Create and run test instance.
- */
-
-if(isset($HTTP_GET_VARS))
- $global_vars = $HTTP_GET_VARS;
-else
- $global_vars = $_REQUEST;
-
-if(isset($global_vars["submitted"]))
-{
- echo "Test results:
";
- $suite = new TestSuite( "phpmailerTest" );
-
- $testRunner = new TestRunner;
- $testRunner->run($suite);
- echo "
";
-}
-
-function get($sName) {
- global $global_vars;
- if(isset($global_vars[$sName]))
- return $global_vars[$sName];
- else
- return "";
-}
-
-?>
-
-
-
-phpmailer Unit Test
-By entering a SMTP hostname it will automatically perform tests with SMTP.
-
-
-
-
+TestCase( $name );
+ }
+
+ /**
+ * Run before each test is started.
+ */
+ function setUp() {
+ global $global_vars;
+ global $INCLUDE_DIR;
+
+ $this->Mail = new PHPMailer();
+
+ $this->Mail->Priority = 3;
+ $this->Mail->Encoding = "8bit";
+ $this->Mail->CharSet = "iso-8859-1";
+ $this->Mail->From = "unit_test@phpmailer.sf.net";
+ $this->Mail->FromName = "Unit Tester";
+ $this->Mail->Sender = "";
+ $this->Mail->Subject = "Unit Test";
+ $this->Mail->Body = "";
+ $this->Mail->AltBody = "";
+ $this->Mail->WordWrap = 0;
+ $this->Mail->Host = $global_vars["mail_host"];
+ $this->Mail->Port = 25;
+ $this->Mail->Helo = "localhost.localdomain";
+ $this->Mail->SMTPAuth = false;
+ $this->Mail->Username = "";
+ $this->Mail->Password = "";
+ $this->Mail->PluginDir = $INCLUDE_DIR;
+ $this->Mail->AddReplyTo("no_reply@phpmailer.sf.net", "Reply Guy");
+ $this->Mail->Sender = "unit_test@phpmailer.sf.net";
+
+ if(strlen($this->Mail->Host) > 0)
+ $this->Mail->Mailer = "smtp";
+ else
+ {
+ $this->Mail->Mailer = "mail";
+ $this->Sender = "unit_test@phpmailer.sf.net";
+ }
+
+ global $global_vars;
+ $this->SetAddress($global_vars["mail_to"], "Test User");
+ if(strlen($global_vars["mail_cc"]) > 0)
+ $this->SetAddress($global_vars["mail_cc"], "Carbon User", "cc");
+ }
+
+ /**
+ * Run after each test is completed.
+ */
+ function tearDown() {
+ // Clean global variables
+ $this->Mail = NULL;
+ $this->ChangeLog = array();
+ $this->NoteLog = array();
+ }
+
+
+ /**
+ * Build the body of the message in the appropriate format.
+ * @private
+ * @returns void
+ */
+ function BuildBody() {
+ $this->CheckChanges();
+
+ // Determine line endings for message
+ if($this->Mail->ContentType == "text/html" || strlen($this->Mail->AltBody) > 0)
+ {
+ $eol = "
";
+ $bullet = "";
+ $bullet_start = "";
+ }
+ else
+ {
+ $eol = "\n";
+ $bullet = " - ";
+ $bullet_start = "";
+ $bullet_end = "";
+ }
+
+ $ReportBody = "";
+
+ $ReportBody .= "---------------------" . $eol;
+ $ReportBody .= "Unit Test Information" . $eol;
+ $ReportBody .= "---------------------" . $eol;
+ $ReportBody .= "phpmailer version: " . $this->Mail->Version . $eol;
+ $ReportBody .= "Content Type: " . $this->Mail->ContentType . $eol;
+
+ if(strlen($this->Mail->Host) > 0)
+ $ReportBody .= "Host: " . $this->Mail->Host . $eol;
+
+ // If attachments then create an attachment list
+ if(count($this->Mail->attachment) > 0)
+ {
+ $ReportBody .= "Attachments:" . $eol;
+ $ReportBody .= $bullet_start;
+ for($i = 0; $i < count($this->Mail->attachment); $i++)
+ {
+ $ReportBody .= $bullet . "Name: " . $this->Mail->attachment[$i][1] . ", ";
+ $ReportBody .= "Encoding: " . $this->Mail->attachment[$i][3] . ", ";
+ $ReportBody .= "Type: " . $this->Mail->attachment[$i][4] . $eol;
+ }
+ $ReportBody .= $bullet_end . $eol;
+ }
+
+ // If there are changes then list them
+ if(count($this->ChangeLog) > 0)
+ {
+ $ReportBody .= "Changes" . $eol;
+ $ReportBody .= "-------" . $eol;
+
+ $ReportBody .= $bullet_start;
+ for($i = 0; $i < count($this->ChangeLog); $i++)
+ {
+ $ReportBody .= $bullet . $this->ChangeLog[$i][0] . " was changed to [" .
+ $this->ChangeLog[$i][1] . "]" . $eol;
+ }
+ $ReportBody .= $bullet_end . $eol . $eol;
+ }
+
+ // If there are notes then list them
+ if(count($this->NoteLog) > 0)
+ {
+ $ReportBody .= "Notes" . $eol;
+ $ReportBody .= "-----" . $eol;
+
+ $ReportBody .= $bullet_start;
+ for($i = 0; $i < count($this->NoteLog); $i++)
+ {
+ $ReportBody .= $bullet . $this->NoteLog[$i] . $eol;
+ }
+ $ReportBody .= $bullet_end;
+ }
+
+ // Re-attach the original body
+ $this->Mail->Body .= $eol . $eol . $ReportBody;
+ }
+
+ /**
+ * Check which default settings have been changed for the report.
+ * @private
+ * @returns void
+ */
+ function CheckChanges() {
+ if($this->Mail->Priority != 3)
+ $this->AddChange("Priority", $this->Mail->Priority);
+ if($this->Mail->Encoding != "8bit")
+ $this->AddChange("Encoding", $this->Mail->Encoding);
+ if($this->Mail->CharSet != "iso-8859-1")
+ $this->AddChange("CharSet", $this->Mail->CharSet);
+ if($this->Mail->Sender != "")
+ $this->AddChange("Sender", $this->Mail->Sender);
+ if($this->Mail->WordWrap != 0)
+ $this->AddChange("WordWrap", $this->Mail->WordWrap);
+ if($this->Mail->Mailer != "mail")
+ $this->AddChange("Mailer", $this->Mail->Mailer);
+ if($this->Mail->Port != 25)
+ $this->AddChange("Port", $this->Mail->Port);
+ if($this->Mail->Helo != "localhost.localdomain")
+ $this->AddChange("Helo", $this->Mail->Helo);
+ if($this->Mail->SMTPAuth)
+ $this->AddChange("SMTPAuth", "true");
+ }
+
+ /**
+ * Adds a change entry.
+ * @private
+ * @returns void
+ */
+ function AddChange($sName, $sNewValue) {
+ $cur = count($this->ChangeLog);
+ $this->ChangeLog[$cur][0] = $sName;
+ $this->ChangeLog[$cur][1] = $sNewValue;
+ }
+
+ /**
+ * Adds a simple note to the message.
+ * @public
+ * @returns void
+ */
+ function AddNote($sValue) {
+ $this->NoteLog[] = $sValue;
+ }
+
+ /**
+ * Adds all of the addresses
+ * @public
+ * @returns void
+ */
+ function SetAddress($sAddress, $sName = "", $sType = "to") {
+ switch($sType)
+ {
+ case "to":
+ $this->Mail->AddAddress($sAddress, $sName);
+ break;
+ case "cc":
+ $this->Mail->AddCC($sAddress, $sName);
+ break;
+ case "bcc":
+ $this->Mail->AddBCC($sAddress, $sName);
+ break;
+ }
+ }
+
+ /////////////////////////////////////////////////
+ // UNIT TESTS
+ /////////////////////////////////////////////////
+
+ /**
+ * Try a plain message.
+ */
+ function test_WordWrap() {
+
+ $this->Mail->WordWrap = 40;
+ $my_body = "Here is the main body of this message. It should " .
+ "be quite a few lines. It should be wrapped at the " .
+ "40 characters. Make sure that it is.";
+ $nBodyLen = strlen($my_body);
+ $my_body .= "\n\nThis is the above body length: " . $nBodyLen;
+
+ $this->Mail->Body = $my_body;
+ $this->Mail->Subject .= ": Wordwrap";
+
+ $this->BuildBody();
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+ }
+
+ /**
+ * Try a plain message.
+ */
+ function test_Low_Priority() {
+
+ $this->Mail->Priority = 5;
+ $this->Mail->Body = "Here is the main body. There should be " .
+ "a reply to address in this message.";
+ $this->Mail->Subject .= ": Low Priority";
+ $this->Mail->AddReplyTo("nobody@nobody.com", "Nobody (Unit Test)");
+
+ $this->BuildBody();
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+ }
+
+ /**
+ * Simple plain file attachment test.
+ */
+ function test_Multiple_Plain_FileAttachment() {
+
+ $this->Mail->Body = "Here is the text body";
+ $this->Mail->Subject .= ": Plain + Multiple FileAttachments";
+
+ if(!$this->Mail->AddAttachment("test.png"))
+ {
+ $this->assert(false, $this->Mail->ErrorInfo);
+ return;
+ }
+
+ if(!$this->Mail->AddAttachment("phpmailer_test.php", "test.txt"))
+ {
+ $this->assert(false, $this->Mail->ErrorInfo);
+ return;
+ }
+
+ $this->BuildBody();
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+ }
+
+ /**
+ * Simple plain string attachment test.
+ */
+ function test_Plain_StringAttachment() {
+
+ $this->Mail->Body = "Here is the text body";
+ $this->Mail->Subject .= ": Plain + StringAttachment";
+
+ $sAttachment = "These characters are the content of the " .
+ "string attachment.\nThis might be taken from a ".
+ "database or some other such thing. ";
+
+ $this->Mail->AddStringAttachment($sAttachment, "string_attach.txt");
+
+ $this->BuildBody();
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+ }
+
+ /**
+ * Plain quoted-printable message.
+ */
+ function test_Quoted_Printable() {
+
+ $this->Mail->Body = "Here is the main body";
+ $this->Mail->Subject .= ": Plain + Quoted-printable";
+ $this->Mail->Encoding = "quoted-printable";
+
+ $this->BuildBody();
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+ }
+
+ /**
+ * Try a plain message.
+ */
+ function test_Html() {
+
+ $this->Mail->IsHTML(true);
+ $this->Mail->Subject .= ": HTML only";
+
+ $this->Mail->Body = "This is a test message written in HTML. " .
+ "Go to " .
+ "http://phpmailer.sourceforge.net/ for new versions of " .
+ "phpmailer. Thank you!";
+
+ $this->BuildBody();
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+ }
+
+ /**
+ * Simple HTML and attachment test
+ */
+ function test_HTML_Attachment() {
+
+ $this->Mail->Body = "This is the HTML part of the email.";
+ $this->Mail->Subject .= ": HTML + Attachment";
+ $this->Mail->IsHTML(true);
+
+ if(!$this->Mail->AddAttachment("phpmailer_test.php", "test_attach.txt"))
+ {
+ $this->assert(false, $this->Mail->ErrorInfo);
+ return;
+ }
+
+ $this->BuildBody();
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+ }
+
+ /**
+ * An embedded attachment test.
+ */
+ function test_Embedded_Image() {
+
+ $this->Mail->Body = "Embedded Image: " .
+ "Here is an image!";
+ $this->Mail->Subject .= ": Embedded Image";
+ $this->Mail->IsHTML(true);
+
+ if(!$this->Mail->AddEmbeddedImage("test.png", "my-attach", "test.png",
+ "base64", "image/png"))
+ {
+ $this->assert(false, $this->Mail->ErrorInfo);
+ return;
+ }
+
+ $this->BuildBody();
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+ }
+
+ /**
+ * An embedded attachment test.
+ */
+ function test_Multi_Embedded_Image() {
+
+ $this->Mail->Body = "Embedded Image: " .
+ "Here is an image!";
+ $this->Mail->Subject .= ": Embedded Image + Attachment";
+ $this->Mail->IsHTML(true);
+
+ if(!$this->Mail->AddEmbeddedImage("test.png", "my-attach", "test.png",
+ "base64", "image/png"))
+ {
+ $this->assert(false, $this->Mail->ErrorInfo);
+ return;
+ }
+
+ if(!$this->Mail->AddAttachment("phpmailer_test.php", "test.txt"))
+ {
+ $this->assert(false, $this->Mail->ErrorInfo);
+ return;
+ }
+
+ $this->BuildBody();
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+ }
+
+ /**
+ * Simple multipart/alternative test.
+ */
+ function test_AltBody() {
+
+ $this->Mail->Body = "This is the HTML part of the email.";
+ $this->Mail->AltBody = "Here is the text body of this message. " .
+ "It should be quite a few lines. It should be wrapped at the " .
+ "40 characters. Make sure that it is.";
+ $this->Mail->WordWrap = 40;
+ $this->AddNote("This is a mulipart alternative email");
+ $this->Mail->Subject .= ": AltBody + Word Wrap";
+
+ $this->BuildBody();
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+ }
+
+ /**
+ * Simple HTML and attachment test
+ */
+ function test_AltBody_Attachment() {
+
+ $this->Mail->Body = "This is the HTML part of the email.";
+ $this->Mail->AltBody = "This is the text part of the email.";
+ $this->Mail->Subject .= ": AltBody + Attachment";
+ $this->Mail->IsHTML(true);
+
+ if(!$this->Mail->AddAttachment("phpmailer_test.php", "test_attach.txt"))
+ {
+ $this->assert(false, $this->Mail->ErrorInfo);
+ return;
+ }
+
+ $this->BuildBody();
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+
+ $fp = fopen("message.txt", "w");
+ fwrite($fp, $this->Mail->CreateHeader() . $this->Mail->CreateBody());
+ fclose($fp);
+ }
+
+ function test_MultipleSend() {
+ $this->Mail->Body = "Sending two messages without keepalive";
+ $this->BuildBody();
+ $subject = $this->Mail->Subject;
+
+ $this->Mail->Subject = $subject . ": SMTP 1";
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+
+ $this->Mail->Subject = $subject . ": SMTP 2";
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+ }
+
+ function test_SmtpKeepAlive() {
+ $this->Mail->Body = "This was done using the SMTP keep-alive.";
+ $this->BuildBody();
+ $subject = $this->Mail->Subject;
+
+ $this->Mail->SMTPKeepAlive = true;
+ $this->Mail->Subject = $subject . ": SMTP keep-alive 1";
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+
+ $this->Mail->Subject = $subject . ": SMTP keep-alive 2";
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+ $this->Mail->SmtpClose();
+ }
+
+ /**
+ * Tests this denial of service attack:
+ * http://www.cybsec.com/vuln/PHPMailer-DOS.pdf
+ */
+ function test_DenialOfServiceAttack() {
+ $this->Mail->Body = "This should no longer cause a denial of service.";
+ $this->BuildBody();
+
+ $this->Mail->Subject = str_repeat("A", 998);
+ $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+ }
+
+ function test_Error() {
+ $this->Mail->Subject .= ": This should be sent";
+ $this->BuildBody();
+ $this->Mail->ClearAllRecipients(); // no addresses should cause an error
+ $this->assert($this->Mail->IsError() == false, "Error found");
+ $this->assert($this->Mail->Send() == false, "Send succeeded");
+ $this->assert($this->Mail->IsError(), "No error found");
+ $this->assertEquals('You must provide at least one ' .
+ 'recipient email address.', $this->Mail->ErrorInfo);
+ $this->Mail->AddAddress(get("mail_to"));
+ $this->assert($this->Mail->Send(), "Send failed");
+ }
+}
+
+/**
+ * Create and run test instance.
+ */
+
+if(isset($HTTP_GET_VARS))
+ $global_vars = $HTTP_GET_VARS;
+else
+ $global_vars = $_REQUEST;
+
+if(isset($global_vars["submitted"]))
+{
+ echo "Test results:
";
+ $suite = new TestSuite( "phpmailerTest" );
+
+ $testRunner = new TestRunner;
+ $testRunner->run($suite);
+ echo "
";
+}
+
+function get($sName) {
+ global $global_vars;
+ if(isset($global_vars[$sName]))
+ return $global_vars[$sName];
+ else
+ return "";
+}
+
+?>
+
+
+
+phpmailer Unit Test
+By entering a SMTP hostname it will automatically perform tests with SMTP.
+
+
+
+
diff --git a/inc/classes/third_party/php_mailer/test/phpunit.php b/inc/classes/third_party/php_mailer/test/phpunit.php
index e0af5e69..8c7256e3 100644
--- a/inc/classes/third_party/php_mailer/test/phpunit.php
+++ b/inc/classes/third_party/php_mailer/test/phpunit.php
@@ -1,378 +1,378 @@
-
-// OntoSys, Inc
-//
-// $Id$
-
-// Copyright (c) 2000 Fred Yankowski
-
-// Permission is hereby granted, free of charge, to any person
-// obtaining a copy of this software and associated documentation
-// files (the "Software"), to deal in the Software without
-// restriction, including without limitation the rights to use, copy,
-// modify, merge, publish, distribute, sublicense, and/or sell copies
-// of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
-// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-//
-error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE |
- E_CORE_ERROR | E_CORE_WARNING);
-
-/*
-interface Test {
- function run(&$aTestResult);
- function countTestCases();
-}
-*/
-
-function trace($msg) {
- return;
- print($msg);
- flush();
-}
-
-
-class phpUnitException {
- /* Emulate a Java exception, sort of... */
- var $message;
- var $type;
- function phpUnitException($message, $type = 'FAILURE') {
- $this->message = $message;
- $this->type = $type;
- }
- function getMessage() {
- return $this->message;
- }
-}
-
-class Assert {
- function assert($boolean, $message=0) {
- if (! $boolean)
- $this->fail($message);
- }
-
- function assertEquals($expected, $actual, $message=0) {
- if ($expected != $actual) {
- $this->failNotEquals($expected, $actual, "expected", $message);
- }
- }
-
- function assertRegexp($regexp, $actual, $message=false) {
- if (! preg_match($regexp, $actual)) {
- $this->failNotEquals($regexp, $actual, "pattern", $message);
- }
- }
-
- function failNotEquals($expected, $actual, $expected_label, $message=0) {
- // Private function for reporting failure to match.
- $str = $message ? ($message . ' ') : '';
- $str .= "($expected_label/actual)
";
- $htmlExpected = htmlspecialchars($expected);
- $htmlActual = htmlspecialchars($actual);
- $str .= sprintf("%s\n--------\n%s
",
- $htmlExpected, $htmlActual);
- $this->fail($str);
- }
-}
-
-class TestCase extends Assert /* implements Test */ {
- /* Defines context for running tests. Specific context -- such as
- instance variables, global variables, global state -- is defined
- by creating a subclass that specializes the setUp() and
- tearDown() methods. A specific test is defined by a subclass
- that specializes the runTest() method. */
- var $fName;
- var $fResult;
- var $fExceptions = array();
-
- function TestCase($name) {
- $this->fName = $name;
- }
-
- function run($testResult=0) {
- /* Run this single test, by calling the run() method of the
- TestResult object which will in turn call the runBare() method
- of this object. That complication allows the TestResult object
- to do various kinds of progress reporting as it invokes each
- test. Create/obtain a TestResult object if none was passed in.
- Note that if a TestResult object was passed in, it must be by
- reference. */
- if (! $testResult)
- $testResult = $this->_createResult();
- $this->fResult = $testResult;
- $testResult->run(&$this);
- $this->fResult = 0;
- return $testResult;
- }
-
- function countTestCases() {
- return 1;
- }
-
- function runTest() {
- $name = $this->name();
- // Since isset($this->$name) is false, no way to run defensive checks
- $this->$name();
- }
-
- function setUp() /* expect override */ {
- //print("TestCase::setUp()
\n");
- }
-
- function tearDown() /* possible override */ {
- //print("TestCase::tearDown()
\n");
- }
-
- ////////////////////////////////////////////////////////////////
-
-
- function _createResult() /* protected */ {
- /* override this to use specialized subclass of TestResult */
- return new TestResult;
- }
-
- function fail($message=0) {
- //printf("TestCase::fail(%s)
\n", ($message) ? $message : '');
- /* JUnit throws AssertionFailedError here. We just record the
- failure and carry on */
- $this->fExceptions[] = new Exception(&$message);
- }
-
- function error($message) {
- /* report error that requires correction in the test script
- itself, or (heaven forbid) in this testing infrastructure */
- printf('ERROR: ' . $message . '
');
- $this->fResult->stop();
- }
-
- function failed() {
- return count($this->fExceptions);
- }
-
- function getExceptions() {
- return $this->fExceptions;
- }
-
- function name() {
- return $this->fName;
- }
-
- function runBare() {
- $this->setup();
- $this->runTest();
- $this->tearDown();
- }
-}
-
-
-class TestSuite /* implements Test */ {
- /* Compose a set of Tests (instances of TestCase or TestSuite), and
- run them all. */
- var $fTests = array();
-
- function TestSuite($classname=false) {
- if ($classname) {
- // Find all methods of the given class whose name starts with
- // "test" and add them to the test suite. We are just _barely_
- // able to do this with PHP's limited introspection... Note
- // that PHP seems to store method names in lower case, and we
- // have to avoid the constructor function for the TestCase class
- // superclass. This will fail when $classname starts with
- // "Test" since that will have a constructor method that will
- // get matched below and then treated (incorrectly) as a test
- // method. So don't name any TestCase subclasses as "Test..."!
- if (floor(phpversion()) >= 4) {
- // PHP4 introspection, submitted by Dylan Kuhn
- $names = get_class_methods($classname);
- while (list($key, $method) = each($names)) {
- if (preg_match('/^test/', $method) && $method != "testcase") {
- $this->addTest(new $classname($method));
- }
- }
- }
- else {
- $dummy = new $classname("dummy");
- $names = (array) $dummy;
- while (list($key, $value) = each($names)) {
- $type = gettype($value);
- if ($type == "user function" && preg_match('/^test/', $key)
- && $key != "testcase") {
- $this->addTest(new $classname($key));
- }
- }
- }
- }
- }
-
- function addTest($test) {
- /* Add TestCase or TestSuite to this TestSuite */
- $this->fTests[] = $test;
- }
-
- function run(&$testResult) {
- /* Run all TestCases and TestSuites comprising this TestSuite,
- accumulating results in the given TestResult object. */
- reset($this->fTests);
- while (list($na, $test) = each($this->fTests)) {
- if ($testResult->shouldStop())
- break;
- $test->run(&$testResult);
- }
- }
-
- function countTestCases() {
- /* Number of TestCases comprising this TestSuite (including those
- in any constituent TestSuites) */
- $count = 0;
- reset($fTests);
- while (list($na, $test_case) = each($this->fTests)) {
- $count += $test_case->countTestCases();
- }
- return $count;
- }
-}
-
-
-class TestFailure {
- /* Record failure of a single TestCase, associating it with the
- exception(s) that occurred */
- var $fFailedTestName;
- var $fExceptions;
-
- function TestFailure(&$test, &$exceptions) {
- $this->fFailedTestName = $test->name();
- $this->fExceptions = $exceptions;
- }
-
- function getExceptions() {
- return $this->fExceptions;
- }
- function getTestName() {
- return $this->fFailedTestName;
- }
-}
-
-
-class TestResult {
- /* Collect the results of running a set of TestCases. */
- var $fFailures = array();
- var $fRunTests = 0;
- var $fStop = false;
-
- function TestResult() { }
-
- function _endTest($test) /* protected */ {
- /* specialize this for end-of-test action, such as progress
- reports */
- }
-
- function getFailures() {
- return $this->fFailures;
- }
-
- function run($test) {
- /* Run a single TestCase in the context of this TestResult */
- $this->_startTest($test);
- $this->fRunTests++;
-
- $test->runBare();
-
- /* this is where JUnit would catch AssertionFailedError */
- $exceptions = $test->getExceptions();
- if ($exceptions)
- $this->fFailures[] = new TestFailure(&$test, &$exceptions);
- $this->_endTest($test);
- }
-
- function countTests() {
- return $this->fRunTests;
- }
-
- function shouldStop() {
- return $this->fStop;
- }
-
- function _startTest($test) /* protected */ {
- /* specialize this for start-of-test actions */
- }
-
- function stop() {
- /* set indication that the test sequence should halt */
- $fStop = true;
- }
-
- function countFailures() {
- return count($this->fFailures);
- }
-}
-
-
-class TextTestResult extends TestResult {
- /* Specialize TestResult to produce text/html report */
- function TextTestResult() {
- $this->TestResult(); // call superclass constructor
- }
-
- function report() {
- /* report result of test run */
- $nRun = $this->countTests();
- $nFailures = $this->countFailures();
- printf("%s test%s run
", $nRun, ($nRun == 1) ? '' : 's');
- printf("%s failure%s.
\n", $nFailures, ($nFailures == 1) ? '' : 's');
- if ($nFailures == 0)
- return;
-
- print("
\n");
- $failures = $this->getFailures();
- while (list($i, $failure) = each($failures)) {
- $failedTestName = $failure->getTestName();
- printf("- %s\n", $failedTestName);
-
- $exceptions = $failure->getExceptions();
- print("
");
- while (list($na, $exception) = each($exceptions))
- printf("- %s\n", $exception->getMessage());
- print("
");
- }
- print("
\n");
- }
-
- function _startTest($test) {
- printf("%s ", $test->name());
- flush();
- }
-
- function _endTest($test) {
- $outcome = $test->failed()
- ? "FAIL"
- : "ok";
- printf("$outcome
\n");
- flush();
- }
-}
-
-
-class TestRunner {
- /* Run a suite of tests and report results. */
- function run($suite) {
- $result = new TextTestResult;
- $suite->run($result);
- $result->report();
- }
-}
-
-?>
+
+// OntoSys, Inc
+//
+// $Id$
+
+// Copyright (c) 2000 Fred Yankowski
+
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use, copy,
+// modify, merge, publish, distribute, sublicense, and/or sell copies
+// of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+// SOFTWARE.
+//
+error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE |
+ E_CORE_ERROR | E_CORE_WARNING);
+
+/*
+interface Test {
+ function run(&$aTestResult);
+ function countTestCases();
+}
+*/
+
+function trace($msg) {
+ return;
+ print($msg);
+ flush();
+}
+
+
+class phpUnitException {
+ /* Emulate a Java exception, sort of... */
+ var $message;
+ var $type;
+ function phpUnitException($message, $type = 'FAILURE') {
+ $this->message = $message;
+ $this->type = $type;
+ }
+ function getMessage() {
+ return $this->message;
+ }
+}
+
+class Assert {
+ function assert($boolean, $message=0) {
+ if (! $boolean)
+ $this->fail($message);
+ }
+
+ function assertEquals($expected, $actual, $message=0) {
+ if ($expected != $actual) {
+ $this->failNotEquals($expected, $actual, "expected", $message);
+ }
+ }
+
+ function assertRegexp($regexp, $actual, $message=false) {
+ if (! preg_match($regexp, $actual)) {
+ $this->failNotEquals($regexp, $actual, "pattern", $message);
+ }
+ }
+
+ function failNotEquals($expected, $actual, $expected_label, $message=0) {
+ // Private function for reporting failure to match.
+ $str = $message ? ($message . ' ') : '';
+ $str .= "($expected_label/actual)
";
+ $htmlExpected = htmlspecialchars($expected);
+ $htmlActual = htmlspecialchars($actual);
+ $str .= sprintf("%s\n--------\n%s
",
+ $htmlExpected, $htmlActual);
+ $this->fail($str);
+ }
+}
+
+class TestCase extends Assert /* implements Test */ {
+ /* Defines context for running tests. Specific context -- such as
+ instance variables, global variables, global state -- is defined
+ by creating a subclass that specializes the setUp() and
+ tearDown() methods. A specific test is defined by a subclass
+ that specializes the runTest() method. */
+ var $fName;
+ var $fResult;
+ var $fExceptions = array();
+
+ function TestCase($name) {
+ $this->fName = $name;
+ }
+
+ function run($testResult=0) {
+ /* Run this single test, by calling the run() method of the
+ TestResult object which will in turn call the runBare() method
+ of this object. That complication allows the TestResult object
+ to do various kinds of progress reporting as it invokes each
+ test. Create/obtain a TestResult object if none was passed in.
+ Note that if a TestResult object was passed in, it must be by
+ reference. */
+ if (! $testResult)
+ $testResult = $this->_createResult();
+ $this->fResult = $testResult;
+ $testResult->run(&$this);
+ $this->fResult = 0;
+ return $testResult;
+ }
+
+ function countTestCases() {
+ return 1;
+ }
+
+ function runTest() {
+ $name = $this->name();
+ // Since isset($this->$name) is false, no way to run defensive checks
+ $this->$name();
+ }
+
+ function setUp() /* expect override */ {
+ //print("TestCase::setUp()
\n");
+ }
+
+ function tearDown() /* possible override */ {
+ //print("TestCase::tearDown()
\n");
+ }
+
+ ////////////////////////////////////////////////////////////////
+
+
+ function _createResult() /* protected */ {
+ /* override this to use specialized subclass of TestResult */
+ return new TestResult;
+ }
+
+ function fail($message=0) {
+ //printf("TestCase::fail(%s)
\n", ($message) ? $message : '');
+ /* JUnit throws AssertionFailedError here. We just record the
+ failure and carry on */
+ $this->fExceptions[] = new Exception(&$message);
+ }
+
+ function error($message) {
+ /* report error that requires correction in the test script
+ itself, or (heaven forbid) in this testing infrastructure */
+ printf('ERROR: ' . $message . '
');
+ $this->fResult->stop();
+ }
+
+ function failed() {
+ return count($this->fExceptions);
+ }
+
+ function getExceptions() {
+ return $this->fExceptions;
+ }
+
+ function name() {
+ return $this->fName;
+ }
+
+ function runBare() {
+ $this->setup();
+ $this->runTest();
+ $this->tearDown();
+ }
+}
+
+
+class TestSuite /* implements Test */ {
+ /* Compose a set of Tests (instances of TestCase or TestSuite), and
+ run them all. */
+ var $fTests = array();
+
+ function TestSuite($classname=false) {
+ if ($classname) {
+ // Find all methods of the given class whose name starts with
+ // "test" and add them to the test suite. We are just _barely_
+ // able to do this with PHP's limited introspection... Note
+ // that PHP seems to store method names in lower case, and we
+ // have to avoid the constructor function for the TestCase class
+ // superclass. This will fail when $classname starts with
+ // "Test" since that will have a constructor method that will
+ // get matched below and then treated (incorrectly) as a test
+ // method. So don't name any TestCase subclasses as "Test..."!
+ if (floor(phpversion()) >= 4) {
+ // PHP4 introspection, submitted by Dylan Kuhn
+ $names = get_class_methods($classname);
+ while (list($key, $method) = each($names)) {
+ if (preg_match('/^test/', $method) && $method != "testcase") {
+ $this->addTest(new $classname($method));
+ }
+ }
+ }
+ else {
+ $dummy = new $classname("dummy");
+ $names = (array) $dummy;
+ while (list($key, $value) = each($names)) {
+ $type = gettype($value);
+ if ($type == "user function" && preg_match('/^test/', $key)
+ && $key != "testcase") {
+ $this->addTest(new $classname($key));
+ }
+ }
+ }
+ }
+ }
+
+ function addTest($test) {
+ /* Add TestCase or TestSuite to this TestSuite */
+ $this->fTests[] = $test;
+ }
+
+ function run(&$testResult) {
+ /* Run all TestCases and TestSuites comprising this TestSuite,
+ accumulating results in the given TestResult object. */
+ reset($this->fTests);
+ while (list($na, $test) = each($this->fTests)) {
+ if ($testResult->shouldStop())
+ break;
+ $test->run(&$testResult);
+ }
+ }
+
+ function countTestCases() {
+ /* Number of TestCases comprising this TestSuite (including those
+ in any constituent TestSuites) */
+ $count = 0;
+ reset($fTests);
+ while (list($na, $test_case) = each($this->fTests)) {
+ $count += $test_case->countTestCases();
+ }
+ return $count;
+ }
+}
+
+
+class TestFailure {
+ /* Record failure of a single TestCase, associating it with the
+ exception(s) that occurred */
+ var $fFailedTestName;
+ var $fExceptions;
+
+ function TestFailure(&$test, &$exceptions) {
+ $this->fFailedTestName = $test->name();
+ $this->fExceptions = $exceptions;
+ }
+
+ function getExceptions() {
+ return $this->fExceptions;
+ }
+ function getTestName() {
+ return $this->fFailedTestName;
+ }
+}
+
+
+class TestResult {
+ /* Collect the results of running a set of TestCases. */
+ var $fFailures = array();
+ var $fRunTests = 0;
+ var $fStop = false;
+
+ function TestResult() { }
+
+ function _endTest($test) /* protected */ {
+ /* specialize this for end-of-test action, such as progress
+ reports */
+ }
+
+ function getFailures() {
+ return $this->fFailures;
+ }
+
+ function run($test) {
+ /* Run a single TestCase in the context of this TestResult */
+ $this->_startTest($test);
+ $this->fRunTests++;
+
+ $test->runBare();
+
+ /* this is where JUnit would catch AssertionFailedError */
+ $exceptions = $test->getExceptions();
+ if ($exceptions)
+ $this->fFailures[] = new TestFailure(&$test, &$exceptions);
+ $this->_endTest($test);
+ }
+
+ function countTests() {
+ return $this->fRunTests;
+ }
+
+ function shouldStop() {
+ return $this->fStop;
+ }
+
+ function _startTest($test) /* protected */ {
+ /* specialize this for start-of-test actions */
+ }
+
+ function stop() {
+ /* set indication that the test sequence should halt */
+ $fStop = true;
+ }
+
+ function countFailures() {
+ return count($this->fFailures);
+ }
+}
+
+
+class TextTestResult extends TestResult {
+ /* Specialize TestResult to produce text/html report */
+ function TextTestResult() {
+ $this->TestResult(); // call superclass constructor
+ }
+
+ function report() {
+ /* report result of test run */
+ $nRun = $this->countTests();
+ $nFailures = $this->countFailures();
+ printf("%s test%s run
", $nRun, ($nRun == 1) ? '' : 's');
+ printf("%s failure%s.
\n", $nFailures, ($nFailures == 1) ? '' : 's');
+ if ($nFailures == 0)
+ return;
+
+ print("
\n");
+ $failures = $this->getFailures();
+ while (list($i, $failure) = each($failures)) {
+ $failedTestName = $failure->getTestName();
+ printf("- %s\n", $failedTestName);
+
+ $exceptions = $failure->getExceptions();
+ print("
");
+ while (list($na, $exception) = each($exceptions))
+ printf("- %s\n", $exception->getMessage());
+ print("
");
+ }
+ print("
\n");
+ }
+
+ function _startTest($test) {
+ printf("%s ", $test->name());
+ flush();
+ }
+
+ function _endTest($test) {
+ $outcome = $test->failed()
+ ? "FAIL"
+ : "ok";
+ printf("$outcome
\n");
+ flush();
+ }
+}
+
+
+class TestRunner {
+ /* Run a suite of tests and report results. */
+ function run($suite) {
+ $result = new TextTestResult;
+ $suite->run($result);
+ $result->report();
+ }
+}
+
+?>
diff --git a/prop-set.sh b/prop-set.sh
index f98e2de0..d37140bc 100755
--- a/prop-set.sh
+++ b/prop-set.sh
@@ -1,8 +1,11 @@
#!/bin/sh
+# Keywords
find -type f -name "*.php" -exec svn propset svn:keywords "Author Id Revision HeadURL Date Tag" {} \;
find -type f -name "*.xml" -exec svn propset svn:keywords "Author Id Revision HeadURL Date Tag" {} \;
find -type f -name "*.ctp" -exec svn propset svn:keywords "Author Id Revision HeadURL Date Tag" {} \;
+
+# MIME type
find -type f -name "*.php" -exec svn propset svn:mime-type "text/plain" {} \;
find -type f -name "*.ctp" -exec svn propset svn:mime-type "text/plain" {} \;
find -type f -name "*.jpg" -exec svn propset svn:mime-type "image/jpeg" {} \;
@@ -19,6 +22,14 @@ find -type f -name .htaccess -exec svn propdel svn:keywords {} \;
find -type f -name .htaccess -exec svn propdel svn:executable {} \;
find -type f -name .htaccess -exec svn propset svn:mime-type "text/plain" {} \;
+# eol-style
+find -type f -name "*.php" -exec svn propset svn:eol-style "native" {} \;
+find -type f -name "*.ctp" -exec svn propset svn:eol-style "native" {} \;
+find -type f -name "*.html" -exec svn propset svn:eol-style "native" {} \;
+find -type f -name "*.xml" -exec svn propset svn:eol-style "native" {} \;
+find -type f -name "*.txt" -exec svn propset svn:eol-style "native" {} \;
+find -type f -name "*.lng" -exec svn propset svn:eol-style "native" {} \;
+
# Shell scripts can be executable
echo "$0: propset svn:executable on *.sh"
find -type f -name "*.sh" | xargs svn propset svn:executable 2>/dev/null
--
2.39.5