You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ts...@apache.org on 2018/12/14 06:02:25 UTC

[logging-log4cxx] branch master updated: LOGCXX-502: I prefer tabs over spaces and somewhat strict indentation and the former settings lead to alignment without honoring the indentation settings. So if line 1 was not properly indented, all lines below weren't as well.

This is an automated email from the ASF dual-hosted git repository.

tschoening pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git


The following commit(s) were added to refs/heads/master by this push:
     new 171e980  LOGCXX-502: I prefer tabs over spaces and somewhat strict indentation and the former settings lead to alignment without honoring the indentation settings. So if line 1 was not properly indented, all lines below weren't as well.
171e980 is described below

commit 171e980fdd31e09e36841cf82adcebfa12bcd6d0
Author: Thorsten Schöning <ts...@am-soft.de>
AuthorDate: Fri Dec 14 07:02:13 2018 +0100

    LOGCXX-502: I prefer tabs over spaces and somewhat strict indentation and the former settings lead to alignment without honoring the indentation settings. So if line 1 was not properly indented, all lines below weren't as well.
    
        if (StringHelper::equalsIgnoreCase(option,
                                           LOG4CXX_STR("MININDEX"),
                                           LOG4CXX_STR("minindex")))
    
    vs.
    
    	if (StringHelper::equalsIgnoreCase(option,
    			LOG4CXX_STR("MININDEX"),
    			LOG4CXX_STR("minindex")))
    
    vs.
    
        if (StringHelper::equalsIgnoreCase( option,
                                            LOG4CXX_STR("MININDEX"),
                                            LOG4CXX_STR("minindex")))
    
    The latter is what I prefer, but can't seem to be configured at all and especially not using tabs.
---
 .astylerc                                          |    6 +-
 src/main/cpp/action.cpp                            |   42 +-
 src/main/cpp/andfilter.cpp                         |   56 +-
 src/main/cpp/appenderattachableimpl.cpp            |  176 +-
 src/main/cpp/appenderskeleton.cpp                  |  196 +-
 src/main/cpp/aprinitializer.cpp                    |   86 +-
 src/main/cpp/asyncappender.cpp                     |  552 ++--
 src/main/cpp/asyncappender_nonblocking.cpp         |  534 ++--
 src/main/cpp/basicconfigurator.cpp                 |   18 +-
 src/main/cpp/bufferedwriter.cpp                    |   44 +-
 src/main/cpp/bytearrayinputstream.cpp              |   26 +-
 src/main/cpp/bytearrayoutputstream.cpp             |   10 +-
 src/main/cpp/bytebuffer.cpp                        |   48 +-
 src/main/cpp/cacheddateformat.cpp                  |  390 +--
 src/main/cpp/charsetdecoder.cpp                    |  780 ++---
 src/main/cpp/charsetencoder.cpp                    |  904 +++---
 src/main/cpp/class.cpp                             |  168 +-
 src/main/cpp/classnamepatternconverter.cpp         |   34 +-
 src/main/cpp/classregistration.cpp                 |    2 +-
 src/main/cpp/condition.cpp                         |   38 +-
 src/main/cpp/consoleappender.cpp                   |  118 +-
 src/main/cpp/cyclicbuffer.cpp                      |  168 +-
 src/main/cpp/dailyrollingfileappender.cpp          |  122 +-
 src/main/cpp/datagrampacket.cpp                    |   12 +-
 src/main/cpp/datagramsocket.cpp                    |  254 +-
 src/main/cpp/date.cpp                              |    8 +-
 src/main/cpp/dateformat.cpp                        |    2 +-
 src/main/cpp/datelayout.cpp                        |  140 +-
 src/main/cpp/datepatternconverter.cpp              |  200 +-
 src/main/cpp/defaultconfigurator.cpp               |  138 +-
 src/main/cpp/defaultloggerfactory.cpp              |    6 +-
 src/main/cpp/defaultrepositoryselector.cpp         |    8 +-
 src/main/cpp/domconfigurator.cpp                   | 1586 +++++-----
 src/main/cpp/exception.cpp                         |  262 +-
 src/main/cpp/fallbackerrorhandler.cpp              |   72 +-
 src/main/cpp/file.cpp                              |  300 +-
 src/main/cpp/fileappender.cpp                      |  478 +--
 src/main/cpp/filedatepatternconverter.cpp          |   18 +-
 src/main/cpp/fileinputstream.cpp                   |  100 +-
 src/main/cpp/filelocationpatternconverter.cpp      |   20 +-
 src/main/cpp/fileoutputstream.cpp                  |  126 +-
 src/main/cpp/filerenameaction.cpp                  |    8 +-
 src/main/cpp/filewatchdog.cpp                      |  110 +-
 src/main/cpp/filter.cpp                            |    8 +-
 src/main/cpp/filterbasedtriggeringpolicy.cpp       |   86 +-
 src/main/cpp/fixedwindowrollingpolicy.cpp          |  484 +--
 src/main/cpp/formattinginfo.cpp                    |   46 +-
 src/main/cpp/fulllocationpatternconverter.cpp      |   30 +-
 src/main/cpp/gzcompressaction.cpp                  |  196 +-
 src/main/cpp/hierarchy.cpp                         |  482 +--
 src/main/cpp/htmllayout.cpp                        |  334 +-
 src/main/cpp/inetaddress.cpp                       |  132 +-
 src/main/cpp/inputstreamreader.cpp                 |   76 +-
 src/main/cpp/integerpatternconverter.cpp           |   28 +-
 src/main/cpp/layout.cpp                            |    6 +-
 src/main/cpp/level.cpp                             |  224 +-
 src/main/cpp/levelmatchfilter.cpp                  |   60 +-
 src/main/cpp/levelpatternconverter.cpp             |   66 +-
 src/main/cpp/levelrangefilter.cpp                  |   84 +-
 src/main/cpp/linelocationpatternconverter.cpp      |   24 +-
 src/main/cpp/lineseparatorpatternconverter.cpp     |   28 +-
 src/main/cpp/literalpatternconverter.cpp           |   38 +-
 src/main/cpp/loader.cpp                            |   18 +-
 src/main/cpp/locale.cpp                            |   14 +-
 src/main/cpp/locationinfo.cpp                      |  258 +-
 src/main/cpp/logger.cpp                            | 1020 +++---
 src/main/cpp/loggermatchfilter.cpp                 |   62 +-
 src/main/cpp/loggerpatternconverter.cpp            |   34 +-
 src/main/cpp/loggingevent.cpp                      |  468 +--
 src/main/cpp/loggingeventpatternconverter.cpp      |   20 +-
 src/main/cpp/loglog.cpp                            |  100 +-
 src/main/cpp/logmanager.cpp                        |  128 +-
 src/main/cpp/logstream.cpp                         |  554 ++--
 src/main/cpp/manualtriggeringpolicy.cpp            |    8 +-
 src/main/cpp/mdc.cpp                               |  260 +-
 src/main/cpp/messagebuffer.cpp                     |  614 ++--
 src/main/cpp/messagepatternconverter.cpp           |   20 +-
 src/main/cpp/methodlocationpatternconverter.cpp    |   20 +-
 src/main/cpp/mutex.cpp                             |  240 +-
 src/main/cpp/nameabbreviator.cpp                   |  548 ++--
 src/main/cpp/namepatternconverter.cpp              |   26 +-
 src/main/cpp/ndc.cpp                               |  414 +--
 src/main/cpp/ndcpatternconverter.cpp               |   26 +-
 src/main/cpp/nteventlogappender.cpp                |  500 +--
 src/main/cpp/objectimpl.cpp                        |   14 +-
 src/main/cpp/objectoutputstream.cpp                |  292 +-
 src/main/cpp/objectptr.cpp                         |   20 +-
 src/main/cpp/obsoleterollingfileappender.cpp       |  148 +-
 src/main/cpp/odbcappender.cpp                      |  502 +--
 src/main/cpp/onlyonceerrorhandler.cpp              |   34 +-
 src/main/cpp/optionconverter.cpp                   |  622 ++--
 src/main/cpp/outputdebugstringappender.cpp         |   12 +-
 src/main/cpp/outputstream.cpp                      |    4 +-
 src/main/cpp/outputstreamwriter.cpp                |   80 +-
 src/main/cpp/patternconverter.cpp                  |   14 +-
 src/main/cpp/patternlayout.cpp                     |  174 +-
 src/main/cpp/patternparser.cpp                     |  648 ++--
 src/main/cpp/pool.cpp                              |   50 +-
 src/main/cpp/properties.cpp                        |  782 ++---
 src/main/cpp/propertiespatternconverter.cpp        |   80 +-
 src/main/cpp/propertyconfigurator.cpp              |  642 ++--
 src/main/cpp/propertyresourcebundle.cpp            |   32 +-
 src/main/cpp/propertysetter.cpp                    |  112 +-
 src/main/cpp/relativetimedateformat.cpp            |   12 +-
 src/main/cpp/relativetimepatternconverter.cpp      |   22 +-
 src/main/cpp/resourcebundle.cpp                    |  182 +-
 src/main/cpp/rollingfileappender.cpp               |  884 +++---
 src/main/cpp/rollingpolicybase.cpp                 |  148 +-
 src/main/cpp/rolloverdescription.cpp               |   24 +-
 src/main/cpp/rootlogger.cpp                        |   24 +-
 src/main/cpp/serversocket.cpp                      |  196 +-
 src/main/cpp/simpledateformat.cpp                  | 1132 +++----
 src/main/cpp/simplelayout.cpp                      |   12 +-
 src/main/cpp/sizebasedtriggeringpolicy.cpp         |   26 +-
 src/main/cpp/smtpappender.cpp                      |  976 +++---
 src/main/cpp/socket.cpp                            |  178 +-
 src/main/cpp/socketappender.cpp                    |  100 +-
 src/main/cpp/socketappenderskeleton.cpp            |  306 +-
 src/main/cpp/sockethubappender.cpp                 |  344 +--
 src/main/cpp/socketoutputstream.cpp                |   32 +-
 src/main/cpp/strftimedateformat.cpp                |   36 +-
 src/main/cpp/stringhelper.cpp                      |  214 +-
 src/main/cpp/stringmatchfilter.cpp                 |   70 +-
 src/main/cpp/stringtokenizer.cpp                   |   38 +-
 src/main/cpp/synchronized.cpp                      |   52 +-
 src/main/cpp/syslogappender.cpp                    |  568 ++--
 src/main/cpp/syslogwriter.cpp                      |   56 +-
 src/main/cpp/system.cpp                            |  158 +-
 src/main/cpp/systemerrwriter.cpp                   |   30 +-
 src/main/cpp/systemoutwriter.cpp                   |   30 +-
 src/main/cpp/telnetappender.cpp                    |  430 +--
 src/main/cpp/threadcxx.cpp                         |  422 +--
 src/main/cpp/threadlocal.cpp                       |   38 +-
 src/main/cpp/threadpatternconverter.cpp            |   20 +-
 src/main/cpp/threadspecificdata.cpp                |  146 +-
 .../cpp/throwableinformationpatternconverter.cpp   |   32 +-
 src/main/cpp/timebasedrollingpolicy.cpp            |  554 ++--
 src/main/cpp/timezone.cpp                          |  402 +--
 src/main/cpp/transcoder.cpp                        |  882 +++---
 src/main/cpp/transform.cpp                         |  178 +-
 src/main/cpp/triggeringpolicy.cpp                  |    4 +-
 src/main/cpp/ttcclayout.cpp                        |   66 +-
 src/main/cpp/writer.cpp                            |    2 +-
 src/main/cpp/writerappender.cpp                    |  346 +--
 src/main/cpp/xmllayout.cpp                         |  226 +-
 src/main/cpp/xmlsocketappender.cpp                 |   98 +-
 src/main/cpp/zipcompressaction.cpp                 |  168 +-
 src/main/include/log4cxx/appender.h                |  164 +-
 src/main/include/log4cxx/appenderskeleton.h        |  372 +--
 src/main/include/log4cxx/asyncappender.h           |  478 +--
 src/main/include/log4cxx/basicconfigurator.h       |   38 +-
 src/main/include/log4cxx/config/propertysetter.h   |   82 +-
 src/main/include/log4cxx/consoleappender.h         |   62 +-
 .../include/log4cxx/dailyrollingfileappender.h     |  100 +-
 src/main/include/log4cxx/db/odbcappender.h         |  440 +--
 src/main/include/log4cxx/defaultconfigurator.h     |   26 +-
 src/main/include/log4cxx/defaultloggerfactory.h    |   20 +-
 src/main/include/log4cxx/file.h                    |  262 +-
 src/main/include/log4cxx/fileappender.h            |  380 +--
 src/main/include/log4cxx/filter/andfilter.h        |   36 +-
 src/main/include/log4cxx/filter/denyallfilter.h    |   46 +-
 src/main/include/log4cxx/filter/expressionfilter.h |   54 +-
 src/main/include/log4cxx/filter/levelmatchfilter.h |   98 +-
 src/main/include/log4cxx/filter/levelrangefilter.h |  170 +-
 .../include/log4cxx/filter/locationinfofilter.h    |   54 +-
 .../include/log4cxx/filter/loggermatchfilter.h     |   98 +-
 src/main/include/log4cxx/filter/mapfilter.h        |   14 +-
 src/main/include/log4cxx/filter/propertyfilter.h   |   32 +-
 .../include/log4cxx/filter/stringmatchfilter.h     |   74 +-
 .../log4cxx/helpers/absolutetimedateformat.h       |    6 +-
 .../log4cxx/helpers/appenderattachableimpl.h       |  156 +-
 src/main/include/log4cxx/helpers/aprinitializer.h  |   54 +-
 .../include/log4cxx/helpers/bufferedoutputstream.h |   38 +-
 src/main/include/log4cxx/helpers/bufferedwriter.h  |   38 +-
 .../include/log4cxx/helpers/bytearrayinputstream.h |   86 +-
 .../log4cxx/helpers/bytearrayoutputstream.h        |   48 +-
 src/main/include/log4cxx/helpers/bytebuffer.h      |   88 +-
 .../include/log4cxx/helpers/cacheddateformat.h     |  372 +--
 src/main/include/log4cxx/helpers/charsetdecoder.h  |  130 +-
 src/main/include/log4cxx/helpers/charsetencoder.h  |  184 +-
 src/main/include/log4cxx/helpers/class.h           |   36 +-
 .../include/log4cxx/helpers/classregistration.h    |   12 +-
 src/main/include/log4cxx/helpers/condition.h       |   56 +-
 src/main/include/log4cxx/helpers/cyclicbuffer.h    |   98 +-
 src/main/include/log4cxx/helpers/datagrampacket.h  |  224 +-
 src/main/include/log4cxx/helpers/datagramsocket.h  |  200 +-
 src/main/include/log4cxx/helpers/date.h            |   38 +-
 src/main/include/log4cxx/helpers/dateformat.h      |   88 +-
 src/main/include/log4cxx/helpers/datelayout.h      |  100 +-
 .../include/log4cxx/helpers/datetimedateformat.h   |   10 +-
 src/main/include/log4cxx/helpers/exception.h       |  238 +-
 src/main/include/log4cxx/helpers/fileinputstream.h |  102 +-
 .../include/log4cxx/helpers/fileoutputstream.h     |   48 +-
 src/main/include/log4cxx/helpers/filewatchdog.h    |   74 +-
 src/main/include/log4cxx/helpers/inetaddress.h     |   78 +-
 src/main/include/log4cxx/helpers/inputstream.h     |   50 +-
 .../include/log4cxx/helpers/inputstreamreader.h    |  100 +-
 src/main/include/log4cxx/helpers/integer.h         |   30 +-
 .../include/log4cxx/helpers/iso8601dateformat.h    |    6 +-
 src/main/include/log4cxx/helpers/loader.h          |    8 +-
 src/main/include/log4cxx/helpers/locale.h          |   28 +-
 src/main/include/log4cxx/helpers/loglog.h          |  118 +-
 src/main/include/log4cxx/helpers/messagebuffer.h   | 1424 ++++-----
 src/main/include/log4cxx/helpers/mutex.h           |   82 +-
 src/main/include/log4cxx/helpers/object.h          |  146 +-
 src/main/include/log4cxx/helpers/objectimpl.h      |   26 +-
 .../include/log4cxx/helpers/objectoutputstream.h   |  104 +-
 src/main/include/log4cxx/helpers/objectptr.h       |  156 +-
 .../include/log4cxx/helpers/onlyonceerrorhandler.h |  116 +-
 src/main/include/log4cxx/helpers/optionconverter.h |  222 +-
 src/main/include/log4cxx/helpers/outputstream.h    |   36 +-
 .../include/log4cxx/helpers/outputstreamwriter.h   |   46 +-
 src/main/include/log4cxx/helpers/pool.h            |   44 +-
 src/main/include/log4cxx/helpers/properties.h      |  278 +-
 .../log4cxx/helpers/propertyresourcebundle.h       |   38 +-
 src/main/include/log4cxx/helpers/reader.h          |   50 +-
 .../log4cxx/helpers/relativetimedateformat.h       |   14 +-
 src/main/include/log4cxx/helpers/resourcebundle.h  |   80 +-
 src/main/include/log4cxx/helpers/serversocket.h    |   46 +-
 .../include/log4cxx/helpers/simpledateformat.h     |   74 +-
 src/main/include/log4cxx/helpers/socket.h          |   58 +-
 .../include/log4cxx/helpers/socketoutputstream.h   |   48 +-
 .../include/log4cxx/helpers/strftimedateformat.h   |   44 +-
 src/main/include/log4cxx/helpers/strictmath.h      |   22 +-
 src/main/include/log4cxx/helpers/stringhelper.h    |   32 +-
 src/main/include/log4cxx/helpers/stringtokenizer.h |   26 +-
 src/main/include/log4cxx/helpers/synchronized.h    |   52 +-
 src/main/include/log4cxx/helpers/syslogwriter.h    |   16 +-
 src/main/include/log4cxx/helpers/system.h          |   18 +-
 src/main/include/log4cxx/helpers/systemerrwriter.h |   42 +-
 src/main/include/log4cxx/helpers/systemoutwriter.h |   40 +-
 src/main/include/log4cxx/helpers/thread.h          |  126 +-
 src/main/include/log4cxx/helpers/threadlocal.h     |   74 +-
 .../include/log4cxx/helpers/threadspecificdata.h   |   44 +-
 src/main/include/log4cxx/helpers/timezone.h        |   44 +-
 src/main/include/log4cxx/helpers/transcoder.h      |  316 +-
 src/main/include/log4cxx/helpers/transform.h       |   50 +-
 src/main/include/log4cxx/helpers/writer.h          |   36 +-
 src/main/include/log4cxx/helpers/xml.h             |   62 +-
 src/main/include/log4cxx/hierarchy.h               |  326 +-
 src/main/include/log4cxx/htmllayout.h              |  200 +-
 src/main/include/log4cxx/layout.h                  |  104 +-
 src/main/include/log4cxx/level.h                   |  490 +--
 src/main/include/log4cxx/logger.h                  | 3246 ++++++++++----------
 src/main/include/log4cxx/logmanager.h              |  298 +-
 src/main/include/log4cxx/logstring.h               |   44 +-
 src/main/include/log4cxx/mdc.h                     |  352 +--
 src/main/include/log4cxx/ndc.h                     |  488 +--
 src/main/include/log4cxx/net/smtpappender.h        |  472 +--
 src/main/include/log4cxx/net/socketappender.h      |   78 +-
 .../include/log4cxx/net/socketappenderskeleton.h   |  308 +-
 src/main/include/log4cxx/net/sockethubappender.h   |  180 +-
 src/main/include/log4cxx/net/syslogappender.h      |  230 +-
 src/main/include/log4cxx/net/telnetappender.h      |  166 +-
 src/main/include/log4cxx/net/xmlsocketappender.h   |   78 +-
 src/main/include/log4cxx/nt/nteventlogappender.h   |  170 +-
 .../include/log4cxx/nt/outputdebugstringappender.h |   26 +-
 .../log4cxx/pattern/classnamepatternconverter.h    |   48 +-
 .../include/log4cxx/pattern/datepatternconverter.h |   86 +-
 .../log4cxx/pattern/filedatepatternconverter.h     |   24 +-
 .../log4cxx/pattern/filelocationpatternconverter.h |   44 +-
 src/main/include/log4cxx/pattern/formattinginfo.h  |  142 +-
 .../log4cxx/pattern/fulllocationpatternconverter.h |   44 +-
 .../log4cxx/pattern/integerpatternconverter.h      |   40 +-
 .../log4cxx/pattern/levelpatternconverter.h        |   44 +-
 .../log4cxx/pattern/linelocationpatternconverter.h |   44 +-
 .../pattern/lineseparatorpatternconverter.h        |   50 +-
 .../log4cxx/pattern/literalpatternconverter.h      |   46 +-
 .../log4cxx/pattern/loggerpatternconverter.h       |   46 +-
 .../log4cxx/pattern/loggingeventpatternconverter.h |   72 +-
 .../log4cxx/pattern/messagepatternconverter.h      |   42 +-
 .../pattern/methodlocationpatternconverter.h       |   44 +-
 src/main/include/log4cxx/pattern/nameabbreviator.h |   68 +-
 .../include/log4cxx/pattern/namepatternconverter.h |   58 +-
 .../include/log4cxx/pattern/ndcpatternconverter.h  |   42 +-
 .../include/log4cxx/pattern/patternconverter.h     |  134 +-
 src/main/include/log4cxx/pattern/patternparser.h   |  214 +-
 .../log4cxx/pattern/propertiespatternconverter.h   |   56 +-
 .../log4cxx/pattern/relativetimepatternconverter.h |   42 +-
 .../log4cxx/pattern/threadpatternconverter.h       |   42 +-
 .../pattern/throwableinformationpatternconverter.h |   64 +-
 src/main/include/log4cxx/patternlayout.h           |  128 +-
 src/main/include/log4cxx/propertyconfigurator.h    |  592 ++--
 src/main/include/log4cxx/rolling/action.h          |   88 +-
 .../include/log4cxx/rolling/filerenameaction.h     |   46 +-
 .../log4cxx/rolling/filterbasedtriggeringpolicy.h  |  128 +-
 .../log4cxx/rolling/fixedwindowrollingpolicy.h     |   78 +-
 .../include/log4cxx/rolling/gzcompressaction.h     |   54 +-
 .../log4cxx/rolling/manualtriggeringpolicy.h       |   50 +-
 .../include/log4cxx/rolling/rollingfileappender.h  |   34 +-
 .../log4cxx/rolling/rollingfileappenderskeleton.h  |  244 +-
 src/main/include/log4cxx/rolling/rollingpolicy.h   |   70 +-
 .../include/log4cxx/rolling/rollingpolicybase.h    |  148 +-
 .../include/log4cxx/rolling/rolloverdescription.h  |  130 +-
 .../log4cxx/rolling/sizebasedtriggeringpolicy.h    |   58 +-
 .../log4cxx/rolling/timebasedrollingpolicy.h       |  280 +-
 .../include/log4cxx/rolling/triggeringpolicy.h     |   54 +-
 .../include/log4cxx/rolling/zipcompressaction.h    |   54 +-
 src/main/include/log4cxx/rollingfileappender.h     |  114 +-
 src/main/include/log4cxx/simplelayout.h            |   62 +-
 src/main/include/log4cxx/spi/appenderattachable.h  |   76 +-
 src/main/include/log4cxx/spi/configurator.h        |   32 +-
 .../log4cxx/spi/defaultrepositoryselector.h        |   26 +-
 src/main/include/log4cxx/spi/errorhandler.h        |  140 +-
 src/main/include/log4cxx/spi/filter.h              |  116 +-
 .../include/log4cxx/spi/hierarchyeventlistener.h   |   24 +-
 .../include/log4cxx/spi/location/locationinfo.h    |  138 +-
 src/main/include/log4cxx/spi/loggerfactory.h       |   12 +-
 src/main/include/log4cxx/spi/loggerrepository.h    |   90 +-
 src/main/include/log4cxx/spi/loggingevent.h        |  420 +--
 src/main/include/log4cxx/spi/optionhandler.h       |   46 +-
 src/main/include/log4cxx/spi/repositoryselector.h  |    8 +-
 src/main/include/log4cxx/spi/rootlogger.h          |   32 +-
 .../include/log4cxx/spi/triggeringeventevaluator.h |   12 +-
 src/main/include/log4cxx/stream.h                  |  844 ++---
 src/main/include/log4cxx/ttcclayout.h              |  250 +-
 .../include/log4cxx/varia/fallbackerrorhandler.h   |  142 +-
 src/main/include/log4cxx/writerappender.h          |  340 +-
 src/main/include/log4cxx/xml/domconfigurator.h     |  446 +--
 src/main/include/log4cxx/xml/xmllayout.h           |  170 +-
 320 files changed, 27509 insertions(+), 27509 deletions(-)

diff --git a/.astylerc b/.astylerc
index face8a8..5459711 100644
--- a/.astylerc
+++ b/.astylerc
@@ -19,15 +19,15 @@
 --break-one-line-headers
 --convert-tabs
 
+--indent-after-parens
 --indent-classes
 --indent-col1-comments
---indent-continuation=1
 --indent-preproc-block
 --indent-preproc-define
 --indent-switches
---indent=spaces=4
+--indent=force-tab=4
 
---lineend=windows
+--lineend=linux
 --pad-comma
 --pad-header
 --pad-oper
diff --git a/src/main/cpp/action.cpp b/src/main/cpp/action.cpp
index 5f0f26f..ee347e4 100644
--- a/src/main/cpp/action.cpp
+++ b/src/main/cpp/action.cpp
@@ -25,10 +25,10 @@ using namespace log4cxx::helpers;
 IMPLEMENT_LOG4CXX_OBJECT(Action)
 
 Action::Action() :
-    complete(false),
-    interrupted(false),
-    pool(),
-    mutex(pool)
+	complete(false),
+	interrupted(false),
+	pool(),
+	mutex(pool)
 {
 }
 
@@ -41,22 +41,22 @@ Action::~Action()
  */
 void Action::run(log4cxx::helpers::Pool& pool1)
 {
-    synchronized sync(mutex);
+	synchronized sync(mutex);
 
-    if (!interrupted)
-    {
-        try
-        {
-            execute(pool1);
-        }
-        catch (std::exception& ex)
-        {
-            reportException(ex);
-        }
+	if (!interrupted)
+	{
+		try
+		{
+			execute(pool1);
+		}
+		catch (std::exception& ex)
+		{
+			reportException(ex);
+		}
 
-        complete = true;
-        interrupted = true;
-    }
+		complete = true;
+		interrupted = true;
+	}
 }
 
 /**
@@ -64,8 +64,8 @@ void Action::run(log4cxx::helpers::Pool& pool1)
  */
 void Action::close()
 {
-    synchronized sync(mutex);
-    interrupted = true;
+	synchronized sync(mutex);
+	interrupted = true;
 }
 
 /**
@@ -74,7 +74,7 @@ void Action::close()
  */
 bool Action::isComplete() const
 {
-    return complete;
+	return complete;
 }
 
 /**
diff --git a/src/main/cpp/andfilter.cpp b/src/main/cpp/andfilter.cpp
index a83e7b7..0bf16cd 100644
--- a/src/main/cpp/andfilter.cpp
+++ b/src/main/cpp/andfilter.cpp
@@ -29,51 +29,51 @@ IMPLEMENT_LOG4CXX_OBJECT(AndFilter)
 
 
 AndFilter::AndFilter()
-    : headFilter(), tailFilter(), acceptOnMatch(true)
+	: headFilter(), tailFilter(), acceptOnMatch(true)
 {
 }
 
 void AndFilter::addFilter(const FilterPtr& filter)
 {
-    if (headFilter == NULL)
-    {
-        headFilter = filter;
-        tailFilter = filter;
-    }
-    else
-    {
-        tailFilter->setNext(filter);
-    }
+	if (headFilter == NULL)
+	{
+		headFilter = filter;
+		tailFilter = filter;
+	}
+	else
+	{
+		tailFilter->setNext(filter);
+	}
 }
 
 
 void AndFilter::setAcceptOnMatch(bool newValue)
 {
-    acceptOnMatch = newValue;
+	acceptOnMatch = newValue;
 }
 
 Filter::FilterDecision AndFilter::decide(
-    const spi::LoggingEventPtr& event) const
+	const spi::LoggingEventPtr& event) const
 {
-    bool accepted = true;
-    FilterPtr f(headFilter);
+	bool accepted = true;
+	FilterPtr f(headFilter);
 
-    while (f != NULL)
-    {
-        accepted = accepted && (Filter::ACCEPT == f->decide(event));
-        f = f->getNext();
-    }
+	while (f != NULL)
+	{
+		accepted = accepted && (Filter::ACCEPT == f->decide(event));
+		f = f->getNext();
+	}
 
-    if (accepted)
-    {
-        if (acceptOnMatch)
-        {
-            return Filter::ACCEPT;
-        }
+	if (accepted)
+	{
+		if (acceptOnMatch)
+		{
+			return Filter::ACCEPT;
+		}
 
-        return Filter::DENY;
-    }
+		return Filter::DENY;
+	}
 
-    return Filter::NEUTRAL;
+	return Filter::NEUTRAL;
 }
 
diff --git a/src/main/cpp/appenderattachableimpl.cpp b/src/main/cpp/appenderattachableimpl.cpp
index 9d2f9e6..92c4fad 100644
--- a/src/main/cpp/appenderattachableimpl.cpp
+++ b/src/main/cpp/appenderattachableimpl.cpp
@@ -29,144 +29,144 @@ IMPLEMENT_LOG4CXX_OBJECT(AppenderAttachableImpl)
 
 
 AppenderAttachableImpl::AppenderAttachableImpl(Pool& pool)
-    : appenderList(),
-      mutex(pool)
+	: appenderList(),
+	  mutex(pool)
 {
 }
 
 void AppenderAttachableImpl::addRef() const
 {
-    ObjectImpl::addRef();
+	ObjectImpl::addRef();
 }
 
 void AppenderAttachableImpl::releaseRef() const
 {
-    ObjectImpl::releaseRef();
+	ObjectImpl::releaseRef();
 }
 
 
 void AppenderAttachableImpl::addAppender(const AppenderPtr& newAppender)
 {
-    // Null values for newAppender parameter are strictly forbidden.
-    if (newAppender == 0)
-    {
-        return;
-    }
-
-    AppenderList::iterator it = std::find(
-                                    appenderList.begin(), appenderList.end(), newAppender);
-
-    if (it == appenderList.end())
-    {
-        appenderList.push_back(newAppender);
-    }
+	// Null values for newAppender parameter are strictly forbidden.
+	if (newAppender == 0)
+	{
+		return;
+	}
+
+	AppenderList::iterator it = std::find(
+			appenderList.begin(), appenderList.end(), newAppender);
+
+	if (it == appenderList.end())
+	{
+		appenderList.push_back(newAppender);
+	}
 }
 
 int AppenderAttachableImpl::appendLoopOnAppenders(
-    const spi::LoggingEventPtr& event,
-    Pool& p)
+	const spi::LoggingEventPtr& event,
+	Pool& p)
 {
-    for (AppenderList::iterator it = appenderList.begin();
-            it != appenderList.end();
-            it++)
-    {
-        (*it)->doAppend(event, p);
-    }
-
-    return appenderList.size();
+	for (AppenderList::iterator it = appenderList.begin();
+		it != appenderList.end();
+		it++)
+	{
+		(*it)->doAppend(event, p);
+	}
+
+	return appenderList.size();
 }
 
 AppenderList AppenderAttachableImpl::getAllAppenders() const
 {
-    return appenderList;
+	return appenderList;
 }
 
 AppenderPtr AppenderAttachableImpl::getAppender(const LogString& name) const
 {
-    if (name.empty())
-    {
-        return 0;
-    }
+	if (name.empty())
+	{
+		return 0;
+	}
 
-    AppenderList::const_iterator it, itEnd = appenderList.end();
-    AppenderPtr appender;
+	AppenderList::const_iterator it, itEnd = appenderList.end();
+	AppenderPtr appender;
 
-    for (it = appenderList.begin(); it != itEnd; it++)
-    {
-        appender = *it;
+	for (it = appenderList.begin(); it != itEnd; it++)
+	{
+		appender = *it;
 
-        if (name == appender->getName())
-        {
-            return appender;
-        }
-    }
+		if (name == appender->getName())
+		{
+			return appender;
+		}
+	}
 
-    return 0;
+	return 0;
 }
 
 bool AppenderAttachableImpl::isAttached(const AppenderPtr& appender) const
 {
-    if (appender == 0)
-    {
-        return false;
-    }
+	if (appender == 0)
+	{
+		return false;
+	}
 
-    AppenderList::const_iterator it = std::find(
-                                          appenderList.begin(), appenderList.end(), appender);
+	AppenderList::const_iterator it = std::find(
+			appenderList.begin(), appenderList.end(), appender);
 
-    return it != appenderList.end();
+	return it != appenderList.end();
 }
 
 void AppenderAttachableImpl::removeAllAppenders()
 {
-    AppenderList::iterator it, itEnd = appenderList.end();
-    AppenderPtr a;
+	AppenderList::iterator it, itEnd = appenderList.end();
+	AppenderPtr a;
 
-    for (it = appenderList.begin(); it != itEnd; it++)
-    {
-        a = *it;
-        a->close();
-    }
+	for (it = appenderList.begin(); it != itEnd; it++)
+	{
+		a = *it;
+		a->close();
+	}
 
-    appenderList.clear();
+	appenderList.clear();
 }
 
 void AppenderAttachableImpl::removeAppender(const AppenderPtr& appender)
 {
-    if (appender == 0)
-    {
-        return;
-    }
-
-    AppenderList::iterator it = std::find(
-                                    appenderList.begin(), appenderList.end(), appender);
-
-    if (it != appenderList.end())
-    {
-        appenderList.erase(it);
-    }
+	if (appender == 0)
+	{
+		return;
+	}
+
+	AppenderList::iterator it = std::find(
+			appenderList.begin(), appenderList.end(), appender);
+
+	if (it != appenderList.end())
+	{
+		appenderList.erase(it);
+	}
 }
 
 void AppenderAttachableImpl::removeAppender(const LogString& name)
 {
-    if (name.empty())
-    {
-        return;
-    }
-
-    AppenderList::iterator it, itEnd = appenderList.end();
-    AppenderPtr appender;
-
-    for (it = appenderList.begin(); it != itEnd; it++)
-    {
-        appender = *it;
-
-        if (name == appender->getName())
-        {
-            appenderList.erase(it);
-            return;
-        }
-    }
+	if (name.empty())
+	{
+		return;
+	}
+
+	AppenderList::iterator it, itEnd = appenderList.end();
+	AppenderPtr appender;
+
+	for (it = appenderList.begin(); it != itEnd; it++)
+	{
+		appender = *it;
+
+		if (name == appender->getName())
+		{
+			appenderList.erase(it);
+			return;
+		}
+	}
 }
 
 
diff --git a/src/main/cpp/appenderskeleton.cpp b/src/main/cpp/appenderskeleton.cpp
index 0d68dcc..42c1999 100644
--- a/src/main/cpp/appenderskeleton.cpp
+++ b/src/main/cpp/appenderskeleton.cpp
@@ -33,154 +33,154 @@ IMPLEMENT_LOG4CXX_OBJECT(AppenderSkeleton)
 
 
 AppenderSkeleton::AppenderSkeleton()
-    :   layout(),
-        name(),
-        threshold(Level::getAll()),
-        errorHandler(new OnlyOnceErrorHandler()),
-        headFilter(),
-        tailFilter(),
-        pool(),
-        SHARED_MUTEX_INIT(mutex, pool)
+	:   layout(),
+		name(),
+		threshold(Level::getAll()),
+		errorHandler(new OnlyOnceErrorHandler()),
+		headFilter(),
+		tailFilter(),
+		pool(),
+		SHARED_MUTEX_INIT(mutex, pool)
 {
-    LOCK_W sync(mutex);
-    closed = false;
+	LOCK_W sync(mutex);
+	closed = false;
 }
 
 AppenderSkeleton::AppenderSkeleton(const LayoutPtr& layout1)
-    : layout(layout1),
-      name(),
-      threshold(Level::getAll()),
-      errorHandler(new OnlyOnceErrorHandler()),
-      headFilter(),
-      tailFilter(),
-      pool(),
-      SHARED_MUTEX_INIT(mutex, pool)
+	: layout(layout1),
+	  name(),
+	  threshold(Level::getAll()),
+	  errorHandler(new OnlyOnceErrorHandler()),
+	  headFilter(),
+	  tailFilter(),
+	  pool(),
+	  SHARED_MUTEX_INIT(mutex, pool)
 {
-    LOCK_W sync(mutex);
-    closed = false;
+	LOCK_W sync(mutex);
+	closed = false;
 }
 
 void AppenderSkeleton::addRef() const
 {
-    ObjectImpl::addRef();
+	ObjectImpl::addRef();
 }
 
 void AppenderSkeleton::releaseRef() const
 {
-    ObjectImpl::releaseRef();
+	ObjectImpl::releaseRef();
 }
 
 void AppenderSkeleton::finalize()
 {
-    // An appender might be closed then garbage collected. There is no
-    // point in closing twice.
-    if (closed)
-    {
-        return;
-    }
-
-    close();
+	// An appender might be closed then garbage collected. There is no
+	// point in closing twice.
+	if (closed)
+	{
+		return;
+	}
+
+	close();
 }
 
 void AppenderSkeleton::addFilter(const spi::FilterPtr& newFilter)
 {
-    LOCK_W sync(mutex);
-
-    if (headFilter == 0)
-    {
-        headFilter = tailFilter = newFilter;
-    }
-    else
-    {
-        tailFilter->setNext(newFilter);
-        tailFilter = newFilter;
-    }
+	LOCK_W sync(mutex);
+
+	if (headFilter == 0)
+	{
+		headFilter = tailFilter = newFilter;
+	}
+	else
+	{
+		tailFilter->setNext(newFilter);
+		tailFilter = newFilter;
+	}
 }
 
 void AppenderSkeleton::clearFilters()
 {
-    LOCK_W sync(mutex);
-    headFilter = tailFilter = 0;
+	LOCK_W sync(mutex);
+	headFilter = tailFilter = 0;
 }
 
 bool AppenderSkeleton::isAsSevereAsThreshold(const LevelPtr& level) const
 {
-    return ((level == 0) || level->isGreaterOrEqual(threshold));
+	return ((level == 0) || level->isGreaterOrEqual(threshold));
 }
 
 void AppenderSkeleton::doAppend(const spi::LoggingEventPtr& event, Pool& pool1)
 {
-    LOCK_W sync(mutex);
+	LOCK_W sync(mutex);
 
-    doAppendImpl(event, pool1);
+	doAppendImpl(event, pool1);
 }
 
 void AppenderSkeleton::doAppendImpl(const spi::LoggingEventPtr& event, Pool& pool1)
 {
-    if (closed)
-    {
-        LogLog::error(((LogString) LOG4CXX_STR("Attempted to append to closed appender named ["))
-                      + name + LOG4CXX_STR("]."));
-        return;
-    }
-
-    if (!isAsSevereAsThreshold(event->getLevel()))
-    {
-        return;
-    }
-
-    FilterPtr f = headFilter;
-
-
-    while (f != 0)
-    {
-        switch (f->decide(event))
-        {
-            case Filter::DENY:
-                return;
-
-            case Filter::ACCEPT:
-                f = 0;
-                break;
-
-            case Filter::NEUTRAL:
-                f = f->getNext();
-        }
-    }
-
-    append(event, pool1);
+	if (closed)
+	{
+		LogLog::error(((LogString) LOG4CXX_STR("Attempted to append to closed appender named ["))
+			+ name + LOG4CXX_STR("]."));
+		return;
+	}
+
+	if (!isAsSevereAsThreshold(event->getLevel()))
+	{
+		return;
+	}
+
+	FilterPtr f = headFilter;
+
+
+	while (f != 0)
+	{
+		switch (f->decide(event))
+		{
+			case Filter::DENY:
+				return;
+
+			case Filter::ACCEPT:
+				f = 0;
+				break;
+
+			case Filter::NEUTRAL:
+				f = f->getNext();
+		}
+	}
+
+	append(event, pool1);
 }
 
 void AppenderSkeleton::setErrorHandler(const spi::ErrorHandlerPtr& errorHandler1)
 {
-    LOCK_W sync(mutex);
-
-    if (errorHandler1 == 0)
-    {
-        // We do not throw exception here since the cause is probably a
-        // bad config file.
-        LogLog::warn(LOG4CXX_STR("You have tried to set a null error-handler."));
-    }
-    else
-    {
-        this->errorHandler = errorHandler1;
-    }
+	LOCK_W sync(mutex);
+
+	if (errorHandler1 == 0)
+	{
+		// We do not throw exception here since the cause is probably a
+		// bad config file.
+		LogLog::warn(LOG4CXX_STR("You have tried to set a null error-handler."));
+	}
+	else
+	{
+		this->errorHandler = errorHandler1;
+	}
 }
 
 void AppenderSkeleton::setThreshold(const LevelPtr& threshold1)
 {
-    LOCK_W sync(mutex);
-    this->threshold = threshold1;
+	LOCK_W sync(mutex);
+	this->threshold = threshold1;
 }
 
 void AppenderSkeleton::setOption(const LogString& option,
-                                 const LogString& value)
+	const LogString& value)
 {
-    if (StringHelper::equalsIgnoreCase(option,
-                                       LOG4CXX_STR("THRESHOLD"), LOG4CXX_STR("threshold")))
-    {
-        setThreshold(Level::toLevelLS(value));
-    }
+	if (StringHelper::equalsIgnoreCase(option,
+			LOG4CXX_STR("THRESHOLD"), LOG4CXX_STR("threshold")))
+	{
+		setThreshold(Level::toLevelLS(value));
+	}
 }
 
 
diff --git a/src/main/cpp/aprinitializer.cpp b/src/main/cpp/aprinitializer.cpp
index 151c056..ccb7241 100644
--- a/src/main/cpp/aprinitializer.cpp
+++ b/src/main/cpp/aprinitializer.cpp
@@ -16,7 +16,7 @@
  */
 #include <log4cxx/logstring.h>
 #if !defined(LOG4CXX)
-    #define LOG4CXX 1
+	#define LOG4CXX 1
 #endif
 #include <log4cxx/helpers/aprinitializer.h>
 #include <apr_pools.h>
@@ -38,94 +38,94 @@ namespace
 {
 extern "C" void tlsDestruct(void* ptr)
 {
-    delete ((ThreadSpecificData*) ptr);
+	delete ((ThreadSpecificData*) ptr);
 }
 }
 
 APRInitializer::APRInitializer() : p(0), mutex(0), startTime(0), tlsKey(0)
 {
-    apr_initialize();
-    apr_pool_create(&p, NULL);
-    apr_atomic_init(p);
-    startTime = apr_time_now();
+	apr_initialize();
+	apr_pool_create(&p, NULL);
+	apr_atomic_init(p);
+	startTime = apr_time_now();
 #if APR_HAS_THREADS
-    apr_status_t stat = apr_threadkey_private_create(&tlsKey, tlsDestruct, p);
-    assert(stat == APR_SUCCESS);
-    stat = apr_thread_mutex_create(&mutex, APR_THREAD_MUTEX_NESTED, p);
-    assert(stat == APR_SUCCESS);
+	apr_status_t stat = apr_threadkey_private_create(&tlsKey, tlsDestruct, p);
+	assert(stat == APR_SUCCESS);
+	stat = apr_thread_mutex_create(&mutex, APR_THREAD_MUTEX_NESTED, p);
+	assert(stat == APR_SUCCESS);
 #endif
 }
 
 APRInitializer::~APRInitializer()
 {
-    {
+	{
 #if APR_HAS_THREADS
-        synchronized sync(mutex);
-        apr_threadkey_private_delete(tlsKey);
+		synchronized sync(mutex);
+		apr_threadkey_private_delete(tlsKey);
 #endif
 
-        for (std::list<FileWatchdog*>::iterator iter = watchdogs.begin();
-                iter != watchdogs.end();
-                iter++)
-        {
-            delete *iter;
-        }
-    }
+		for (std::list<FileWatchdog*>::iterator iter = watchdogs.begin();
+			iter != watchdogs.end();
+			iter++)
+		{
+			delete *iter;
+		}
+	}
 
-    // TODO LOGCXX-322
+	// TODO LOGCXX-322
 #ifndef APR_HAS_THREADS
-    apr_terminate();
+	apr_terminate();
 #endif
-    isDestructed = true;
+	isDestructed = true;
 }
 
 APRInitializer& APRInitializer::getInstance()
 {
-    static APRInitializer init;
-    return init;
+	static APRInitializer init;
+	return init;
 }
 
 
 log4cxx_time_t APRInitializer::initialize()
 {
-    return getInstance().startTime;
+	return getInstance().startTime;
 }
 
 apr_pool_t* APRInitializer::getRootPool()
 {
-    return getInstance().p;
+	return getInstance().p;
 }
 
 apr_threadkey_t* APRInitializer::getTlsKey()
 {
-    return getInstance().tlsKey;
+	return getInstance().tlsKey;
 }
 
 void APRInitializer::registerCleanup(FileWatchdog* watchdog)
 {
-    APRInitializer& instance(getInstance());
+	APRInitializer& instance(getInstance());
 #if APR_HAS_THREADS
-    synchronized sync(instance.mutex);
+	synchronized sync(instance.mutex);
 #endif
-    instance.watchdogs.push_back(watchdog);
+	instance.watchdogs.push_back(watchdog);
 }
 
 void APRInitializer::unregisterCleanup(FileWatchdog* watchdog)
 {
-    APRInitializer& instance(getInstance());
+	APRInitializer& instance(getInstance());
 #if APR_HAS_THREADS
-    synchronized sync(instance.mutex);
+	synchronized sync(instance.mutex);
 #endif
 
-    for (std::list<FileWatchdog*>::iterator iter = instance.watchdogs.begin();
-            iter != instance.watchdogs.end();
-            iter++)
-    {
-        if (*iter == watchdog)
-        {
-            instance.watchdogs.erase(iter);
-            return;
-        }
-    }
+	for (std::list<FileWatchdog*>::iterator iter = instance.watchdogs.begin();
+		iter != instance.watchdogs.end();
+		iter++)
+	{
+		if (*iter == watchdog)
+		{
+			instance.watchdogs.erase(iter);
+			return;
+		}
+	}
 }
 
diff --git a/src/main/cpp/asyncappender.cpp b/src/main/cpp/asyncappender.cpp
index 0a9930f..603b42c 100644
--- a/src/main/cpp/asyncappender.cpp
+++ b/src/main/cpp/asyncappender.cpp
@@ -16,7 +16,7 @@
  */
 
 #if defined(_MSC_VER)
-    #pragma warning ( disable: 4231 4251 4275 4786 )
+	#pragma warning ( disable: 4231 4251 4275 4786 )
 #endif
 
 #include <log4cxx/asyncappender.h>
@@ -43,413 +43,413 @@ IMPLEMENT_LOG4CXX_OBJECT(AsyncAppender)
 
 
 AsyncAppender::AsyncAppender()
-    : AppenderSkeleton(),
-      buffer(),
-      bufferMutex(pool),
-      bufferNotFull(pool),
-      bufferNotEmpty(pool),
-      discardMap(new DiscardMap()),
-      bufferSize(DEFAULT_BUFFER_SIZE),
-      appenders(new AppenderAttachableImpl(pool)),
-      dispatcher(),
-      locationInfo(false),
-      blocking(true)
+	: AppenderSkeleton(),
+	  buffer(),
+	  bufferMutex(pool),
+	  bufferNotFull(pool),
+	  bufferNotEmpty(pool),
+	  discardMap(new DiscardMap()),
+	  bufferSize(DEFAULT_BUFFER_SIZE),
+	  appenders(new AppenderAttachableImpl(pool)),
+	  dispatcher(),
+	  locationInfo(false),
+	  blocking(true)
 {
 #if APR_HAS_THREADS
-    dispatcher.run(dispatch, this);
+	dispatcher.run(dispatch, this);
 #endif
 }
 
 AsyncAppender::~AsyncAppender()
 {
-    finalize();
-    delete discardMap;
+	finalize();
+	delete discardMap;
 }
 
 void AsyncAppender::addRef() const
 {
-    ObjectImpl::addRef();
+	ObjectImpl::addRef();
 }
 
 void AsyncAppender::releaseRef() const
 {
-    ObjectImpl::releaseRef();
+	ObjectImpl::releaseRef();
 }
 
 void AsyncAppender::addAppender(const AppenderPtr& newAppender)
 {
-    synchronized sync(appenders->getMutex());
-    appenders->addAppender(newAppender);
+	synchronized sync(appenders->getMutex());
+	appenders->addAppender(newAppender);
 }
 
 
 void AsyncAppender::setOption(const LogString& option,
-                              const LogString& value)
+	const LogString& value)
 {
-    if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LOCATIONINFO"), LOG4CXX_STR("locationinfo")))
-    {
-        setLocationInfo(OptionConverter::toBoolean(value, false));
-    }
-
-    if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BUFFERSIZE"), LOG4CXX_STR("buffersize")))
-    {
-        setBufferSize(OptionConverter::toInt(value, DEFAULT_BUFFER_SIZE));
-    }
-
-    if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BLOCKING"), LOG4CXX_STR("blocking")))
-    {
-        setBlocking(OptionConverter::toBoolean(value, true));
-    }
-    else
-    {
-        AppenderSkeleton::setOption(option, value);
-    }
+	if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LOCATIONINFO"), LOG4CXX_STR("locationinfo")))
+	{
+		setLocationInfo(OptionConverter::toBoolean(value, false));
+	}
+
+	if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BUFFERSIZE"), LOG4CXX_STR("buffersize")))
+	{
+		setBufferSize(OptionConverter::toInt(value, DEFAULT_BUFFER_SIZE));
+	}
+
+	if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BLOCKING"), LOG4CXX_STR("blocking")))
+	{
+		setBlocking(OptionConverter::toBoolean(value, true));
+	}
+	else
+	{
+		AppenderSkeleton::setOption(option, value);
+	}
 }
 
 
 void AsyncAppender::doAppend(const spi::LoggingEventPtr& event, Pool& pool1)
 {
-    LOCK_R sync(mutex);
+	LOCK_R sync(mutex);
 
-    doAppendImpl(event, pool1);
+	doAppendImpl(event, pool1);
 }
 
 void AsyncAppender::append(const spi::LoggingEventPtr& event, Pool& p)
 {
 #if APR_HAS_THREADS
 
-    //
-    //   if dispatcher has died then
-    //      append subsequent events synchronously
-    //
-    if (!dispatcher.isAlive() || bufferSize <= 0)
-    {
-        synchronized sync(appenders->getMutex());
-        appenders->appendLoopOnAppenders(event, p);
-        return;
-    }
-
-    // Set the NDC and thread name for the calling thread as these
-    // LoggingEvent fields were not set at event creation time.
-    LogString ndcVal;
-    event->getNDC(ndcVal);
-    event->getThreadName();
-    // Get a copy of this thread's MDC.
-    event->getMDCCopy();
-
-
-    {
-        synchronized sync(bufferMutex);
-
-        while (true)
-        {
-            int previousSize = buffer.size();
-
-            if (previousSize < bufferSize)
-            {
-                buffer.push_back(event);
-
-                if (previousSize == 0)
-                {
-                    bufferNotEmpty.signalAll();
-                }
-
-                break;
-            }
-
-            //
-            //   Following code is only reachable if buffer is full
-            //
-            //
-            //   if blocking and thread is not already interrupted
-            //      and not the dispatcher then
-            //      wait for a buffer notification
-            bool discard = true;
-
-            if (blocking
-                    && !Thread::interrupted()
-                    && !dispatcher.isCurrentThread())
-            {
-                try
-                {
-                    bufferNotFull.await(bufferMutex);
-                    discard = false;
-                }
-                catch (InterruptedException& e)
-                {
-                    //
-                    //  reset interrupt status so
-                    //    calling code can see interrupt on
-                    //    their next wait or sleep.
-                    Thread::currentThreadInterrupt();
-                }
-            }
-
-            //
-            //   if blocking is false or thread has been interrupted
-            //   add event to discard map.
-            //
-            if (discard)
-            {
-                LogString loggerName = event->getLoggerName();
-                DiscardMap::iterator iter = discardMap->find(loggerName);
-
-                if (iter == discardMap->end())
-                {
-                    DiscardSummary summary(event);
-                    discardMap->insert(DiscardMap::value_type(loggerName, summary));
-                }
-                else
-                {
-                    (*iter).second.add(event);
-                }
-
-                break;
-            }
-        }
-    }
+	//
+	//   if dispatcher has died then
+	//      append subsequent events synchronously
+	//
+	if (!dispatcher.isAlive() || bufferSize <= 0)
+	{
+		synchronized sync(appenders->getMutex());
+		appenders->appendLoopOnAppenders(event, p);
+		return;
+	}
+
+	// Set the NDC and thread name for the calling thread as these
+	// LoggingEvent fields were not set at event creation time.
+	LogString ndcVal;
+	event->getNDC(ndcVal);
+	event->getThreadName();
+	// Get a copy of this thread's MDC.
+	event->getMDCCopy();
+
+
+	{
+		synchronized sync(bufferMutex);
+
+		while (true)
+		{
+			int previousSize = buffer.size();
+
+			if (previousSize < bufferSize)
+			{
+				buffer.push_back(event);
+
+				if (previousSize == 0)
+				{
+					bufferNotEmpty.signalAll();
+				}
+
+				break;
+			}
+
+			//
+			//   Following code is only reachable if buffer is full
+			//
+			//
+			//   if blocking and thread is not already interrupted
+			//      and not the dispatcher then
+			//      wait for a buffer notification
+			bool discard = true;
+
+			if (blocking
+				&& !Thread::interrupted()
+				&& !dispatcher.isCurrentThread())
+			{
+				try
+				{
+					bufferNotFull.await(bufferMutex);
+					discard = false;
+				}
+				catch (InterruptedException& e)
+				{
+					//
+					//  reset interrupt status so
+					//    calling code can see interrupt on
+					//    their next wait or sleep.
+					Thread::currentThreadInterrupt();
+				}
+			}
+
+			//
+			//   if blocking is false or thread has been interrupted
+			//   add event to discard map.
+			//
+			if (discard)
+			{
+				LogString loggerName = event->getLoggerName();
+				DiscardMap::iterator iter = discardMap->find(loggerName);
+
+				if (iter == discardMap->end())
+				{
+					DiscardSummary summary(event);
+					discardMap->insert(DiscardMap::value_type(loggerName, summary));
+				}
+				else
+				{
+					(*iter).second.add(event);
+				}
+
+				break;
+			}
+		}
+	}
 #else
-    synchronized sync(appenders->getMutex());
-    appenders->appendLoopOnAppenders(event, p);
+	synchronized sync(appenders->getMutex());
+	appenders->appendLoopOnAppenders(event, p);
 #endif
 }
 
 
 void AsyncAppender::close()
 {
-    {
-        synchronized sync(bufferMutex);
-        closed = true;
-        bufferNotEmpty.signalAll();
-        bufferNotFull.signalAll();
-    }
+	{
+		synchronized sync(bufferMutex);
+		closed = true;
+		bufferNotEmpty.signalAll();
+		bufferNotFull.signalAll();
+	}
 
 #if APR_HAS_THREADS
 
-    try
-    {
-        dispatcher.join();
-    }
-    catch (InterruptedException& e)
-    {
-        Thread::currentThreadInterrupt();
-        LogLog::error(LOG4CXX_STR("Got an InterruptedException while waiting for the dispatcher to finish,"), e);
-    }
+	try
+	{
+		dispatcher.join();
+	}
+	catch (InterruptedException& e)
+	{
+		Thread::currentThreadInterrupt();
+		LogLog::error(LOG4CXX_STR("Got an InterruptedException while waiting for the dispatcher to finish,"), e);
+	}
 
 #endif
 
-    {
-        synchronized sync(appenders->getMutex());
-        AppenderList appenderList = appenders->getAllAppenders();
-
-        for (AppenderList::iterator iter = appenderList.begin();
-                iter != appenderList.end();
-                iter++)
-        {
-            (*iter)->close();
-        }
-    }
+	{
+		synchronized sync(appenders->getMutex());
+		AppenderList appenderList = appenders->getAllAppenders();
+
+		for (AppenderList::iterator iter = appenderList.begin();
+			iter != appenderList.end();
+			iter++)
+		{
+			(*iter)->close();
+		}
+	}
 }
 
 AppenderList AsyncAppender::getAllAppenders() const
 {
-    synchronized sync(appenders->getMutex());
-    return appenders->getAllAppenders();
+	synchronized sync(appenders->getMutex());
+	return appenders->getAllAppenders();
 }
 
 AppenderPtr AsyncAppender::getAppender(const LogString& n) const
 {
-    synchronized sync(appenders->getMutex());
-    return appenders->getAppender(n);
+	synchronized sync(appenders->getMutex());
+	return appenders->getAppender(n);
 }
 
 bool AsyncAppender::isAttached(const AppenderPtr& appender) const
 {
-    synchronized sync(appenders->getMutex());
-    return appenders->isAttached(appender);
+	synchronized sync(appenders->getMutex());
+	return appenders->isAttached(appender);
 }
 
 bool AsyncAppender::requiresLayout() const
 {
-    return false;
+	return false;
 }
 
 void AsyncAppender::removeAllAppenders()
 {
-    synchronized sync(appenders->getMutex());
-    appenders->removeAllAppenders();
+	synchronized sync(appenders->getMutex());
+	appenders->removeAllAppenders();
 }
 
 void AsyncAppender::removeAppender(const AppenderPtr& appender)
 {
-    synchronized sync(appenders->getMutex());
-    appenders->removeAppender(appender);
+	synchronized sync(appenders->getMutex());
+	appenders->removeAppender(appender);
 }
 
 void AsyncAppender::removeAppender(const LogString& n)
 {
-    synchronized sync(appenders->getMutex());
-    appenders->removeAppender(n);
+	synchronized sync(appenders->getMutex());
+	appenders->removeAppender(n);
 }
 
 bool AsyncAppender::getLocationInfo() const
 {
-    return locationInfo;
+	return locationInfo;
 }
 
 void AsyncAppender::setLocationInfo(bool flag)
 {
-    locationInfo = flag;
+	locationInfo = flag;
 }
 
 
 void AsyncAppender::setBufferSize(int size)
 {
-    if (size < 0)
-    {
-        throw IllegalArgumentException(LOG4CXX_STR("size argument must be non-negative"));
-    }
-
-    synchronized sync(bufferMutex);
-    bufferSize = (size < 1) ? 1 : size;
-    bufferNotFull.signalAll();
+	if (size < 0)
+	{
+		throw IllegalArgumentException(LOG4CXX_STR("size argument must be non-negative"));
+	}
+
+	synchronized sync(bufferMutex);
+	bufferSize = (size < 1) ? 1 : size;
+	bufferNotFull.signalAll();
 }
 
 int AsyncAppender::getBufferSize() const
 {
-    return bufferSize;
+	return bufferSize;
 }
 
 void AsyncAppender::setBlocking(bool value)
 {
-    synchronized sync(bufferMutex);
-    blocking = value;
-    bufferNotFull.signalAll();
+	synchronized sync(bufferMutex);
+	blocking = value;
+	bufferNotFull.signalAll();
 }
 
 bool AsyncAppender::getBlocking() const
 {
-    return blocking;
+	return blocking;
 }
 
 AsyncAppender::DiscardSummary::DiscardSummary(const LoggingEventPtr& event) :
-    maxEvent(event), count(1)
+	maxEvent(event), count(1)
 {
 }
 
 AsyncAppender::DiscardSummary::DiscardSummary(const DiscardSummary& src) :
-    maxEvent(src.maxEvent), count(src.count)
+	maxEvent(src.maxEvent), count(src.count)
 {
 }
 
 AsyncAppender::DiscardSummary& AsyncAppender::DiscardSummary::operator=(const DiscardSummary& src)
 {
-    maxEvent = src.maxEvent;
-    count = src.count;
-    return *this;
+	maxEvent = src.maxEvent;
+	count = src.count;
+	return *this;
 }
 
 void AsyncAppender::DiscardSummary::add(const LoggingEventPtr& event)
 {
-    if (event->getLevel()->toInt() > maxEvent->getLevel()->toInt())
-    {
-        maxEvent = event;
-    }
+	if (event->getLevel()->toInt() > maxEvent->getLevel()->toInt())
+	{
+		maxEvent = event;
+	}
 
-    count++;
+	count++;
 }
 
 LoggingEventPtr AsyncAppender::DiscardSummary::createEvent(Pool& p)
 {
-    LogString msg(LOG4CXX_STR("Discarded "));
-    StringHelper::toString(count, p, msg);
-    msg.append(LOG4CXX_STR(" messages due to a full event buffer including: "));
-    msg.append(maxEvent->getMessage());
-    return new LoggingEvent(
-               maxEvent->getLoggerName(),
-               maxEvent->getLevel(),
-               msg,
-               LocationInfo::getLocationUnavailable());
+	LogString msg(LOG4CXX_STR("Discarded "));
+	StringHelper::toString(count, p, msg);
+	msg.append(LOG4CXX_STR(" messages due to a full event buffer including: "));
+	msg.append(maxEvent->getMessage());
+	return new LoggingEvent(
+			maxEvent->getLoggerName(),
+			maxEvent->getLevel(),
+			msg,
+			LocationInfo::getLocationUnavailable());
 }
 
 ::log4cxx::spi::LoggingEventPtr
 AsyncAppender::DiscardSummary::createEvent(::log4cxx::helpers::Pool& p,
-        size_t discardedCount)
+	size_t discardedCount)
 {
-    LogString msg(LOG4CXX_STR("Discarded "));
-    StringHelper::toString(discardedCount, p, msg);
-    msg.append(LOG4CXX_STR(" messages due to a full event buffer"));
-
-    return new LoggingEvent(
-               LOG4CXX_STR(""),
-               log4cxx::Level::getError(),
-               msg,
-               LocationInfo::getLocationUnavailable());
+	LogString msg(LOG4CXX_STR("Discarded "));
+	StringHelper::toString(discardedCount, p, msg);
+	msg.append(LOG4CXX_STR(" messages due to a full event buffer"));
+
+	return new LoggingEvent(
+			LOG4CXX_STR(""),
+			log4cxx::Level::getError(),
+			msg,
+			LocationInfo::getLocationUnavailable());
 }
 
 #if APR_HAS_THREADS
 void* LOG4CXX_THREAD_FUNC AsyncAppender::dispatch(apr_thread_t* /*thread*/, void* data)
 {
-    AsyncAppender* pThis = (AsyncAppender*) data;
-    bool isActive = true;
-
-    try
-    {
-        while (isActive)
-        {
-            //
-            //   process events after lock on buffer is released.
-            //
-            Pool p;
-            LoggingEventList events;
-            {
-                synchronized sync(pThis->bufferMutex);
-                size_t bufferSize = pThis->buffer.size();
-                isActive = !pThis->closed;
-
-                while ((bufferSize == 0) && isActive)
-                {
-                    pThis->bufferNotEmpty.await(pThis->bufferMutex);
-                    bufferSize = pThis->buffer.size();
-                    isActive = !pThis->closed;
-                }
-
-                for (LoggingEventList::iterator eventIter = pThis->buffer.begin();
-                        eventIter != pThis->buffer.end();
-                        eventIter++)
-                {
-                    events.push_back(*eventIter);
-                }
-
-                for (DiscardMap::iterator discardIter = pThis->discardMap->begin();
-                        discardIter != pThis->discardMap->end();
-                        discardIter++)
-                {
-                    events.push_back(discardIter->second.createEvent(p));
-                }
-
-                pThis->buffer.clear();
-                pThis->discardMap->clear();
-                pThis->bufferNotFull.signalAll();
-            }
-
-            for (LoggingEventList::iterator iter = events.begin();
-                    iter != events.end();
-                    iter++)
-            {
-                synchronized sync(pThis->appenders->getMutex());
-                pThis->appenders->appendLoopOnAppenders(*iter, p);
-            }
-        }
-    }
-    catch (InterruptedException& ex)
-    {
-        Thread::currentThreadInterrupt();
-    }
-    catch (...)
-    {
-    }
-
-    return 0;
+	AsyncAppender* pThis = (AsyncAppender*) data;
+	bool isActive = true;
+
+	try
+	{
+		while (isActive)
+		{
+			//
+			//   process events after lock on buffer is released.
+			//
+			Pool p;
+			LoggingEventList events;
+			{
+				synchronized sync(pThis->bufferMutex);
+				size_t bufferSize = pThis->buffer.size();
+				isActive = !pThis->closed;
+
+				while ((bufferSize == 0) && isActive)
+				{
+					pThis->bufferNotEmpty.await(pThis->bufferMutex);
+					bufferSize = pThis->buffer.size();
+					isActive = !pThis->closed;
+				}
+
+				for (LoggingEventList::iterator eventIter = pThis->buffer.begin();
+					eventIter != pThis->buffer.end();
+					eventIter++)
+				{
+					events.push_back(*eventIter);
+				}
+
+				for (DiscardMap::iterator discardIter = pThis->discardMap->begin();
+					discardIter != pThis->discardMap->end();
+					discardIter++)
+				{
+					events.push_back(discardIter->second.createEvent(p));
+				}
+
+				pThis->buffer.clear();
+				pThis->discardMap->clear();
+				pThis->bufferNotFull.signalAll();
+			}
+
+			for (LoggingEventList::iterator iter = events.begin();
+				iter != events.end();
+				iter++)
+			{
+				synchronized sync(pThis->appenders->getMutex());
+				pThis->appenders->appendLoopOnAppenders(*iter, p);
+			}
+		}
+	}
+	catch (InterruptedException& ex)
+	{
+		Thread::currentThreadInterrupt();
+	}
+	catch (...)
+	{
+	}
+
+	return 0;
 }
 #endif
diff --git a/src/main/cpp/asyncappender_nonblocking.cpp b/src/main/cpp/asyncappender_nonblocking.cpp
index fca89df..6c28756 100644
--- a/src/main/cpp/asyncappender_nonblocking.cpp
+++ b/src/main/cpp/asyncappender_nonblocking.cpp
@@ -16,7 +16,7 @@
  */
 
 #if defined(_MSC_VER)
-    #pragma warning ( disable: 4231 4251 4275 4786 )
+	#pragma warning ( disable: 4231 4251 4275 4786 )
 #endif
 
 #include <log4cxx/asyncappender.h>
@@ -43,405 +43,405 @@ IMPLEMENT_LOG4CXX_OBJECT(AsyncAppender)
 
 
 AsyncAppender::AsyncAppender()
-    : AppenderSkeleton(),
-      buffer(DEFAULT_BUFFER_SIZE),
-      SHARED_MUTEX_INIT(bufferMutex, pool),
-      bufferNotFull(pool),
-      bufferNotEmpty(pool),
-      discardMap(new DiscardMap()),
-      bufferSize(DEFAULT_BUFFER_SIZE),
-      appenders(new AppenderAttachableImpl(pool)),
-      dispatcher(),
-      locationInfo(false),
-      blocking(true)
+	: AppenderSkeleton(),
+	  buffer(DEFAULT_BUFFER_SIZE),
+	  SHARED_MUTEX_INIT(bufferMutex, pool),
+	  bufferNotFull(pool),
+	  bufferNotEmpty(pool),
+	  discardMap(new DiscardMap()),
+	  bufferSize(DEFAULT_BUFFER_SIZE),
+	  appenders(new AppenderAttachableImpl(pool)),
+	  dispatcher(),
+	  locationInfo(false),
+	  blocking(true)
 {
 #if APR_HAS_THREADS
-    dispatcher.run(dispatch, this);
+	dispatcher.run(dispatch, this);
 #endif
 }
 
 AsyncAppender::~AsyncAppender()
 {
-    finalize();
-    delete discardMap;
+	finalize();
+	delete discardMap;
 }
 
 void AsyncAppender::addRef() const
 {
-    ObjectImpl::addRef();
+	ObjectImpl::addRef();
 }
 
 void AsyncAppender::releaseRef() const
 {
-    ObjectImpl::releaseRef();
+	ObjectImpl::releaseRef();
 }
 
 void AsyncAppender::addAppender(const AppenderPtr& newAppender)
 {
-    synchronized sync(appenders->getMutex());
-    appenders->addAppender(newAppender);
+	synchronized sync(appenders->getMutex());
+	appenders->addAppender(newAppender);
 }
 
 
 void AsyncAppender::setOption(const LogString& option,
-                              const LogString& value)
+	const LogString& value)
 {
-    if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LOCATIONINFO"), LOG4CXX_STR("locationinfo")))
-    {
-        setLocationInfo(OptionConverter::toBoolean(value, false));
-    }
-
-    if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BUFFERSIZE"), LOG4CXX_STR("buffersize")))
-    {
-        setBufferSize(OptionConverter::toInt(value, DEFAULT_BUFFER_SIZE));
-    }
-
-    if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BLOCKING"), LOG4CXX_STR("blocking")))
-    {
-        setBlocking(OptionConverter::toBoolean(value, true));
-    }
-    else
-    {
-        AppenderSkeleton::setOption(option, value);
-    }
+	if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LOCATIONINFO"), LOG4CXX_STR("locationinfo")))
+	{
+		setLocationInfo(OptionConverter::toBoolean(value, false));
+	}
+
+	if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BUFFERSIZE"), LOG4CXX_STR("buffersize")))
+	{
+		setBufferSize(OptionConverter::toInt(value, DEFAULT_BUFFER_SIZE));
+	}
+
+	if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BLOCKING"), LOG4CXX_STR("blocking")))
+	{
+		setBlocking(OptionConverter::toBoolean(value, true));
+	}
+	else
+	{
+		AppenderSkeleton::setOption(option, value);
+	}
 }
 
 
 void AsyncAppender::doAppend(const spi::LoggingEventPtr& event, Pool& pool1)
 {
-    LOCK_R sync(mutex);
+	LOCK_R sync(mutex);
 
-    doAppendImpl(event, pool1);
+	doAppendImpl(event, pool1);
 }
 
 void AsyncAppender::append(const spi::LoggingEventPtr& event, Pool& p)
 {
 #if APR_HAS_THREADS
 
-    //
-    //   if dispatcher has died then
-    //      append subsequent events synchronously
-    //
-    if (!dispatcher.isAlive() || bufferSize <= 0)
-    {
-        synchronized sync(appenders->getMutex());
-        appenders->appendLoopOnAppenders(event, p);
-        return;
-    }
-
-    // Set the NDC and thread name for the calling thread as these
-    // LoggingEvent fields were not set at event creation time.
-    LogString ndcVal;
-    event->getNDC(ndcVal);
-    event->getThreadName();
-    // Get a copy of this thread's MDC.
-    event->getMDCCopy();
-
-
-    {
-        LOCK_R sync(bufferMutex);
-
-        while (true)
-        {
-
-            event->addRef();
-
-            if (buffer.bounded_push(event))
-            {
-                bufferNotEmpty.signalAll();
-                break;
-            }
-            else
-            {
-                event->releaseRef();
-            }
-
-            //
-            //   Following code is only reachable if buffer is full
-            //
-            //
-            //   if blocking and thread is not already interrupted
-            //      and not the dispatcher then
-            //      wait for a buffer notification
-            bool discard = true;
-
-            if (blocking
-                    && !Thread::interrupted()
-                    && !dispatcher.isCurrentThread())
-            {
-                try
-                {
-                    bufferNotFull.await();
-                    discard = false;
-                }
-                catch (InterruptedException& e)
-                {
-                    //
-                    //  reset interrupt status so
-                    //    calling code can see interrupt on
-                    //    their next wait or sleep.
-                    Thread::currentThreadInterrupt();
-                }
-            }
-
-            //
-            //   if blocking is false or thread has been interrupted
-            //   add event to discard map.
-            //
-            if (discard)
-            {
-                discardedCount++;
-                break;
-            }
-        }
-    }
+	//
+	//   if dispatcher has died then
+	//      append subsequent events synchronously
+	//
+	if (!dispatcher.isAlive() || bufferSize <= 0)
+	{
+		synchronized sync(appenders->getMutex());
+		appenders->appendLoopOnAppenders(event, p);
+		return;
+	}
+
+	// Set the NDC and thread name for the calling thread as these
+	// LoggingEvent fields were not set at event creation time.
+	LogString ndcVal;
+	event->getNDC(ndcVal);
+	event->getThreadName();
+	// Get a copy of this thread's MDC.
+	event->getMDCCopy();
+
+
+	{
+		LOCK_R sync(bufferMutex);
+
+		while (true)
+		{
+
+			event->addRef();
+
+			if (buffer.bounded_push(event))
+			{
+				bufferNotEmpty.signalAll();
+				break;
+			}
+			else
+			{
+				event->releaseRef();
+			}
+
+			//
+			//   Following code is only reachable if buffer is full
+			//
+			//
+			//   if blocking and thread is not already interrupted
+			//      and not the dispatcher then
+			//      wait for a buffer notification
+			bool discard = true;
+
+			if (blocking
+				&& !Thread::interrupted()
+				&& !dispatcher.isCurrentThread())
+			{
+				try
+				{
+					bufferNotFull.await();
+					discard = false;
+				}
+				catch (InterruptedException& e)
+				{
+					//
+					//  reset interrupt status so
+					//    calling code can see interrupt on
+					//    their next wait or sleep.
+					Thread::currentThreadInterrupt();
+				}
+			}
+
+			//
+			//   if blocking is false or thread has been interrupted
+			//   add event to discard map.
+			//
+			if (discard)
+			{
+				discardedCount++;
+				break;
+			}
+		}
+	}
 #else
-    synchronized sync(appenders->getMutex());
-    appenders->appendLoopOnAppenders(event, p);
+	synchronized sync(appenders->getMutex());
+	appenders->appendLoopOnAppenders(event, p);
 #endif
 }
 
 
 void AsyncAppender::close()
 {
-    {
-        LOCK_W sync(bufferMutex);
-        closed = true;
-    }
+	{
+		LOCK_W sync(bufferMutex);
+		closed = true;
+	}
 
-    bufferNotEmpty.signalAll();
-    bufferNotFull.signalAll();
+	bufferNotEmpty.signalAll();
+	bufferNotFull.signalAll();
 
 #if APR_HAS_THREADS
 
-    try
-    {
-        dispatcher.join();
-    }
-    catch (InterruptedException& e)
-    {
-        Thread::currentThreadInterrupt();
-        LogLog::error(LOG4CXX_STR("Got an InterruptedException while waiting for the dispatcher to finish,"), e);
-    }
+	try
+	{
+		dispatcher.join();
+	}
+	catch (InterruptedException& e)
+	{
+		Thread::currentThreadInterrupt();
+		LogLog::error(LOG4CXX_STR("Got an InterruptedException while waiting for the dispatcher to finish,"), e);
+	}
 
 #endif
 
-    {
-        synchronized sync(appenders->getMutex());
-        AppenderList appenderList = appenders->getAllAppenders();
-
-        for (AppenderList::iterator iter = appenderList.begin();
-                iter != appenderList.end();
-                iter++)
-        {
-            (*iter)->close();
-        }
-    }
+	{
+		synchronized sync(appenders->getMutex());
+		AppenderList appenderList = appenders->getAllAppenders();
+
+		for (AppenderList::iterator iter = appenderList.begin();
+			iter != appenderList.end();
+			iter++)
+		{
+			(*iter)->close();
+		}
+	}
 }
 
 AppenderList AsyncAppender::getAllAppenders() const
 {
-    synchronized sync(appenders->getMutex());
-    return appenders->getAllAppenders();
+	synchronized sync(appenders->getMutex());
+	return appenders->getAllAppenders();
 }
 
 AppenderPtr AsyncAppender::getAppender(const LogString& n) const
 {
-    synchronized sync(appenders->getMutex());
-    return appenders->getAppender(n);
+	synchronized sync(appenders->getMutex());
+	return appenders->getAppender(n);
 }
 
 bool AsyncAppender::isAttached(const AppenderPtr& appender) const
 {
-    synchronized sync(appenders->getMutex());
-    return appenders->isAttached(appender);
+	synchronized sync(appenders->getMutex());
+	return appenders->isAttached(appender);
 }
 
 bool AsyncAppender::requiresLayout() const
 {
-    return false;
+	return false;
 }
 
 void AsyncAppender::removeAllAppenders()
 {
-    synchronized sync(appenders->getMutex());
-    appenders->removeAllAppenders();
+	synchronized sync(appenders->getMutex());
+	appenders->removeAllAppenders();
 }
 
 void AsyncAppender::removeAppender(const AppenderPtr& appender)
 {
-    synchronized sync(appenders->getMutex());
-    appenders->removeAppender(appender);
+	synchronized sync(appenders->getMutex());
+	appenders->removeAppender(appender);
 }
 
 void AsyncAppender::removeAppender(const LogString& n)
 {
-    synchronized sync(appenders->getMutex());
-    appenders->removeAppender(n);
+	synchronized sync(appenders->getMutex());
+	appenders->removeAppender(n);
 }
 
 bool AsyncAppender::getLocationInfo() const
 {
-    return locationInfo;
+	return locationInfo;
 }
 
 void AsyncAppender::setLocationInfo(bool flag)
 {
-    locationInfo = flag;
+	locationInfo = flag;
 }
 
 
 void AsyncAppender::setBufferSize(int size)
 {
-    if (size < 0)
-    {
-        throw IllegalArgumentException(LOG4CXX_STR("size argument must be non-negative"));
-    }
-
-    {
-        LOCK_W sync(bufferMutex);
-        bufferSize = (size < 1) ? 1 : size;
-        buffer.reserve_unsafe(bufferSize);
-    }
-
-    bufferNotFull.signalAll();
+	if (size < 0)
+	{
+		throw IllegalArgumentException(LOG4CXX_STR("size argument must be non-negative"));
+	}
+
+	{
+		LOCK_W sync(bufferMutex);
+		bufferSize = (size < 1) ? 1 : size;
+		buffer.reserve_unsafe(bufferSize);
+	}
+
+	bufferNotFull.signalAll();
 }
 
 int AsyncAppender::getBufferSize() const
 {
-    return bufferSize;
+	return bufferSize;
 }
 
 void AsyncAppender::setBlocking(bool value)
 {
-    {
-        LOCK_W sync(bufferMutex);
-        blocking = value;
-    }
-    bufferNotFull.signalAll();
+	{
+		LOCK_W sync(bufferMutex);
+		blocking = value;
+	}
+	bufferNotFull.signalAll();
 }
 
 bool AsyncAppender::getBlocking() const
 {
-    return blocking;
+	return blocking;
 }
 
 AsyncAppender::DiscardSummary::DiscardSummary(const LoggingEventPtr& event) :
-    maxEvent(event), count(1)
+	maxEvent(event), count(1)
 {
 }
 
 AsyncAppender::DiscardSummary::DiscardSummary(const DiscardSummary& src) :
-    maxEvent(src.maxEvent), count(src.count)
+	maxEvent(src.maxEvent), count(src.count)
 {
 }
 
 AsyncAppender::DiscardSummary& AsyncAppender::DiscardSummary::operator=(const DiscardSummary& src)
 {
-    maxEvent = src.maxEvent;
-    count = src.count;
-    return *this;
+	maxEvent = src.maxEvent;
+	count = src.count;
+	return *this;
 }
 
 void AsyncAppender::DiscardSummary::add(const LoggingEventPtr& event)
 {
-    if (event->getLevel()->toInt() > maxEvent->getLevel()->toInt())
-    {
-        maxEvent = event;
-    }
+	if (event->getLevel()->toInt() > maxEvent->getLevel()->toInt())
+	{
+		maxEvent = event;
+	}
 
-    count++;
+	count++;
 }
 
 LoggingEventPtr AsyncAppender::DiscardSummary::createEvent(Pool& p)
 {
-    LogString msg(LOG4CXX_STR("Discarded "));
-    StringHelper::toString(count, p, msg);
-    msg.append(LOG4CXX_STR(" messages due to a full event buffer including: "));
-    msg.append(maxEvent->getMessage());
-    return new LoggingEvent(
-               maxEvent->getLoggerName(),
-               maxEvent->getLevel(),
-               msg,
-               LocationInfo::getLocationUnavailable());
+	LogString msg(LOG4CXX_STR("Discarded "));
+	StringHelper::toString(count, p, msg);
+	msg.append(LOG4CXX_STR(" messages due to a full event buffer including: "));
+	msg.append(maxEvent->getMessage());
+	return new LoggingEvent(
+			maxEvent->getLoggerName(),
+			maxEvent->getLevel(),
+			msg,
+			LocationInfo::getLocationUnavailable());
 }
 
 ::log4cxx::spi::LoggingEventPtr
 AsyncAppender::DiscardSummary::createEvent(::log4cxx::helpers::Pool& p,
-        size_t discardedCount)
+	size_t discardedCount)
 {
-    LogString msg(LOG4CXX_STR("Discarded "));
-    StringHelper::toString(discardedCount, p, msg);
-    msg.append(LOG4CXX_STR(" messages due to a full event buffer"));
-
-    return new LoggingEvent(
-               LOG4CXX_STR(""),
-               log4cxx::Level::getError(),
-               msg,
-               LocationInfo::getLocationUnavailable());
+	LogString msg(LOG4CXX_STR("Discarded "));
+	StringHelper::toString(discardedCount, p, msg);
+	msg.append(LOG4CXX_STR(" messages due to a full event buffer"));
+
+	return new LoggingEvent(
+			LOG4CXX_STR(""),
+			log4cxx::Level::getError(),
+			msg,
+			LocationInfo::getLocationUnavailable());
 }
 
 #if APR_HAS_THREADS
 void* LOG4CXX_THREAD_FUNC AsyncAppender::dispatch(apr_thread_t* /*thread*/, void* data)
 {
-    AsyncAppender* pThis = (AsyncAppender*) data;
-
-    try
-    {
-        while (!pThis->closed || !pThis->buffer.empty())
-        {
-
-            pThis->bufferNotEmpty.await();
-
-            //
-            //   process events after lock on buffer is released.
-            //
-            Pool p;
-            LoggingEventList events;
-            {
-                LOCK_R sync(pThis->bufferMutex);
-
-                unsigned count = 0;
-                log4cxx::spi::LoggingEvent* logPtr = nullptr;
-
-                while (pThis->buffer.pop(logPtr))
-                {
-                    log4cxx::spi::LoggingEventPtr ptr(logPtr);
-                    events.push_back(ptr);
-                    logPtr->releaseRef();
-                    count++;
-                }
-
-                if (pThis->blocking)
-                {
-                    pThis->bufferNotFull.signalAll();
-                }
-
-                size_t discarded = pThis->discardedCount.exchange(0);
-
-                if (discarded != 0)
-                {
-                    events.push_back(AsyncAppender::DiscardSummary::createEvent(p, discarded));
-                }
-            }
-
-            for (LoggingEventList::iterator iter = events.begin();
-                    iter != events.end();
-                    iter++)
-            {
-                synchronized sync(pThis->appenders->getMutex());
-                pThis->appenders->appendLoopOnAppenders(*iter, p);
-            }
-        }
-    }
-    catch (InterruptedException& ex)
-    {
-        Thread::currentThreadInterrupt();
-    }
-    catch (...)
-    {
-    }
-
-    return 0;
+	AsyncAppender* pThis = (AsyncAppender*) data;
+
+	try
+	{
+		while (!pThis->closed || !pThis->buffer.empty())
+		{
+
+			pThis->bufferNotEmpty.await();
+
+			//
+			//   process events after lock on buffer is released.
+			//
+			Pool p;
+			LoggingEventList events;
+			{
+				LOCK_R sync(pThis->bufferMutex);
+
+				unsigned count = 0;
+				log4cxx::spi::LoggingEvent* logPtr = nullptr;
+
+				while (pThis->buffer.pop(logPtr))
+				{
+					log4cxx::spi::LoggingEventPtr ptr(logPtr);
+					events.push_back(ptr);
+					logPtr->releaseRef();
+					count++;
+				}
+
+				if (pThis->blocking)
+				{
+					pThis->bufferNotFull.signalAll();
+				}
+
+				size_t discarded = pThis->discardedCount.exchange(0);
+
+				if (discarded != 0)
+				{
+					events.push_back(AsyncAppender::DiscardSummary::createEvent(p, discarded));
+				}
+			}
+
+			for (LoggingEventList::iterator iter = events.begin();
+				iter != events.end();
+				iter++)
+			{
+				synchronized sync(pThis->appenders->getMutex());
+				pThis->appenders->appendLoopOnAppenders(*iter, p);
+			}
+		}
+	}
+	catch (InterruptedException& ex)
+	{
+		Thread::currentThreadInterrupt();
+	}
+	catch (...)
+	{
+	}
+
+	return 0;
 }
 #endif
diff --git a/src/main/cpp/basicconfigurator.cpp b/src/main/cpp/basicconfigurator.cpp
index 24a46d6..39db14b 100644
--- a/src/main/cpp/basicconfigurator.cpp
+++ b/src/main/cpp/basicconfigurator.cpp
@@ -25,21 +25,21 @@ using namespace log4cxx;
 
 void BasicConfigurator::configure()
 {
-    LogManager::getLoggerRepository()->setConfigured(true);
-    LoggerPtr root = Logger::getRootLogger();
-    static const LogString TTCC_CONVERSION_PATTERN(LOG4CXX_STR("%r [%t] %p %c %x - %m%n"));
-    LayoutPtr layout(new PatternLayout(TTCC_CONVERSION_PATTERN));
-    AppenderPtr appender(new ConsoleAppender(layout));
-    root->addAppender(appender);
+	LogManager::getLoggerRepository()->setConfigured(true);
+	LoggerPtr root = Logger::getRootLogger();
+	static const LogString TTCC_CONVERSION_PATTERN(LOG4CXX_STR("%r [%t] %p %c %x - %m%n"));
+	LayoutPtr layout(new PatternLayout(TTCC_CONVERSION_PATTERN));
+	AppenderPtr appender(new ConsoleAppender(layout));
+	root->addAppender(appender);
 }
 
 void BasicConfigurator::configure(const AppenderPtr& appender)
 {
-    LoggerPtr root = Logger::getRootLogger();
-    root->addAppender(appender);
+	LoggerPtr root = Logger::getRootLogger();
+	root->addAppender(appender);
 }
 
 void BasicConfigurator::resetConfiguration()
 {
-    LogManager::resetConfiguration();
+	LogManager::resetConfiguration();
 }
diff --git a/src/main/cpp/bufferedwriter.cpp b/src/main/cpp/bufferedwriter.cpp
index 6898d09..5d21a9b 100644
--- a/src/main/cpp/bufferedwriter.cpp
+++ b/src/main/cpp/bufferedwriter.cpp
@@ -24,12 +24,12 @@ using namespace log4cxx::helpers;
 IMPLEMENT_LOG4CXX_OBJECT(BufferedWriter)
 
 BufferedWriter::BufferedWriter(WriterPtr& out1)
-    : out(out1), sz(1024)
+	: out(out1), sz(1024)
 {
 }
 
 BufferedWriter::BufferedWriter(WriterPtr& out1, size_t sz1)
-    : out(out1), sz(sz1)
+	: out(out1), sz(sz1)
 {
 }
 
@@ -39,34 +39,34 @@ BufferedWriter::~BufferedWriter()
 
 void BufferedWriter::close(Pool& p)
 {
-    flush(p);
-    out->close(p);
+	flush(p);
+	out->close(p);
 }
 
 void BufferedWriter::flush(Pool& p)
 {
-    if (buf.length() > 0)
-    {
-        out->write(buf, p);
-        buf.erase(buf.begin(), buf.end());
-    }
+	if (buf.length() > 0)
+	{
+		out->write(buf, p);
+		buf.erase(buf.begin(), buf.end());
+	}
 }
 
 void BufferedWriter::write(const LogString& str, Pool& p)
 {
-    if (buf.length() + str.length() > sz)
-    {
-        out->write(buf, p);
-        buf.erase(buf.begin(), buf.end());
-    }
+	if (buf.length() + str.length() > sz)
+	{
+		out->write(buf, p);
+		buf.erase(buf.begin(), buf.end());
+	}
 
-    if (str.length() > sz)
-    {
-        out->write(str, p);
-    }
-    else
-    {
-        buf.append(str);
-    }
+	if (str.length() > sz)
+	{
+		out->write(str, p);
+	}
+	else
+	{
+		buf.append(str);
+	}
 }
 
diff --git a/src/main/cpp/bytearrayinputstream.cpp b/src/main/cpp/bytearrayinputstream.cpp
index 20f90f2..ee89744 100644
--- a/src/main/cpp/bytearrayinputstream.cpp
+++ b/src/main/cpp/bytearrayinputstream.cpp
@@ -29,7 +29,7 @@ using namespace std;
 IMPLEMENT_LOG4CXX_OBJECT(ByteArrayInputStream)
 
 ByteArrayInputStream::ByteArrayInputStream(const std::vector<unsigned char>& bytes) :
-    buf(bytes), pos(0)
+	buf(bytes), pos(0)
 {
 }
 
@@ -47,16 +47,16 @@ void ByteArrayInputStream::close()
 
 int ByteArrayInputStream::read(ByteBuffer& dst)
 {
-    if (pos >= buf.size())
-    {
-        return -1;
-    }
-    else
-    {
-        size_t bytesCopied = min(dst.remaining(), buf.size() - pos);
-        memcpy(dst.current(), &buf[pos], bytesCopied);
-        pos += bytesCopied;
-        dst.position(dst.position() + bytesCopied);
-        return bytesCopied;
-    }
+	if (pos >= buf.size())
+	{
+		return -1;
+	}
+	else
+	{
+		size_t bytesCopied = min(dst.remaining(), buf.size() - pos);
+		memcpy(dst.current(), &buf[pos], bytesCopied);
+		pos += bytesCopied;
+		dst.position(dst.position() + bytesCopied);
+		return bytesCopied;
+	}
 }
diff --git a/src/main/cpp/bytearrayoutputstream.cpp b/src/main/cpp/bytearrayoutputstream.cpp
index 52786c9..4918add 100644
--- a/src/main/cpp/bytearrayoutputstream.cpp
+++ b/src/main/cpp/bytearrayoutputstream.cpp
@@ -44,15 +44,15 @@ void ByteArrayOutputStream::flush(Pool& /* p */)
 
 void ByteArrayOutputStream::write(ByteBuffer& buf, Pool& /* p */ )
 {
-    size_t sz = array.size();
-    array.resize(sz + buf.remaining());
-    memcpy(&array[sz], buf.current(), buf.remaining());
-    buf.position(buf.limit());
+	size_t sz = array.size();
+	array.resize(sz + buf.remaining());
+	memcpy(&array[sz], buf.current(), buf.remaining());
+	buf.position(buf.limit());
 }
 
 std::vector<unsigned char> ByteArrayOutputStream::toByteArray() const
 {
-    return array;
+	return array;
 }
 
 
diff --git a/src/main/cpp/bytebuffer.cpp b/src/main/cpp/bytebuffer.cpp
index e4f2e36..fce185f 100644
--- a/src/main/cpp/bytebuffer.cpp
+++ b/src/main/cpp/bytebuffer.cpp
@@ -24,7 +24,7 @@ using namespace log4cxx;
 using namespace log4cxx::helpers;
 
 ByteBuffer::ByteBuffer(char* data1, size_t capacity)
-    : base(data1), pos(0), lim(capacity), cap(capacity)
+	: base(data1), pos(0), lim(capacity), cap(capacity)
 {
 }
 
@@ -34,46 +34,46 @@ ByteBuffer::~ByteBuffer()
 
 void ByteBuffer::clear()
 {
-    lim = cap;
-    pos = 0;
+	lim = cap;
+	pos = 0;
 }
 
 void ByteBuffer::flip()
 {
-    lim = pos;
-    pos = 0;
+	lim = pos;
+	pos = 0;
 }
 
 void ByteBuffer::position(size_t newPosition)
 {
-    if (newPosition < lim)
-    {
-        pos = newPosition;
-    }
-    else
-    {
-        pos = lim;
-    }
+	if (newPosition < lim)
+	{
+		pos = newPosition;
+	}
+	else
+	{
+		pos = lim;
+	}
 }
 
 void ByteBuffer::limit(size_t newLimit)
 {
-    if (newLimit > cap)
-    {
-        throw IllegalArgumentException(LOG4CXX_STR("newLimit"));
-    }
+	if (newLimit > cap)
+	{
+		throw IllegalArgumentException(LOG4CXX_STR("newLimit"));
+	}
 
-    lim = newLimit;
+	lim = newLimit;
 }
 
 
 bool ByteBuffer::put(char byte)
 {
-    if (pos < lim)
-    {
-        base[pos++] = byte;
-        return true;
-    }
+	if (pos < lim)
+	{
+		base[pos++] = byte;
+		return true;
+	}
 
-    return false;
+	return false;
 }
diff --git a/src/main/cpp/cacheddateformat.cpp b/src/main/cpp/cacheddateformat.cpp
index 90672fe..b6084ee 100644
--- a/src/main/cpp/cacheddateformat.cpp
+++ b/src/main/cpp/cacheddateformat.cpp
@@ -67,23 +67,23 @@ const logchar CachedDateFormat::zeroString[] = { 0x30, 0x30, 0x30, 0 };
  *      caching or 1 to only use cache for duplicate requests.
  */
 CachedDateFormat::CachedDateFormat(const DateFormatPtr& dateFormat,
-                                   int expiration1) :
-    formatter(dateFormat),
-    millisecondStart(0),
-    slotBegin(std::numeric_limits<log4cxx_time_t>::min()),
-    cache(50, 0x20),
-    expiration(expiration1),
-    previousTime(std::numeric_limits<log4cxx_time_t>::min())
+	int expiration1) :
+	formatter(dateFormat),
+	millisecondStart(0),
+	slotBegin(std::numeric_limits<log4cxx_time_t>::min()),
+	cache(50, 0x20),
+	expiration(expiration1),
+	previousTime(std::numeric_limits<log4cxx_time_t>::min())
 {
-    if (dateFormat == NULL)
-    {
-        throw IllegalArgumentException(LOG4CXX_STR("dateFormat cannot be null"));
-    }
-
-    if (expiration1 < 0)
-    {
-        throw IllegalArgumentException(LOG4CXX_STR("expiration must be non-negative"));
-    }
+	if (dateFormat == NULL)
+	{
+		throw IllegalArgumentException(LOG4CXX_STR("dateFormat cannot be null"));
+	}
+
+	if (expiration1 < 0)
+	{
+		throw IllegalArgumentException(LOG4CXX_STR("expiration must be non-negative"));
+	}
 }
 
 
@@ -97,86 +97,86 @@ CachedDateFormat::CachedDateFormat(const DateFormatPtr& dateFormat,
  *    field (likely RelativeTimeDateFormat)
  */
 int CachedDateFormat::findMillisecondStart(
-    log4cxx_time_t time, const LogString& formatted,
-    const DateFormatPtr& formatter,
-    Pool& pool)
+	log4cxx_time_t time, const LogString& formatted,
+	const DateFormatPtr& formatter,
+	Pool& pool)
 {
 
-    apr_time_t slotBegin = (time / 1000000) * 1000000;
-
-    if (slotBegin > time)
-    {
-        slotBegin -= 1000000;
-    }
-
-    int millis = (int) (time - slotBegin) / 1000;
-
-    int magic = magic1;
-    LogString magicString(magicString1);
-
-    if (millis == magic1)
-    {
-        magic = magic2;
-        magicString = magicString2;
-    }
-
-    LogString plusMagic;
-    formatter->format(plusMagic, slotBegin + magic, pool);
-
-    /**
-     *   If the string lengths differ then
-     *      we can't use the cache except for duplicate requests.
-     */
-    if (plusMagic.length() != formatted.length())
-    {
-        return UNRECOGNIZED_MILLISECONDS;
-    }
-    else
-    {
-        // find first difference between values
-        for (LogString::size_type i = 0; i < formatted.length(); i++)
-        {
-            if (formatted[i] != plusMagic[i])
-            {
-                //
-                //   determine the expected digits for the base time
-                const logchar abc[] = { 0x41, 0x42, 0x43, 0 };
-                LogString formattedMillis(abc);
-                millisecondFormat(millis, formattedMillis, 0);
-
-                LogString plusZero;
-                formatter->format(plusZero, slotBegin, pool);
-
-                // Test if the next 1..3 characters match the magic string, main problem is that magic
-                // available millis in formatted can overlap. Therefore the current i is not always the
-                // index of the first millis char, but may be already within the millis. Besides that
-                // the millis can occur everywhere in formatted. See LOGCXX-420 and following.
-                size_t  magicLength     = magicString.length();
-                size_t  overlapping     = magicString.find(plusMagic[i]);
-                int     possibleRetVal  = i - overlapping;
-
-                if (plusZero.length() == formatted.length()
-                        && regionMatches(magicString,       0, plusMagic,   possibleRetVal, magicLength)
-                        && regionMatches(formattedMillis,   0, formatted,   possibleRetVal, magicLength)
-                        && regionMatches(zeroString,        0, plusZero,    possibleRetVal, magicLength)
-                        // The following will and should fail for patterns with more than one SSS because
-                        // we only seem to be able to change one SSS in e.g. format and need to reformat the
-                        // whole string in other cases.
-                        && (formatted.length() == possibleRetVal + magicLength
-                            || plusZero.compare(possibleRetVal + magicLength,
-                                                LogString::npos, plusMagic, possibleRetVal + magicLength, LogString::npos) == 0))
-                {
-                    return possibleRetVal;
-                }
-                else
-                {
-                    return UNRECOGNIZED_MILLISECONDS;
-                }
-            }
-        }
-    }
-
-    return NO_MILLISECONDS;
+	apr_time_t slotBegin = (time / 1000000) * 1000000;
+
+	if (slotBegin > time)
+	{
+		slotBegin -= 1000000;
+	}
+
+	int millis = (int) (time - slotBegin) / 1000;
+
+	int magic = magic1;
+	LogString magicString(magicString1);
+
+	if (millis == magic1)
+	{
+		magic = magic2;
+		magicString = magicString2;
+	}
+
+	LogString plusMagic;
+	formatter->format(plusMagic, slotBegin + magic, pool);
+
+	/**
+	 *   If the string lengths differ then
+	 *      we can't use the cache except for duplicate requests.
+	 */
+	if (plusMagic.length() != formatted.length())
+	{
+		return UNRECOGNIZED_MILLISECONDS;
+	}
+	else
+	{
+		// find first difference between values
+		for (LogString::size_type i = 0; i < formatted.length(); i++)
+		{
+			if (formatted[i] != plusMagic[i])
+			{
+				//
+				//   determine the expected digits for the base time
+				const logchar abc[] = { 0x41, 0x42, 0x43, 0 };
+				LogString formattedMillis(abc);
+				millisecondFormat(millis, formattedMillis, 0);
+
+				LogString plusZero;
+				formatter->format(plusZero, slotBegin, pool);
+
+				// Test if the next 1..3 characters match the magic string, main problem is that magic
+				// available millis in formatted can overlap. Therefore the current i is not always the
+				// index of the first millis char, but may be already within the millis. Besides that
+				// the millis can occur everywhere in formatted. See LOGCXX-420 and following.
+				size_t  magicLength     = magicString.length();
+				size_t  overlapping     = magicString.find(plusMagic[i]);
+				int     possibleRetVal  = i - overlapping;
+
+				if (plusZero.length() == formatted.length()
+					&& regionMatches(magicString,       0, plusMagic,   possibleRetVal, magicLength)
+					&& regionMatches(formattedMillis,   0, formatted,   possibleRetVal, magicLength)
+					&& regionMatches(zeroString,        0, plusZero,    possibleRetVal, magicLength)
+					// The following will and should fail for patterns with more than one SSS because
+					// we only seem to be able to change one SSS in e.g. format and need to reformat the
+					// whole string in other cases.
+					&& (formatted.length() == possibleRetVal + magicLength
+						|| plusZero.compare(possibleRetVal + magicLength,
+							LogString::npos, plusMagic, possibleRetVal + magicLength, LogString::npos) == 0))
+				{
+					return possibleRetVal;
+				}
+				else
+				{
+					return UNRECOGNIZED_MILLISECONDS;
+				}
+			}
+		}
+	}
+
+	return NO_MILLISECONDS;
 }
 
 
@@ -189,69 +189,69 @@ int CachedDateFormat::findMillisecondStart(
 void CachedDateFormat::format(LogString& buf, log4cxx_time_t now, Pool& p) const
 {
 
-    //
-    // If the current requested time is identical to the previously
-    //     requested time, then append the cache contents.
-    //
-    if (now == previousTime)
-    {
-        buf.append(cache);
-        return;
-    }
-
-    //
-    //   If millisecond pattern was not unrecognized
-    //     (that is if it was found or milliseconds did not appear)
-    //
-    if (millisecondStart != UNRECOGNIZED_MILLISECONDS)
-    {
-        //    Check if the cache is still valid.
-        //    If the requested time is within the same integral second
-        //       as the last request and a shorter expiration was not requested.
-        if (now < slotBegin + expiration
-                && now >= slotBegin
-                && now < slotBegin + 1000000L)
-        {
-            //
-            //    if there was a millisecond field then update it
-            //
-            if (millisecondStart >= 0)
-            {
-                millisecondFormat((int) ((now - slotBegin) / 1000), cache, millisecondStart);
-            }
-
-            //
-            //   update the previously requested time
-            //      (the slot begin should be unchanged)
-            previousTime = now;
-            buf.append(cache);
-
-            return;
-        }
-    }
-
-    //
-    //  could not use previous value.
-    //    Call underlying formatter to format date.
-    cache.erase(cache.begin(), cache.end());
-    formatter->format(cache, now, p);
-    buf.append(cache);
-    previousTime = now;
-    slotBegin = (previousTime / 1000000) * 1000000;
-
-    if (slotBegin > previousTime)
-    {
-        slotBegin -= 1000000;
-    }
-
-    //
-    //    if the milliseconds field was previous found
-    //       then reevaluate in case it moved.
-    //
-    if (millisecondStart >= 0)
-    {
-        millisecondStart = findMillisecondStart(now, cache, formatter, p);
-    }
+	//
+	// If the current requested time is identical to the previously
+	//     requested time, then append the cache contents.
+	//
+	if (now == previousTime)
+	{
+		buf.append(cache);
+		return;
+	}
+
+	//
+	//   If millisecond pattern was not unrecognized
+	//     (that is if it was found or milliseconds did not appear)
+	//
+	if (millisecondStart != UNRECOGNIZED_MILLISECONDS)
+	{
+		//    Check if the cache is still valid.
+		//    If the requested time is within the same integral second
+		//       as the last request and a shorter expiration was not requested.
+		if (now < slotBegin + expiration
+			&& now >= slotBegin
+			&& now < slotBegin + 1000000L)
+		{
+			//
+			//    if there was a millisecond field then update it
+			//
+			if (millisecondStart >= 0)
+			{
+				millisecondFormat((int) ((now - slotBegin) / 1000), cache, millisecondStart);
+			}
+
+			//
+			//   update the previously requested time
+			//      (the slot begin should be unchanged)
+			previousTime = now;
+			buf.append(cache);
+
+			return;
+		}
+	}
+
+	//
+	//  could not use previous value.
+	//    Call underlying formatter to format date.
+	cache.erase(cache.begin(), cache.end());
+	formatter->format(cache, now, p);
+	buf.append(cache);
+	previousTime = now;
+	slotBegin = (previousTime / 1000000) * 1000000;
+
+	if (slotBegin > previousTime)
+	{
+		slotBegin -= 1000000;
+	}
+
+	//
+	//    if the milliseconds field was previous found
+	//       then reevaluate in case it moved.
+	//
+	if (millisecondStart >= 0)
+	{
+		millisecondStart = findMillisecondStart(now, cache, formatter, p);
+	}
 }
 
 /**
@@ -262,12 +262,12 @@ void CachedDateFormat::format(LogString& buf, log4cxx_time_t now, Pool& p) const
  *       buffer must be at least offset + 3.
  */
 void CachedDateFormat::millisecondFormat(int millis,
-        LogString& buf,
-        int offset)
+	LogString& buf,
+	int offset)
 {
-    buf[offset] = digits[millis / 100];
-    buf[offset + 1] = digits[(millis / 10) % 10];
-    buf[offset + 2] = digits[millis  % 10];
+	buf[offset] = digits[millis / 100];
+	buf[offset + 1] = digits[(millis / 10) % 10];
+	buf[offset + 2] = digits[millis  % 10];
 }
 
 /**
@@ -279,16 +279,16 @@ void CachedDateFormat::millisecondFormat(int millis,
  */
 void CachedDateFormat::setTimeZone(const TimeZonePtr& timeZone)
 {
-    formatter->setTimeZone(timeZone);
-    previousTime = std::numeric_limits<log4cxx_time_t>::min();
-    slotBegin = std::numeric_limits<log4cxx_time_t>::min();
+	formatter->setTimeZone(timeZone);
+	previousTime = std::numeric_limits<log4cxx_time_t>::min();
+	slotBegin = std::numeric_limits<log4cxx_time_t>::min();
 }
 
 
 
 void CachedDateFormat::numberFormat(LogString& s, int n, Pool& p) const
 {
-    formatter->numberFormat(s, n, p);
+	formatter->numberFormat(s, n, p);
 }
 
 
@@ -301,29 +301,29 @@ void CachedDateFormat::numberFormat(LogString& s, int n, Pool& p) const
  */
 int CachedDateFormat::getMaximumCacheValidity(const LogString& pattern)
 {
-    //
-    //   If there are more "S" in the pattern than just one "SSS" then
-    //      (for example, "HH:mm:ss,SSS SSS"), then set the expiration to
-    //      one millisecond which should only perform duplicate request caching.
-    //
-    const logchar S = 0x53;
-    const logchar SSS[] = { 0x53, 0x53, 0x53, 0 };
-    size_t firstS = pattern.find(S);
-    size_t len = pattern.length();
-
-    //
-    //   if there are no S's or
-    //      three that start with the first S and no fourth S in the string
-    //
-    if (firstS == LogString::npos ||
-            (len >= firstS + 3 && pattern.compare(firstS, 3, SSS) == 0
-             && (len == firstS + 3 ||
-                 pattern.find(S, firstS + 3) == LogString::npos)))
-    {
-        return 1000000;
-    }
-
-    return 1000;
+	//
+	//   If there are more "S" in the pattern than just one "SSS" then
+	//      (for example, "HH:mm:ss,SSS SSS"), then set the expiration to
+	//      one millisecond which should only perform duplicate request caching.
+	//
+	const logchar S = 0x53;
+	const logchar SSS[] = { 0x53, 0x53, 0x53, 0 };
+	size_t firstS = pattern.find(S);
+	size_t len = pattern.length();
+
+	//
+	//   if there are no S's or
+	//      three that start with the first S and no fourth S in the string
+	//
+	if (firstS == LogString::npos ||
+		(len >= firstS + 3 && pattern.compare(firstS, 3, SSS) == 0
+			&& (len == firstS + 3 ||
+				pattern.find(S, firstS + 3) == LogString::npos)))
+	{
+		return 1000000;
+	}
+
+	return 1000;
 }
 
 
@@ -337,12 +337,12 @@ int CachedDateFormat::getMaximumCacheValidity(const LogString& pattern)
 * @return true if regions are equal.
 */
 bool CachedDateFormat::regionMatches(
-    const LogString& target,
-    size_t toffset,
-    const LogString& other,
-    size_t ooffset,
-    size_t len)
+	const LogString& target,
+	size_t toffset,
+	const LogString& other,
+	size_t ooffset,
+	size_t len)
 {
-    return target.compare(toffset, len, other, ooffset, len) == 0;
+	return target.compare(toffset, len, other, ooffset, len) == 0;
 }
 
diff --git a/src/main/cpp/charsetdecoder.cpp b/src/main/cpp/charsetdecoder.cpp
index 4598c03..1736414 100644
--- a/src/main/cpp/charsetdecoder.cpp
+++ b/src/main/cpp/charsetdecoder.cpp
@@ -23,7 +23,7 @@
 #include <log4cxx/helpers/pool.h>
 #include <apr_xlate.h>
 #if !defined(LOG4CXX)
-    #define LOG4CXX 1
+	#define LOG4CXX 1
 #endif
 #include <log4cxx/private/log4cxx_private.h>
 #include <locale.h>
@@ -50,89 +50,89 @@ namespace helpers
  */
 class APRCharsetDecoder : public CharsetDecoder
 {
-    public:
-        /**
-         *  Creates a new instance.
-         *  @param frompage name of source encoding.
-         */
-        APRCharsetDecoder(const LogString& frompage) : pool(), mutex(pool)
-        {
+	public:
+		/**
+		 *  Creates a new instance.
+		 *  @param frompage name of source encoding.
+		 */
+		APRCharsetDecoder(const LogString& frompage) : pool(), mutex(pool)
+		{
 #if LOG4CXX_LOGCHAR_IS_WCHAR
-            const char* topage = "WCHAR_T";
+			const char* topage = "WCHAR_T";
 #endif
 #if LOG4CXX_LOGCHAR_IS_UTF8
-            const char* topage = "UTF-8";
+			const char* topage = "UTF-8";
 #endif
 #if LOG4CXX_LOGCHAR_IS_UNICHAR
-            const char* topage = "UTF-16";
+			const char* topage = "UTF-16";
 #endif
-            std::string fpage(Transcoder::encodeCharsetName(frompage));
-            apr_status_t stat = apr_xlate_open(&convset,
-                                               topage,
-                                               fpage.c_str(),
-                                               pool.getAPRPool());
-
-            if (stat != APR_SUCCESS)
-            {
-                throw IllegalArgumentException(frompage);
-            }
-        }
-
-        /**
-         *  Destructor.
-         */
-        virtual ~APRCharsetDecoder()
-        {
-        }
-
-        virtual log4cxx_status_t decode(ByteBuffer& in,
-                                        LogString& out)
-        {
-            enum { BUFSIZE = 256 };
-            logchar buf[BUFSIZE];
-            const apr_size_t initial_outbytes_left = BUFSIZE * sizeof(logchar);
-            apr_status_t stat = APR_SUCCESS;
-
-            if (in.remaining() == 0)
-            {
-                size_t outbytes_left = initial_outbytes_left;
-                {
-                    synchronized sync(mutex);
-                    stat = apr_xlate_conv_buffer((apr_xlate_t*) convset,
-                                                 NULL, NULL, (char*) buf, &outbytes_left);
-                }
-                out.append(buf, (initial_outbytes_left - outbytes_left) / sizeof(logchar));
-            }
-            else
-            {
-                while (in.remaining() > 0 && stat == APR_SUCCESS)
-                {
-                    size_t inbytes_left = in.remaining();
-                    size_t initial_inbytes_left = inbytes_left;
-                    size_t pos = in.position();
-                    apr_size_t outbytes_left = initial_outbytes_left;
-                    {
-                        synchronized sync(mutex);
-                        stat = apr_xlate_conv_buffer((apr_xlate_t*) convset,
-                                                     in.data() + pos,
-                                                     &inbytes_left,
-                                                     (char*) buf,
-                                                     &outbytes_left);
-                    }
-                    out.append(buf, (initial_outbytes_left - outbytes_left) / sizeof(logchar));
-                    in.position(pos + (initial_inbytes_left - inbytes_left));
-                }
-            }
-
-            return stat;
-        }
-
-    private:
-        APRCharsetDecoder(const APRCharsetDecoder&);
-        APRCharsetDecoder& operator=(const APRCharsetDecoder&);
-        log4cxx::helpers::Pool pool;
-        Mutex mutex;
-        apr_xlate_t* convset;
+			std::string fpage(Transcoder::encodeCharsetName(frompage));
+			apr_status_t stat = apr_xlate_open(&convset,
+					topage,
+					fpage.c_str(),
+					pool.getAPRPool());
+
+			if (stat != APR_SUCCESS)
+			{
+				throw IllegalArgumentException(frompage);
+			}
+		}
+
+		/**
+		 *  Destructor.
+		 */
+		virtual ~APRCharsetDecoder()
+		{
+		}
+
+		virtual log4cxx_status_t decode(ByteBuffer& in,
+			LogString& out)
+		{
+			enum { BUFSIZE = 256 };
+			logchar buf[BUFSIZE];
+			const apr_size_t initial_outbytes_left = BUFSIZE * sizeof(logchar);
+			apr_status_t stat = APR_SUCCESS;
+
+			if (in.remaining() == 0)
+			{
+				size_t outbytes_left = initial_outbytes_left;
+				{
+					synchronized sync(mutex);
+					stat = apr_xlate_conv_buffer((apr_xlate_t*) convset,
+							NULL, NULL, (char*) buf, &outbytes_left);
+				}
+				out.append(buf, (initial_outbytes_left - outbytes_left) / sizeof(logchar));
+			}
+			else
+			{
+				while (in.remaining() > 0 && stat == APR_SUCCESS)
+				{
+					size_t inbytes_left = in.remaining();
+					size_t initial_inbytes_left = inbytes_left;
+					size_t pos = in.position();
+					apr_size_t outbytes_left = initial_outbytes_left;
+					{
+						synchronized sync(mutex);
+						stat = apr_xlate_conv_buffer((apr_xlate_t*) convset,
+								in.data() + pos,
+								&inbytes_left,
+								(char*) buf,
+								&outbytes_left);
+					}
+					out.append(buf, (initial_outbytes_left - outbytes_left) / sizeof(logchar));
+					in.position(pos + (initial_inbytes_left - inbytes_left));
+				}
+			}
+
+			return stat;
+		}
+
+	private:
+		APRCharsetDecoder(const APRCharsetDecoder&);
+		APRCharsetDecoder& operator=(const APRCharsetDecoder&);
+		log4cxx::helpers::Pool pool;
+		Mutex mutex;
+		apr_xlate_t* convset;
 };
 
 #endif
@@ -145,78 +145,78 @@ class APRCharsetDecoder : public CharsetDecoder
 */
 class MbstowcsCharsetDecoder : public CharsetDecoder
 {
-    public:
-        MbstowcsCharsetDecoder()
-        {
-        }
-
-        virtual ~MbstowcsCharsetDecoder()
-        {
-        }
-
-    private:
-        inline log4cxx_status_t append(LogString& out, const wchar_t* buf)
-        {
-            out.append(buf);
-            return APR_SUCCESS;
-        }
-
-        virtual log4cxx_status_t decode(ByteBuffer& in,
-                                        LogString& out)
-        {
-            log4cxx_status_t stat = APR_SUCCESS;
-            enum { BUFSIZE = 256 };
-            wchar_t buf[BUFSIZE];
-
-            mbstate_t mbstate;
-            memset(&mbstate, 0, sizeof(mbstate));
-
-            while (in.remaining() > 0)
-            {
-                size_t requested = in.remaining();
-
-                if (requested > BUFSIZE - 1)
-                {
-                    requested = BUFSIZE - 1;
-                }
-
-                memset(buf, 0, BUFSIZE * sizeof(wchar_t));
-                const char* src = in.current();
-
-                if (*src == 0)
-                {
-                    out.append(1, (logchar) 0);
-                    in.position(in.position() + 1);
-                }
-                else
-                {
-                    size_t converted = mbsrtowcs(buf,
-                                                 &src,
-                                                 requested,
-                                                 &mbstate);
-
-                    if (converted == (size_t) -1)
-                    {
-                        stat = APR_BADARG;
-                        in.position(src - in.data());
-                        break;
-                    }
-                    else
-                    {
-                        stat = append(out, buf);
-                        in.position(in.position() + requested);
-                    }
-                }
-            }
-
-            return stat;
-        }
-
-
-
-    private:
-        MbstowcsCharsetDecoder(const MbstowcsCharsetDecoder&);
-        MbstowcsCharsetDecoder& operator=(const MbstowcsCharsetDecoder&);
+	public:
+		MbstowcsCharsetDecoder()
+		{
+		}
+
+		virtual ~MbstowcsCharsetDecoder()
+		{
+		}
+
+	private:
+		inline log4cxx_status_t append(LogString& out, const wchar_t* buf)
+		{
+			out.append(buf);
+			return APR_SUCCESS;
+		}
+
+		virtual log4cxx_status_t decode(ByteBuffer& in,
+			LogString& out)
+		{
+			log4cxx_status_t stat = APR_SUCCESS;
+			enum { BUFSIZE = 256 };
+			wchar_t buf[BUFSIZE];
+
+			mbstate_t mbstate;
+			memset(&mbstate, 0, sizeof(mbstate));
+
+			while (in.remaining() > 0)
+			{
+				size_t requested = in.remaining();
+
+				if (requested > BUFSIZE - 1)
+				{
+					requested = BUFSIZE - 1;
+				}
+
+				memset(buf, 0, BUFSIZE * sizeof(wchar_t));
+				const char* src = in.current();
+
+				if (*src == 0)
+				{
+					out.append(1, (logchar) 0);
+					in.position(in.position() + 1);
+				}
+				else
+				{
+					size_t converted = mbsrtowcs(buf,
+							&src,
+							requested,
+							&mbstate);
+
+					if (converted == (size_t) -1)
+					{
+						stat = APR_BADARG;
+						in.position(src - in.data());
+						break;
+					}
+					else
+					{
+						stat = append(out, buf);
+						in.position(in.position() + requested);
+					}
+				}
+			}
+
+			return stat;
+		}
+
+
+
+	private:
+		MbstowcsCharsetDecoder(const MbstowcsCharsetDecoder&);
+		MbstowcsCharsetDecoder& operator=(const MbstowcsCharsetDecoder&);
 };
 #endif
 
@@ -228,36 +228,36 @@ class MbstowcsCharsetDecoder : public CharsetDecoder
 */
 class TrivialCharsetDecoder : public CharsetDecoder
 {
-    public:
-        TrivialCharsetDecoder()
-        {
-        }
+	public:
+		TrivialCharsetDecoder()
+		{
+		}
 
-        virtual ~TrivialCharsetDecoder()
-        {
-        }
+		virtual ~TrivialCharsetDecoder()
+		{
+		}
 
-        virtual log4cxx_status_t decode(ByteBuffer& in,
-                                        LogString& out)
-        {
-            size_t remaining = in.remaining();
+		virtual log4cxx_status_t decode(ByteBuffer& in,
+			LogString& out)
+		{
+			size_t remaining = in.remaining();
 
-            if ( remaining > 0)
-            {
-                const logchar* src = (const logchar*) (in.data() + in.position());
-                size_t count = remaining / sizeof(logchar);
-                out.append(src, count);
-                in.position(in.position() + remaining);
-            }
+			if ( remaining > 0)
+			{
+				const logchar* src = (const logchar*) (in.data() + in.position());
+				size_t count = remaining / sizeof(logchar);
+				out.append(src, count);
+				in.position(in.position() + remaining);
+			}
 
-            return APR_SUCCESS;
-        }
+			return APR_SUCCESS;
+		}
 
 
 
-    private:
-        TrivialCharsetDecoder(const TrivialCharsetDecoder&);
-        TrivialCharsetDecoder& operator=(const TrivialCharsetDecoder&);
+	private:
+		TrivialCharsetDecoder(const TrivialCharsetDecoder&);
+		TrivialCharsetDecoder& operator=(const TrivialCharsetDecoder&);
 };
 
 
@@ -270,49 +270,49 @@ typedef TrivialCharsetDecoder UTF8CharsetDecoder;
 */
 class UTF8CharsetDecoder : public CharsetDecoder
 {
-    public:
-        UTF8CharsetDecoder()
-        {
-        }
-
-        virtual ~UTF8CharsetDecoder()
-        {
-        }
-
-    private:
-        virtual log4cxx_status_t decode(ByteBuffer& in,
-                                        LogString& out)
-        {
-            if (in.remaining() > 0)
-            {
-                std::string tmp(in.current(), in.remaining());
-                std::string::const_iterator iter = tmp.begin();
-
-                while (iter != tmp.end())
-                {
-                    unsigned int sv = Transcoder::decode(tmp, iter);
-
-                    if (sv == 0xFFFF)
-                    {
-                        size_t offset = iter - tmp.begin();
-                        in.position(in.position() + offset);
-                        return APR_BADARG;
-                    }
-                    else
-                    {
-                        Transcoder::encode(sv, out);
-                    }
-                }
-
-                in.position(in.limit());
-            }
-
-            return APR_SUCCESS;
-        }
-
-    private:
-        UTF8CharsetDecoder(const UTF8CharsetDecoder&);
-        UTF8CharsetDecoder& operator=(const UTF8CharsetDecoder&);
+	public:
+		UTF8CharsetDecoder()
+		{
+		}
+
+		virtual ~UTF8CharsetDecoder()
+		{
+		}
+
+	private:
+		virtual log4cxx_status_t decode(ByteBuffer& in,
+			LogString& out)
+		{
+			if (in.remaining() > 0)
+			{
+				std::string tmp(in.current(), in.remaining());
+				std::string::const_iterator iter = tmp.begin();
+
+				while (iter != tmp.end())
+				{
+					unsigned int sv = Transcoder::decode(tmp, iter);
+
+					if (sv == 0xFFFF)
+					{
+						size_t offset = iter - tmp.begin();
+						in.position(in.position() + offset);
+						return APR_BADARG;
+					}
+					else
+					{
+						Transcoder::encode(sv, out);
+					}
+				}
+
+				in.position(in.limit());
+			}
+
+			return APR_SUCCESS;
+		}
+
+	private:
+		UTF8CharsetDecoder(const UTF8CharsetDecoder&);
+		UTF8CharsetDecoder& operator=(const UTF8CharsetDecoder&);
 };
 #endif
 
@@ -322,42 +322,42 @@ class UTF8CharsetDecoder : public CharsetDecoder
 */
 class ISOLatinCharsetDecoder : public CharsetDecoder
 {
-    public:
-        ISOLatinCharsetDecoder()
-        {
-        }
+	public:
+		ISOLatinCharsetDecoder()
+		{
+		}
 
-        virtual ~ISOLatinCharsetDecoder()
-        {
-        }
+		virtual ~ISOLatinCharsetDecoder()
+		{
+		}
 
-    private:
-        virtual log4cxx_status_t decode(ByteBuffer& in,
-                                        LogString& out)
-        {
-            if (in.remaining() > 0)
-            {
+	private:
+		virtual log4cxx_status_t decode(ByteBuffer& in,
+			LogString& out)
+		{
+			if (in.remaining() > 0)
+			{
 
-                const unsigned char* src = (unsigned char*) in.current();
-                const unsigned char* srcEnd = src + in.remaining();
+				const unsigned char* src = (unsigned char*) in.current();
+				const unsigned char* srcEnd = src + in.remaining();
 
-                while (src < srcEnd)
-                {
-                    unsigned int sv = *(src++);
-                    Transcoder::encode(sv, out);
-                }
+				while (src < srcEnd)
+				{
+					unsigned int sv = *(src++);
+					Transcoder::encode(sv, out);
+				}
 
-                in.position(in.limit());
-            }
+				in.position(in.limit());
+			}
 
-            return APR_SUCCESS;
-        }
+			return APR_SUCCESS;
+		}
 
 
 
-    private:
-        ISOLatinCharsetDecoder(const ISOLatinCharsetDecoder&);
-        ISOLatinCharsetDecoder& operator=(const ISOLatinCharsetDecoder&);
+	private:
+		ISOLatinCharsetDecoder(const ISOLatinCharsetDecoder&);
+		ISOLatinCharsetDecoder& operator=(const ISOLatinCharsetDecoder&);
 };
 
 
@@ -367,55 +367,55 @@ class ISOLatinCharsetDecoder : public CharsetDecoder
 */
 class USASCIICharsetDecoder : public CharsetDecoder
 {
-    public:
-        USASCIICharsetDecoder()
-        {
-        }
+	public:
+		USASCIICharsetDecoder()
+		{
+		}
 
-        virtual ~USASCIICharsetDecoder()
-        {
-        }
+		virtual ~USASCIICharsetDecoder()
+		{
+		}
 
-    private:
+	private:
 
-        virtual log4cxx_status_t decode(ByteBuffer& in,
-                                        LogString& out)
-        {
-            log4cxx_status_t stat = APR_SUCCESS;
+		virtual log4cxx_status_t decode(ByteBuffer& in,
+			LogString& out)
+		{
+			log4cxx_status_t stat = APR_SUCCESS;
 
-            if (in.remaining() > 0)
-            {
+			if (in.remaining() > 0)
+			{
 
-                const unsigned char* src = (unsigned char*) in.current();
-                const unsigned char* srcEnd = src + in.remaining();
+				const unsigned char* src = (unsigned char*) in.current();
+				const unsigned char* srcEnd = src + in.remaining();
 
-                while (src < srcEnd)
-                {
-                    unsigned char sv = *src;
+				while (src < srcEnd)
+				{
+					unsigned char sv = *src;
 
-                    if (sv < 0x80)
-                    {
-                        src++;
-                        Transcoder::encode(sv, out);
-                    }
-                    else
-                    {
-                        stat = APR_BADARG;
-                        break;
-                    }
-                }
+					if (sv < 0x80)
+					{
+						src++;
+						Transcoder::encode(sv, out);
+					}
+					else
+					{
+						stat = APR_BADARG;
+						break;
+					}
+				}
 
-                in.position(src - (const unsigned char*) in.data());
-            }
+				in.position(src - (const unsigned char*) in.data());
+			}
 
-            return stat;
-        }
+			return stat;
+		}
 
 
 
-    private:
-        USASCIICharsetDecoder(const USASCIICharsetDecoder&);
-        USASCIICharsetDecoder& operator=(const USASCIICharsetDecoder&);
+	private:
+		USASCIICharsetDecoder(const USASCIICharsetDecoder&);
+		USASCIICharsetDecoder& operator=(const USASCIICharsetDecoder&);
 };
 
 /**
@@ -424,69 +424,69 @@ class USASCIICharsetDecoder : public CharsetDecoder
  */
 class LocaleCharsetDecoder : public CharsetDecoder
 {
-    public:
-        LocaleCharsetDecoder() : pool(), mutex(pool), decoder(), encoding()
-        {
-        }
-        virtual ~LocaleCharsetDecoder()
-        {
-        }
-        virtual log4cxx_status_t decode(ByteBuffer& in,
-                                        LogString& out)
-        {
-            const char* p = in.current();
-            size_t i = in.position();
+	public:
+		LocaleCharsetDecoder() : pool(), mutex(pool), decoder(), encoding()
+		{
+		}
+		virtual ~LocaleCharsetDecoder()
+		{
+		}
+		virtual log4cxx_status_t decode(ByteBuffer& in,
+			LogString& out)
+		{
+			const char* p = in.current();
+			size_t i = in.position();
 #if !LOG4CXX_CHARSET_EBCDIC
 
-            for (; i < in.limit() && ((unsigned int) *p) < 0x80; i++, p++)
-            {
-                out.append(1, *p);
-            }
+			for (; i < in.limit() && ((unsigned int) *p) < 0x80; i++, p++)
+			{
+				out.append(1, *p);
+			}
 
-            in.position(i);
+			in.position(i);
 #endif
 
-            if (i < in.limit())
-            {
-                Pool subpool;
-                const char* enc = apr_os_locale_encoding(subpool.getAPRPool());
-                {
-                    synchronized sync(mutex);
-
-                    if (enc == 0)
-                    {
-                        if (decoder == 0)
-                        {
-                            encoding = "C";
-                            decoder = new USASCIICharsetDecoder();
-                        }
-                    }
-                    else if (encoding != enc)
-                    {
-                        encoding = enc;
-
-                        try
-                        {
-                            LogString e;
-                            Transcoder::decode(encoding, e);
-                            decoder = getDecoder(e);
-                        }
-                        catch (IllegalArgumentException& ex)
-                        {
-                            decoder = new USASCIICharsetDecoder();
-                        }
-                    }
-                }
-                return decoder->decode(in, out);
-            }
-
-            return APR_SUCCESS;
-        }
-    private:
-        Pool pool;
-        Mutex mutex;
-        CharsetDecoderPtr decoder;
-        std::string encoding;
+			if (i < in.limit())
+			{
+				Pool subpool;
+				const char* enc = apr_os_locale_encoding(subpool.getAPRPool());
+				{
+					synchronized sync(mutex);
+
+					if (enc == 0)
+					{
+						if (decoder == 0)
+						{
+							encoding = "C";
+							decoder = new USASCIICharsetDecoder();
+						}
+					}
+					else if (encoding != enc)
+					{
+						encoding = enc;
+
+						try
+						{
+							LogString e;
+							Transcoder::decode(encoding, e);
+							decoder = getDecoder(e);
+						}
+						catch (IllegalArgumentException& ex)
+						{
+							decoder = new USASCIICharsetDecoder();
+						}
+					}
+				}
+				return decoder->decode(in, out);
+			}
+
+			return APR_SUCCESS;
+		}
+	private:
+		Pool pool;
+		Mutex mutex;
+		CharsetDecoderPtr decoder;
+		std::string encoding;
 };
 
 
@@ -508,83 +508,83 @@ CharsetDecoder::~CharsetDecoder()
 CharsetDecoder* CharsetDecoder::createDefaultDecoder()
 {
 #if LOG4CXX_CHARSET_UTF8
-    return new UTF8CharsetDecoder();
+	return new UTF8CharsetDecoder();
 #elif LOG4CXX_CHARSET_ISO88591 || defined(_WIN32_WCE)
-    return new ISOLatinCharsetDecoder();
+	return new ISOLatinCharsetDecoder();
 #elif LOG4CXX_CHARSET_USASCII
-    return new USASCIICharsetDecoder();
+	return new USASCIICharsetDecoder();
 #elif LOG4CXX_LOGCHAR_IS_WCHAR && LOG4CXX_HAS_MBSRTOWCS
-    return new MbstowcsCharsetDecoder();
+	return new MbstowcsCharsetDecoder();
 #else
-    return new LocaleCharsetDecoder();
+	return new LocaleCharsetDecoder();
 #endif
 }
 
 CharsetDecoderPtr CharsetDecoder::getDefaultDecoder()
 {
-    static CharsetDecoderPtr decoder(createDefaultDecoder());
-
-    //
-    //  if invoked after static variable destruction
-    //     (if logging is called in the destructor of a static object)
-    //     then create a new decoder.
-    //
-    if (decoder == 0)
-    {
-        return createDefaultDecoder();
-    }
-
-    return decoder;
+	static CharsetDecoderPtr decoder(createDefaultDecoder());
+
+	//
+	//  if invoked after static variable destruction
+	//     (if logging is called in the destructor of a static object)
+	//     then create a new decoder.
+	//
+	if (decoder == 0)
+	{
+		return createDefaultDecoder();
+	}
+
+	return decoder;
 }
 
 CharsetDecoderPtr CharsetDecoder::getUTF8Decoder()
 {
-    static CharsetDecoderPtr decoder(new UTF8CharsetDecoder());
-
-    //
-    //  if invoked after static variable destruction
-    //     (if logging is called in the destructor of a static object)
-    //     then create a new decoder.
-    //
-    if (decoder == 0)
-    {
-        return new UTF8CharsetDecoder();
-    }
-
-    return decoder;
+	static CharsetDecoderPtr decoder(new UTF8CharsetDecoder());
+
+	//
+	//  if invoked after static variable destruction
+	//     (if logging is called in the destructor of a static object)
+	//     then create a new decoder.
+	//
+	if (decoder == 0)
+	{
+		return new UTF8CharsetDecoder();
+	}
+
+	return decoder;
 }
 
 CharsetDecoderPtr CharsetDecoder::getISOLatinDecoder()
 {
-    return new ISOLatinCharsetDecoder();
+	return new ISOLatinCharsetDecoder();
 }
 
 
 CharsetDecoderPtr CharsetDecoder::getDecoder(const LogString& charset)
 {
-    if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-8"), LOG4CXX_STR("utf-8")) ||
-            StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF8"), LOG4CXX_STR("utf8")))
-    {
-        return new UTF8CharsetDecoder();
-    }
-    else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("C"), LOG4CXX_STR("c")) ||
-             charset == LOG4CXX_STR("646") ||
-             StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("US-ASCII"), LOG4CXX_STR("us-ascii")) ||
-             StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO646-US"), LOG4CXX_STR("iso646-US")) ||
-             StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ANSI_X3.4-1968"), LOG4CXX_STR("ansi_x3.4-1968")))
-    {
-        return new USASCIICharsetDecoder();
-    }
-    else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-8859-1"), LOG4CXX_STR("iso-8859-1")) ||
-             StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-LATIN-1"), LOG4CXX_STR("iso-latin-1")))
-    {
-        return new ISOLatinCharsetDecoder();
-    }
+	if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-8"), LOG4CXX_STR("utf-8")) ||
+		StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF8"), LOG4CXX_STR("utf8")))
+	{
+		return new UTF8CharsetDecoder();
+	}
+	else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("C"), LOG4CXX_STR("c")) ||
+		charset == LOG4CXX_STR("646") ||
+		StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("US-ASCII"), LOG4CXX_STR("us-ascii")) ||
+		StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO646-US"), LOG4CXX_STR("iso646-US")) ||
+		StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ANSI_X3.4-1968"), LOG4CXX_STR("ansi_x3.4-1968")))
+	{
+		return new USASCIICharsetDecoder();
+	}
+	else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-8859-1"), LOG4CXX_STR("iso-8859-1")) ||
+		StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-LATIN-1"), LOG4CXX_STR("iso-latin-1")))
+	{
+		return new ISOLatinCharsetDecoder();
+	}
 
 #if APR_HAS_XLATE
-    return new APRCharsetDecoder(charset);
+	return new APRCharsetDecoder(charset);
 #else
-    throw IllegalArgumentException(charset);
+	throw IllegalArgumentException(charset);
 #endif
 }
 
diff --git a/src/main/cpp/charsetencoder.cpp b/src/main/cpp/charsetencoder.cpp
index 6fb7ab9..6d6e309 100644
--- a/src/main/cpp/charsetencoder.cpp
+++ b/src/main/cpp/charsetencoder.cpp
@@ -23,7 +23,7 @@
 #include <log4cxx/helpers/transcoder.h>
 
 #if !defined(LOG4CXX)
-    #define LOG4CXX 1
+	#define LOG4CXX 1
 #endif
 
 #include <log4cxx/private/log4cxx_private.h>
@@ -32,7 +32,7 @@
 #include <log4cxx/helpers/synchronized.h>
 
 #ifdef LOG4CXX_HAS_WCSTOMBS
-    #include <stdlib.h>
+	#include <stdlib.h>
 #endif
 
 using namespace log4cxx;
@@ -52,76 +52,76 @@ namespace helpers
 */
 class APRCharsetEncoder : public CharsetEncoder
 {
-    public:
-        APRCharsetEncoder(const LogString& topage) : pool(), mutex(pool)
-        {
+	public:
+		APRCharsetEncoder(const LogString& topage) : pool(), mutex(pool)
+		{
 #if LOG4CXX_LOGCHAR_IS_WCHAR
-            const char* frompage = "WCHAR_T";
+			const char* frompage = "WCHAR_T";
 #endif
 #if LOG4CXX_LOGCHAR_IS_UTF8
-            const char* frompage = "UTF-8";
+			const char* frompage = "UTF-8";
 #endif
 #if LOG4CXX_LOGCHAR_IS_UNICHAR
-            const char* frompage = "UTF-16";
+			const char* frompage = "UTF-16";
 #endif
-            std::string tpage(Transcoder::encodeCharsetName(topage));
-            apr_status_t stat = apr_xlate_open(&convset,
-                                               tpage.c_str(),
-                                               frompage,
-                                               pool.getAPRPool());
-
-            if (stat != APR_SUCCESS)
-            {
-                throw IllegalArgumentException(topage);
-            }
-        }
-
-        virtual ~APRCharsetEncoder()
-        {
-        }
-
-        virtual log4cxx_status_t encode(const LogString& in,
-                                        LogString::const_iterator& iter,
-                                        ByteBuffer& out)
-        {
-            apr_status_t stat;
-            size_t outbytes_left = out.remaining();
-            size_t initial_outbytes_left = outbytes_left;
-            size_t position = out.position();
-
-            if (iter == in.end())
-            {
-                synchronized sync(mutex);
-                stat = apr_xlate_conv_buffer(convset, NULL, NULL,
-                                             out.data() + position, &outbytes_left);
-            }
-            else
-            {
-                LogString::size_type inOffset = (iter - in.begin());
-                apr_size_t inbytes_left =
-                    (in.size() - inOffset) * sizeof(LogString::value_type);
-                apr_size_t initial_inbytes_left = inbytes_left;
-                {
-                    synchronized sync(mutex);
-                    stat = apr_xlate_conv_buffer(convset,
-                                                 (const char*) (in.data() + inOffset),
-                                                 &inbytes_left,
-                                                 out.data() + position,
-                                                 &outbytes_left);
-                }
-                iter += ((initial_inbytes_left - inbytes_left) / sizeof(LogString::value_type));
-            }
-
-            out.position(out.position() + (initial_outbytes_left - outbytes_left));
-            return stat;
-        }
-
-    private:
-        APRCharsetEncoder(const APRCharsetEncoder&);
-        APRCharsetEncoder& operator=(const APRCharsetEncoder&);
-        Pool pool;
-        Mutex mutex;
-        apr_xlate_t* convset;
+			std::string tpage(Transcoder::encodeCharsetName(topage));
+			apr_status_t stat = apr_xlate_open(&convset,
+					tpage.c_str(),
+					frompage,
+					pool.getAPRPool());
+
+			if (stat != APR_SUCCESS)
+			{
+				throw IllegalArgumentException(topage);
+			}
+		}
+
+		virtual ~APRCharsetEncoder()
+		{
+		}
+
+		virtual log4cxx_status_t encode(const LogString& in,
+			LogString::const_iterator& iter,
+			ByteBuffer& out)
+		{
+			apr_status_t stat;
+			size_t outbytes_left = out.remaining();
+			size_t initial_outbytes_left = outbytes_left;
+			size_t position = out.position();
+
+			if (iter == in.end())
+			{
+				synchronized sync(mutex);
+				stat = apr_xlate_conv_buffer(convset, NULL, NULL,
+						out.data() + position, &outbytes_left);
+			}
+			else
+			{
+				LogString::size_type inOffset = (iter - in.begin());
+				apr_size_t inbytes_left =
+					(in.size() - inOffset) * sizeof(LogString::value_type);
+				apr_size_t initial_inbytes_left = inbytes_left;
+				{
+					synchronized sync(mutex);
+					stat = apr_xlate_conv_buffer(convset,
+							(const char*) (in.data() + inOffset),
+							&inbytes_left,
+							out.data() + position,
+							&outbytes_left);
+				}
+				iter += ((initial_inbytes_left - inbytes_left) / sizeof(LogString::value_type));
+			}
+
+			out.position(out.position() + (initial_outbytes_left - outbytes_left));
+			return stat;
+		}
+
+	private:
+		APRCharsetEncoder(const APRCharsetEncoder&);
+		APRCharsetEncoder& operator=(const APRCharsetEncoder&);
+		Pool pool;
+		Mutex mutex;
+		apr_xlate_t* convset;
 };
 #endif
 
@@ -131,83 +131,83 @@ class APRCharsetEncoder : public CharsetEncoder
 */
 class WcstombsCharsetEncoder : public CharsetEncoder
 {
-    public:
-        WcstombsCharsetEncoder()
-        {
-        }
-
-        /**
-         *   Converts a wchar_t to the default external multibyte encoding.
-         */
-        log4cxx_status_t encode(const LogString& in,
-                                LogString::const_iterator& iter,
-                                ByteBuffer& out)
-        {
-            log4cxx_status_t stat = APR_SUCCESS;
-
-            if (iter != in.end())
-            {
-                size_t outbytes_left = out.remaining();
-                size_t position = out.position();
-                std::wstring::size_type inOffset = (iter - in.begin());
-                enum { BUFSIZE = 256 };
-                wchar_t buf[BUFSIZE];
-                size_t chunkSize = BUFSIZE - 1;
-
-                if (chunkSize * MB_LEN_MAX > outbytes_left)
-                {
-                    chunkSize = outbytes_left / MB_LEN_MAX;
-                }
-
-                if (chunkSize > in.length() - inOffset)
-                {
-                    chunkSize = in.length() - inOffset;
-                }
-
-                memset(buf, 0, BUFSIZE * sizeof(wchar_t));
-                memcpy(buf,
-                       in.data() + inOffset,
-                       chunkSize * sizeof(wchar_t));
-                size_t converted = wcstombs(out.data() + position, buf, outbytes_left);
-
-                if (converted == (size_t) -1)
-                {
-                    stat = APR_BADARG;
-
-                    //
-                    //   if unconvertable character was encountered
-                    //       repeatedly halve source to get fragment that
-                    //       can be converted
-                    for (chunkSize /= 2;
-                            chunkSize > 0;
-                            chunkSize /= 2)
-                    {
-                        buf[chunkSize] = 0;
-                        converted = wcstombs(out.data() + position, buf, outbytes_left);
-
-                        if (converted != (size_t) -1)
-                        {
-                            iter += chunkSize;
-                            out.position(out.position() + converted);
-                            break;
-                        }
-                    }
-                }
-                else
-                {
-                    iter += chunkSize;
-                    out.position(out.position() + converted);
-                }
-            }
-
-            return stat;
-        }
-
-
-
-    private:
-        WcstombsCharsetEncoder(const WcstombsCharsetEncoder&);
-        WcstombsCharsetEncoder& operator=(const WcstombsCharsetEncoder&);
+	public:
+		WcstombsCharsetEncoder()
+		{
+		}
+
+		/**
+		 *   Converts a wchar_t to the default external multibyte encoding.
+		 */
+		log4cxx_status_t encode(const LogString& in,
+			LogString::const_iterator& iter,
+			ByteBuffer& out)
+		{
+			log4cxx_status_t stat = APR_SUCCESS;
+
+			if (iter != in.end())
+			{
+				size_t outbytes_left = out.remaining();
+				size_t position = out.position();
+				std::wstring::size_type inOffset = (iter - in.begin());
+				enum { BUFSIZE = 256 };
+				wchar_t buf[BUFSIZE];
+				size_t chunkSize = BUFSIZE - 1;
+
+				if (chunkSize * MB_LEN_MAX > outbytes_left)
+				{
+					chunkSize = outbytes_left / MB_LEN_MAX;
+				}
+
+				if (chunkSize > in.length() - inOffset)
+				{
+					chunkSize = in.length() - inOffset;
+				}
+
+				memset(buf, 0, BUFSIZE * sizeof(wchar_t));
+				memcpy(buf,
+					in.data() + inOffset,
+					chunkSize * sizeof(wchar_t));
+				size_t converted = wcstombs(out.data() + position, buf, outbytes_left);
+
+				if (converted == (size_t) -1)
+				{
+					stat = APR_BADARG;
+
+					//
+					//   if unconvertable character was encountered
+					//       repeatedly halve source to get fragment that
+					//       can be converted
+					for (chunkSize /= 2;
+						chunkSize > 0;
+						chunkSize /= 2)
+					{
+						buf[chunkSize] = 0;
+						converted = wcstombs(out.data() + position, buf, outbytes_left);
+
+						if (converted != (size_t) -1)
+						{
+							iter += chunkSize;
+							out.position(out.position() + converted);
+							break;
+						}
+					}
+				}
+				else
+				{
+					iter += chunkSize;
+					out.position(out.position() + converted);
+				}
+			}
+
+			return stat;
+		}
+
+
+
+	private:
+		WcstombsCharsetEncoder(const WcstombsCharsetEncoder&);
+		WcstombsCharsetEncoder& operator=(const WcstombsCharsetEncoder&);
 };
 #endif
 
@@ -217,43 +217,43 @@ class WcstombsCharsetEncoder : public CharsetEncoder
 */
 class USASCIICharsetEncoder : public CharsetEncoder
 {
-    public:
-        USASCIICharsetEncoder()
-        {
-        }
-
-        virtual log4cxx_status_t encode(const LogString& in,
-                                        LogString::const_iterator& iter,
-                                        ByteBuffer& out)
-        {
-            log4cxx_status_t stat = APR_SUCCESS;
-
-            if (iter != in.end())
-            {
-                while (out.remaining() > 0 && iter != in.end())
-                {
-                    LogString::const_iterator prev(iter);
-                    unsigned int sv = Transcoder::decode(in, iter);
-
-                    if (sv <= 0x7F)
-                    {
-                        out.put((char) sv);
-                    }
-                    else
-                    {
-                        iter = prev;
-                        stat = APR_BADARG;
-                        break;
-                    }
-                }
-            }
-
-            return stat;
-        }
-
-    private:
-        USASCIICharsetEncoder(const USASCIICharsetEncoder&);
-        USASCIICharsetEncoder& operator=(const USASCIICharsetEncoder&);
+	public:
+		USASCIICharsetEncoder()
+		{
+		}
+
+		virtual log4cxx_status_t encode(const LogString& in,
+			LogString::const_iterator& iter,
+			ByteBuffer& out)
+		{
+			log4cxx_status_t stat = APR_SUCCESS;
+
+			if (iter != in.end())
+			{
+				while (out.remaining() > 0 && iter != in.end())
+				{
+					LogString::const_iterator prev(iter);
+					unsigned int sv = Transcoder::decode(in, iter);
+
+					if (sv <= 0x7F)
+					{
+						out.put((char) sv);
+					}
+					else
+					{
+						iter = prev;
+						stat = APR_BADARG;
+						break;
+					}
+				}
+			}
+
+			return stat;
+		}
+
+	private:
+		USASCIICharsetEncoder(const USASCIICharsetEncoder&);
+		USASCIICharsetEncoder& operator=(const USASCIICharsetEncoder&);
 };
 
 /**
@@ -261,43 +261,43 @@ class USASCIICharsetEncoder : public CharsetEncoder
 */
 class ISOLatinCharsetEncoder : public CharsetEncoder
 {
-    public:
-        ISOLatinCharsetEncoder()
-        {
-        }
-
-        virtual log4cxx_status_t encode(const LogString& in,
-                                        LogString::const_iterator& iter,
-                                        ByteBuffer& out)
-        {
-            log4cxx_status_t stat = APR_SUCCESS;
-
-            if (iter != in.end())
-            {
-                while (out.remaining() > 0 && iter != in.end())
-                {
-                    LogString::const_iterator prev(iter);
-                    unsigned int sv = Transcoder::decode(in, iter);
-
-                    if (sv <= 0xFF)
-                    {
-                        out.put((char) sv);
-                    }
-                    else
-                    {
-                        iter = prev;
-                        stat = APR_BADARG;
-                        break;
-                    }
-                }
-            }
-
-            return stat;
-        }
-
-    private:
-        ISOLatinCharsetEncoder(const ISOLatinCharsetEncoder&);
-        ISOLatinCharsetEncoder& operator=(const ISOLatinCharsetEncoder&);
+	public:
+		ISOLatinCharsetEncoder()
+		{
+		}
+
+		virtual log4cxx_status_t encode(const LogString& in,
+			LogString::const_iterator& iter,
+			ByteBuffer& out)
+		{
+			log4cxx_status_t stat = APR_SUCCESS;
+
+			if (iter != in.end())
+			{
+				while (out.remaining() > 0 && iter != in.end())
+				{
+					LogString::const_iterator prev(iter);
+					unsigned int sv = Transcoder::decode(in, iter);
+
+					if (sv <= 0xFF)
+					{
+						out.put((char) sv);
+					}
+					else
+					{
+						iter = prev;
+						stat = APR_BADARG;
+						break;
+					}
+				}
+			}
+
+			return stat;
+		}
+
+	private:
+		ISOLatinCharsetEncoder(const ISOLatinCharsetEncoder&);
+		ISOLatinCharsetEncoder& operator=(const ISOLatinCharsetEncoder&);
 };
 
 /**
@@ -305,38 +305,38 @@ class ISOLatinCharsetEncoder : public CharsetEncoder
 */
 class TrivialCharsetEncoder : public CharsetEncoder
 {
-    public:
-        TrivialCharsetEncoder()
-        {
-        }
-
-
-        virtual log4cxx_status_t encode(const LogString& in,
-                                        LogString::const_iterator& iter,
-                                        ByteBuffer& out)
-        {
-            if (iter != in.end())
-            {
-                size_t requested = in.length() - (iter - in.begin());
-
-                if (requested > out.remaining() / sizeof(logchar))
-                {
-                    requested = out.remaining() / sizeof(logchar);
-                }
-
-                memcpy(out.current(),
-                       (const char*) in.data() + (iter - in.begin()),
-                       requested * sizeof(logchar));
-                iter += requested;
-                out.position(out.position() + requested * sizeof(logchar));
-            }
-
-            return APR_SUCCESS;
-        }
-
-    private:
-        TrivialCharsetEncoder(const TrivialCharsetEncoder&);
-        TrivialCharsetEncoder& operator=(const TrivialCharsetEncoder&);
+	public:
+		TrivialCharsetEncoder()
+		{
+		}
+
+
+		virtual log4cxx_status_t encode(const LogString& in,
+			LogString::const_iterator& iter,
+			ByteBuffer& out)
+		{
+			if (iter != in.end())
+			{
+				size_t requested = in.length() - (iter - in.begin());
+
+				if (requested > out.remaining() / sizeof(logchar))
+				{
+					requested = out.remaining() / sizeof(logchar);
+				}
+
+				memcpy(out.current(),
+					(const char*) in.data() + (iter - in.begin()),
+					requested * sizeof(logchar));
+				iter += requested;
+				out.position(out.position() + requested * sizeof(logchar));
+			}
+
+			return APR_SUCCESS;
+		}
+
+	private:
+		TrivialCharsetEncoder(const TrivialCharsetEncoder&);
+		TrivialCharsetEncoder& operator=(const TrivialCharsetEncoder&);
 };
 
 #if LOG4CXX_LOGCHAR_IS_UTF8
@@ -347,33 +347,33 @@ typedef TrivialCharsetEncoder UTF8CharsetEncoder;
  */
 class UTF8CharsetEncoder : public CharsetEncoder
 {
-    public:
-        UTF8CharsetEncoder()
-        {
-        }
-
-        virtual log4cxx_status_t encode(const LogString& in,
-                                        LogString::const_iterator& iter,
-                                        ByteBuffer& out)
-        {
-            while (iter != in.end() && out.remaining() >= 8)
-            {
-                unsigned int sv = Transcoder::decode(in, iter);
-
-                if (sv == 0xFFFF)
-                {
-                    return APR_BADARG;
-                }
-
-                Transcoder::encodeUTF8(sv, out);
-            }
-
-            return APR_SUCCESS;
-        }
-
-    private:
-        UTF8CharsetEncoder(const UTF8CharsetEncoder&);
-        UTF8CharsetEncoder& operator=(const UTF8CharsetEncoder&);
+	public:
+		UTF8CharsetEncoder()
+		{
+		}
+
+		virtual log4cxx_status_t encode(const LogString& in,
+			LogString::const_iterator& iter,
+			ByteBuffer& out)
+		{
+			while (iter != in.end() && out.remaining() >= 8)
+			{
+				unsigned int sv = Transcoder::decode(in, iter);
+
+				if (sv == 0xFFFF)
+				{
+					return APR_BADARG;
+				}
+
+				Transcoder::encodeUTF8(sv, out);
+			}
+
+			return APR_SUCCESS;
+		}
+
+	private:
+		UTF8CharsetEncoder(const UTF8CharsetEncoder&);
+		UTF8CharsetEncoder& operator=(const UTF8CharsetEncoder&);
 };
 #endif
 
@@ -382,33 +382,33 @@ class UTF8CharsetEncoder : public CharsetEncoder
  */
 class UTF16BECharsetEncoder : public CharsetEncoder
 {
-    public:
-        UTF16BECharsetEncoder()
-        {
-        }
-
-        virtual log4cxx_status_t encode(const LogString& in,
-                                        LogString::const_iterator& iter,
-                                        ByteBuffer& out)
-        {
-            while (iter != in.end() && out.remaining() >= 4)
-            {
-                unsigned int sv = Transcoder::decode(in, iter);
-
-                if (sv == 0xFFFF)
-                {
-                    return APR_BADARG;
-                }
-
-                Transcoder::encodeUTF16BE(sv, out);
-            }
-
-            return APR_SUCCESS;
-        }
-
-    private:
-        UTF16BECharsetEncoder(const UTF16BECharsetEncoder&);
-        UTF16BECharsetEncoder& operator=(const UTF16BECharsetEncoder&);
+	public:
+		UTF16BECharsetEncoder()
+		{
+		}
+
+		virtual log4cxx_status_t encode(const LogString& in,
+			LogString::const_iterator& iter,
+			ByteBuffer& out)
+		{
+			while (iter != in.end() && out.remaining() >= 4)
+			{
+				unsigned int sv = Transcoder::decode(in, iter);
+
+				if (sv == 0xFFFF)
+				{
+					return APR_BADARG;
+				}
+
+				Transcoder::encodeUTF16BE(sv, out);
+			}
+
+			return APR_SUCCESS;
+		}
+
+	private:
+		UTF16BECharsetEncoder(const UTF16BECharsetEncoder&);
+		UTF16BECharsetEncoder& operator=(const UTF16BECharsetEncoder&);
 };
 
 /**
@@ -416,33 +416,33 @@ class UTF16BECharsetEncoder : public CharsetEncoder
  */
 class UTF16LECharsetEncoder : public CharsetEncoder
 {
-    public:
-        UTF16LECharsetEncoder()
-        {
-        }
-
-
-        virtual log4cxx_status_t encode(const LogString& in,
-                                        LogString::const_iterator& iter,
-                                        ByteBuffer& out)
-        {
-            while (iter != in.end() && out.remaining() >= 4)
-            {
-                unsigned int sv = Transcoder::decode(in, iter);
-
-                if (sv == 0xFFFF)
-                {
-                    return APR_BADARG;
-                }
-
-                Transcoder::encodeUTF16LE(sv, out);
-            }
-
-            return APR_SUCCESS;
-        }
-    private:
-        UTF16LECharsetEncoder(const UTF16LECharsetEncoder&);
-        UTF16LECharsetEncoder& operator=(const UTF16LECharsetEncoder&);
+	public:
+		UTF16LECharsetEncoder()
+		{
+		}
+
+
+		virtual log4cxx_status_t encode(const LogString& in,
+			LogString::const_iterator& iter,
+			ByteBuffer& out)
+		{
+			while (iter != in.end() && out.remaining() >= 4)
+			{
+				unsigned int sv = Transcoder::decode(in, iter);
+
+				if (sv == 0xFFFF)
+				{
+					return APR_BADARG;
+				}
+
+				Transcoder::encodeUTF16LE(sv, out);
+			}
+
+			return APR_SUCCESS;
+		}
+	private:
+		UTF16LECharsetEncoder(const UTF16LECharsetEncoder&);
+		UTF16LECharsetEncoder& operator=(const UTF16LECharsetEncoder&);
 };
 
 /**
@@ -451,75 +451,75 @@ class UTF16LECharsetEncoder : public CharsetEncoder
  */
 class LocaleCharsetEncoder : public CharsetEncoder
 {
-    public:
-        LocaleCharsetEncoder() : pool(), mutex(pool), encoder(), encoding()
-        {
-        }
-        virtual ~LocaleCharsetEncoder()
-        {
-        }
-        virtual log4cxx_status_t encode(const LogString& in,
-                                        LogString::const_iterator& iter,
-                                        ByteBuffer& out)
-        {
+	public:
+		LocaleCharsetEncoder() : pool(), mutex(pool), encoder(), encoding()
+		{
+		}
+		virtual ~LocaleCharsetEncoder()
+		{
+		}
+		virtual log4cxx_status_t encode(const LogString& in,
+			LogString::const_iterator& iter,
+			ByteBuffer& out)
+		{
 #if !LOG4CXX_CHARSET_EBCDIC
-            char* current = out.current();
-            size_t remain = out.remaining();
+			char* current = out.current();
+			size_t remain = out.remaining();
 
-            for (;
-                    iter != in.end() && ((unsigned int) *iter) < 0x80 && remain > 0;
-                    iter++, remain--, current++)
-            {
-                *current = *iter;
-            }
+			for (;
+				iter != in.end() && ((unsigned int) *iter) < 0x80 && remain > 0;
+				iter++, remain--, current++)
+			{
+				*current = *iter;
+			}
 
-            out.position(current - out.data());
+			out.position(current - out.data());
 #endif
 
-            if (iter != in.end() && out.remaining() > 0)
-            {
-                Pool subpool;
-                const char* enc = apr_os_locale_encoding(subpool.getAPRPool());
-                {
-                    synchronized sync(mutex);
-
-                    if (enc == 0)
-                    {
-                        if (encoder == 0)
-                        {
-                            encoding = "C";
-                            encoder = new USASCIICharsetEncoder();
-                        }
-                    }
-                    else if (encoding != enc)
-                    {
-                        encoding = enc;
-                        LogString ename;
-                        Transcoder::decode(encoding, ename);
-
-                        try
-                        {
-                            encoder = CharsetEncoder::getEncoder(ename);
-                        }
-                        catch (IllegalArgumentException& ex)
-                        {
-                            encoder = new USASCIICharsetEncoder();
-                        }
-                    }
-                }
-                return encoder->encode(in, iter, out);
-            }
-
-            return APR_SUCCESS;
-        }
-
-    private:
-        LocaleCharsetEncoder(const LocaleCharsetEncoder&);
-        LocaleCharsetEncoder& operator=(const LocaleCharsetEncoder&);
-        Pool pool;
-        Mutex mutex;
-        CharsetEncoderPtr encoder;
-        std::string encoding;
+			if (iter != in.end() && out.remaining() > 0)
+			{
+				Pool subpool;
+				const char* enc = apr_os_locale_encoding(subpool.getAPRPool());
+				{
+					synchronized sync(mutex);
+
+					if (enc == 0)
+					{
+						if (encoder == 0)
+						{
+							encoding = "C";
+							encoder = new USASCIICharsetEncoder();
+						}
+					}
+					else if (encoding != enc)
+					{
+						encoding = enc;
+						LogString ename;
+						Transcoder::decode(encoding, ename);
+
+						try
+						{
+							encoder = CharsetEncoder::getEncoder(ename);
+						}
+						catch (IllegalArgumentException& ex)
+						{
+							encoder = new USASCIICharsetEncoder();
+						}
+					}
+				}
+				return encoder->encode(in, iter, out);
+			}
+
+			return APR_SUCCESS;
+		}
+
+	private:
+		LocaleCharsetEncoder(const LocaleCharsetEncoder&);
+		LocaleCharsetEncoder& operator=(const LocaleCharsetEncoder&);
+		Pool pool;
+		Mutex mutex;
+		CharsetEncoderPtr encoder;
+		std::string encoding;
 };
 
 
@@ -539,77 +539,77 @@ CharsetEncoder::~CharsetEncoder()
 
 CharsetEncoderPtr CharsetEncoder::getDefaultEncoder()
 {
-    static CharsetEncoderPtr encoder(createDefaultEncoder());
-
-    //
-    //  if invoked after static variable destruction
-    //     (if logging is called in the destructor of a static object)
-    //     then create a new decoder.
-    //
-    if (encoder == 0)
-    {
-        return createDefaultEncoder();
-    }
-
-    return encoder;
+	static CharsetEncoderPtr encoder(createDefaultEncoder());
+
+	//
+	//  if invoked after static variable destruction
+	//     (if logging is called in the destructor of a static object)
+	//     then create a new decoder.
+	//
+	if (encoder == 0)
+	{
+		return createDefaultEncoder();
+	}
+
+	return encoder;
 }
 
 CharsetEncoder* CharsetEncoder::createDefaultEncoder()
 {
 #if LOG4CXX_CHARSET_UTF8
-    return new UTF8CharsetEncoder();
+	return new UTF8CharsetEncoder();
 #elif LOG4CXX_CHARSET_ISO88591
-    return new ISOLatinCharsetEncoder();
+	return new ISOLatinCharsetEncoder();
 #elif LOG4CXX_CHARSET_USASCII
-    return new USASCIICharsetEncoder();
+	return new USASCIICharsetEncoder();
 #elif LOG4CXX_LOGCHAR_IS_WCHAR && LOG4CXX_HAS_WCSTOMBS
-    return new WcstombsCharsetEncoder();
+	return new WcstombsCharsetEncoder();
 #else
-    return new LocaleCharsetEncoder();
+	return new LocaleCharsetEncoder();
 #endif
 }
 
 
 CharsetEncoderPtr CharsetEncoder::getUTF8Encoder()
 {
-    return new UTF8CharsetEncoder();
+	return new UTF8CharsetEncoder();
 }
 
 
 
 CharsetEncoderPtr CharsetEncoder::getEncoder(const LogString& charset)
 {
-    if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-8"), LOG4CXX_STR("utf-8")))
-    {
-        return new UTF8CharsetEncoder();
-    }
-    else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("C"), LOG4CXX_STR("c")) ||
-             charset == LOG4CXX_STR("646") ||
-             StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("US-ASCII"), LOG4CXX_STR("us-ascii")) ||
-             StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO646-US"), LOG4CXX_STR("iso646-US")) ||
-             StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ANSI_X3.4-1968"), LOG4CXX_STR("ansi_x3.4-1968")))
-    {
-        return new USASCIICharsetEncoder();
-    }
-    else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-8859-1"), LOG4CXX_STR("iso-8859-1")) ||
-             StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-LATIN-1"), LOG4CXX_STR("iso-latin-1")))
-    {
-        return new ISOLatinCharsetEncoder();
-    }
-    else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16BE"), LOG4CXX_STR("utf-16be"))
-             || StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16"), LOG4CXX_STR("utf-16")))
-    {
-        return new UTF16BECharsetEncoder();
-    }
-    else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16LE"), LOG4CXX_STR("utf-16le")))
-    {
-        return new UTF16LECharsetEncoder();
-    }
+	if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-8"), LOG4CXX_STR("utf-8")))
+	{
+		return new UTF8CharsetEncoder();
+	}
+	else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("C"), LOG4CXX_STR("c")) ||
+		charset == LOG4CXX_STR("646") ||
+		StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("US-ASCII"), LOG4CXX_STR("us-ascii")) ||
+		StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO646-US"), LOG4CXX_STR("iso646-US")) ||
+		StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ANSI_X3.4-1968"), LOG4CXX_STR("ansi_x3.4-1968")))
+	{
+		return new USASCIICharsetEncoder();
+	}
+	else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-8859-1"), LOG4CXX_STR("iso-8859-1")) ||
+		StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-LATIN-1"), LOG4CXX_STR("iso-latin-1")))
+	{
+		return new ISOLatinCharsetEncoder();
+	}
+	else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16BE"), LOG4CXX_STR("utf-16be"))
+		|| StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16"), LOG4CXX_STR("utf-16")))
+	{
+		return new UTF16BECharsetEncoder();
+	}
+	else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16LE"), LOG4CXX_STR("utf-16le")))
+	{
+		return new UTF16LECharsetEncoder();
+	}
 
 #if APR_HAS_XLATE
-    return new APRCharsetEncoder(charset);
+	return new APRCharsetEncoder(charset);
 #else
-    throw IllegalArgumentException(charset);
+	throw IllegalArgumentException(charset);
 #endif
 }
 
@@ -624,24 +624,24 @@ void CharsetEncoder::flush(ByteBuffer& /* out */ )
 
 
 void CharsetEncoder::encode(CharsetEncoderPtr& enc,
-                            const LogString& src,
-                            LogString::const_iterator& iter,
-                            ByteBuffer& dst)
+	const LogString& src,
+	LogString::const_iterator& iter,
+	ByteBuffer& dst)
 {
-    log4cxx_status_t stat = enc->encode(src, iter, dst);
+	log4cxx_status_t stat = enc->encode(src, iter, dst);
 
-    if (stat != APR_SUCCESS && iter != src.end())
-    {
+	if (stat != APR_SUCCESS && iter != src.end())
+	{
 #if LOG4CXX_LOGCHAR_IS_WCHAR || LOG4CXX_LOGCHAR_IS_UNICHAR
-        iter++;
+		iter++;
 #elif LOG4CXX_LOGCHAR_IS_UTF8
 
-        //  advance past this character and all continuation characters
-        while ((*(++iter) & 0xC0) == 0x80);
+		//  advance past this character and all continuation characters
+		while ((*(++iter) & 0xC0) == 0x80);
 
 #else
 #error logchar is unrecognized
 #endif
-        dst.put(Transcoder::LOSSCHAR);
-    }
+		dst.put(Transcoder::LOSSCHAR);
+	}
 }
diff --git a/src/main/cpp/class.cpp b/src/main/cpp/class.cpp
index 149c150..860ae50 100644
--- a/src/main/cpp/class.cpp
+++ b/src/main/cpp/class.cpp
@@ -16,7 +16,7 @@
  */
 
 #if defined(_MSC_VER)
-    #pragma warning ( disable: 4231 4251 4275 4786 )
+	#pragma warning ( disable: 4231 4251 4275 4786 )
 #endif
 
 #include <log4cxx/logstring.h>
@@ -27,7 +27,7 @@
 #include <log4cxx/helpers/stringhelper.h>
 #include <log4cxx/log4cxx.h>
 #if !defined(LOG4CXX)
-    #define LOG4CXX 1
+	#define LOG4CXX 1
 #endif
 #include <log4cxx/private/log4cxx_private.h>
 #include <log4cxx/rollingfileappender.h>
@@ -39,10 +39,10 @@
 #include <log4cxx/fileappender.h>
 #include <log4cxx/db/odbcappender.h>
 #if defined(WIN32) || defined(_WIN32)
-    #if !defined(_WIN32_WCE)
-        #include <log4cxx/nt/nteventlogappender.h>
-    #endif
-    #include <log4cxx/nt/outputdebugstringappender.h>
+	#if !defined(_WIN32_WCE)
+		#include <log4cxx/nt/nteventlogappender.h>
+	#endif
+	#include <log4cxx/nt/outputdebugstringappender.h>
 #endif
 #include <log4cxx/net/smtpappender.h>
 #include <log4cxx/net/socketappender.h>
@@ -91,14 +91,14 @@ Class::~Class()
 
 LogString Class::toString() const
 {
-    return getName();
+	return getName();
 }
 
 ObjectPtr Class::newInstance() const
 {
-    throw InstantiationException(LOG4CXX_STR("Cannot create new instances of Class."));
+	throw InstantiationException(LOG4CXX_STR("Cannot create new instances of Class."));
 #if LOG4CXX_RETURN_AFTER_THROW
-    return 0;
+	return 0;
 #endif
 }
 
@@ -106,102 +106,102 @@ ObjectPtr Class::newInstance() const
 
 Class::ClassMap& Class::getRegistry()
 {
-    static ClassMap registry;
-    return registry;
+	static ClassMap registry;
+	return registry;
 }
 
 const Class& Class::forName(const LogString& className)
 {
-    LogString lowerName(StringHelper::toLowerCase(className));
-    //
-    //  check registry using full class name
-    //
-    const Class* clazz = getRegistry()[lowerName];
-
-    if (clazz == 0)
-    {
-        LogString::size_type pos = className.find_last_of(LOG4CXX_STR(".$"));
-
-        if (pos != LogString::npos)
-        {
-            LogString terminalName(lowerName, pos + 1, LogString::npos);
-            clazz = getRegistry()[terminalName];
-
-            if (clazz == 0)
-            {
-                registerClasses();
-                clazz = getRegistry()[lowerName];
-
-                if (clazz == 0)
-                {
-                    clazz = getRegistry()[terminalName];
-                }
-            }
-        }
-        else
-        {
-            registerClasses();
-            clazz = getRegistry()[lowerName];
-        }
-    }
-
-    if (clazz == 0)
-    {
-        throw ClassNotFoundException(className);
-    }
-
-    return *clazz;
+	LogString lowerName(StringHelper::toLowerCase(className));
+	//
+	//  check registry using full class name
+	//
+	const Class* clazz = getRegistry()[lowerName];
+
+	if (clazz == 0)
+	{
+		LogString::size_type pos = className.find_last_of(LOG4CXX_STR(".$"));
+
+		if (pos != LogString::npos)
+		{
+			LogString terminalName(lowerName, pos + 1, LogString::npos);
+			clazz = getRegistry()[terminalName];
+
+			if (clazz == 0)
+			{
+				registerClasses();
+				clazz = getRegistry()[lowerName];
+
+				if (clazz == 0)
+				{
+					clazz = getRegistry()[terminalName];
+				}
+			}
+		}
+		else
+		{
+			registerClasses();
+			clazz = getRegistry()[lowerName];
+		}
+	}
+
+	if (clazz == 0)
+	{
+		throw ClassNotFoundException(className);
+	}
+
+	return *clazz;
 }
 
 bool Class::registerClass(const Class& newClass)
 {
-    getRegistry()[StringHelper::toLowerCase(newClass.getName())] = &newClass;
-    return true;
+	getRegistry()[StringHelper::toLowerCase(newClass.getName())] = &newClass;
+	return true;
 }
 
 void Class::registerClasses()
 {
 #if APR_HAS_THREADS
-    AsyncAppender::registerClass();
+	AsyncAppender::registerClass();
 #endif
-    ConsoleAppender::registerClass();
-    FileAppender::registerClass();
-    log4cxx::db::ODBCAppender::registerClass();
+	ConsoleAppender::registerClass();
+	FileAppender::registerClass();
+	log4cxx::db::ODBCAppender::registerClass();
 #if (defined(WIN32) || defined(_WIN32))
 #if !defined(_WIN32_WCE)
-    log4cxx::nt::NTEventLogAppender::registerClass();
+	log4cxx::nt::NTEventLogAppender::registerClass();
 #endif
-    log4cxx::nt::OutputDebugStringAppender::registerClass();
+	log4cxx::nt::OutputDebugStringAppender::registerClass();
 #endif
-    log4cxx::RollingFileAppender::registerClass();
-    SMTPAppender::registerClass();
-    SocketAppender::registerClass();
+	log4cxx::RollingFileAppender::registerClass();
+	SMTPAppender::registerClass();
+	SocketAppender::registerClass();
 #if APR_HAS_THREADS
-    SocketHubAppender::registerClass();
+	SocketHubAppender::registerClass();
 #endif
-    SyslogAppender::registerClass();
+	SyslogAppender::registerClass();
 #if APR_HAS_THREADS
-    TelnetAppender::registerClass();
+	TelnetAppender::registerClass();
 #endif
-    XMLSocketAppender::registerClass();
-    DateLayout::registerClass();
-    HTMLLayout::registerClass();
-    PatternLayout::registerClass();
-    SimpleLayout::registerClass();
-    TTCCLayout::registerClass();
-    XMLLayout::registerClass();
-    LevelMatchFilter::registerClass();
-    LevelRangeFilter::registerClass();
-    StringMatchFilter::registerClass();
-    log4cxx::RollingFileAppender::registerClass();
-    log4cxx::rolling::RollingFileAppender::registerClass();
-    DailyRollingFileAppender::registerClass();
-    log4cxx::rolling::SizeBasedTriggeringPolicy::registerClass();
-    log4cxx::rolling::TimeBasedRollingPolicy::registerClass();
-    log4cxx::rolling::ManualTriggeringPolicy::registerClass();
-    log4cxx::rolling::FixedWindowRollingPolicy::registerClass();
-    log4cxx::rolling::FilterBasedTriggeringPolicy::registerClass();
-    log4cxx::xml::DOMConfigurator::registerClass();
-    log4cxx::PropertyConfigurator::registerClass();
+	XMLSocketAppender::registerClass();
+	DateLayout::registerClass();
+	HTMLLayout::registerClass();
+	PatternLayout::registerClass();
+	SimpleLayout::registerClass();
+	TTCCLayout::registerClass();
+	XMLLayout::registerClass();
+	LevelMatchFilter::registerClass();
+	LevelRangeFilter::registerClass();
+	StringMatchFilter::registerClass();
+	log4cxx::RollingFileAppender::registerClass();
+	log4cxx::rolling::RollingFileAppender::registerClass();
+	DailyRollingFileAppender::registerClass();
+	log4cxx::rolling::SizeBasedTriggeringPolicy::registerClass();
+	log4cxx::rolling::TimeBasedRollingPolicy::registerClass();
+	log4cxx::rolling::ManualTriggeringPolicy::registerClass();
+	log4cxx::rolling::FixedWindowRollingPolicy::registerClass();
+	log4cxx::rolling::FilterBasedTriggeringPolicy::registerClass();
+	log4cxx::xml::DOMConfigurator::registerClass();
+	log4cxx::PropertyConfigurator::registerClass();
 }
 
diff --git a/src/main/cpp/classnamepatternconverter.cpp b/src/main/cpp/classnamepatternconverter.cpp
index 75a1730..7d9c72e 100644
--- a/src/main/cpp/classnamepatternconverter.cpp
+++ b/src/main/cpp/classnamepatternconverter.cpp
@@ -16,7 +16,7 @@
  */
 
 #if defined(_MSC_VER)
-    #pragma warning ( disable: 4231 4251 4275 4786 )
+	#pragma warning ( disable: 4231 4251 4275 4786 )
 #endif
 
 #include <log4cxx/logstring.h>
@@ -32,30 +32,30 @@ using namespace log4cxx::helpers;
 IMPLEMENT_LOG4CXX_OBJECT(ClassNamePatternConverter)
 
 ClassNamePatternConverter::ClassNamePatternConverter(
-    const std::vector<LogString>& options) :
-    NamePatternConverter(LOG4CXX_STR("Class Name"),
-                         LOG4CXX_STR("class name"), options)
+	const std::vector<LogString>& options) :
+	NamePatternConverter(LOG4CXX_STR("Class Name"),
+		LOG4CXX_STR("class name"), options)
 {
 }
 
 PatternConverterPtr ClassNamePatternConverter::newInstance(
-    const std::vector<LogString>& options)
+	const std::vector<LogString>& options)
 {
-    if (options.size() == 0)
-    {
-        static PatternConverterPtr def(new ClassNamePatternConverter(options));
-        return def;
-    }
+	if (options.size() == 0)
+	{
+		static PatternConverterPtr def(new ClassNamePatternConverter(options));
+		return def;
+	}
 
-    return new ClassNamePatternConverter(options);
+	return new ClassNamePatternConverter(options);
 }
 
 void ClassNamePatternConverter::format(
-    const LoggingEventPtr& event,
-    LogString& toAppendTo,
-    Pool& /* p */) const
+	const LoggingEventPtr& event,
+	LogString& toAppendTo,
+	Pool& /* p */) const
 {
-    int initialLength = toAppendTo.length();
-    append(toAppendTo, event->getLocationInformation().getClassName());
-    abbreviate(initialLength, toAppendTo);
+	int initialLength = toAppendTo.length();
+	append(toAppendTo, event->getLocationInformation().getClassName());
+	abbreviate(initialLength, toAppendTo);
 }
diff --git a/src/main/cpp/classregistration.cpp b/src/main/cpp/classregistration.cpp
index b5678d9..975474e 100644
--- a/src/main/cpp/classregistration.cpp
+++ b/src/main/cpp/classregistration.cpp
@@ -23,7 +23,7 @@ using namespace log4cxx::helpers;
 
 ClassRegistration::ClassRegistration(ClassAccessor accessor)
 {
-    Class::registerClass((*accessor)());
+	Class::registerClass((*accessor)());
 }
 
 
diff --git a/src/main/cpp/condition.cpp b/src/main/cpp/condition.cpp
index b8b5ec1..9970f27 100644
--- a/src/main/cpp/condition.cpp
+++ b/src/main/cpp/condition.cpp
@@ -30,12 +30,12 @@ using namespace log4cxx;
 Condition::Condition(Pool& p)
 {
 #if APR_HAS_THREADS
-    apr_status_t stat = apr_thread_cond_create(&condition, p.getAPRPool());
+	apr_status_t stat = apr_thread_cond_create(&condition, p.getAPRPool());
 
-    if (stat != APR_SUCCESS)
-    {
-        throw RuntimeException(stat);
-    }
+	if (stat != APR_SUCCESS)
+	{
+		throw RuntimeException(stat);
+	}
 
 #endif
 }
@@ -43,16 +43,16 @@ Condition::Condition(Pool& p)
 Condition::~Condition()
 {
 #if APR_HAS_THREADS
-    apr_thread_cond_destroy(condition);
+	apr_thread_cond_destroy(condition);
 #endif
 }
 
 log4cxx_status_t Condition::signalAll()
 {
 #if APR_HAS_THREADS
-    return apr_thread_cond_broadcast(condition);
+	return apr_thread_cond_broadcast(condition);
 #else
-    return APR_SUCCESS;
+	return APR_SUCCESS;
 #endif
 }
 
@@ -60,19 +60,19 @@ void Condition::await(Mutex& mutex)
 {
 #if APR_HAS_THREADS
 
-    if (Thread::interrupted())
-    {
-        throw InterruptedException();
-    }
+	if (Thread::interrupted())
+	{
+		throw InterruptedException();
+	}
 
-    apr_status_t stat = apr_thread_cond_wait(
-                            condition,
-                            mutex.getAPRMutex());
+	apr_status_t stat = apr_thread_cond_wait(
+			condition,
+			mutex.getAPRMutex());
 
-    if (stat != APR_SUCCESS)
-    {
-        throw InterruptedException(stat);
-    }
+	if (stat != APR_SUCCESS)
+	{
+		throw InterruptedException(stat);
+	}
 
 #endif
 }
diff --git a/src/main/cpp/consoleappender.cpp b/src/main/cpp/consoleappender.cpp
index 3fdc79e..c81661d 100644
--- a/src/main/cpp/consoleappender.cpp
+++ b/src/main/cpp/consoleappender.cpp
@@ -28,106 +28,106 @@ using namespace log4cxx::helpers;
 IMPLEMENT_LOG4CXX_OBJECT(ConsoleAppender)
 
 ConsoleAppender::ConsoleAppender()
-    : target(getSystemOut())
+	: target(getSystemOut())
 {
 }
 
 ConsoleAppender::ConsoleAppender(const LayoutPtr& layout1)
-    : target(getSystemOut())
+	: target(getSystemOut())
 {
-    setLayout(layout1);
-    Pool p;
-    WriterPtr writer1(new SystemOutWriter());
-    setWriter(writer1);
-    WriterAppender::activateOptions(p);
+	setLayout(layout1);
+	Pool p;
+	WriterPtr writer1(new SystemOutWriter());
+	setWriter(writer1);
+	WriterAppender::activateOptions(p);
 }
 
 ConsoleAppender::ConsoleAppender(const LayoutPtr& layout1, const LogString& target1)
-    : target(target1)
+	: target(target1)
 {
-    setLayout(layout1);
-    Pool p;
-    ConsoleAppender::activateOptions(p);
+	setLayout(layout1);
+	Pool p;
+	ConsoleAppender::activateOptions(p);
 }
 
 ConsoleAppender::~ConsoleAppender()
 {
-    finalize();
+	finalize();
 }
 
 const LogString& ConsoleAppender::getSystemOut()
 {
-    static const LogString name(LOG4CXX_STR("System.out"));
-    return name;
+	static const LogString name(LOG4CXX_STR("System.out"));
+	return name;
 }
 
 const LogString& ConsoleAppender::getSystemErr()
 {
-    static const LogString name(LOG4CXX_STR("System.err"));
-    return name;
+	static const LogString name(LOG4CXX_STR("System.err"));
+	return name;
 }
 
 void ConsoleAppender::setTarget(const LogString& value)
 {
-    LogString v = StringHelper::trim(value);
-
-    if (StringHelper::equalsIgnoreCase(v,
-                                       LOG4CXX_STR("SYSTEM.OUT"), LOG4CXX_STR("system.out")))
-    {
-        target = getSystemOut();
-    }
-    else if (StringHelper::equalsIgnoreCase(v,
-                                            LOG4CXX_STR("SYSTEM.ERR"), LOG4CXX_STR("system.err")))
-    {
-        target = getSystemErr();
-    }
-    else
-    {
-        targetWarn(value);
-    }
+	LogString v = StringHelper::trim(value);
+
+	if (StringHelper::equalsIgnoreCase(v,
+			LOG4CXX_STR("SYSTEM.OUT"), LOG4CXX_STR("system.out")))
+	{
+		target = getSystemOut();
+	}
+	else if (StringHelper::equalsIgnoreCase(v,
+			LOG4CXX_STR("SYSTEM.ERR"), LOG4CXX_STR("system.err")))
+	{
+		target = getSystemErr();
+	}
+	else
+	{
+		targetWarn(value);
+	}
 }
 
 LogString ConsoleAppender::getTarget() const
 {
-    return target;
+	return target;
 }
 
 void ConsoleAppender::targetWarn(const LogString& val)
 {
-    LogLog::warn(((LogString) LOG4CXX_STR("["))
-                 + val +  LOG4CXX_STR("] should be system.out or system.err."));
-    LogLog::warn(LOG4CXX_STR("Using previously set target, System.out by default."));
+	LogLog::warn(((LogString) LOG4CXX_STR("["))
+		+ val +  LOG4CXX_STR("] should be system.out or system.err."));
+	LogLog::warn(LOG4CXX_STR("Using previously set target, System.out by default."));
 }
 
 void ConsoleAppender::activateOptions(Pool& p)
 {
-    if (StringHelper::equalsIgnoreCase(target,
-                                       LOG4CXX_STR("SYSTEM.OUT"), LOG4CXX_STR("system.out")))
-    {
-        WriterPtr writer1(new SystemOutWriter());
-        setWriter(writer1);
-    }
-    else if (StringHelper::equalsIgnoreCase(target,
-                                            LOG4CXX_STR("SYSTEM.ERR"), LOG4CXX_STR("system.err")))
-    {
-        WriterPtr writer1(new SystemErrWriter());
-        setWriter(writer1);
-    }
-
-    WriterAppender::activateOptions(p);
+	if (StringHelper::equalsIgnoreCase(target,
+			LOG4CXX_STR("SYSTEM.OUT"), LOG4CXX_STR("system.out")))
+	{
+		WriterPtr writer1(new SystemOutWriter());
+		setWriter(writer1);
+	}
+	else if (StringHelper::equalsIgnoreCase(target,
+			LOG4CXX_STR("SYSTEM.ERR"), LOG4CXX_STR("system.err")))
+	{
+		WriterPtr writer1(new SystemErrWriter());
+		setWriter(writer1);
+	}
+
+	WriterAppender::activateOptions(p);
 }
 
 void ConsoleAppender::setOption(const LogString& option, const LogString& value)
 {
-    if (StringHelper::equalsIgnoreCase(option,
-                                       LOG4CXX_STR("TARGET"), LOG4CXX_STR("target")))
-    {
-        setTarget(value);
-    }
-    else
-    {
-        WriterAppender::setOption(option, value);
-    }
+	if (StringHelper::equalsIgnoreCase(option,
+			LOG4CXX_STR("TARGET"), LOG4CXX_STR("target")))
+	{
+		setTarget(value);
+	}
+	else
+	{
+		WriterAppender::setOption(option, value);
+	}
 }
 
 
diff --git a/src/main/cpp/cyclicbuffer.cpp b/src/main/cpp/cyclicbuffer.cpp
index 0be9cdd..9f4a9a0 100644
--- a/src/main/cpp/cyclicbuffer.cpp
+++ b/src/main/cpp/cyclicbuffer.cpp
@@ -32,16 +32,16 @@ The <code>maxSize</code> argument must a positive integer.
 @param maxSize The maximum number of elements in the buffer.
 */
 CyclicBuffer::CyclicBuffer(int maxSize1)
-    : ea(maxSize1), first(0), last(0), numElems(0), maxSize(maxSize1)
+	: ea(maxSize1), first(0), last(0), numElems(0), maxSize(maxSize1)
 {
-    if (maxSize1 < 1)
-    {
-        LogString msg(LOG4CXX_STR("The maxSize argument ("));
-        Pool p;
-        StringHelper::toString(maxSize1, p, msg);
-        msg.append(LOG4CXX_STR(") is not a positive integer."));
-        throw IllegalArgumentException(msg);
-    }
+	if (maxSize1 < 1)
+	{
+		LogString msg(LOG4CXX_STR("The maxSize argument ("));
+		Pool p;
+		StringHelper::toString(maxSize1, p, msg);
+		msg.append(LOG4CXX_STR(") is not a positive integer."));
+		throw IllegalArgumentException(msg);
+	}
 }
 
 CyclicBuffer::~CyclicBuffer()
@@ -53,21 +53,21 @@ Add an <code>event</code> as the last event in the buffer.
 */
 void CyclicBuffer::add(const spi::LoggingEventPtr& event)
 {
-    ea[last] = event;
-
-    if (++last == maxSize)
-    {
-        last = 0;
-    }
-
-    if (numElems < maxSize)
-    {
-        numElems++;
-    }
-    else if (++first == maxSize)
-    {
-        first = 0;
-    }
+	ea[last] = event;
+
+	if (++last == maxSize)
+	{
+		last = 0;
+	}
+
+	if (numElems < maxSize)
+	{
+		numElems++;
+	}
+	else if (++first == maxSize)
+	{
+		first = 0;
+	}
 }
 
 
@@ -78,12 +78,12 @@ currently in the buffer, then <code>null</code> is returned.
 */
 spi::LoggingEventPtr CyclicBuffer::get(int i)
 {
-    if (i < 0 || i >= numElems)
-    {
-        return 0;
-    }
+	if (i < 0 || i >= numElems)
+	{
+		return 0;
+	}
 
-    return ea[(first + i) % maxSize];
+	return ea[(first + i) % maxSize];
 }
 
 /**
@@ -92,21 +92,21 @@ is removed from the buffer.
 */
 spi::LoggingEventPtr CyclicBuffer::get()
 {
-    LoggingEventPtr r;
+	LoggingEventPtr r;
 
-    if (numElems > 0)
-    {
-        numElems--;
-        r = ea[first];
-        ea[first] = 0;
+	if (numElems > 0)
+	{
+		numElems--;
+		r = ea[first];
+		ea[first] = 0;
 
-        if (++first == maxSize)
-        {
-            first = 0;
-        }
-    }
+		if (++first == maxSize)
+		{
+			first = 0;
+		}
+	}
 
-    return r;
+	return r;
 }
 
 /**
@@ -115,47 +115,47 @@ Resize the cyclic buffer to <code>newSize</code>.
 */
 void CyclicBuffer::resize(int newSize)
 {
-    if (newSize < 0)
-    {
-        LogString msg(LOG4CXX_STR("Negative array size ["));
-        Pool p;
-        StringHelper::toString(newSize, p, msg);
-        msg.append(LOG4CXX_STR("] not allowed."));
-        throw IllegalArgumentException(msg);
-    }
-
-    if (newSize == numElems)
-    {
-        return;    // nothing to do
-    }
-
-    LoggingEventList temp(newSize);
-
-    int loopLen = newSize < numElems ? newSize : numElems;
-    int i;
-
-    for (i = 0; i < loopLen; i++)
-    {
-        temp[i] = ea[first];
-        ea[first] = 0;
-
-        if (++first == numElems)
-        {
-            first = 0;
-        }
-    }
-
-    ea = temp;
-    first = 0;
-    numElems = loopLen;
-    maxSize = newSize;
-
-    if (loopLen == newSize)
-    {
-        last = 0;
-    }
-    else
-    {
-        last = loopLen;
-    }
+	if (newSize < 0)
+	{
+		LogString msg(LOG4CXX_STR("Negative array size ["));
+		Pool p;
+		StringHelper::toString(newSize, p, msg);
+		msg.append(LOG4CXX_STR("] not allowed."));
+		throw IllegalArgumentException(msg);
+	}
+
+	if (newSize == numElems)
+	{
+		return;    // nothing to do
+	}
+
+	LoggingEventList temp(newSize);
+
+	int loopLen = newSize < numElems ? newSize : numElems;
+	int i;
+
+	for (i = 0; i < loopLen; i++)
+	{
+		temp[i] = ea[first];
+		ea[first] = 0;
+
+		if (++first == numElems)
+		{
+			first = 0;
+		}
+	}
+
+	ea = temp;
+	first = 0;
+	numElems = loopLen;
+	maxSize = newSize;
+
+	if (loopLen == newSize)
+	{
+		last = 0;
+	}
+	else
+	{
+		last = loopLen;
+	}
 }
diff --git a/src/main/cpp/dailyrollingfileappender.cpp b/src/main/cpp/dailyrollingfileappender.cpp
index 390271c..6f57cc3 100644
--- a/src/main/cpp/dailyrollingfileappender.cpp
+++ b/src/main/cpp/dailyrollingfileappender.cpp
@@ -37,85 +37,85 @@ DailyRollingFileAppender::DailyRollingFileAppender()
 
 
 DailyRollingFileAppender::DailyRollingFileAppender(
-    const LayoutPtr& l,
-    const LogString& filename,
-    const LogString& datePattern1)
-    : datePattern(datePattern1)
+	const LayoutPtr& l,
+	const LogString& filename,
+	const LogString& datePattern1)
+	: datePattern(datePattern1)
 {
-    setLayout(l);
-    setFile(filename);
-    Pool p;
-    activateOptions(p);
+	setLayout(l);
+	setFile(filename);
+	Pool p;
+	activateOptions(p);
 }
 
 void DailyRollingFileAppender::setDatePattern(const LogString& newPattern)
 {
-    datePattern = newPattern;
+	datePattern = newPattern;
 }
 
 LogString DailyRollingFileAppender::getDatePattern()
 {
-    return datePattern;
+	return datePattern;
 }
 
 void DailyRollingFileAppender::activateOptions(log4cxx::helpers::Pool& p)
 {
-    TimeBasedRollingPolicyPtr policy = new TimeBasedRollingPolicy();
-    LogString pattern(getFile());
-    bool inLiteral = false;
-    bool inPattern = false;
-
-    for (size_t i = 0; i < datePattern.length(); i++)
-    {
-        if (datePattern[i] == 0x27 /* '\'' */)
-        {
-            inLiteral = !inLiteral;
-
-            if (inLiteral && inPattern)
-            {
-                pattern.append(1, (logchar) 0x7D /* '}' */);
-                inPattern = false;
-            }
-        }
-        else
-        {
-            if (!inLiteral && !inPattern)
-            {
-                const logchar dbrace[] = { 0x25, 0x64, 0x7B, 0 }; // "%d{"
-                pattern.append(dbrace);
-                inPattern = true;
-            }
-
-            pattern.append(1, datePattern[i]);
-        }
-    }
-
-    if (inPattern)
-    {
-        pattern.append(1, (logchar) 0x7D /* '}' */);
-    }
-
-    policy->setFileNamePattern(pattern);
-    policy->activateOptions(p);
-    setTriggeringPolicy(policy);
-    setRollingPolicy(policy);
-
-    RollingFileAppenderSkeleton::activateOptions(p);
+	TimeBasedRollingPolicyPtr policy = new TimeBasedRollingPolicy();
+	LogString pattern(getFile());
+	bool inLiteral = false;
+	bool inPattern = false;
+
+	for (size_t i = 0; i < datePattern.length(); i++)
+	{
+		if (datePattern[i] == 0x27 /* '\'' */)
+		{
+			inLiteral = !inLiteral;
+
+			if (inLiteral && inPattern)
+			{
+				pattern.append(1, (logchar) 0x7D /* '}' */);
+				inPattern = false;
+			}
+		}
+		else
+		{
+			if (!inLiteral && !inPattern)
+			{
+				const logchar dbrace[] = { 0x25, 0x64, 0x7B, 0 }; // "%d{"
+				pattern.append(dbrace);
+				inPattern = true;
+			}
+
+			pattern.append(1, datePattern[i]);
+		}
+	}
+
+	if (inPattern)
+	{
+		pattern.append(1, (logchar) 0x7D /* '}' */);
+	}
+
+	policy->setFileNamePattern(pattern);
+	policy->activateOptions(p);
+	setTriggeringPolicy(policy);
+	setRollingPolicy(policy);
+
+	RollingFileAppenderSkeleton::activateOptions(p);
 }
 
 
 void DailyRollingFileAppender::setOption(const LogString& option,
-        const LogString& value)
+	const LogString& value)
 {
-    if (StringHelper::equalsIgnoreCase(option,
-                                       LOG4CXX_STR("DATEPATTERN"), LOG4CXX_STR("datepattern")))
-    {
-        setDatePattern(value);
-    }
-    else
-    {
-        RollingFileAppenderSkeleton::setOption(option, value);
-    }
+	if (StringHelper::equalsIgnoreCase(option,
+			LOG4CXX_STR("DATEPATTERN"), LOG4CXX_STR("datepattern")))
+	{
+		setDatePattern(value);
+	}
+	else
+	{
+		RollingFileAppenderSkeleton::setOption(option, value);
+	}
 }
 
 
diff --git a/src/main/cpp/datagrampacket.cpp b/src/main/cpp/datagrampacket.cpp
index 0b6710b..a9577ec 100644
--- a/src/main/cpp/datagrampacket.cpp
+++ b/src/main/cpp/datagrampacket.cpp
@@ -25,7 +25,7 @@ IMPLEMENT_LOG4CXX_OBJECT(DatagramPacket)
 /** Constructs a DatagramPacket for receiving packets of length
 <code>length</code>. */
 DatagramPacket::DatagramPacket(void* buf1, int length1)
-    : buf(buf1), offset(0), length(length1), address(), port(0)
+	: buf(buf1), offset(0), length(length1), address(), port(0)
 {
 }
 
@@ -33,23 +33,23 @@ DatagramPacket::DatagramPacket(void* buf1, int length1)
 <code>length/<code> to the specified port number on the specified
 host. */
 DatagramPacket::DatagramPacket(void* buf1, int length1, InetAddressPtr address1,
-                               int port1)
-    : buf(buf1), offset(0), length(length1), address(address1), port(port1)
+	int port1)
+	: buf(buf1), offset(0), length(length1), address(address1), port(port1)
 {
 }
 
 /** Constructs a DatagramPacket for receiving packets of length
 <code>length</code>, specifying an offset into the buffer. */
 DatagramPacket::DatagramPacket(void* buf1, int offset1, int length1)
-    : buf(buf1), offset(offset1), length(length1), address(), port(0)
+	: buf(buf1), offset(offset1), length(length1), address(), port(0)
 {
 }
 /** Constructs a datagram packet for sending packets of length
 <code>length</code> with offset <code>offset</code> to the
 specified port number on the specified host. */
 DatagramPacket::DatagramPacket(void* buf1, int offset1, int length1,
-                               InetAddressPtr address1, int port1)
-    : buf(buf1), offset(offset1), length(length1), address(address1), port(port1)
+	InetAddressPtr address1, int port1)
+	: buf(buf1), offset(offset1), length(length1), address(address1), port(port1)
 {
 }
 
diff --git a/src/main/cpp/datagramsocket.cpp b/src/main/cpp/datagramsocket.cpp
index 14636fe..4b2a1f8 100644
--- a/src/main/cpp/datagramsocket.cpp
+++ b/src/main/cpp/datagramsocket.cpp
@@ -28,180 +28,180 @@ using namespace log4cxx::helpers;
 IMPLEMENT_LOG4CXX_OBJECT(DatagramSocket)
 
 DatagramSocket::DatagramSocket()
-    : socket(0), address(), localAddress(), port(0), localPort(0)
+	: socket(0), address(), localAddress(), port(0), localPort(0)
 {
-    create();
+	create();
 }
 
 DatagramSocket::DatagramSocket(int localPort1)
-    : socket(0), address(), localAddress(), port(0), localPort(0)
+	: socket(0), address(), localAddress(), port(0), localPort(0)
 {
-    InetAddressPtr bindAddr = InetAddress::anyAddress();
+	InetAddressPtr bindAddr = InetAddress::anyAddress();
 
-    create();
-    bind(localPort1, bindAddr);
+	create();
+	bind(localPort1, bindAddr);
 }
 
 DatagramSocket::DatagramSocket(int localPort1, InetAddressPtr localAddress1)
-    : socket(0), address(), localAddress(), port(0), localPort(0)
+	: socket(0), address(), localAddress(), port(0), localPort(0)
 {
-    create();
-    bind(localPort1, localAddress1);
+	create();
+	bind(localPort1, localAddress1);
 }
 
 DatagramSocket::~DatagramSocket()
 {
-    try
-    {
-        close();
-    }
-    catch (SocketException&)
-    {
-    }
+	try
+	{
+		close();
+	}
+	catch (SocketException&)
+	{
+	}
 }
 
 /**  Binds a datagram socket to a local port and address.*/
 void DatagramSocket::bind(int localPort1, InetAddressPtr localAddress1)
 {
-    Pool addrPool;
-
-    // Create server socket address (including port number)
-    LOG4CXX_ENCODE_CHAR(hostAddr, localAddress1->getHostAddress());
-    apr_sockaddr_t* server_addr;
-    apr_status_t status =
-        apr_sockaddr_info_get(&server_addr, hostAddr.c_str(), APR_INET,
-                              localPort1, 0, addrPool.getAPRPool());
-
-    if (status != APR_SUCCESS)
-    {
-        throw BindException(status);
-    }
-
-    // bind the socket to the address
-    status = apr_socket_bind(socket, server_addr);
-
-    if (status != APR_SUCCESS)
-    {
-        throw BindException(status);
-    }
-
-    this->localPort = localPort1;
-    this->localAddress = localAddress1;
+	Pool addrPool;
+
+	// Create server socket address (including port number)
+	LOG4CXX_ENCODE_CHAR(hostAddr, localAddress1->getHostAddress());
+	apr_sockaddr_t* server_addr;
+	apr_status_t status =
+		apr_sockaddr_info_get(&server_addr, hostAddr.c_str(), APR_INET,
+			localPort1, 0, addrPool.getAPRPool());
+
+	if (status != APR_SUCCESS)
+	{
+		throw BindException(status);
+	}
+
+	// bind the socket to the address
+	status = apr_socket_bind(socket, server_addr);
+
+	if (status != APR_SUCCESS)
+	{
+		throw BindException(status);
+	}
+
+	this->localPort = localPort1;
+	this->localAddress = localAddress1;
 }
 
 /** Close the socket.*/
 void DatagramSocket::close()
 {
-    if (socket != 0)
-    {
-        apr_status_t status = apr_socket_close(socket);
-
-        if (status != APR_SUCCESS)
-        {
-            throw SocketException(status);
-        }
-
-        socket = 0;
-        localPort = 0;
-    }
+	if (socket != 0)
+	{
+		apr_status_t status = apr_socket_close(socket);
+
+		if (status != APR_SUCCESS)
+		{
+			throw SocketException(status);
+		}
+
+		socket = 0;
+		localPort = 0;
+	}
 }
 
 void DatagramSocket::connect(InetAddressPtr address1, int port1)
 {
 
-    this->address = address1;
-    this->port = port1;
+	this->address = address1;
+	this->port = port1;
 
-    Pool addrPool;
+	Pool addrPool;
 
-    // create socket address
-    LOG4CXX_ENCODE_CHAR(hostAddr, address1->getHostAddress());
-    apr_sockaddr_t* client_addr;
-    apr_status_t status =
-        apr_sockaddr_info_get(&client_addr, hostAddr.c_str(), APR_INET,
-                              port, 0, addrPool.getAPRPool());
+	// create socket address
+	LOG4CXX_ENCODE_CHAR(hostAddr, address1->getHostAddress());
+	apr_sockaddr_t* client_addr;
+	apr_status_t status =
+		apr_sockaddr_info_get(&client_addr, hostAddr.c_str(), APR_INET,
+			port, 0, addrPool.getAPRPool());
 
-    if (status != APR_SUCCESS)
-    {
-        throw ConnectException(status);
-    }
+	if (status != APR_SUCCESS)
+	{
+		throw ConnectException(status);
+	}
 
-    // connect the socket
-    status = apr_socket_connect(socket, client_addr);
+	// connect the socket
+	status = apr_socket_connect(socket, client_addr);
 
-    if (status != APR_SUCCESS)
-    {
-        throw ConnectException(status);
-    }
+	if (status != APR_SUCCESS)
+	{
+		throw ConnectException(status);
+	}
 }
 
 /** Creates a datagram socket.*/
 void DatagramSocket::create()
 {
-    apr_socket_t* newSocket;
-    apr_status_t status =
-        apr_socket_create(&newSocket, APR_INET, SOCK_DGRAM,
-                          APR_PROTO_UDP, socketPool.getAPRPool());
-    socket = newSocket;
-
-    if (status != APR_SUCCESS)
-    {
-        throw SocketException(status);
-    }
+	apr_socket_t* newSocket;
+	apr_status_t status =
+		apr_socket_create(&newSocket, APR_INET, SOCK_DGRAM,
+			APR_PROTO_UDP, socketPool.getAPRPool());
+	socket = newSocket;
+
+	if (status != APR_SUCCESS)
+	{
+		throw SocketException(status);
+	}
 }
 
 /** Receive the datagram packet.*/
 void DatagramSocket::receive(DatagramPacketPtr& p)
 {
-    Pool addrPool;
-
-    // Create the address from which to receive the datagram packet
-    LOG4CXX_ENCODE_CHAR(hostAddr, p->getAddress()->getHostAddress());
-    apr_sockaddr_t* addr;
-    apr_status_t status =
-        apr_sockaddr_info_get(&addr, hostAddr.c_str(), APR_INET,
-                              p->getPort(), 0, addrPool.getAPRPool());
-
-    if (status != APR_SUCCESS)
-    {
-        throw SocketException(status);
-    }
-
-    // receive the datagram packet
-    apr_size_t len = p->getLength();
-    status = apr_socket_recvfrom(addr, socket, 0,
-                                 (char*)p->getData(), &len);
-
-    if (status != APR_SUCCESS)
-    {
-        throw IOException(status);
-    }
+	Pool addrPool;
+
+	// Create the address from which to receive the datagram packet
+	LOG4CXX_ENCODE_CHAR(hostAddr, p->getAddress()->getHostAddress());
+	apr_sockaddr_t* addr;
+	apr_status_t status =
+		apr_sockaddr_info_get(&addr, hostAddr.c_str(), APR_INET,
+			p->getPort(), 0, addrPool.getAPRPool());
+
+	if (status != APR_SUCCESS)
+	{
+		throw SocketException(status);
+	}
+
+	// receive the datagram packet
+	apr_size_t len = p->getLength();
+	status = apr_socket_recvfrom(addr, socket, 0,
+			(char*)p->getData(), &len);
+
+	if (status != APR_SUCCESS)
+	{
+		throw IOException(status);
+	}
 }
 
 /**  Sends a datagram packet.*/
 void DatagramSocket::send(DatagramPacketPtr& p)
 {
-    Pool addrPool;
-
-    // create the adress to which to send the datagram packet
-    LOG4CXX_ENCODE_CHAR(hostAddr, p->getAddress()->getHostAddress());
-    apr_sockaddr_t* addr;
-    apr_status_t status =
-        apr_sockaddr_info_get(&addr, hostAddr.c_str(), APR_INET, p->getPort(),
-                              0, addrPool.getAPRPool());
-
-    if (status != APR_SUCCESS)
-    {
-        throw SocketException(status);
-    }
-
-    // send the datagram packet
-    apr_size_t len = p->getLength();
-    status = apr_socket_sendto(socket, addr, 0,
-                               (char*)p->getData(), &len);
-
-    if (status != APR_SUCCESS)
-    {
-        throw IOException(status);
-    }
+	Pool addrPool;
+
+	// create the adress to which to send the datagram packet
+	LOG4CXX_ENCODE_CHAR(hostAddr, p->getAddress()->getHostAddress());
+	apr_sockaddr_t* addr;
+	apr_status_t status =
+		apr_sockaddr_info_get(&addr, hostAddr.c_str(), APR_INET, p->getPort(),
+			0, addrPool.getAPRPool());
+
+	if (status != APR_SUCCESS)
+	{
+		throw SocketException(status);
+	}
+
+	// send the datagram packet
+	apr_size_t len = p->getLength();
+	status = apr_socket_sendto(socket, addr, 0,
+			(char*)p->getData(), &len);
+
+	if (status != APR_SUCCESS)
+	{
+		throw IOException(status);
+	}
 }
diff --git a/src/main/cpp/date.cpp b/src/main/cpp/date.cpp
index 1beddc2..a1ea7ce 100644
--- a/src/main/cpp/date.cpp
+++ b/src/main/cpp/date.cpp
@@ -19,7 +19,7 @@
 
 #include <apr_time.h>
 #ifndef INT64_C
-    #define INT64_C(x) x ## LL
+	#define INT64_C(x) x ## LL
 #endif
 
 using namespace log4cxx;
@@ -41,16 +41,16 @@ Date::~Date()
 
 log4cxx_time_t Date::getMicrosecondsPerDay()
 {
-    return APR_INT64_C(86400000000);
+	return APR_INT64_C(86400000000);
 }
 
 log4cxx_time_t Date::getMicrosecondsPerSecond()
 {
-    return APR_USEC_PER_SEC;
+	return APR_USEC_PER_SEC;
 }
 
 
 log4cxx_time_t Date::getNextSecond() const
 {
-    return ((time / APR_USEC_PER_SEC) + 1) * APR_USEC_PER_SEC;
+	return ((time / APR_USEC_PER_SEC) + 1) * APR_USEC_PER_SEC;
 }
diff --git a/src/main/cpp/dateformat.cpp b/src/main/cpp/dateformat.cpp
index ac1f338..83b3624 100644
--- a/src/main/cpp/dateformat.cpp
+++ b/src/main/cpp/dateformat.cpp
@@ -31,7 +31,7 @@ void DateFormat::setTimeZone(const TimeZonePtr&) {}
 
 void DateFormat::numberFormat(LogString& s, int n, Pool& p) const
 {
-    StringHelper::toString(n, p, s);
+	StringHelper::toString(n, p, s);
 }
 
 DateFormat::DateFormat() {}
diff --git a/src/main/cpp/datelayout.cpp b/src/main/cpp/datelayout.cpp
index 5e3fc4c..e8366bb 100644
--- a/src/main/cpp/datelayout.cpp
+++ b/src/main/cpp/datelayout.cpp
@@ -30,7 +30,7 @@ using namespace log4cxx::helpers;
 using namespace log4cxx::spi;
 
 DateLayout::DateLayout(const LogString& dateFormatOption1) :
-    timeZoneID(), dateFormatOption(dateFormatOption1), dateFormat(0)
+	timeZoneID(), dateFormatOption(dateFormatOption1), dateFormat(0)
 {
 }
 
@@ -42,86 +42,86 @@ DateLayout::~DateLayout()
 void DateLayout::setOption(const LogString& option, const LogString& value)
 {
 
-    if (StringHelper::equalsIgnoreCase(option,
-                                       LOG4CXX_STR("DATEFORMAT"), LOG4CXX_STR("dateformat")))
-    {
-        dateFormatOption = value;
-    }
-    else if (StringHelper::equalsIgnoreCase(option,
-                                            LOG4CXX_STR("TIMEZONE"), LOG4CXX_STR("timezone")))
-    {
-        timeZoneID = value;
-    }
+	if (StringHelper::equalsIgnoreCase(option,
+			LOG4CXX_STR("DATEFORMAT"), LOG4CXX_STR("dateformat")))
+	{
+		dateFormatOption = value;
+	}
+	else if (StringHelper::equalsIgnoreCase(option,
+			LOG4CXX_STR("TIMEZONE"), LOG4CXX_STR("timezone")))
+	{
+		timeZoneID = value;
+	}
 }
 
 void DateLayout::activateOptions(Pool&)
 {
-    if (!dateFormatOption.empty())
-    {
+	if (!dateFormatOption.empty())
+	{
 
-        if (dateFormatOption.empty())
-        {
-            dateFormat = 0;
-        }
-        else if (StringHelper::equalsIgnoreCase(dateFormatOption,
-                                                LOG4CXX_STR("NULL"), LOG4CXX_STR("null")))
-        {
-            dateFormat = 0;
-            dateFormatOption = LOG4CXX_STR("NULL");
-        }
-        else if (StringHelper::equalsIgnoreCase(dateFormatOption,
-                                                LOG4CXX_STR("RELATIVE"), LOG4CXX_STR("relative")))
-        {
-            dateFormat =  new RelativeTimeDateFormat();
-            dateFormatOption = LOG4CXX_STR("RELATIVE");
-        }
-        else if (StringHelper::equalsIgnoreCase(dateFormatOption,
-                                                LOG4CXX_STR("ABSOLUTE"),  LOG4CXX_STR("absolute")))
-        {
-            dateFormat =  new AbsoluteTimeDateFormat();
-            dateFormatOption = LOG4CXX_STR("ABSOLUTE");
-        }
-        else if (StringHelper::equalsIgnoreCase(dateFormatOption,
-                                                LOG4CXX_STR("DATE"), LOG4CXX_STR("date")))
-        {
-            dateFormat =  new DateTimeDateFormat();
-            dateFormatOption = LOG4CXX_STR("DATE");
-        }
-        else if (StringHelper::equalsIgnoreCase(dateFormatOption,
-                                                LOG4CXX_STR("ISO8601"), LOG4CXX_STR("iso8601")))
-        {
-            dateFormat =  new ISO8601DateFormat();
-            dateFormatOption = LOG4CXX_STR("iso8601");
-        }
-        else
-        {
-            dateFormat = new SimpleDateFormat(dateFormatOption);
-        }
-    }
+		if (dateFormatOption.empty())
+		{
+			dateFormat = 0;
+		}
+		else if (StringHelper::equalsIgnoreCase(dateFormatOption,
+				LOG4CXX_STR("NULL"), LOG4CXX_STR("null")))
+		{
+			dateFormat = 0;
+			dateFormatOption = LOG4CXX_STR("NULL");
+		}
+		else if (StringHelper::equalsIgnoreCase(dateFormatOption,
+				LOG4CXX_STR("RELATIVE"), LOG4CXX_STR("relative")))
+		{
+			dateFormat =  new RelativeTimeDateFormat();
+			dateFormatOption = LOG4CXX_STR("RELATIVE");
+		}
+		else if (StringHelper::equalsIgnoreCase(dateFormatOption,
+				LOG4CXX_STR("ABSOLUTE"),  LOG4CXX_STR("absolute")))
+		{
+			dateFormat =  new AbsoluteTimeDateFormat();
+			dateFormatOption = LOG4CXX_STR("ABSOLUTE");
+		}
+		else if (StringHelper::equalsIgnoreCase(dateFormatOption,
+				LOG4CXX_STR("DATE"), LOG4CXX_STR("date")))
+		{
+			dateFormat =  new DateTimeDateFormat();
+			dateFormatOption = LOG4CXX_STR("DATE");
+		}
+		else if (StringHelper::equalsIgnoreCase(dateFormatOption,
+				LOG4CXX_STR("ISO8601"), LOG4CXX_STR("iso8601")))
+		{
+			dateFormat =  new ISO8601DateFormat();
+			dateFormatOption = LOG4CXX_STR("iso8601");
+		}
+		else
+		{
+			dateFormat = new SimpleDateFormat(dateFormatOption);
+		}
+	}
 
-    if (dateFormat != NULL)
-    {
-        if (timeZoneID.empty())
-        {
-            dateFormat->setTimeZone(TimeZone::getDefault());
-        }
-        else
-        {
-            dateFormat->setTimeZone(TimeZone::getTimeZone(timeZoneID));
-        }
-    }
+	if (dateFormat != NULL)
+	{
+		if (timeZoneID.empty())
+		{
+			dateFormat->setTimeZone(TimeZone::getDefault());
+		}
+		else
+		{
+			dateFormat->setTimeZone(TimeZone::getTimeZone(timeZoneID));
+		}
+	}
 }
 
 
 void DateLayout::formatDate(LogString& s,
-                            const spi::LoggingEventPtr& event,
-                            Pool& p) const
+	const spi::LoggingEventPtr& event,
+	Pool& p) const
 {
 
-    if (dateFormat != 0)
-    {
-        dateFormat->format(s, event->getTimeStamp(), p);
-        s.append(1, (logchar) 0x20 /* ' ' */);
-    }
+	if (dateFormat != 0)
+	{
+		dateFormat->format(s, event->getTimeStamp(), p);
+		s.append(1, (logchar) 0x20 /* ' ' */);
+	}
 }
 
diff --git a/src/main/cpp/datepatternconverter.cpp b/src/main/cpp/datepatternconverter.cpp
index 80db01c..25b51ea 100644
--- a/src/main/cpp/datepatternconverter.cpp
+++ b/src/main/cpp/datepatternconverter.cpp
@@ -16,7 +16,7 @@
  */
 
 #if defined(_MSC_VER)
-    #pragma warning ( disable: 4231 4251 4275 4786 )
+	#pragma warning ( disable: 4231 4251 4275 4786 )
 #endif
 
 #include <log4cxx/logstring.h>
@@ -40,121 +40,121 @@ using namespace log4cxx::helpers;
 IMPLEMENT_LOG4CXX_OBJECT(DatePatternConverter)
 
 DatePatternConverter::DatePatternConverter(
-    const std::vector<LogString>& options) :
-    LoggingEventPatternConverter(LOG4CXX_STR("Class Name"),
-                                 LOG4CXX_STR("class name")), df(getDateFormat(options))
+	const std::vector<LogString>& options) :
+	LoggingEventPatternConverter(LOG4CXX_STR("Class Name"),
+		LOG4CXX_STR("class name")), df(getDateFormat(options))
 {
 }
 
 DateFormatPtr DatePatternConverter::getDateFormat(const OptionsList& options)
 {
-    DateFormatPtr df;
-    int maximumCacheValidity = 1000000;
-
-    if (options.size() == 0)
-    {
-        df = new ISO8601DateFormat();
-    }
-    else
-    {
-        LogString dateFormatStr(options[0]);
-
-        if (dateFormatStr.empty() ||
-                StringHelper::equalsIgnoreCase(dateFormatStr,
-                                               LOG4CXX_STR("ISO8601"), LOG4CXX_STR("iso8601")))
-        {
-            df = new ISO8601DateFormat();
-        }
-        else if (StringHelper::equalsIgnoreCase(dateFormatStr,
-                                                LOG4CXX_STR("ABSOLUTE"), LOG4CXX_STR("absolute")))
-        {
-            df = new AbsoluteTimeDateFormat();
-        }
-        else if (StringHelper::equalsIgnoreCase(dateFormatStr,
-                                                LOG4CXX_STR("DATE"), LOG4CXX_STR("date")))
-        {
-            df = new DateTimeDateFormat();
-        }
-        else
-        {
-            if (dateFormatStr.find(0x25 /*'%'*/) == std::string::npos)
-            {
-                try
-                {
-                    df = new SimpleDateFormat(dateFormatStr);
-                    maximumCacheValidity =
-                        CachedDateFormat::getMaximumCacheValidity(dateFormatStr);
-                }
-                catch (IllegalArgumentException& e)
-                {
-                    df = new ISO8601DateFormat();
-                    LogLog::warn(((LogString)
-                                  LOG4CXX_STR("Could not instantiate SimpleDateFormat with pattern "))
-                                 + dateFormatStr, e);
-                }
-            }
-            else
-            {
-                df = new StrftimeDateFormat(dateFormatStr);
-            }
-        }
-
-        if (options.size() >= 2)
-        {
-            TimeZonePtr tz(TimeZone::getTimeZone(options[1]));
-
-            if (tz != NULL)
-            {
-                df->setTimeZone(tz);
-            }
-        }
-    }
-
-    if (maximumCacheValidity > 0)
-    {
-        df = new CachedDateFormat(df, maximumCacheValidity);
-    }
-
-    return df;
+	DateFormatPtr df;
+	int maximumCacheValidity = 1000000;
+
+	if (options.size() == 0)
+	{
+		df = new ISO8601DateFormat();
+	}
+	else
+	{
+		LogString dateFormatStr(options[0]);
+
+		if (dateFormatStr.empty() ||
+			StringHelper::equalsIgnoreCase(dateFormatStr,
+				LOG4CXX_STR("ISO8601"), LOG4CXX_STR("iso8601")))
+		{
+			df = new ISO8601DateFormat();
+		}
+		else if (StringHelper::equalsIgnoreCase(dateFormatStr,
+				LOG4CXX_STR("ABSOLUTE"), LOG4CXX_STR("absolute")))
+		{
+			df = new AbsoluteTimeDateFormat();
+		}
+		else if (StringHelper::equalsIgnoreCase(dateFormatStr,
+				LOG4CXX_STR("DATE"), LOG4CXX_STR("date")))
+		{
+			df = new DateTimeDateFormat();
+		}
+		else
+		{
+			if (dateFormatStr.find(0x25 /*'%'*/) == std::string::npos)
+			{
+				try
+				{
+					df = new SimpleDateFormat(dateFormatStr);
+					maximumCacheValidity =
+						CachedDateFormat::getMaximumCacheValidity(dateFormatStr);
+				}
+				catch (IllegalArgumentException& e)
+				{
+					df = new ISO8601DateFormat();
+					LogLog::warn(((LogString)
+							LOG4CXX_STR("Could not instantiate SimpleDateFormat with pattern "))
+						+ dateFormatStr, e);
+				}
+			}
+			else
+			{
+				df = new StrftimeDateFormat(dateFormatStr);
+			}
+		}
+
+		if (options.size() >= 2)
+		{
+			TimeZonePtr tz(TimeZone::getTimeZone(options[1]));
+
+			if (tz != NULL)
+			{
+				df->setTimeZone(tz);
+			}
+		}
+	}
+
+	if (maximumCacheValidity > 0)
+	{
+		df = new CachedDateFormat(df, maximumCacheValidity);
+	}
+
+	return df;
 }
 
 PatternConverterPtr DatePatternConverter::newInstance(
-    const std::vector<LogString>& options)
+	const std::vector<LogString>& options)
 {
-    return new DatePatternConverter(options);
+	return new DatePatternConverter(options);
 }
 
 void DatePatternConverter::format(
-    const LoggingEventPtr& event,
-    LogString& toAppendTo,
-    Pool& p) const
+	const LoggingEventPtr& event,
+	LogString& toAppendTo,
+	Pool& p) const
 {
-    df->format(toAppendTo, event->getTimeStamp(), p);
+	df->format(toAppendTo, event->getTimeStamp(), p);
 }
 
 /**
  * {@inheritDoc}
  */
 void DatePatternConverter::format(
-    const ObjectPtr& obj,
-    LogString& toAppendTo,
-    Pool& p) const
+	const ObjectPtr& obj,
+	LogString& toAppendTo,
+	Pool& p) const
 {
-    DatePtr date(obj);
-
-    if (date != NULL)
-    {
-        format(date, toAppendTo, p);
-    }
-    else
-    {
-        LoggingEventPtr event(obj);
-
-        if (event != NULL)
-        {
-            format(event, toAppendTo, p);
-        }
-    }
+	DatePtr date(obj);
+
+	if (date != NULL)
+	{
+		format(date, toAppendTo, p);
+	}
+	else
+	{
+		LoggingEventPtr event(obj);
+
+		if (event != NULL)
+		{
+			format(event, toAppendTo, p);
+		}
+	}
 }
 
 /**
@@ -163,9 +163,9 @@ void DatePatternConverter::format(
  * @param toAppendTo buffer to which formatted date is appended.
  */
 void DatePatternConverter::format(
-    const DatePtr& date,
-    LogString& toAppendTo,
-    Pool& p) const
+	const DatePtr& date,
+	LogString& toAppendTo,
+	Pool& p) const
 {
-    df->format(toAppendTo, date->getTime(), p);
+	df->format(toAppendTo, date->getTime(), p);
 }
diff --git a/src/main/cpp/defaultconfigurator.cpp b/src/main/cpp/defaultconfigurator.cpp
index b592242..b304084 100644
--- a/src/main/cpp/defaultconfigurator.cpp
+++ b/src/main/cpp/defaultconfigurator.cpp
@@ -29,60 +29,60 @@ using namespace log4cxx::helpers;
 
 void DefaultConfigurator::configure(LoggerRepository* repository)
 {
-    repository->setConfigured(true);
-    const LogString configuratorClassName(getConfiguratorClass());
-
-    LogString configurationOptionStr(getConfigurationFileName());
-    Pool pool;
-    File configuration;
-
-    if (configurationOptionStr.empty())
-    {
-        const char* names[] = { "log4cxx.xml", "log4cxx.properties", "log4j.xml", "log4j.properties", 0 };
-
-        for (int i = 0; names[i] != 0; i++)
-        {
-            File candidate(names[i]);
-
-            if (candidate.exists(pool))
-            {
-                configuration = candidate;
-                break;
-            }
-        }
-    }
-    else
-    {
-        configuration.setPath(configurationOptionStr);
-    }
-
-    if (configuration.exists(pool))
-    {
-        LogString msg(LOG4CXX_STR("Using configuration file ["));
-        msg += configuration.getPath();
-        msg += LOG4CXX_STR("] for automatic log4cxx configuration");
-        LogLog::debug(msg);
-
-        LoggerRepositoryPtr repo(repository);
-        OptionConverter::selectAndConfigure(
-            configuration,
-            configuratorClassName,
-            repo);
-    }
-    else
-    {
-        if (configurationOptionStr.empty())
-        {
-            LogLog::debug(LOG4CXX_STR("Could not find default configuration file."));
-        }
-        else
-        {
-            LogString msg(LOG4CXX_STR("Could not find configuration file: ["));
-            msg += configurationOptionStr;
-            msg += LOG4CXX_STR("].");
-            LogLog::debug(msg);
-        }
-    }
+	repository->setConfigured(true);
+	const LogString configuratorClassName(getConfiguratorClass());
+
+	LogString configurationOptionStr(getConfigurationFileName());
+	Pool pool;
+	File configuration;
+
+	if (configurationOptionStr.empty())
+	{
+		const char* names[] = { "log4cxx.xml", "log4cxx.properties", "log4j.xml", "log4j.properties", 0 };
+
+		for (int i = 0; names[i] != 0; i++)
+		{
+			File candidate(names[i]);
+
+			if (candidate.exists(pool))
+			{
+				configuration = candidate;
+				break;
+			}
+		}
+	}
+	else
+	{
+		configuration.setPath(configurationOptionStr);
+	}
+
+	if (configuration.exists(pool))
+	{
+		LogString msg(LOG4CXX_STR("Using configuration file ["));
+		msg += configuration.getPath();
+		msg += LOG4CXX_STR("] for automatic log4cxx configuration");
+		LogLog::debug(msg);
+
+		LoggerRepositoryPtr repo(repository);
+		OptionConverter::selectAndConfigure(
+			configuration,
+			configuratorClassName,
+			repo);
+	}
+	else
+	{
+		if (configurationOptionStr.empty())
+		{
+			LogLog::debug(LOG4CXX_STR("Could not find default configuration file."));
+		}
+		else
+		{
+			LogString msg(LOG4CXX_STR("Could not find configuration file: ["));
+			msg += configurationOptionStr;
+			msg += LOG4CXX_STR("].");
+			LogLog::debug(msg);
+		}
+	}
 
 }
 
@@ -90,26 +90,26 @@ void DefaultConfigurator::configure(LoggerRepository* repository)
 const LogString DefaultConfigurator::getConfiguratorClass()
 {
 
-    // Use automatic configration to configure the default hierarchy
-    const LogString log4jConfiguratorClassName(
-        OptionConverter::getSystemProperty(LOG4CXX_STR("log4j.configuratorClass"), LOG4CXX_STR("")));
-    const LogString configuratorClassName(
-        OptionConverter::getSystemProperty(LOG4CXX_STR("LOG4CXX_CONFIGURATOR_CLASS"),
-                                           log4jConfiguratorClassName));
-    return configuratorClassName;
+	// Use automatic configration to configure the default hierarchy
+	const LogString log4jConfiguratorClassName(
+		OptionConverter::getSystemProperty(LOG4CXX_STR("log4j.configuratorClass"), LOG4CXX_STR("")));
+	const LogString configuratorClassName(
+		OptionConverter::getSystemProperty(LOG4CXX_STR("LOG4CXX_CONFIGURATOR_CLASS"),
+			log4jConfiguratorClassName));
+	return configuratorClassName;
 }
 
 
 const LogString DefaultConfigurator::getConfigurationFileName()
 {
-    static const LogString LOG4CXX_DEFAULT_CONFIGURATION_KEY(LOG4CXX_STR("LOG4CXX_CONFIGURATION"));
-    static const LogString LOG4J_DEFAULT_CONFIGURATION_KEY(LOG4CXX_STR("log4j.configuration"));
-    const LogString log4jConfigurationOptionStr(
-        OptionConverter::getSystemProperty(LOG4J_DEFAULT_CONFIGURATION_KEY, LOG4CXX_STR("")));
-    const LogString configurationOptionStr(
-        OptionConverter::getSystemProperty(LOG4CXX_DEFAULT_CONFIGURATION_KEY,
-                                           log4jConfigurationOptionStr));
-    return configurationOptionStr;
+	static const LogString LOG4CXX_DEFAULT_CONFIGURATION_KEY(LOG4CXX_STR("LOG4CXX_CONFIGURATION"));
+	static const LogString LOG4J_DEFAULT_CONFIGURATION_KEY(LOG4CXX_STR("log4j.configuration"));
+	const LogString log4jConfigurationOptionStr(
+		OptionConverter::getSystemProperty(LOG4J_DEFAULT_CONFIGURATION_KEY, LOG4CXX_STR("")));
+	const LogString configurationOptionStr(
+		OptionConverter::getSystemProperty(LOG4CXX_DEFAULT_CONFIGURATION_KEY,
+			log4jConfigurationOptionStr));
+	return configurationOptionStr;
 }
 
 
diff --git a/src/main/cpp/defaultloggerfactory.cpp b/src/main/cpp/defaultloggerfactory.cpp
index 64c1124..8f81a77 100644
--- a/src/main/cpp/defaultloggerfactory.cpp
+++ b/src/main/cpp/defaultloggerfactory.cpp
@@ -23,8 +23,8 @@ using namespace log4cxx;
 IMPLEMENT_LOG4CXX_OBJECT(DefaultLoggerFactory)
 
 LoggerPtr DefaultLoggerFactory::makeNewLoggerInstance(
-    log4cxx::helpers::Pool& pool,
-    const LogString& name) const
+	log4cxx::helpers::Pool& pool,
+	const LogString& name) const
 {
-    return new Logger(pool, name);
+	return new Logger(pool, name);
 }
diff --git a/src/main/cpp/defaultrepositoryselector.cpp b/src/main/cpp/defaultrepositoryselector.cpp
index 0afb650..6313f29 100644
--- a/src/main/cpp/defaultrepositoryselector.cpp
+++ b/src/main/cpp/defaultrepositoryselector.cpp
@@ -23,22 +23,22 @@ using namespace log4cxx::helpers;
 
 
 DefaultRepositorySelector::DefaultRepositorySelector(const LoggerRepositoryPtr& repository1)
-    : repository(repository1)
+	: repository(repository1)
 {
 }
 
 void DefaultRepositorySelector::addRef() const
 {
-    ObjectImpl::addRef();
+	ObjectImpl::addRef();
 }
 
 
 void DefaultRepositorySelector::releaseRef() const
 {
-    ObjectImpl::releaseRef();
+	ObjectImpl::releaseRef();
 }
 
 LoggerRepositoryPtr& DefaultRepositorySelector::getLoggerRepository()
 {
-    return repository;
+	return repository;
 }
diff --git a/src/main/cpp/domconfigurator.cpp b/src/main/cpp/domconfigurator.cpp
index bf997b8..c5770bf 100644
--- a/src/main/cpp/domconfigurator.cpp
+++ b/src/main/cpp/domconfigurator.cpp
@@ -64,20 +64,20 @@ namespace xml
 {
 class XMLWatchdog  : public FileWatchdog
 {
-    public:
-        XMLWatchdog(const File& filename) : FileWatchdog(filename)
-        {
-        }
-
-        /**
-        Call DOMConfigurator#doConfigure with the
-        <code>filename</code> to reconfigure log4cxx.
-        */
-        void doOnChange()
-        {
-            DOMConfigurator().doConfigure(file,
-                                          LogManager::getLoggerRepository());
-        }
+	public:
+		XMLWatchdog(const File& filename) : FileWatchdog(filename)
+		{
+		}
+
+		/**
+		Call DOMConfigurator#doConfigure with the
+		<code>filename</code> to reconfigure log4cxx.
+		*/
+		void doOnChange()
+		{
+			DOMConfigurator().doConfigure(file,
+				LogManager::getLoggerRepository());
+		}
 };
 }
 }
@@ -116,579 +116,579 @@ IMPLEMENT_LOG4CXX_OBJECT(DOMConfigurator)
 #define INTERNAL_DEBUG_ATTR "debug"
 
 DOMConfigurator::DOMConfigurator()
-    : props(), repository()
+	: props(), repository()
 {
 }
 
 void DOMConfigurator::addRef() const
 {
-    ObjectImpl::addRef();
+	ObjectImpl::addRef();
 }
 
 void DOMConfigurator::releaseRef() const
 {
-    ObjectImpl::releaseRef();
+	ObjectImpl::releaseRef();
 }
 
 /**
 Used internally to parse appenders by IDREF name.
 */
 AppenderPtr DOMConfigurator::findAppenderByName(log4cxx::helpers::Pool& p,
-        log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-        apr_xml_elem* element,
-        apr_xml_doc* doc,
-        const LogString& appenderName,
-        AppenderMap& appenders)
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* element,
+	apr_xml_doc* doc,
+	const LogString& appenderName,
+	AppenderMap& appenders)
 {
-    AppenderPtr appender;
-    std::string tagName(element->name);
-
-    if (tagName == APPENDER_TAG)
-    {
-        if (appenderName == getAttribute(utf8Decoder, element, NAME_ATTR))
-        {
-            appender = parseAppender(p, utf8Decoder, element, doc, appenders);
-        }
-    }
-
-    if (element->first_child && !appender)
-    {
-        appender = findAppenderByName(p, utf8Decoder, element->first_child, doc, appenderName, appenders);
-    }
-
-    if (element->next && !appender)
-    {
-        appender = findAppenderByName(p, utf8Decoder, element->next, doc, appenderName, appenders);
-    }
-
-    return appender;
+	AppenderPtr appender;
+	std::string tagName(element->name);
+
+	if (tagName == APPENDER_TAG)
+	{
+		if (appenderName == getAttribute(utf8Decoder, element, NAME_ATTR))
+		{
+			appender = parseAppender(p, utf8Decoder, element, doc, appenders);
+		}
+	}
+
+	if (element->first_child && !appender)
+	{
+		appender = findAppenderByName(p, utf8Decoder, element->first_child, doc, appenderName, appenders);
+	}
+
+	if (element->next && !appender)
+	{
+		appender = findAppenderByName(p, utf8Decoder, element->next, doc, appenderName, appenders);
+	}
+
+	return appender;
 }
 
 /**
  Used internally to parse appenders by IDREF element.
 */
 AppenderPtr DOMConfigurator::findAppenderByReference(
-    log4cxx::helpers::Pool& p,
-    log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-    apr_xml_elem* appenderRef,
-    apr_xml_doc* doc,
-    AppenderMap& appenders)
+	log4cxx::helpers::Pool& p,
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* appenderRef,
+	apr_xml_doc* doc,
+	AppenderMap& appenders)
 {
-    LogString appenderName(subst(getAttribute(utf8Decoder, appenderRef, REF_ATTR)));
-    AppenderMap::const_iterator match = appenders.find(appenderName);
-    AppenderPtr appender;
-
-    if (match != appenders.end())
-    {
-        appender = match->second;
-    }
-    else if (doc)
-    {
-        appender = findAppenderByName(p, utf8Decoder, doc->root, doc, appenderName, appenders);
-
-        if (appender)
-        {
-            appenders.insert(AppenderMap::value_type(appenderName, appender));
-        }
-    }
-
-    if (!appender)
-    {
-        LogLog::error(LOG4CXX_STR("No appender named [") +
-                      appenderName + LOG4CXX_STR("] could be found."));
-    }
-
-    return appender;
+	LogString appenderName(subst(getAttribute(utf8Decoder, appenderRef, REF_ATTR)));
+	AppenderMap::const_iterator match = appenders.find(appenderName);
+	AppenderPtr appender;
+
+	if (match != appenders.end())
+	{
+		appender = match->second;
+	}
+	else if (doc)
+	{
+		appender = findAppenderByName(p, utf8Decoder, doc->root, doc, appenderName, appenders);
+
+		if (appender)
+		{
+			appenders.insert(AppenderMap::value_type(appenderName, appender));
+		}
+	}
+
+	if (!appender)
+	{
+		LogLog::error(LOG4CXX_STR("No appender named [") +
+			appenderName + LOG4CXX_STR("] could be found."));
+	}
+
+	return appender;
 }
 
 /**
 Used internally to parse an appender element.
 */
 AppenderPtr DOMConfigurator::parseAppender(Pool& p,
-        log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-        apr_xml_elem* appenderElement,
-        apr_xml_doc* doc,
-        AppenderMap& appenders)
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* appenderElement,
+	apr_xml_doc* doc,
+	AppenderMap& appenders)
 {
 
-    LogString className(subst(getAttribute(utf8Decoder, appenderElement, CLASS_ATTR)));
-    LogLog::debug(LOG4CXX_STR("Class name: [") + className + LOG4CXX_STR("]"));
-
-    try
-    {
-        ObjectPtr instance = Loader::loadClass(className).newInstance();
-        AppenderPtr appender = instance;
-        PropertySetter propSetter(appender);
-
-        appender->setName(subst(getAttribute(utf8Decoder, appenderElement, NAME_ATTR)));
-
-        for (apr_xml_elem* currentElement = appenderElement->first_child;
-                currentElement;
-                currentElement = currentElement->next)
-        {
-
-            std::string tagName(currentElement->name);
-
-            // Parse appender parameters
-            if (tagName == PARAM_TAG)
-            {
-                setParameter(p, utf8Decoder, currentElement, propSetter);
-            }
-            // Set appender layout
-            else if (tagName == LAYOUT_TAG)
-            {
-                appender->setLayout(parseLayout(p, utf8Decoder, currentElement));
-            }
-            // Add filters
-            else if (tagName == FILTER_TAG)
-            {
-                std::vector<log4cxx::spi::FilterPtr> filters;
-                parseFilters(p, utf8Decoder, currentElement, filters);
-
-                for (std::vector<log4cxx::spi::FilterPtr>::iterator iter = filters.begin();
-                        iter != filters.end();
-                        iter++)
-                {
-                    appender->addFilter(*iter);
-                }
-            }
-            else if (tagName == ERROR_HANDLER_TAG)
-            {
-                parseErrorHandler(p, utf8Decoder, currentElement, appender, doc, appenders);
-            }
-            else if (tagName == ROLLING_POLICY_TAG)
-            {
-                RollingPolicyPtr rollPolicy(parseRollingPolicy(p, utf8Decoder, currentElement));
-                RollingFileAppenderPtr rfa(appender);
-
-                if (rfa != NULL)
-                {
-                    rfa->setRollingPolicy(rollPolicy);
-                }
-            }
-            else if (tagName == TRIGGERING_POLICY_TAG)
-            {
-                ObjectPtr policy(parseTriggeringPolicy(p, utf8Decoder, currentElement));
-                RollingFileAppenderPtr rfa(appender);
-
-                if (rfa != NULL)
-                {
-                    rfa->setTriggeringPolicy(policy);
-                }
-                else
-                {
-                    log4cxx::net::SMTPAppenderPtr smtpa(appender);
-
-                    if (smtpa != NULL)
-                    {
-                        log4cxx::spi::TriggeringEventEvaluatorPtr evaluator(policy);
-                        smtpa->setEvaluator(evaluator);
-                    }
-                }
-            }
-            else if (tagName == APPENDER_REF_TAG)
-            {
-                LogString refName = subst(getAttribute(utf8Decoder, currentElement, REF_ATTR));
-
-                if (appender->instanceof(AppenderAttachable::getStaticClass()))
-                {
-                    AppenderAttachablePtr aa(appender);
-                    LogLog::debug(LOG4CXX_STR("Attaching appender named [") +
-                                  refName + LOG4CXX_STR("] to appender named [") +
-                                  appender->getName() + LOG4CXX_STR("]."));
-                    aa->addAppender(findAppenderByReference(p, utf8Decoder, currentElement, doc, appenders));
-                }
-                else
-                {
-                    LogLog::error(LOG4CXX_STR("Requesting attachment of appender named [") +
-                                  refName + LOG4CXX_STR("] to appender named [") + appender->getName() +
-                                  LOG4CXX_STR("] which does not implement AppenderAttachable."));
-                }
-            }
-        }
-
-        propSetter.activate(p);
-        return appender;
-    }
-    /* Yes, it's ugly.  But all of these exceptions point to the same
-        problem: we can't create an Appender */
-    catch (Exception& oops)
-    {
-        LogLog::error(LOG4CXX_STR("Could not create an Appender. Reported error follows."),
-                      oops);
-        return 0;
-    }
+	LogString className(subst(getAttribute(utf8Decoder, appenderElement, CLASS_ATTR)));
+	LogLog::debug(LOG4CXX_STR("Class name: [") + className + LOG4CXX_STR("]"));
+
+	try
+	{
+		ObjectPtr instance = Loader::loadClass(className).newInstance();
+		AppenderPtr appender = instance;
+		PropertySetter propSetter(appender);
+
+		appender->setName(subst(getAttribute(utf8Decoder, appenderElement, NAME_ATTR)));
+
+		for (apr_xml_elem* currentElement = appenderElement->first_child;
+			currentElement;
+			currentElement = currentElement->next)
+		{
+
+			std::string tagName(currentElement->name);
+
+			// Parse appender parameters
+			if (tagName == PARAM_TAG)
+			{
+				setParameter(p, utf8Decoder, currentElement, propSetter);
+			}
+			// Set appender layout
+			else if (tagName == LAYOUT_TAG)
+			{
+				appender->setLayout(parseLayout(p, utf8Decoder, currentElement));
+			}
+			// Add filters
+			else if (tagName == FILTER_TAG)
+			{
+				std::vector<log4cxx::spi::FilterPtr> filters;
+				parseFilters(p, utf8Decoder, currentElement, filters);
+
+				for (std::vector<log4cxx::spi::FilterPtr>::iterator iter = filters.begin();
+					iter != filters.end();
+					iter++)
+				{
+					appender->addFilter(*iter);
+				}
+			}
+			else if (tagName == ERROR_HANDLER_TAG)
+			{
+				parseErrorHandler(p, utf8Decoder, currentElement, appender, doc, appenders);
+			}
+			else if (tagName == ROLLING_POLICY_TAG)
+			{
+				RollingPolicyPtr rollPolicy(parseRollingPolicy(p, utf8Decoder, currentElement));
+				RollingFileAppenderPtr rfa(appender);
+
+				if (rfa != NULL)
+				{
+					rfa->setRollingPolicy(rollPolicy);
+				}
+			}
+			else if (tagName == TRIGGERING_POLICY_TAG)
+			{
+				ObjectPtr policy(parseTriggeringPolicy(p, utf8Decoder, currentElement));
+				RollingFileAppenderPtr rfa(appender);
+
+				if (rfa != NULL)
+				{
+					rfa->setTriggeringPolicy(policy);
+				}
+				else
+				{
+					log4cxx::net::SMTPAppenderPtr smtpa(appender);
+
+					if (smtpa != NULL)
+					{
+						log4cxx::spi::TriggeringEventEvaluatorPtr evaluator(policy);
+						smtpa->setEvaluator(evaluator);
+					}
+				}
+			}
+			else if (tagName == APPENDER_REF_TAG)
+			{
+				LogString refName = subst(getAttribute(utf8Decoder, currentElement, REF_ATTR));
+
+				if (appender->instanceof(AppenderAttachable::getStaticClass()))
+				{
+					AppenderAttachablePtr aa(appender);
+					LogLog::debug(LOG4CXX_STR("Attaching appender named [") +
+						refName + LOG4CXX_STR("] to appender named [") +
+						appender->getName() + LOG4CXX_STR("]."));
+					aa->addAppender(findAppenderByReference(p, utf8Decoder, currentElement, doc, appenders));
+				}
+				else
+				{
+					LogLog::error(LOG4CXX_STR("Requesting attachment of appender named [") +
+						refName + LOG4CXX_STR("] to appender named [") + appender->getName() +
+						LOG4CXX_STR("] which does not implement AppenderAttachable."));
+				}
+			}
+		}
+
+		propSetter.activate(p);
+		return appender;
+	}
+	/* Yes, it's ugly.  But all of these exceptions point to the same
+	    problem: we can't create an Appender */
+	catch (Exception& oops)
+	{
+		LogLog::error(LOG4CXX_STR("Could not create an Appender. Reported error follows."),
+			oops);
+		return 0;
+	}
 }
 
 /**
 Used internally to parse an {@link ErrorHandler} element.
 */
 void DOMConfigurator::parseErrorHandler(Pool& p,
-                                        log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-                                        apr_xml_elem* element,
-                                        AppenderPtr& appender,
-                                        apr_xml_doc* doc,
-                                        AppenderMap& appenders)
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* element,
+	AppenderPtr& appender,
+	apr_xml_doc* doc,
+	AppenderMap& appenders)
 {
 
-    ErrorHandlerPtr eh = OptionConverter::instantiateByClassName(
-                             subst(getAttribute(utf8Decoder, element, CLASS_ATTR)),
-                             ErrorHandler::getStaticClass(),
-                             0);
-
-    if (eh != 0)
-    {
-        eh->setAppender(appender);
-
-        PropertySetter propSetter(eh);
-
-        for (apr_xml_elem* currentElement = element->first_child;
-                currentElement;
-                currentElement = currentElement->next)
-        {
-            std::string tagName(currentElement->name);
-
-            if (tagName == PARAM_TAG)
-            {
-                setParameter(p, utf8Decoder, currentElement, propSetter);
-            }
-            else if (tagName == APPENDER_REF_TAG)
-            {
-                eh->setBackupAppender(findAppenderByReference(p, utf8Decoder, currentElement, doc, appenders));
-            }
-            else if (tagName == LOGGER_REF)
-            {
-                LogString loggerName(getAttribute(utf8Decoder, currentElement, REF_ATTR));
-                LoggerPtr logger = repository->getLogger(loggerName, loggerFactory);
-                eh->setLogger(logger);
-            }
-            else if (tagName == ROOT_REF)
-            {
-                LoggerPtr root = repository->getRootLogger();
-                eh->setLogger(root);
-            }
-        }
-
-        propSetter.activate(p);
-        ObjectPtrT<AppenderSkeleton> appSkeleton(appender);
-
-        if (appSkeleton != 0)
-        {
-            appSkeleton->setErrorHandler(eh);
-        }
-    }
+	ErrorHandlerPtr eh = OptionConverter::instantiateByClassName(
+			subst(getAttribute(utf8Decoder, element, CLASS_ATTR)),
+			ErrorHandler::getStaticClass(),
+			0);
+
+	if (eh != 0)
+	{
+		eh->setAppender(appender);
+
+		PropertySetter propSetter(eh);
+
+		for (apr_xml_elem* currentElement = element->first_child;
+			currentElement;
+			currentElement = currentElement->next)
+		{
+			std::string tagName(currentElement->name);
+
+			if (tagName == PARAM_TAG)
+			{
+				setParameter(p, utf8Decoder, currentElement, propSetter);
+			}
+			else if (tagName == APPENDER_REF_TAG)
+			{
+				eh->setBackupAppender(findAppenderByReference(p, utf8Decoder, currentElement, doc, appenders));
+			}
+			else if (tagName == LOGGER_REF)
+			{
+				LogString loggerName(getAttribute(utf8Decoder, currentElement, REF_ATTR));
+				LoggerPtr logger = repository->getLogger(loggerName, loggerFactory);
+				eh->setLogger(logger);
+			}
+			else if (tagName == ROOT_REF)
+			{
+				LoggerPtr root = repository->getRootLogger();
+				eh->setLogger(root);
+			}
+		}
+
+		propSetter.activate(p);
+		ObjectPtrT<AppenderSkeleton> appSkeleton(appender);
+
+		if (appSkeleton != 0)
+		{
+			appSkeleton->setErrorHandler(eh);
+		}
+	}
 }
 
 /**
  Used internally to parse a filter element.
 */
 void DOMConfigurator::parseFilters(Pool& p,
-                                   log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-                                   apr_xml_elem* element,
-                                   std::vector<log4cxx::spi::FilterPtr>& filters)
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* element,
+	std::vector<log4cxx::spi::FilterPtr>& filters)
 {
-    LogString clazz = subst(getAttribute(utf8Decoder, element, CLASS_ATTR));
-    FilterPtr filter = OptionConverter::instantiateByClassName(clazz,
-                       Filter::getStaticClass(), 0);
-
-    if (filter != 0)
-    {
-        PropertySetter propSetter(filter);
-
-        for (apr_xml_elem* currentElement = element->first_child;
-                currentElement;
-                currentElement = currentElement->next)
-        {
-            std::string tagName(currentElement->name);
-
-            if (tagName == PARAM_TAG)
-            {
-                setParameter(p, utf8Decoder, currentElement, propSetter);
-            }
-        }
-
-        propSetter.activate(p);
-        filters.push_back(filter);
-    }
+	LogString clazz = subst(getAttribute(utf8Decoder, element, CLASS_ATTR));
+	FilterPtr filter = OptionConverter::instantiateByClassName(clazz,
+			Filter::getStaticClass(), 0);
+
+	if (filter != 0)
+	{
+		PropertySetter propSetter(filter);
+
+		for (apr_xml_elem* currentElement = element->first_child;
+			currentElement;
+			currentElement = currentElement->next)
+		{
+			std::string tagName(currentElement->name);
+
+			if (tagName == PARAM_TAG)
+			{
+				setParameter(p, utf8Decoder, currentElement, propSetter);
+			}
+		}
+
+		propSetter.activate(p);
+		filters.push_back(filter);
+	}
 }
 
 /**
 Used internally to parse an category or logger element.
 */
 void DOMConfigurator::parseLogger(
-    log4cxx::helpers::Pool& p,
-    log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-    apr_xml_elem* loggerElement,
-    apr_xml_doc* doc,
-    AppenderMap& appenders)
+	log4cxx::helpers::Pool& p,
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* loggerElement,
+	apr_xml_doc* doc,
+	AppenderMap& appenders)
 {
-    // Create a new Logger object from the <category> element.
-    LogString loggerName = subst(getAttribute(utf8Decoder, loggerElement, NAME_ATTR));
-
-    LogLog::debug(LOG4CXX_STR("Retreiving an instance of Logger."));
-    LoggerPtr logger = repository->getLogger(loggerName, loggerFactory);
-
-    // Setting up a logger needs to be an atomic operation, in order
-    // to protect potential log operations while logger
-    // configuration is in progress.
-    LOCK_W sync(logger->getMutex());
-    bool additivity = OptionConverter::toBoolean(
-                          subst(getAttribute(utf8Decoder, loggerElement, ADDITIVITY_ATTR)),
-                          true);
-
-    LogLog::debug(LOG4CXX_STR("Setting [") + logger->getName() + LOG4CXX_STR("] additivity to [") +
-                  (additivity ? LogString(LOG4CXX_STR("true")) : LogString(LOG4CXX_STR("false"))) + LOG4CXX_STR("]."));
-    logger->setAdditivity(additivity);
-    parseChildrenOfLoggerElement(p, utf8Decoder, loggerElement, logger, false, doc, appenders);
+	// Create a new Logger object from the <category> element.
+	LogString loggerName = subst(getAttribute(utf8Decoder, loggerElement, NAME_ATTR));
+
+	LogLog::debug(LOG4CXX_STR("Retreiving an instance of Logger."));
+	LoggerPtr logger = repository->getLogger(loggerName, loggerFactory);
+
+	// Setting up a logger needs to be an atomic operation, in order
+	// to protect potential log operations while logger
+	// configuration is in progress.
+	LOCK_W sync(logger->getMutex());
+	bool additivity = OptionConverter::toBoolean(
+			subst(getAttribute(utf8Decoder, loggerElement, ADDITIVITY_ATTR)),
+			true);
+
+	LogLog::debug(LOG4CXX_STR("Setting [") + logger->getName() + LOG4CXX_STR("] additivity to [") +
+		(additivity ? LogString(LOG4CXX_STR("true")) : LogString(LOG4CXX_STR("false"))) + LOG4CXX_STR("]."));
+	logger->setAdditivity(additivity);
+	parseChildrenOfLoggerElement(p, utf8Decoder, loggerElement, logger, false, doc, appenders);
 }
 
 /**
  Used internally to parse the logger factory element.
 */
 void DOMConfigurator::parseLoggerFactory(
-    log4cxx::helpers::Pool& p,
-    log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-    apr_xml_elem* factoryElement)
+	log4cxx::helpers::Pool& p,
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* factoryElement)
 {
-    LogString className(subst(getAttribute(utf8Decoder, factoryElement, CLASS_ATTR)));
-
-    if (className.empty())
-    {
-        LogLog::error(LOG4CXX_STR("Logger Factory tag class attribute not found."));
-        LogLog::debug(LOG4CXX_STR("No Logger Factory configured."));
-    }
-    else
-    {
-        LogLog::debug(LOG4CXX_STR("Desired logger factory: [") + className + LOG4CXX_STR("]"));
-        loggerFactory = OptionConverter::instantiateByClassName(
-                            className,
-                            LoggerFactory::getStaticClass(),
-                            0);
-        PropertySetter propSetter(loggerFactory);
-
-        for (apr_xml_elem* currentElement = factoryElement->first_child;
-                currentElement;
-                currentElement = currentElement->next)
-        {
-            std::string tagName(currentElement->name);
-
-            if (tagName == PARAM_TAG)
-            {
-                setParameter(p, utf8Decoder, currentElement, propSetter);
-            }
-        }
-    }
+	LogString className(subst(getAttribute(utf8Decoder, factoryElement, CLASS_ATTR)));
+
+	if (className.empty())
+	{
+		LogLog::error(LOG4CXX_STR("Logger Factory tag class attribute not found."));
+		LogLog::debug(LOG4CXX_STR("No Logger Factory configured."));
+	}
+	else
+	{
+		LogLog::debug(LOG4CXX_STR("Desired logger factory: [") + className + LOG4CXX_STR("]"));
+		loggerFactory = OptionConverter::instantiateByClassName(
+				className,
+				LoggerFactory::getStaticClass(),
+				0);
+		PropertySetter propSetter(loggerFactory);
+
+		for (apr_xml_elem* currentElement = factoryElement->first_child;
+			currentElement;
+			currentElement = currentElement->next)
+		{
+			std::string tagName(currentElement->name);
+
+			if (tagName == PARAM_TAG)
+			{
+				setParameter(p, utf8Decoder, currentElement, propSetter);
+			}
+		}
+	}
 }
 
 /**
  Used internally to parse the root logger element.
 */
 void DOMConfigurator::parseRoot(
-    log4cxx::helpers::Pool& p,
-    log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-    apr_xml_elem* rootElement,
-    apr_xml_doc* doc,
-    AppenderMap& appenders)
+	log4cxx::helpers::Pool& p,
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* rootElement,
+	apr_xml_doc* doc,
+	AppenderMap& appenders)
 {
-    LoggerPtr root = repository->getRootLogger();
-    // logger configuration needs to be atomic
-    LOCK_W sync(root->getMutex());
-    parseChildrenOfLoggerElement(p, utf8Decoder, rootElement, root, true, doc, appenders);
+	LoggerPtr root = repository->getRootLogger();
+	// logger configuration needs to be atomic
+	LOCK_W sync(root->getMutex());
+	parseChildrenOfLoggerElement(p, utf8Decoder, rootElement, root, true, doc, appenders);
 }
 
 /**
  Used internally to parse the children of a logger element.
 */
 void DOMConfigurator::parseChildrenOfLoggerElement(
-    log4cxx::helpers::Pool& p,
-    log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-    apr_xml_elem* loggerElement, LoggerPtr logger, bool isRoot,
-    apr_xml_doc* doc,
-    AppenderMap& appenders)
+	log4cxx::helpers::Pool& p,
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* loggerElement, LoggerPtr logger, bool isRoot,
+	apr_xml_doc* doc,
+	AppenderMap& appenders)
 {
 
-    PropertySetter propSetter(logger);
-
-    // Remove all existing appenders from logger. They will be
-    // reconstructed if need be.
-    logger->removeAllAppenders();
-
-
-    for (apr_xml_elem* currentElement = loggerElement->first_child;
-            currentElement;
-            currentElement = currentElement->next)
-    {
-        std::string tagName(currentElement->name);
-
-        if (tagName == APPENDER_REF_TAG)
-        {
-            AppenderPtr appender = findAppenderByReference(p, utf8Decoder, currentElement, doc, appenders);
-            LogString refName =  subst(getAttribute(utf8Decoder, currentElement, REF_ATTR));
-
-            if (appender != 0)
-            {
-                LogLog::debug(LOG4CXX_STR("Adding appender named [") + refName +
-                              LOG4CXX_STR("] to logger [") + logger->getName() + LOG4CXX_STR("]."));
-            }
-            else
-            {
-                LogLog::debug(LOG4CXX_STR("Appender named [") + refName +
-                              LOG4CXX_STR("] not found."));
-            }
-
-            logger->addAppender(appender);
-
-        }
-        else if (tagName == LEVEL_TAG)
-        {
-            parseLevel(p, utf8Decoder, currentElement, logger, isRoot);
-        }
-        else if (tagName == PRIORITY_TAG)
-        {
-            parseLevel(p, utf8Decoder, currentElement, logger, isRoot);
-        }
-        else if (tagName == PARAM_TAG)
-        {
-            setParameter(p, utf8Decoder, currentElement, propSetter);
-        }
-    }
-
-    propSetter.activate(p);
+	PropertySetter propSetter(logger);
+
+	// Remove all existing appenders from logger. They will be
+	// reconstructed if need be.
+	logger->removeAllAppenders();
+
+
+	for (apr_xml_elem* currentElement = loggerElement->first_child;
+		currentElement;
+		currentElement = currentElement->next)
+	{
+		std::string tagName(currentElement->name);
+
+		if (tagName == APPENDER_REF_TAG)
+		{
+			AppenderPtr appender = findAppenderByReference(p, utf8Decoder, currentElement, doc, appenders);
+			LogString refName =  subst(getAttribute(utf8Decoder, currentElement, REF_ATTR));
+
+			if (appender != 0)
+			{
+				LogLog::debug(LOG4CXX_STR("Adding appender named [") + refName +
+					LOG4CXX_STR("] to logger [") + logger->getName() + LOG4CXX_STR("]."));
+			}
+			else
+			{
+				LogLog::debug(LOG4CXX_STR("Appender named [") + refName +
+					LOG4CXX_STR("] not found."));
+			}
+
+			logger->addAppender(appender);
+
+		}
+		else if (tagName == LEVEL_TAG)
+		{
+			parseLevel(p, utf8Decoder, currentElement, logger, isRoot);
+		}
+		else if (tagName == PRIORITY_TAG)
+		{
+			parseLevel(p, utf8Decoder, currentElement, logger, isRoot);
+		}
+		else if (tagName == PARAM_TAG)
+		{
+			setParameter(p, utf8Decoder, currentElement, propSetter);
+		}
+	}
+
+	propSetter.activate(p);
 }
 
 /**
  Used internally to parse a layout element.
 */
 LayoutPtr DOMConfigurator::parseLayout (
-    log4cxx::helpers::Pool& p,
-    log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-    apr_xml_elem* layout_element)
+	log4cxx::helpers::Pool& p,
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* layout_element)
 {
-    LogString className(subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR)));
-    LogLog::debug(LOG4CXX_STR("Parsing layout of class: \"") + className + LOG4CXX_STR("\""));
-
-    try
-    {
-        ObjectPtr instance = Loader::loadClass(className).newInstance();
-        LayoutPtr layout = instance;
-        PropertySetter propSetter(layout);
-
-        for (apr_xml_elem* currentElement = layout_element->first_child;
-                currentElement;
-                currentElement = currentElement->next)
-        {
-            std::string tagName(currentElement->name);
-
-            if (tagName == PARAM_TAG)
-            {
-                setParameter(p, utf8Decoder, currentElement, propSetter);
-            }
-        }
-
-        propSetter.activate(p);
-        return layout;
-    }
-    catch (Exception& oops)
-    {
-        LogLog::error(LOG4CXX_STR("Could not create the Layout. Reported error follows."),
-                      oops);
-        return 0;
-    }
+	LogString className(subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR)));
+	LogLog::debug(LOG4CXX_STR("Parsing layout of class: \"") + className + LOG4CXX_STR("\""));
+
+	try
+	{
+		ObjectPtr instance = Loader::loadClass(className).newInstance();
+		LayoutPtr layout = instance;
+		PropertySetter propSetter(layout);
+
+		for (apr_xml_elem* currentElement = layout_element->first_child;
+			currentElement;
+			currentElement = currentElement->next)
+		{
+			std::string tagName(currentElement->name);
+
+			if (tagName == PARAM_TAG)
+			{
+				setParameter(p, utf8Decoder, currentElement, propSetter);
+			}
+		}
+
+		propSetter.activate(p);
+		return layout;
+	}
+	catch (Exception& oops)
+	{
+		LogLog::error(LOG4CXX_STR("Could not create the Layout. Reported error follows."),
+			oops);
+		return 0;
+	}
 }
 
 /**
  Used internally to parse a triggering policy
 */
 ObjectPtr DOMConfigurator::parseTriggeringPolicy (
-    log4cxx::helpers::Pool& p,
-    log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-    apr_xml_elem* layout_element)
+	log4cxx::helpers::Pool& p,
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* layout_element)
 {
-    LogString className = subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR));
-    LogLog::debug(LOG4CXX_STR("Parsing triggering policy of class: \"") + className + LOG4CXX_STR("\""));
-
-    try
-    {
-        ObjectPtr instance = Loader::loadClass(className).newInstance();
-        PropertySetter propSetter(instance);
-
-        for (apr_xml_elem* currentElement = layout_element->first_child;
-                currentElement;
-                currentElement = currentElement->next)
-        {
-            std::string tagName(currentElement->name);
-
-            if (tagName == PARAM_TAG)
-            {
-                setParameter(p, utf8Decoder, currentElement, propSetter);
-            }
-            else if (tagName == FILTER_TAG)
-            {
-                std::vector<log4cxx::spi::FilterPtr> filters;
-                parseFilters(p, utf8Decoder, currentElement, filters);
-                FilterBasedTriggeringPolicyPtr fbtp(instance);
-
-                if (fbtp != NULL)
-                {
-                    for (std::vector<log4cxx::spi::FilterPtr>::iterator iter = filters.begin();
-                            iter != filters.end();
-                            iter++)
-                    {
-                        fbtp->addFilter(*iter);
-                    }
-                }
-            }
-        }
-
-        propSetter.activate(p);
-        return instance;
-    }
-    catch (Exception& oops)
-    {
-        LogLog::error(LOG4CXX_STR("Could not create the TriggeringPolicy. Reported error follows."),
-                      oops);
-        return 0;
-    }
+	LogString className = subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR));
+	LogLog::debug(LOG4CXX_STR("Parsing triggering policy of class: \"") + className + LOG4CXX_STR("\""));
+
+	try
+	{
+		ObjectPtr instance = Loader::loadClass(className).newInstance();
+		PropertySetter propSetter(instance);
+
+		for (apr_xml_elem* currentElement = layout_element->first_child;
+			currentElement;
+			currentElement = currentElement->next)
+		{
+			std::string tagName(currentElement->name);
+
+			if (tagName == PARAM_TAG)
+			{
+				setParameter(p, utf8Decoder, currentElement, propSetter);
+			}
+			else if (tagName == FILTER_TAG)
+			{
+				std::vector<log4cxx::spi::FilterPtr> filters;
+				parseFilters(p, utf8Decoder, currentElement, filters);
+				FilterBasedTriggeringPolicyPtr fbtp(instance);
+
+				if (fbtp != NULL)
+				{
+					for (std::vector<log4cxx::spi::FilterPtr>::iterator iter = filters.begin();
+						iter != filters.end();
+						iter++)
+					{
+						fbtp->addFilter(*iter);
+					}
+				}
+			}
+		}
+
+		propSetter.activate(p);
+		return instance;
+	}
+	catch (Exception& oops)
+	{
+		LogLog::error(LOG4CXX_STR("Could not create the TriggeringPolicy. Reported error follows."),
+			oops);
+		return 0;
+	}
 }
 
 /**
  Used internally to parse a triggering policy
 */
 RollingPolicyPtr DOMConfigurator::parseRollingPolicy (
-    log4cxx::helpers::Pool& p,
-    log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-    apr_xml_elem* layout_element)
+	log4cxx::helpers::Pool& p,
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* layout_element)
 {
-    LogString className = subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR));
-    LogLog::debug(LOG4CXX_STR("Parsing rolling policy of class: \"") + className + LOG4CXX_STR("\""));
-
-    try
-    {
-        ObjectPtr instance = Loader::loadClass(className).newInstance();
-        RollingPolicyPtr layout = instance;
-        PropertySetter propSetter(layout);
-
-        for (apr_xml_elem* currentElement = layout_element->first_child;
-                currentElement;
-                currentElement = currentElement->next)
-        {
-            std::string tagName(currentElement->name);
-
-            if (tagName == PARAM_TAG)
-            {
-                setParameter(p, utf8Decoder, currentElement, propSetter);
-            }
-        }
-
-        propSetter.activate(p);
-        return layout;
-    }
-    catch (Exception& oops)
-    {
-        LogLog::error(LOG4CXX_STR("Could not create the RollingPolicy. Reported error follows."),
-                      oops);
-        return 0;
-    }
+	LogString className = subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR));
+	LogLog::debug(LOG4CXX_STR("Parsing rolling policy of class: \"") + className + LOG4CXX_STR("\""));
+
+	try
+	{
+		ObjectPtr instance = Loader::loadClass(className).newInstance();
+		RollingPolicyPtr layout = instance;
+		PropertySetter propSetter(layout);
+
+		for (apr_xml_elem* currentElement = layout_element->first_child;
+			currentElement;
+			currentElement = currentElement->next)
+		{
+			std::string tagName(currentElement->name);
+
+			if (tagName == PARAM_TAG)
+			{
+				setParameter(p, utf8Decoder, currentElement, propSetter);
+			}
+		}
+
+		propSetter.activate(p);
+		return layout;
+	}
+	catch (Exception& oops)
+	{
+		LogLog::error(LOG4CXX_STR("Could not create the RollingPolicy. Reported error follows."),
+			oops);
+		return 0;
+	}
 }
 
 
@@ -697,238 +697,238 @@ RollingPolicyPtr DOMConfigurator::parseRollingPolicy (
  Used internally to parse a level  element.
 */
 void DOMConfigurator::parseLevel(
-    log4cxx::helpers::Pool& p,
-    log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-    apr_xml_elem* element, LoggerPtr logger, bool isRoot)
+	log4cxx::helpers::Pool& p,
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* element, LoggerPtr logger, bool isRoot)
 {
-    LogString loggerName = logger->getName();
-
-    if (isRoot)
-    {
-        loggerName = LOG4CXX_STR("root");
-    }
-
-    LogString levelStr(subst(getAttribute(utf8Decoder, element, VALUE_ATTR)));
-    LogLog::debug(LOG4CXX_STR("Level value for ") + loggerName + LOG4CXX_STR(" is [") + levelStr + LOG4CXX_STR("]."));
-
-    if (StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("INHERITED"), LOG4CXX_STR("inherited"))
-            || StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("NULL"), LOG4CXX_STR("null")))
-    {
-        if (isRoot)
-        {
-            LogLog::error(LOG4CXX_STR("Root level cannot be inherited. Ignoring directive."));
-        }
-        else
-        {
-            logger->setLevel(0);
-        }
-    }
-    else
-    {
-        LogString className(subst(getAttribute(utf8Decoder, element, CLASS_ATTR)));
-
-        if (className.empty())
-        {
-            logger->setLevel(OptionConverter::toLevel(levelStr, Level::getDebug()));
-        }
-        else
-        {
-            LogLog::debug(LOG4CXX_STR("Desired Level sub-class: [") + className + LOG4CXX_STR("]"));
-
-            try
-            {
-                Level::LevelClass& levelClass =
-                    (Level::LevelClass&)Loader::loadClass(className);
-                LevelPtr level = levelClass.toLevel(levelStr);
-                logger->setLevel(level);
-            }
-            catch (Exception& oops)
-            {
-                LogLog::error(
-                    LOG4CXX_STR("Could not create level [") + levelStr +
-                    LOG4CXX_STR("]. Reported error follows."),
-                    oops);
-
-                return;
-            }
-            catch (...)
-            {
-                LogLog::error(
-                    LOG4CXX_STR("Could not create level [") + levelStr);
-
-                return;
-            }
-        }
-    }
-
-    LogLog::debug(loggerName + LOG4CXX_STR(" level set to ") +
-                  logger->getEffectiveLevel()->toString());
+	LogString loggerName = logger->getName();
+
+	if (isRoot)
+	{
+		loggerName = LOG4CXX_STR("root");
+	}
+
+	LogString levelStr(subst(getAttribute(utf8Decoder, element, VALUE_ATTR)));
+	LogLog::debug(LOG4CXX_STR("Level value for ") + loggerName + LOG4CXX_STR(" is [") + levelStr + LOG4CXX_STR("]."));
+
+	if (StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("INHERITED"), LOG4CXX_STR("inherited"))
+		|| StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("NULL"), LOG4CXX_STR("null")))
+	{
+		if (isRoot)
+		{
+			LogLog::error(LOG4CXX_STR("Root level cannot be inherited. Ignoring directive."));
+		}
+		else
+		{
+			logger->setLevel(0);
+		}
+	}
+	else
+	{
+		LogString className(subst(getAttribute(utf8Decoder, element, CLASS_ATTR)));
+
+		if (className.empty())
+		{
+			logger->setLevel(OptionConverter::toLevel(levelStr, Level::getDebug()));
+		}
+		else
+		{
+			LogLog::debug(LOG4CXX_STR("Desired Level sub-class: [") + className + LOG4CXX_STR("]"));
+
+			try
+			{
+				Level::LevelClass& levelClass =
+					(Level::LevelClass&)Loader::loadClass(className);
+				LevelPtr level = levelClass.toLevel(levelStr);
+				logger->setLevel(level);
+			}
+			catch (Exception& oops)
+			{
+				LogLog::error(
+					LOG4CXX_STR("Could not create level [") + levelStr +
+					LOG4CXX_STR("]. Reported error follows."),
+					oops);
+
+				return;
+			}
+			catch (...)
+			{
+				LogLog::error(
+					LOG4CXX_STR("Could not create level [") + levelStr);
+
+				return;
+			}
+		}
+	}
+
+	LogLog::debug(loggerName + LOG4CXX_STR(" level set to ") +
+		logger->getEffectiveLevel()->toString());
 }
 
 void DOMConfigurator::setParameter(log4cxx::helpers::Pool& p,
-                                   log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-                                   apr_xml_elem* elem,
-                                   PropertySetter& propSetter)
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* elem,
+	PropertySetter& propSetter)
 {
-    LogString name(subst(getAttribute(utf8Decoder, elem, NAME_ATTR)));
-    LogString value(subst(getAttribute(utf8Decoder, elem, VALUE_ATTR)));
-    value = subst(value);
-    propSetter.setProperty(name, value, p);
+	LogString name(subst(getAttribute(utf8Decoder, elem, NAME_ATTR)));
+	LogString value(subst(getAttribute(utf8Decoder, elem, VALUE_ATTR)));
+	value = subst(value);
+	propSetter.setProperty(name, value, p);
 }
 
 void DOMConfigurator::doConfigure(const File& filename, spi::LoggerRepositoryPtr& repository1)
 {
-    repository1->setConfigured(true);
-    this->repository = repository1;
-    LogString msg(LOG4CXX_STR("DOMConfigurator configuring file "));
-    msg.append(filename.getPath());
-    msg.append(LOG4CXX_STR("..."));
-    LogLog::debug(msg);
-
-    loggerFactory = new DefaultLoggerFactory();
-
-    Pool p;
-    apr_file_t* fd;
-
-    log4cxx_status_t rv = filename.open(&fd, APR_READ, APR_OS_DEFAULT, p);
-
-    if (rv != APR_SUCCESS)
-    {
-        LogString msg2(LOG4CXX_STR("Could not open file ["));
-        msg2.append(filename.getPath());
-        msg2.append(LOG4CXX_STR("]."));
-        LogLog::error(msg2);
-    }
-    else
-    {
-        apr_xml_parser* parser = NULL;
-        apr_xml_doc* doc = NULL;
-        rv = apr_xml_parse_file(p.getAPRPool(), &parser, &doc, fd, 2000);
-
-        if (rv != APR_SUCCESS)
-        {
-            char errbuf[2000];
-            char errbufXML[2000];
-            LogString msg2(LOG4CXX_STR("Error parsing file ["));
-            msg2.append(filename.getPath());
-            msg2.append(LOG4CXX_STR("], "));
-            apr_strerror(rv, errbuf, sizeof(errbuf));
-            LOG4CXX_DECODE_CHAR(lerrbuf, std::string(errbuf));
-            msg2.append(lerrbuf);
-
-            if (parser)
-            {
-                apr_xml_parser_geterror(parser, errbufXML, sizeof(errbufXML));
-                LOG4CXX_DECODE_CHAR(lerrbufXML, std::string(errbufXML));
-                msg2.append(lerrbufXML);
-            }
-
-            LogLog::error(msg2);
-        }
-        else
-        {
-            AppenderMap appenders;
-            CharsetDecoderPtr utf8Decoder(CharsetDecoder::getUTF8Decoder());
-            parse(p, utf8Decoder, doc->root, doc, appenders);
-        }
-    }
+	repository1->setConfigured(true);
+	this->repository = repository1;
+	LogString msg(LOG4CXX_STR("DOMConfigurator configuring file "));
+	msg.append(filename.getPath());
+	msg.append(LOG4CXX_STR("..."));
+	LogLog::debug(msg);
+
+	loggerFactory = new DefaultLoggerFactory();
+
+	Pool p;
+	apr_file_t* fd;
+
+	log4cxx_status_t rv = filename.open(&fd, APR_READ, APR_OS_DEFAULT, p);
+
+	if (rv != APR_SUCCESS)
+	{
+		LogString msg2(LOG4CXX_STR("Could not open file ["));
+		msg2.append(filename.getPath());
+		msg2.append(LOG4CXX_STR("]."));
+		LogLog::error(msg2);
+	}
+	else
+	{
+		apr_xml_parser* parser = NULL;
+		apr_xml_doc* doc = NULL;
+		rv = apr_xml_parse_file(p.getAPRPool(), &parser, &doc, fd, 2000);
+
+		if (rv != APR_SUCCESS)
+		{
+			char errbuf[2000];
+			char errbufXML[2000];
+			LogString msg2(LOG4CXX_STR("Error parsing file ["));
+			msg2.append(filename.getPath());
+			msg2.append(LOG4CXX_STR("], "));
+			apr_strerror(rv, errbuf, sizeof(errbuf));
+			LOG4CXX_DECODE_CHAR(lerrbuf, std::string(errbuf));
+			msg2.append(lerrbuf);
+
+			if (parser)
+			{
+				apr_xml_parser_geterror(parser, errbufXML, sizeof(errbufXML));
+				LOG4CXX_DECODE_CHAR(lerrbufXML, std::string(errbufXML));
+				msg2.append(lerrbufXML);
+			}
+
+			LogLog::error(msg2);
+		}
+		else
+		{
+			AppenderMap appenders;
+			CharsetDecoderPtr utf8Decoder(CharsetDecoder::getUTF8Decoder());
+			parse(p, utf8Decoder, doc->root, doc, appenders);
+		}
+	}
 }
 
 void DOMConfigurator::configure(const std::string& filename)
 {
-    File file(filename);
-    DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+	File file(filename);
+	DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
 }
 
 #if LOG4CXX_WCHAR_T_API
 void DOMConfigurator::configure(const std::wstring& filename)
 {
-    File file(filename);
-    DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+	File file(filename);
+	DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
 }
 #endif
 
 #if LOG4CXX_UNICHAR_API
 void DOMConfigurator::configure(const std::basic_string<UniChar>& filename)
 {
-    File file(filename);
-    DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+	File file(filename);
+	DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
 }
 #endif
 
 #if LOG4CXX_CFSTRING_API
 void DOMConfigurator::configure(const CFStringRef& filename)
 {
-    File file(filename);
-    DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+	File file(filename);
+	DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
 }
 #endif
 
 
 void DOMConfigurator::configureAndWatch(const std::string& filename)
 {
-    configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
+	configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
 }
 
 #if LOG4CXX_WCHAR_T_API
 void DOMConfigurator::configureAndWatch(const std::wstring& filename)
 {
-    configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
+	configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
 }
 #endif
 
 #if LOG4CXX_UNICHAR_API
 void DOMConfigurator::configureAndWatch(const std::basic_string<UniChar>& filename)
 {
-    configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
+	configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
 }
 #endif
 
 #if LOG4CXX_CFSTRING_API
 void DOMConfigurator::configureAndWatch(const CFStringRef& filename)
 {
-    configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
+	configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
 }
 #endif
 
 void DOMConfigurator::configureAndWatch(const std::string& filename, long delay)
 {
-    File file(filename);
+	File file(filename);
 #if APR_HAS_THREADS
 
-    if ( xdog )
-    {
-        APRInitializer::unregisterCleanup(xdog);
-        delete xdog;
-    }
+	if ( xdog )
+	{
+		APRInitializer::unregisterCleanup(xdog);
+		delete xdog;
+	}
 
-    xdog = new XMLWatchdog(file);
-    APRInitializer::registerCleanup(xdog);
-    xdog->setDelay(delay);
-    xdog->start();
+	xdog = new XMLWatchdog(file);
+	APRInitializer::registerCleanup(xdog);
+	xdog->setDelay(delay);
+	xdog->start();
 #else
-    DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+	DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
 #endif
 }
 
 #if LOG4CXX_WCHAR_T_API
 void DOMConfigurator::configureAndWatch(const std::wstring& filename, long delay)
 {
-    File file(filename);
+	File file(filename);
 #if APR_HAS_THREADS
 
-    if ( xdog )
-    {
-        APRInitializer::unregisterCleanup(xdog);
-        delete xdog;
-    }
+	if ( xdog )
+	{
+		APRInitializer::unregisterCleanup(xdog);
+		delete xdog;
+	}
 
-    xdog = new XMLWatchdog(file);
-    APRInitializer::registerCleanup(xdog);
-    xdog->setDelay(delay);
-    xdog->start();
+	xdog = new XMLWatchdog(file);
+	APRInitializer::registerCleanup(xdog);
+	xdog->setDelay(delay);
+	xdog->start();
 #else
-    DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+	DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
 #endif
 }
 #endif
@@ -936,21 +936,21 @@ void DOMConfigurator::configureAndWatch(const std::wstring& filename, long delay
 #if LOG4CXX_UNICHAR_API
 void DOMConfigurator::configureAndWatch(const std::basic_string<UniChar>& filename, long delay)
 {
-    File file(filename);
+	File file(filename);
 #if APR_HAS_THREADS
 
-    if ( xdog )
-    {
-        APRInitializer::unregisterCleanup(xdog);
-        delete xdog;
-    }
+	if ( xdog )
+	{
+		APRInitializer::unregisterCleanup(xdog);
+		delete xdog;
+	}
 
-    xdog = new XMLWatchdog(file);
-    APRInitializer::registerCleanup(xdog);
-    xdog->setDelay(delay);
-    xdog->start();
+	xdog = new XMLWatchdog(file);
+	APRInitializer::registerCleanup(xdog);
+	xdog->setDelay(delay);
+	xdog->start();
 #else
-    DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+	DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
 #endif
 }
 #endif
@@ -958,154 +958,154 @@ void DOMConfigurator::configureAndWatch(const std::basic_string<UniChar>& filena
 #if LOG4CXX_CFSTRING_API
 void DOMConfigurator::configureAndWatch(const CFStringRef& filename, long delay)
 {
-    File file(filename);
+	File file(filename);
 #if APR_HAS_THREADS
 
-    if ( xdog )
-    {
-        APRInitializer::unregisterCleanup(xdog);
-        delete xdog;
-    }
+	if ( xdog )
+	{
+		APRInitializer::unregisterCleanup(xdog);
+		delete xdog;
+	}
 
-    xdog = new XMLWatchdog(file);
-    APRInitializer::registerCleanup(xdog);
-    xdog->setDelay(delay);
-    xdog->start();
+	xdog = new XMLWatchdog(file);
+	APRInitializer::registerCleanup(xdog);
+	xdog->setDelay(delay);
+	xdog->start();
 #else
-    DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+	DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
 #endif
 }
 #endif
 
 void DOMConfigurator::parse(
-    Pool& p,
-    log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-    apr_xml_elem* element,
-    apr_xml_doc* doc,
-    AppenderMap& appenders)
+	Pool& p,
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* element,
+	apr_xml_doc* doc,
+	AppenderMap& appenders)
 {
-    std::string rootElementName(element->name);
-
-    if (rootElementName != CONFIGURATION_TAG)
-    {
-        if (rootElementName == OLD_CONFIGURATION_TAG)
-        {
-            //LogLog::warn(LOG4CXX_STR("The <")+String(OLD_CONFIGURATION_TAG)+
-            // LOG4CXX_STR("> element has been deprecated."));
-            //LogLog::warn(LOG4CXX_STR("Use the <")+String(CONFIGURATION_TAG)+
-            // LOG4CXX_STR("> element instead."));
-        }
-        else
-        {
-            LogLog::error(LOG4CXX_STR("DOM element is - not a <configuration> element."));
-            return;
-        }
-    }
-
-    LogString debugAttrib = subst(getAttribute(utf8Decoder, element, INTERNAL_DEBUG_ATTR));
-
-    static const LogString NuLL(LOG4CXX_STR("NULL"));
-    LogLog::debug(LOG4CXX_STR("debug attribute= \"") + debugAttrib + LOG4CXX_STR("\"."));
-
-    // if the log4j.dtd is not specified in the XML file, then the
-    // "debug" attribute is returned as the empty string.
-    if (!debugAttrib.empty() && debugAttrib != NuLL)
-    {
-        LogLog::setInternalDebugging(OptionConverter::toBoolean(debugAttrib, true));
-    }
-    else
-    {
-        LogLog::debug(LOG4CXX_STR("Ignoring internalDebug attribute."));
-    }
-
-
-    LogString confDebug = subst(getAttribute(utf8Decoder, element, CONFIG_DEBUG_ATTR));
-
-    if (!confDebug.empty() && confDebug != NuLL)
-    {
-        LogLog::warn(LOG4CXX_STR("The \"configDebug\" attribute is deprecated."));
-        LogLog::warn(LOG4CXX_STR("Use the \"internalDebug\" attribute instead."));
-        LogLog::setInternalDebugging(OptionConverter::toBoolean(confDebug, true));
-    }
-
-    LogString thresholdStr = subst(getAttribute(utf8Decoder, element, THRESHOLD_ATTR));
-    LogLog::debug(LOG4CXX_STR("Threshold =\"") + thresholdStr + LOG4CXX_STR("\"."));
-
-    if (!thresholdStr.empty() && thresholdStr != NuLL)
-    {
-        repository->setThreshold(thresholdStr);
-    }
-
-    LogString strstrValue = subst(getAttribute(utf8Decoder, element, STRINGSTREAM_ATTR));
-    LogLog::debug(LOG4CXX_STR("Stringstream =\"") + strstrValue + LOG4CXX_STR("\"."));
-
-    if (!strstrValue.empty() && strstrValue != NuLL)
-    {
-        MessageBufferUseStaticStream();
-    }
-
-    apr_xml_elem* currentElement;
-
-    for (currentElement = element->first_child;
-            currentElement;
-            currentElement = currentElement->next)
-    {
-        std::string tagName(currentElement->name);
-
-        if (tagName == CATEGORY_FACTORY_TAG)
-        {
-            parseLoggerFactory(p, utf8Decoder, currentElement);
-        }
-    }
-
-    for (currentElement = element->first_child;
-            currentElement;
-            currentElement = currentElement->next)
-    {
-        std::string tagName(currentElement->name);
-
-        if (tagName == CATEGORY || tagName == LOGGER)
-        {
-            parseLogger(p, utf8Decoder, currentElement, doc, appenders);
-        }
-        else if (tagName == ROOT_TAG)
-        {
-            parseRoot(p, utf8Decoder, currentElement, doc, appenders);
-        }
-    }
+	std::string rootElementName(element->name);
+
+	if (rootElementName != CONFIGURATION_TAG)
+	{
+		if (rootElementName == OLD_CONFIGURATION_TAG)
+		{
+			//LogLog::warn(LOG4CXX_STR("The <")+String(OLD_CONFIGURATION_TAG)+
+			// LOG4CXX_STR("> element has been deprecated."));
+			//LogLog::warn(LOG4CXX_STR("Use the <")+String(CONFIGURATION_TAG)+
+			// LOG4CXX_STR("> element instead."));
+		}
+		else
+		{
+			LogLog::error(LOG4CXX_STR("DOM element is - not a <configuration> element."));
+			return;
+		}
+	}
+
+	LogString debugAttrib = subst(getAttribute(utf8Decoder, element, INTERNAL_DEBUG_ATTR));
+
+	static const LogString NuLL(LOG4CXX_STR("NULL"));
+	LogLog::debug(LOG4CXX_STR("debug attribute= \"") + debugAttrib + LOG4CXX_STR("\"."));
+
+	// if the log4j.dtd is not specified in the XML file, then the
+	// "debug" attribute is returned as the empty string.
+	if (!debugAttrib.empty() && debugAttrib != NuLL)
+	{
+		LogLog::setInternalDebugging(OptionConverter::toBoolean(debugAttrib, true));
+	}
+	else
+	{
+		LogLog::debug(LOG4CXX_STR("Ignoring internalDebug attribute."));
+	}
+
+
+	LogString confDebug = subst(getAttribute(utf8Decoder, element, CONFIG_DEBUG_ATTR));
+
+	if (!confDebug.empty() && confDebug != NuLL)
+	{
+		LogLog::warn(LOG4CXX_STR("The \"configDebug\" attribute is deprecated."));
+		LogLog::warn(LOG4CXX_STR("Use the \"internalDebug\" attribute instead."));
+		LogLog::setInternalDebugging(OptionConverter::toBoolean(confDebug, true));
+	}
+
+	LogString thresholdStr = subst(getAttribute(utf8Decoder, element, THRESHOLD_ATTR));
+	LogLog::debug(LOG4CXX_STR("Threshold =\"") + thresholdStr + LOG4CXX_STR("\"."));
+
+	if (!thresholdStr.empty() && thresholdStr != NuLL)
+	{
+		repository->setThreshold(thresholdStr);
+	}
+
+	LogString strstrValue = subst(getAttribute(utf8Decoder, element, STRINGSTREAM_ATTR));
+	LogLog::debug(LOG4CXX_STR("Stringstream =\"") + strstrValue + LOG4CXX_STR("\"."));
+
+	if (!strstrValue.empty() && strstrValue != NuLL)
+	{
+		MessageBufferUseStaticStream();
+	}
+
+	apr_xml_elem* currentElement;
+
+	for (currentElement = element->first_child;
+		currentElement;
+		currentElement = currentElement->next)
+	{
+		std::string tagName(currentElement->name);
+
+		if (tagName == CATEGORY_FACTORY_TAG)
+		{
+			parseLoggerFactory(p, utf8Decoder, currentElement);
+		}
+	}
+
+	for (currentElement = element->first_child;
+		currentElement;
+		currentElement = currentElement->next)
+	{
+		std::string tagName(currentElement->name);
+
+		if (tagName == CATEGORY || tagName == LOGGER)
+		{
+			parseLogger(p, utf8Decoder, currentElement, doc, appenders);
+		}
+		else if (tagName == ROOT_TAG)
+		{
+			parseRoot(p, utf8Decoder, currentElement, doc, appenders);
+		}
+	}
 }
 
 LogString DOMConfigurator::subst(const LogString& value)
 {
-    try
-    {
-        return OptionConverter::substVars(value, props);
-    }
-    catch (IllegalArgumentException& e)
-    {
-        LogLog::warn(LOG4CXX_STR("Could not perform variable substitution."), e);
-        return value;
-    }
+	try
+	{
+		return OptionConverter::substVars(value, props);
+	}
+	catch (IllegalArgumentException& e)
+	{
+		LogLog::warn(LOG4CXX_STR("Could not perform variable substitution."), e);
+		return value;
+	}
 }
 
 
 LogString DOMConfigurator::getAttribute(
-    log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
-    apr_xml_elem* element,
-    const std::string& attrName)
+	log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+	apr_xml_elem* element,
+	const std::string& attrName)
 {
-    LogString attrValue;
-
-    for (apr_xml_attr* attr = element->attr;
-            attr;
-            attr = attr->next)
-    {
-        if (attrName == attr->name)
-        {
-            ByteBuffer buf((char*) attr->value, strlen(attr->value));
-            utf8Decoder->decode(buf, attrValue);
-        }
-    }
-
-    return attrValue;
+	LogString attrValue;
+
+	for (apr_xml_attr* attr = element->attr;
+		attr;
+		attr = attr->next)
+	{
+		if (attrName == attr->name)
+		{
+			ByteBuffer buf((char*) attr->value, strlen(attr->value));
+			utf8Decoder->decode(buf, attrValue);
+		}
+	}
+
+	return attrValue;
 }
diff --git a/src/main/cpp/exception.cpp b/src/main/cpp/exception.cpp
index f8bdd0f..0023a9a 100644
--- a/src/main/cpp/exception.cpp
+++ b/src/main/cpp/exception.cpp
@@ -28,246 +28,246 @@ using namespace log4cxx::helpers;
 
 Exception::Exception(const LogString& msg1)
 {
-    std::string m;
-    Transcoder::encode(msg1, m);
-    size_t len = m.size();
+	std::string m;
+	Transcoder::encode(msg1, m);
+	size_t len = m.size();
 
-    if (len > MSG_SIZE)
-    {
-        len = MSG_SIZE;
-    }
+	if (len > MSG_SIZE)
+	{
+		len = MSG_SIZE;
+	}
 
 #if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__)
-    memcpy_s(msg, sizeof msg, m.data(), len);
+	memcpy_s(msg, sizeof msg, m.data(), len);
 #else
-    memcpy(msg, m.data(), len);
+	memcpy(msg, m.data(), len);
 #endif
-    msg[len] = 0;
+	msg[len] = 0;
 }
 
 Exception::Exception(const char* m)
 {
 #if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__)
-    strncpy_s(msg, sizeof msg, m, MSG_SIZE);
+	strncpy_s(msg, sizeof msg, m, MSG_SIZE);
 #else
-    strncpy(msg, m, MSG_SIZE);
+	strncpy(msg, m, MSG_SIZE);
 #endif
-    msg[MSG_SIZE] = 0;
+	msg[MSG_SIZE] = 0;
 }
 
 
 Exception::Exception(const Exception& src) : std::exception()
 {
 #if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__)
-    strcpy_s(msg, sizeof msg, src.msg);
+	strcpy_s(msg, sizeof msg, src.msg);
 #else
-    strcpy(msg, src.msg);
+	strcpy(msg, src.msg);
 #endif
 }
 
 Exception& Exception::operator=(const Exception& src)
 {
 #if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__)
-    strcpy_s(msg, sizeof msg, src.msg);
+	strcpy_s(msg, sizeof msg, src.msg);
 #else
-    strcpy(msg, src.msg);
+	strcpy(msg, src.msg);
 #endif
-    return *this;
+	return *this;
 }
 
 const char* Exception::what() const throw()
 {
-    return msg;
+	return msg;
 }
 
 RuntimeException::RuntimeException(log4cxx_status_t stat)
-    : Exception(formatMessage(stat))
+	: Exception(formatMessage(stat))
 {
 }
 
 RuntimeException::RuntimeException(const LogString& msg1)
-    : Exception(msg1)
+	: Exception(msg1)
 {
 }
 
 RuntimeException::RuntimeException(const RuntimeException& src)
-    : Exception(src)
+	: Exception(src)
 {
 }
 
 RuntimeException& RuntimeException::operator=(const RuntimeException& src)
 {
-    Exception::operator=(src);
-    return *this;
+	Exception::operator=(src);
+	return *this;
 }
 
 LogString RuntimeException::formatMessage(log4cxx_status_t stat)
 {
-    LogString s(LOG4CXX_STR("RuntimeException: return code = "));
-    Pool p;
-    StringHelper::toString(stat, p, s);
-    return s;
+	LogString s(LOG4CXX_STR("RuntimeException: return code = "));
+	Pool p;
+	StringHelper::toString(stat, p, s);
+	return s;
 }
 
 NullPointerException::NullPointerException(const LogString& msg1)
-    : RuntimeException(msg1)
+	: RuntimeException(msg1)
 {
 }
 
 NullPointerException::NullPointerException(const NullPointerException& src)
-    : RuntimeException(src)
+	: RuntimeException(src)
 {
 }
 
 NullPointerException& NullPointerException::operator=(const NullPointerException& src)
 {
-    RuntimeException::operator=(src);
-    return *this;
+	RuntimeException::operator=(src);
+	return *this;
 }
 
 IllegalArgumentException::IllegalArgumentException(const LogString& msg1)
-    : RuntimeException(msg1)
+	: RuntimeException(msg1)
 {
 }
 
 IllegalArgumentException::IllegalArgumentException(const IllegalArgumentException& src)
-    : RuntimeException(src)
+	: RuntimeException(src)
 {
 }
 
 IllegalArgumentException& IllegalArgumentException::operator=(const IllegalArgumentException& src)
 {
-    RuntimeException::operator=(src);
-    return *this;
+	RuntimeException::operator=(src);
+	return *this;
 }
 
 IOException::IOException()
-    : Exception(LOG4CXX_STR("IO exception"))
+	: Exception(LOG4CXX_STR("IO exception"))
 {
 }
 
 IOException::IOException(log4cxx_status_t stat)
-    : Exception(formatMessage(stat))
+	: Exception(formatMessage(stat))
 {
 }
 
 
 IOException::IOException(const LogString& msg1)
-    : Exception(msg1)
+	: Exception(msg1)
 {
 }
 
 IOException::IOException(const IOException& src)
-    : Exception(src)
+	: Exception(src)
 {
 }
 
 IOException& IOException::operator=(const IOException& src)
 {
-    Exception::operator=(src);
-    return *this;
+	Exception::operator=(src);
+	return *this;
 }
 
 LogString IOException::formatMessage(log4cxx_status_t stat)
 {
-    LogString s(LOG4CXX_STR("IO Exception : status code = "));
-    Pool p;
-    StringHelper::toString(stat, p, s);
-    return s;
+	LogString s(LOG4CXX_STR("IO Exception : status code = "));
+	Pool p;
+	StringHelper::toString(stat, p, s);
+	return s;
 }
 
 
 MissingResourceException::MissingResourceException(const LogString& key)
-    : Exception(formatMessage(key))
+	: Exception(formatMessage(key))
 {
 }
 
 
 MissingResourceException::MissingResourceException(const MissingResourceException& src)
-    : Exception(src)
+	: Exception(src)
 {
 }
 
 MissingResourceException& MissingResourceException::operator=(const MissingResourceException& src)
 {
-    Exception::operator=(src);
-    return *this;
+	Exception::operator=(src);
+	return *this;
 }
 
 LogString MissingResourceException::formatMessage(const LogString& key)
 {
-    LogString s(LOG4CXX_STR("MissingResourceException: resource key = \""));
-    s.append(key);
-    s.append(LOG4CXX_STR("\"."));
-    return s;
+	LogString s(LOG4CXX_STR("MissingResourceException: resource key = \""));
+	s.append(key);
+	s.append(LOG4CXX_STR("\"."));
+	return s;
 }
 
 PoolException::PoolException(log4cxx_status_t stat)
-    : Exception(formatMessage(stat))
+	: Exception(formatMessage(stat))
 {
 }
 
 PoolException::PoolException(const PoolException& src)
-    : Exception(src)
+	: Exception(src)
 {
 }
 
 PoolException& PoolException::operator=(const PoolException& src)
 {
-    Exception::operator=(src);
-    return *this;
+	Exception::operator=(src);
+	return *this;
 }
 
 LogString PoolException::formatMessage(log4cxx_status_t)
 {
-    return LOG4CXX_STR("Pool exception");
+	return LOG4CXX_STR("Pool exception");
 }
 
 
 TranscoderException::TranscoderException(log4cxx_status_t stat)
-    : Exception(formatMessage(stat))
+	: Exception(formatMessage(stat))
 {
 }
 
 TranscoderException::TranscoderException(const TranscoderException& src)
-    : Exception(src)
+	: Exception(src)
 {
 }
 
 TranscoderException& TranscoderException::operator=(const TranscoderException& src)
 {
-    Exception::operator=(src);
-    return *this;
+	Exception::operator=(src);
+	return *this;
 }
 
 LogString TranscoderException::formatMessage(log4cxx_status_t)
 {
-    return LOG4CXX_STR("Transcoder exception");
+	return LOG4CXX_STR("Transcoder exception");
 }
 
 
 MutexException::MutexException(log4cxx_status_t stat)
-    : Exception(formatMessage(stat))
+	: Exception(formatMessage(stat))
 {
 }
 
 MutexException::MutexException(const MutexException& src)
-    : Exception(src)
+	: Exception(src)
 {
 }
 
 MutexException& MutexException::operator=(const MutexException& src)
 {
-    Exception::operator=(src);
-    return *this;
+	Exception::operator=(src);
+	return *this;
 }
 
 LogString MutexException::formatMessage(log4cxx_status_t stat)
 {
-    LogString s(LOG4CXX_STR("Mutex exception: stat = "));
-    Pool p;
-    StringHelper::toString(stat, p, s);
-    return s;
+	LogString s(LOG4CXX_STR("Mutex exception: stat = "));
+	Pool p;
+	StringHelper::toString(stat, p, s);
+	return s;
 }
 
 InterruptedException::InterruptedException() : Exception(LOG4CXX_STR("Thread was interrupted"))
@@ -275,146 +275,146 @@ InterruptedException::InterruptedException() : Exception(LOG4CXX_STR("Thread was
 }
 
 InterruptedException::InterruptedException(log4cxx_status_t stat)
-    : Exception(formatMessage(stat))
+	: Exception(formatMessage(stat))
 {
 }
 
 InterruptedException::InterruptedException(const InterruptedException& src)
-    : Exception(src)
+	: Exception(src)
 {
 }
 
 InterruptedException& InterruptedException::operator=(const InterruptedException& src)
 {
-    Exception::operator=(src);
-    return *this;
+	Exception::operator=(src);
+	return *this;
 }
 
 LogString InterruptedException::formatMessage(log4cxx_status_t stat)
 {
-    LogString s(LOG4CXX_STR("InterruptedException: stat = "));
-    Pool p;
-    StringHelper::toString(stat, p, s);
-    return s;
+	LogString s(LOG4CXX_STR("InterruptedException: stat = "));
+	Pool p;
+	StringHelper::toString(stat, p, s);
+	return s;
 }
 
 ThreadException::ThreadException(log4cxx_status_t stat)
-    : Exception(formatMessage(stat))
+	: Exception(formatMessage(stat))
 {
 }
 
 ThreadException::ThreadException(const LogString& msg)
-    : Exception(msg)
+	: Exception(msg)
 {
 }
 
 ThreadException::ThreadException(const ThreadException& src)
-    : Exception(src)
+	: Exception(src)
 {
 }
 
 ThreadException& ThreadException::operator=(const ThreadException& src)
 {
-    Exception::operator=(src);
-    return *this;
+	Exception::operator=(src);
+	return *this;
 }
 
 LogString ThreadException::formatMessage(log4cxx_status_t stat)
 {
-    LogString s(LOG4CXX_STR("Thread exception: stat = "));
-    Pool p;
-    StringHelper::toString(stat, p, s);
-    return s;
+	LogString s(LOG4CXX_STR("Thread exception: stat = "));
+	Pool p;
+	StringHelper::toString(stat, p, s);
+	return s;
 }
 
 IllegalMonitorStateException::IllegalMonitorStateException(const LogString& msg1)
-    : Exception(msg1)
+	: Exception(msg1)
 {
 }
 
 IllegalMonitorStateException::IllegalMonitorStateException(const IllegalMonitorStateException& src)
-    : Exception(src)
+	: Exception(src)
 {
 }
 
 IllegalMonitorStateException& IllegalMonitorStateException::operator=(const IllegalMonitorStateException& src)
 {
-    Exception::operator=(src);
-    return *this;
+	Exception::operator=(src);
+	return *this;
 }
 
 InstantiationException::InstantiationException(const LogString& msg1)
-    : Exception(msg1)
+	: Exception(msg1)
 {
 }
 
 InstantiationException::InstantiationException(const InstantiationException& src)
-    : Exception(src)
+	: Exception(src)
 {
 }
 
 InstantiationException& InstantiationException::operator=(const InstantiationException& src)
 {
-    Exception::operator=(src);
-    return *this;
+	Exception::operator=(src);
+	return *this;
 }
 
 ClassNotFoundException::ClassNotFoundException(const LogString& className)
-    : Exception(formatMessage(className))
+	: Exception(formatMessage(className))
 {
 }
 
 ClassNotFoundException::ClassNotFoundException(const ClassNotFoundException& src)
-    : Exception(src)
+	: Exception(src)
 {
 }
 
 
 ClassNotFoundException& ClassNotFoundException::operator=(const ClassNotFoundException& src)
 {
-    Exception::operator=(src);
-    return *this;
+	Exception::operator=(src);
+	return *this;
 }
 
 LogString ClassNotFoundException::formatMessage(const LogString& className)
 {
-    LogString s(LOG4CXX_STR("Class not found: "));
-    s.append(className);
-    return s;
+	LogString s(LOG4CXX_STR("Class not found: "));
+	s.append(className);
+	return s;
 }
 
 
 NoSuchElementException::NoSuchElementException()
-    : Exception(LOG4CXX_STR("No such element"))
+	: Exception(LOG4CXX_STR("No such element"))
 {
 }
 
 NoSuchElementException::NoSuchElementException(const NoSuchElementException& src)
-    : Exception(src)
+	: Exception(src)
 {
 }
 
 NoSuchElementException& NoSuchElementException::operator=(const NoSuchElementException& src)
 {
-    Exception::operator=(src);
-    return *this;
+	Exception::operator=(src);
+	return *this;
 }
 
 
 IllegalStateException::IllegalStateException()
-    : Exception(LOG4CXX_STR("Illegal state"))
+	: Exception(LOG4CXX_STR("Illegal state"))
 {
 }
 
 IllegalStateException::IllegalStateException(const IllegalStateException& src)
-    : Exception(src)
+	: Exception(src)
 {
 }
 
 IllegalStateException& IllegalStateException::operator=(const IllegalStateException& src)
 {
-    Exception::operator=(src);
-    return *this;
+	Exception::operator=(src);
+	return *this;
 }
 
 SocketException::SocketException(const LogString& msg) : IOException(msg)
@@ -426,14 +426,14 @@ SocketException::SocketException(log4cxx_status_t status) : IOException(status)
 }
 
 SocketException::SocketException(const SocketException& src)
-    : IOException(src)
+	: IOException(src)
 {
 }
 
 SocketException& SocketException::operator=(const SocketException& src)
 {
-    IOException::operator=(src);
-    return *this;
+	IOException::operator=(src);
+	return *this;
 }
 
 ConnectException::ConnectException(log4cxx_status_t status) : SocketException(status)
@@ -441,14 +441,14 @@ ConnectException::ConnectException(log4cxx_status_t status) : SocketException(st
 }
 
 ConnectException::ConnectException(const ConnectException& src)
-    : SocketException(src)
+	: SocketException(src)
 {
 }
 
 ConnectException& ConnectException::operator=(const ConnectException& src)
 {
-    SocketException::operator=(src);
-    return *this;
+	SocketException::operator=(src);
+	return *this;
 }
 
 ClosedChannelException::ClosedChannelException() : SocketException(LOG4CXX_STR("Attempt to write to closed socket"))
@@ -456,14 +456,14 @@ ClosedChannelException::ClosedChannelException() : SocketException(LOG4CXX_STR("
 }
 
 ClosedChannelException::ClosedChannelException(const ClosedChannelException& src)
-    : SocketException(src)
+	: SocketException(src)
 {
 }
 
 ClosedChannelException& ClosedChannelException::operator=(const ClosedChannelException& src)
 {
-    SocketException::operator=(src);
-    return *this;
+	SocketException::operator=(src);
+	return *this;
 }
 
 BindException::BindException(log4cxx_status_t status) : SocketException(status)
@@ -471,14 +471,14 @@ BindException::BindException(log4cxx_status_t status) : SocketException(status)
 }
 
 BindException::BindException(const BindException& src)
-    : SocketException(src)
+	: SocketException(src)
 {
 }
 
 BindException& BindException::operator=(const BindException& src)
 {
-    SocketException::operator=(src);
-    return *this;
+	SocketException::operator=(src);
+	return *this;
 }
 
 InterruptedIOException::InterruptedIOException(const LogString& msg) : IOException(msg)
@@ -486,28 +486,28 @@ InterruptedIOException::InterruptedIOException(const LogString& msg) : IOExcepti
 }
 
 InterruptedIOException::InterruptedIOException(const InterruptedIOException& src)
-    : IOException(src)
+	: IOException(src)
 {
 }
 
 InterruptedIOException& InterruptedIOException::operator=(const InterruptedIOException& src)
 {
-    IOException::operator=(src);
-    return *this;
+	IOException::operator=(src);
+	return *this;
 }
 
 SocketTimeoutException::SocketTimeoutException()
-    : InterruptedIOException(LOG4CXX_STR("SocketTimeoutException"))
+	: InterruptedIOException(LOG4CXX_STR("SocketTimeoutException"))
 {
 }
 
 SocketTimeoutException::SocketTimeoutException(const SocketTimeoutException& src)
-    : InterruptedIOException(src)
+	: InterruptedIOException(src)
 {
 }
 
 SocketTimeoutException& SocketTimeoutException::operator=(const SocketTimeoutException& src)
 {
-    InterruptedIOException::operator=(src);
-    return *this;
+	InterruptedIOException::operator=(src);
+	return *this;
 }
diff --git a/src/main/cpp/fallbackerrorhandler.cpp b/src/main/cpp/fallbackerrorhandler.cpp
index 36509cc..7e59270 100644
--- a/src/main/cpp/fallbackerrorhandler.cpp
+++ b/src/main/cpp/fallbackerrorhandler.cpp
@@ -31,72 +31,72 @@ using namespace log4cxx::varia;
 IMPLEMENT_LOG4CXX_OBJECT(FallbackErrorHandler)
 
 FallbackErrorHandler::FallbackErrorHandler()
-    : backup(), primary(), loggers()
+	: backup(), primary(), loggers()
 {
 }
 
 void FallbackErrorHandler::addRef() const
 {
-    ObjectImpl::addRef();
+	ObjectImpl::addRef();
 }
 
 void FallbackErrorHandler::releaseRef() const
 {
-    ObjectImpl::releaseRef();
+	ObjectImpl::releaseRef();
 }
 
 void FallbackErrorHandler::setLogger(const LoggerPtr& logger)
 {
-    LogLog::debug(((LogString) LOG4CXX_STR("FB: Adding logger ["))
-                  + logger->getName() + LOG4CXX_STR("]."));
-    loggers.push_back(logger);
+	LogLog::debug(((LogString) LOG4CXX_STR("FB: Adding logger ["))
+		+ logger->getName() + LOG4CXX_STR("]."));
+	loggers.push_back(logger);
 }
 
 void FallbackErrorHandler::error(const LogString& message,
-                                 const std::exception& e,
-                                 int errorCode) const
+	const std::exception& e,
+	int errorCode) const
 {
-    error(message, e, errorCode, 0);
+	error(message, e, errorCode, 0);
 }
 
 void FallbackErrorHandler::error(const LogString& message,
-                                 const std::exception& e,
-                                 int, const spi::LoggingEventPtr&) const
+	const std::exception& e,
+	int, const spi::LoggingEventPtr&) const
 {
-    LogLog::debug(((LogString) LOG4CXX_STR("FB: The following error reported: "))
-                  +  message, e);
-    LogLog::debug(LOG4CXX_STR("FB: INITIATING FALLBACK PROCEDURE."));
+	LogLog::debug(((LogString) LOG4CXX_STR("FB: The following error reported: "))
+		+  message, e);
+	LogLog::debug(LOG4CXX_STR("FB: INITIATING FALLBACK PROCEDURE."));
 
-    for (size_t i = 0; i < loggers.size(); i++)
-    {
-        LoggerPtr& l = (LoggerPtr&)loggers.at(i);
-        LogLog::debug(((LogString) LOG4CXX_STR("FB: Searching for ["))
-                      + primary->getName() + LOG4CXX_STR("] in logger [")
-                      + l->getName() + LOG4CXX_STR("]."));
-        LogLog::debug(((LogString) LOG4CXX_STR("FB: Replacing ["))
-                      + primary->getName() + LOG4CXX_STR("] by [")
-                      + backup->getName() + LOG4CXX_STR("] in logger [")
-                      + l->getName() + LOG4CXX_STR("]."));
-        l->removeAppender(primary);
-        LogLog::debug(((LogString) LOG4CXX_STR("FB: Adding appender ["))
-                      + backup->getName() + LOG4CXX_STR("] to logger ")
-                      + l->getName());
-        l->addAppender(backup);
-    }
+	for (size_t i = 0; i < loggers.size(); i++)
+	{
+		LoggerPtr& l = (LoggerPtr&)loggers.at(i);
+		LogLog::debug(((LogString) LOG4CXX_STR("FB: Searching for ["))
+			+ primary->getName() + LOG4CXX_STR("] in logger [")
+			+ l->getName() + LOG4CXX_STR("]."));
+		LogLog::debug(((LogString) LOG4CXX_STR("FB: Replacing ["))
+			+ primary->getName() + LOG4CXX_STR("] by [")
+			+ backup->getName() + LOG4CXX_STR("] in logger [")
+			+ l->getName() + LOG4CXX_STR("]."));
+		l->removeAppender(primary);
+		LogLog::debug(((LogString) LOG4CXX_STR("FB: Adding appender ["))
+			+ backup->getName() + LOG4CXX_STR("] to logger ")
+			+ l->getName());
+		l->addAppender(backup);
+	}
 }
 
 void FallbackErrorHandler::setAppender(const AppenderPtr& primary1)
 {
-    LogLog::debug(((LogString) LOG4CXX_STR("FB: Setting primary appender to ["))
-                  + primary1->getName() + LOG4CXX_STR("]."));
-    this->primary = primary1;
+	LogLog::debug(((LogString) LOG4CXX_STR("FB: Setting primary appender to ["))
+		+ primary1->getName() + LOG4CXX_STR("]."));
+	this->primary = primary1;
 }
 
 void FallbackErrorHandler::setBackupAppender(const AppenderPtr& backup1)
 {
-    LogLog::debug(((LogString) LOG4CXX_STR("FB: Setting backup appender to ["))
-                  + backup1->getName() + LOG4CXX_STR("]."));
-    this->backup = backup1;
+	LogLog::debug(((LogString) LOG4CXX_STR("FB: Setting backup appender to ["))
+		+ backup1->getName() + LOG4CXX_STR("]."));
+	this->backup = backup1;
 }
 
 void FallbackErrorHandler::activateOptions(Pool&)
diff --git a/src/main/cpp/file.cpp b/src/main/cpp/file.cpp
index bddea7e..b5d09b8 100644
--- a/src/main/cpp/file.cpp
+++ b/src/main/cpp/file.cpp
@@ -34,81 +34,81 @@ File::File()
 template<class S>
 static LogString decodeLS(const S* src)
 {
-    LogString dst;
+	LogString dst;
 
-    if (src != 0)
-    {
-        Transcoder::decode(src, dst);
-    }
+	if (src != 0)
+	{
+		Transcoder::decode(src, dst);
+	}
 
-    return dst;
+	return dst;
 }
 
 template<class S>
 static LogString decodeLS(const std::basic_string<S>& src)
 {
-    LogString dst;
-    Transcoder::decode(src, dst);
-    return dst;
+	LogString dst;
+	Transcoder::decode(src, dst);
+	return dst;
 }
 
 
 File::File(const std::string& name1)
-    : path(decodeLS(name1))
+	: path(decodeLS(name1))
 {
 }
 
 File::File(const char* name1)
-    : path(decodeLS(name1))
+	: path(decodeLS(name1))
 {
 }
 
 #if LOG4CXX_WCHAR_T_API
 File::File(const std::wstring& name1)
-    : path(decodeLS(name1))
+	: path(decodeLS(name1))
 {
 }
 
 File::File(const wchar_t* name1)
-    : path(decodeLS(name1))
+	: path(decodeLS(name1))
 {
 }
 #endif
 
 #if LOG4CXX_UNICHAR_API
 File::File(const std::basic_string<UniChar>& name1)
-    : path(decodeLS(name1))
+	: path(decodeLS(name1))
 {
 }
 
 File::File(const UniChar* name1)
-    : path(decodeLS(name1))
+	: path(decodeLS(name1))
 {
 }
 #endif
 
 #if LOG4CXX_CFSTRING_API
 File::File(const CFStringRef& name1)
-    : path(decodeLS(name1))
+	: path(decodeLS(name1))
 {
 }
 #endif
 
 File::File(const File& src)
-    : path(src.path)
+	: path(src.path)
 {
 }
 
 File& File::operator=(const File& src)
 {
-    if (this == &src)
-    {
-        return *this;
-    }
+	if (this == &src)
+	{
+		return *this;
+	}
 
-    path.assign(src.path);
+	path.assign(src.path);
 
-    return *this;
+	return *this;
 }
 
 
@@ -119,194 +119,194 @@ File::~File()
 
 LogString File::getPath() const
 {
-    return path;
+	return path;
 }
 
 File& File::setPath(const LogString& newName)
 {
-    path.assign(newName);
-    return *this;
+	path.assign(newName);
+	return *this;
 }
 
 LogString File::getName() const
 {
-    const logchar slashes[] = { 0x2F, 0x5C, 0 };
-    size_t lastSlash = path.find_last_of(slashes);
+	const logchar slashes[] = { 0x2F, 0x5C, 0 };
+	size_t lastSlash = path.find_last_of(slashes);
 
-    if (lastSlash != LogString::npos)
-    {
-        return path.substr(lastSlash + 1);
-    }
+	if (lastSlash != LogString::npos)
+	{
+		return path.substr(lastSlash + 1);
+	}
 
-    return path;
+	return path;
 }
 
 char* File::getPath(Pool& p) const
 {
-    int style = APR_FILEPATH_ENCODING_UNKNOWN;
-    apr_filepath_encoding(&style, p.getAPRPool());
-    char* retval = NULL;
-
-    if (style == APR_FILEPATH_ENCODING_UTF8)
-    {
-        retval = Transcoder::encodeUTF8(path, p);
-    }
-    else
-    {
-        retval = Transcoder::encode(path, p);
-    }
-
-    return retval;
+	int style = APR_FILEPATH_ENCODING_UNKNOWN;
+	apr_filepath_encoding(&style, p.getAPRPool());
+	char* retval = NULL;
+
+	if (style == APR_FILEPATH_ENCODING_UTF8)
+	{
+		retval = Transcoder::encodeUTF8(path, p);
+	}
+	else
+	{
+		retval = Transcoder::encode(path, p);
+	}
+
+	return retval;
 }
 
 log4cxx_status_t File::open(apr_file_t** file, int flags,
-                            int perm, Pool& p) const
+	int perm, Pool& p) const
 {
-    return apr_file_open(file, getPath(p), flags, perm, p.getAPRPool());
+	return apr_file_open(file, getPath(p), flags, perm, p.getAPRPool());
 }
 
 
 
 bool File::exists(Pool& p) const
 {
-    apr_finfo_t finfo;
-    apr_status_t rv = apr_stat(&finfo, getPath(p),
-                               0, p.getAPRPool());
-    return rv == APR_SUCCESS;
+	apr_finfo_t finfo;
+	apr_status_t rv = apr_stat(&finfo, getPath(p),
+			0, p.getAPRPool());
+	return rv == APR_SUCCESS;
 }
 
 char* File::convertBackSlashes(char* src)
 {
-    for (char* c = src; *c != 0; c++)
-    {
-        if (*c == '\\')
-        {
-            *c = '/';
-        }
-    }
-
-    return src;
+	for (char* c = src; *c != 0; c++)
+	{
+		if (*c == '\\')
+		{
+			*c = '/';
+		}
+	}
+
+	return src;
 }
 
 bool File::deleteFile(Pool& p) const
 {
-    apr_status_t rv = apr_file_remove(convertBackSlashes(getPath(p)),
-                                      p.getAPRPool());
-    return rv == APR_SUCCESS;
+	apr_status_t rv = apr_file_remove(convertBackSlashes(getPath(p)),
+			p.getAPRPool());
+	return rv == APR_SUCCESS;
 }
 
 bool File::renameTo(const File& dest, Pool& p) const
 {
-    apr_status_t rv = apr_file_rename(convertBackSlashes(getPath(p)),
-                                      convertBackSlashes(dest.getPath(p)),
-                                      p.getAPRPool());
-    return rv == APR_SUCCESS;
+	apr_status_t rv = apr_file_rename(convertBackSlashes(getPath(p)),
+			convertBackSlashes(dest.getPath(p)),
+			p.getAPRPool());
+	return rv == APR_SUCCESS;
 }
 
 
 size_t File::length(Pool& pool) const
 {
-    apr_finfo_t finfo;
-    apr_status_t rv = apr_stat(&finfo, getPath(pool),
-                               APR_FINFO_SIZE, pool.getAPRPool());
+	apr_finfo_t finfo;
+	apr_status_t rv = apr_stat(&finfo, getPath(pool),
+			APR_FINFO_SIZE, pool.getAPRPool());
 
-    if (rv == APR_SUCCESS)
-    {
-        return (size_t) finfo.size;
-    }
+	if (rv == APR_SUCCESS)
+	{
+		return (size_t) finfo.size;
+	}
 
-    return 0;
+	return 0;
 }
 
 
 log4cxx_time_t File::lastModified(Pool& pool) const
 {
-    apr_finfo_t finfo;
-    apr_status_t rv = apr_stat(&finfo, getPath(pool),
-                               APR_FINFO_MTIME, pool.getAPRPool());
+	apr_finfo_t finfo;
+	apr_status_t rv = apr_stat(&finfo, getPath(pool),
+			APR_FINFO_MTIME, pool.getAPRPool());
 
-    if (rv == APR_SUCCESS)
-    {
-        return finfo.mtime;
-    }
+	if (rv == APR_SUCCESS)
+	{
+		return finfo.mtime;
+	}
 
-    return 0;
+	return 0;
 }
 
 
 std::vector<LogString> File::list(Pool& p) const
 {
-    apr_dir_t* dir;
-    apr_finfo_t entry;
-    std::vector<LogString> filenames;
-
... 58821 lines suppressed ...