passenger 3.0.0 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- data/DEVELOPERS.TXT +9 -6
- data/NEWS +50 -0
- data/Rakefile +2 -1
- data/bin/passenger-install-apache2-module +4 -4
- data/bin/passenger-install-nginx-module +1 -1
- data/bin/passenger-make-enterprisey +1 -1
- data/build/agents.rb +26 -19
- data/build/apache2.rb +49 -46
- data/build/basics.rb +37 -13
- data/build/common_library.rb +134 -64
- data/build/config.rb +18 -11
- data/build/cplusplus_support.rb +4 -0
- data/build/cxx_tests.rb +26 -12
- data/build/documentation.rb +18 -11
- data/build/integration_tests.rb +18 -11
- data/build/misc.rb +18 -11
- data/build/nginx.rb +27 -19
- data/build/oxt_tests.rb +18 -11
- data/build/packaging.rb +45 -37
- data/build/rpm.rb +98 -0
- data/build/ruby_extension.rb +19 -13
- data/build/ruby_tests.rb +19 -12
- data/build/test_basics.rb +23 -11
- data/debian/README.Debian +15 -0
- data/debian/changelog +185 -0
- data/debian/control +47 -19
- data/debian/copyright +20 -0
- data/debian/libapache2-mod-passenger.install +1 -0
- data/debian/libapache2-mod-passenger.postinst +36 -0
- data/debian/libapache2-mod-passenger.prerm +15 -0
- data/debian/passenger-common.install +4 -0
- data/debian/passenger.conf +4 -0
- data/debian/passenger.load +1 -0
- data/debian/rules +37 -0
- data/debian/watch +3 -0
- data/{misc → dev}/copy_boost_headers.rb +3 -0
- data/{misc → dev}/find_owner_pipe_leaks.rb +0 -0
- data/{misc → dev}/render_error_pages.rb +0 -0
- data/doc/Users guide Apache.html +39 -1
- data/doc/Users guide Apache.txt +40 -0
- data/doc/Users guide Nginx.html +1 -1
- data/doc/Users guide Standalone.html +1 -1
- data/doc/cxxapi/Constants_8h_source.html +1 -1
- data/doc/cxxapi/DirectoryMapper_8h_source.html +6 -22
- data/doc/cxxapi/EventedClient_8h_source.html +572 -468
- data/doc/cxxapi/Exceptions_8h_source.html +142 -129
- data/doc/cxxapi/FileDescriptor_8h_source.html +263 -199
- data/doc/cxxapi/MessageChannel_8h_source.html +686 -770
- data/doc/cxxapi/MessageServer_8h_source.html +1 -1
- data/doc/cxxapi/PoolOptions_8h_source.html +79 -78
- data/doc/cxxapi/ResourceLocator_8h_source.html +105 -55
- data/doc/cxxapi/SafeLibev_8h_source.html +180 -0
- data/doc/cxxapi/ServerInstanceDir_8h_source.html +114 -110
- data/doc/cxxapi/Session_8h_source.html +1 -1
- data/doc/cxxapi/SpawnManager_8h_source.html +208 -208
- data/doc/cxxapi/StaticString_8h_source.html +258 -183
- data/doc/cxxapi/Utils_8h_source.html +71 -54
- data/doc/cxxapi/annotated.html +3 -0
- data/doc/cxxapi/classAgentWatcher.html +2 -2
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +0 -1
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +0 -27
- data/doc/cxxapi/classPassenger_1_1EventedClient-members.html +5 -0
- data/doc/cxxapi/classPassenger_1_1EventedClient.html +102 -7
- data/doc/cxxapi/classPassenger_1_1FileDescriptor-members.html +2 -1
- data/doc/cxxapi/classPassenger_1_1FileDescriptor.html +34 -8
- data/doc/cxxapi/classPassenger_1_1FileDescriptorPair-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1FileDescriptorPair.html +52 -0
- data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +0 -3
- data/doc/cxxapi/classPassenger_1_1MessageChannel.html +0 -120
- data/doc/cxxapi/classPassenger_1_1SafeLibev-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1SafeLibev.html +51 -0
- data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +1 -0
- data/doc/cxxapi/classPassenger_1_1SpawnException.html +22 -0
- data/doc/cxxapi/classes.html +14 -14
- data/doc/cxxapi/files.html +2 -0
- data/doc/cxxapi/functions_0x63.html +6 -3
- data/doc/cxxapi/functions_0x64.html +9 -2
- data/doc/cxxapi/functions_0x67.html +6 -9
- data/doc/cxxapi/functions_0x69.html +3 -0
- data/doc/cxxapi/functions_0x77.html +8 -8
- data/doc/cxxapi/functions_eval.html +6 -0
- data/doc/cxxapi/functions_func.html +18 -17
- data/doc/cxxapi/functions_vars.html +8 -0
- data/doc/cxxapi/graph_legend.png +0 -0
- data/doc/cxxapi/group__Core.png +0 -0
- data/doc/cxxapi/group__Hooks.png +0 -0
- data/doc/cxxapi/hierarchy.html +3 -0
- data/doc/cxxapi/inherit__graph__14.map +1 -1
- data/doc/cxxapi/inherit__graph__14.md5 +1 -1
- data/doc/cxxapi/inherit__graph__14.png +0 -0
- data/doc/cxxapi/inherit__graph__15.map +1 -3
- data/doc/cxxapi/inherit__graph__15.md5 +1 -1
- data/doc/cxxapi/inherit__graph__15.png +0 -0
- data/doc/cxxapi/inherit__graph__16.map +3 -1
- data/doc/cxxapi/inherit__graph__16.md5 +1 -1
- data/doc/cxxapi/inherit__graph__16.png +0 -0
- data/doc/cxxapi/inherit__graph__17.map +1 -1
- data/doc/cxxapi/inherit__graph__17.md5 +1 -1
- data/doc/cxxapi/inherit__graph__17.png +0 -0
- data/doc/cxxapi/inherit__graph__18.map +1 -2
- data/doc/cxxapi/inherit__graph__18.md5 +1 -1
- data/doc/cxxapi/inherit__graph__18.png +0 -0
- data/doc/cxxapi/inherit__graph__19.map +2 -1
- data/doc/cxxapi/inherit__graph__19.md5 +1 -1
- data/doc/cxxapi/inherit__graph__19.png +0 -0
- data/doc/cxxapi/inherit__graph__20.map +1 -1
- data/doc/cxxapi/inherit__graph__20.md5 +1 -1
- data/doc/cxxapi/inherit__graph__20.png +0 -0
- data/doc/cxxapi/inherit__graph__21.map +1 -1
- data/doc/cxxapi/inherit__graph__21.md5 +1 -1
- data/doc/cxxapi/inherit__graph__21.png +0 -0
- data/doc/cxxapi/inherit__graph__22.map +1 -1
- data/doc/cxxapi/inherit__graph__22.md5 +1 -1
- data/doc/cxxapi/inherit__graph__22.png +0 -0
- data/doc/cxxapi/inherit__graph__23.map +1 -1
- data/doc/cxxapi/inherit__graph__23.md5 +1 -1
- data/doc/cxxapi/inherit__graph__23.png +0 -0
- data/doc/cxxapi/inherit__graph__24.map +1 -1
- data/doc/cxxapi/inherit__graph__24.md5 +1 -1
- data/doc/cxxapi/inherit__graph__24.png +0 -0
- data/doc/cxxapi/inherit__graph__25.map +1 -1
- data/doc/cxxapi/inherit__graph__25.md5 +1 -1
- data/doc/cxxapi/inherit__graph__25.png +0 -0
- data/doc/cxxapi/inherit__graph__26.map +1 -1
- data/doc/cxxapi/inherit__graph__26.md5 +1 -1
- data/doc/cxxapi/inherit__graph__26.png +0 -0
- data/doc/cxxapi/inherit__graph__27.map +1 -1
- data/doc/cxxapi/inherit__graph__27.md5 +1 -1
- data/doc/cxxapi/inherit__graph__27.png +0 -0
- data/doc/cxxapi/inherit__graph__28.map +1 -2
- data/doc/cxxapi/inherit__graph__28.md5 +1 -1
- data/doc/cxxapi/inherit__graph__28.png +0 -0
- data/doc/cxxapi/inherit__graph__29.map +1 -1
- data/doc/cxxapi/inherit__graph__29.md5 +1 -1
- data/doc/cxxapi/inherit__graph__29.png +0 -0
- data/doc/cxxapi/inherit__graph__30.map +1 -1
- data/doc/cxxapi/inherit__graph__30.md5 +1 -1
- data/doc/cxxapi/inherit__graph__30.png +0 -0
- data/doc/cxxapi/inherit__graph__31.map +2 -1
- data/doc/cxxapi/inherit__graph__31.md5 +1 -1
- data/doc/cxxapi/inherit__graph__31.png +0 -0
- data/doc/cxxapi/inherit__graph__32.map +1 -3
- data/doc/cxxapi/inherit__graph__32.md5 +1 -1
- data/doc/cxxapi/inherit__graph__32.png +0 -0
- data/doc/cxxapi/inherit__graph__33.map +1 -1
- data/doc/cxxapi/inherit__graph__33.md5 +1 -1
- data/doc/cxxapi/inherit__graph__33.png +0 -0
- data/doc/cxxapi/inherit__graph__34.map +1 -1
- data/doc/cxxapi/inherit__graph__34.md5 +1 -1
- data/doc/cxxapi/inherit__graph__34.png +0 -0
- data/doc/cxxapi/inherit__graph__35.map +3 -1
- data/doc/cxxapi/inherit__graph__35.md5 +1 -1
- data/doc/cxxapi/inherit__graph__35.png +0 -0
- data/doc/cxxapi/inherit__graph__36.map +1 -1
- data/doc/cxxapi/inherit__graph__36.md5 +1 -1
- data/doc/cxxapi/inherit__graph__36.png +0 -0
- data/doc/cxxapi/inherit__graph__37.map +1 -1
- data/doc/cxxapi/inherit__graph__37.md5 +1 -1
- data/doc/cxxapi/inherit__graph__37.png +0 -0
- data/doc/cxxapi/inherit__graph__38.map +3 -1
- data/doc/cxxapi/inherit__graph__38.md5 +1 -1
- data/doc/cxxapi/inherit__graph__38.png +0 -0
- data/doc/cxxapi/inherit__graph__39.map +3 -1
- data/doc/cxxapi/inherit__graph__39.md5 +1 -1
- data/doc/cxxapi/inherit__graph__39.png +0 -0
- data/doc/cxxapi/inherits.html +33 -24
- data/doc/cxxapi/namespacePassenger.html +52 -0
- data/doc/cxxapi/namespacemembers.html +6 -0
- data/doc/cxxapi/namespacemembers_func.html +6 -0
- data/doc/cxxapi/tree.html +8 -0
- data/ext/apache2/Configuration.cpp +30 -8
- data/ext/apache2/Configuration.hpp +15 -14
- data/ext/apache2/DirectoryMapper.h +0 -16
- data/ext/apache2/Hooks.cpp +30 -29
- data/ext/boost/algorithm/string/detail/case_conv.hpp +6 -6
- data/ext/boost/algorithm/string/detail/find_format.hpp +14 -4
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +13 -3
- data/ext/boost/algorithm/string/detail/find_format_store.hpp +11 -0
- data/ext/boost/algorithm/string/erase.hpp +2 -2
- data/ext/boost/bind/placeholders.hpp +2 -2
- data/ext/boost/concept/detail/backward_compatibility.hpp +16 -0
- data/ext/boost/concept/detail/general.hpp +15 -6
- data/ext/boost/concept/detail/has_constraints.hpp +5 -3
- data/ext/boost/concept/usage.hpp +5 -4
- data/ext/boost/concept_check.hpp +10 -1
- data/ext/boost/config/abi/borland_prefix.hpp +1 -1
- data/ext/boost/config/auto_link.hpp +68 -21
- data/ext/boost/config/compiler/borland.hpp +11 -3
- data/ext/boost/config/compiler/clang.hpp +62 -0
- data/ext/boost/config/compiler/codegear.hpp +21 -7
- data/ext/boost/config/compiler/common_edg.hpp +4 -2
- data/ext/boost/config/compiler/digitalmars.hpp +1 -1
- data/ext/boost/config/compiler/gcc.hpp +46 -7
- data/ext/boost/config/compiler/gcc_xml.hpp +25 -0
- data/ext/boost/config/compiler/intel.hpp +23 -0
- data/ext/boost/config/compiler/kai.hpp +1 -1
- data/ext/boost/config/compiler/metrowerks.hpp +1 -1
- data/ext/boost/config/compiler/nvcc.hpp +86 -0
- data/ext/boost/config/compiler/pgi.hpp +18 -3
- data/ext/boost/config/compiler/sunpro_cc.hpp +19 -5
- data/ext/boost/config/compiler/vacpp.hpp +8 -0
- data/ext/boost/config/compiler/visualc.hpp +27 -11
- data/ext/boost/config/platform/cygwin.hpp +0 -3
- data/ext/boost/config/platform/symbian.hpp +94 -0
- data/ext/boost/config/platform/win32.hpp +8 -1
- data/ext/boost/config/select_compiler_config.hpp +10 -0
- data/ext/boost/config/select_platform_config.hpp +4 -0
- data/ext/boost/config/stdlib/dinkumware.hpp +11 -1
- data/ext/boost/config/stdlib/libcomo.hpp +1 -0
- data/ext/boost/config/stdlib/libstdcpp3.hpp +1 -0
- data/ext/boost/config/stdlib/modena.hpp +1 -0
- data/ext/boost/config/stdlib/msl.hpp +1 -0
- data/ext/boost/config/stdlib/roguewave.hpp +1 -0
- data/ext/boost/config/stdlib/sgi.hpp +1 -0
- data/ext/boost/config/stdlib/stlport.hpp +1 -0
- data/ext/boost/config/stdlib/vacpp.hpp +1 -0
- data/ext/boost/config/suffix.hpp +40 -2
- data/ext/boost/cstdint.hpp +36 -7
- data/ext/boost/date_time/gregorian/conversion.hpp +4 -2
- data/ext/boost/date_time/microsec_time_clock.hpp +7 -7
- data/ext/boost/date_time/posix_time/conversion.hpp +4 -2
- data/ext/boost/date_time/time_facet.hpp +43 -4
- data/ext/boost/detail/endian.hpp +5 -2
- data/ext/boost/detail/lcast_precision.hpp +2 -2
- data/ext/boost/detail/sp_typeinfo.hpp +1 -1
- data/ext/boost/detail/workaround.hpp +5 -0
- data/ext/boost/exception/detail/error_info_impl.hpp +3 -3
- data/ext/boost/exception/detail/exception_ptr.hpp +76 -135
- data/ext/boost/exception/detail/is_output_streamable.hpp +15 -2
- data/ext/boost/exception/detail/type_info.hpp +9 -5
- data/ext/boost/exception/diagnostic_information.hpp +5 -3
- data/ext/boost/exception/exception.hpp +60 -46
- data/ext/boost/exception/info.hpp +47 -14
- data/ext/boost/function/function_base.hpp +4 -4
- data/ext/boost/integer.hpp +4 -0
- data/ext/boost/integer_fwd.hpp +9 -3
- data/ext/boost/iterator/iterator_concepts.hpp +284 -0
- data/ext/boost/iterator/transform_iterator.hpp +0 -1
- data/ext/boost/make_shared.hpp +17 -0
- data/ext/boost/mpl/aux_/config/has_xxx.hpp +4 -3
- data/ext/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +2 -6
- data/ext/boost/mpl/aux_/template_arity.hpp +4 -4
- data/ext/boost/mpl/eval_if.hpp +3 -3
- data/ext/boost/mpl/has_xxx.hpp +369 -3
- data/ext/boost/optional/optional.hpp +3 -1
- data/ext/boost/optional/optional_fwd.hpp +1 -1
- data/ext/boost/preprocessor/repetition/enum_trailing_params.hpp +38 -0
- data/ext/boost/range/algorithm/equal.hpp +188 -0
- data/ext/boost/range/as_literal.hpp +15 -15
- data/ext/boost/range/concepts.hpp +331 -0
- data/ext/boost/range/const_iterator.hpp +7 -4
- data/ext/boost/range/detail/extract_optional_type.hpp +52 -0
- data/ext/boost/range/detail/implementation_help.hpp +7 -7
- data/ext/boost/range/detail/misc_concept.hpp +33 -0
- data/ext/boost/range/iterator.hpp +32 -32
- data/ext/boost/range/iterator_range.hpp +8 -651
- data/ext/boost/range/iterator_range_core.hpp +542 -0
- data/ext/boost/range/iterator_range_io.hpp +93 -0
- data/ext/boost/range/mutable_iterator.hpp +7 -4
- data/ext/boost/range/size.hpp +1 -1
- data/ext/boost/range/size_type.hpp +2 -1
- data/ext/boost/shared_array.hpp +19 -0
- data/ext/boost/smart_ptr/detail/sp_convertible.hpp +2 -2
- data/ext/boost/smart_ptr/detail/yield_k.hpp +1 -1
- data/ext/boost/smart_ptr/make_shared.hpp +508 -0
- data/ext/boost/smart_ptr/shared_array.hpp +147 -0
- data/ext/boost/src/pthread/thread.cpp +16 -21
- data/ext/boost/src/pthread/timeconv.inl +7 -4
- data/ext/boost/thread/barrier.hpp +2 -1
- data/ext/boost/thread/detail/config.hpp +7 -1
- data/ext/boost/thread/detail/platform.hpp +1 -1
- data/ext/boost/thread/detail/thread.hpp +62 -18
- data/ext/boost/thread/detail/thread_group.hpp +5 -2
- data/ext/boost/thread/detail/tss_hooks.hpp +8 -25
- data/ext/boost/thread/future.hpp +45 -34
- data/ext/boost/thread/locks.hpp +184 -55
- data/ext/boost/thread/pthread/condition_variable.hpp +7 -7
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +4 -2
- data/ext/boost/thread/pthread/mutex.hpp +29 -17
- data/ext/boost/thread/pthread/once.hpp +5 -0
- data/ext/boost/thread/pthread/recursive_mutex.hpp +97 -18
- data/ext/boost/thread/pthread/shared_mutex.hpp +1 -1
- data/ext/boost/thread/pthread/thread_heap_alloc.hpp +1 -1
- data/ext/boost/thread/tss.hpp +2 -0
- data/ext/boost/throw_exception.hpp +21 -5
- data/ext/boost/token_functions.hpp +111 -91
- data/ext/boost/type_traits/add_reference.hpp +19 -1
- data/ext/boost/type_traits/function_traits.hpp +2 -2
- data/ext/boost/type_traits/is_const.hpp +24 -5
- data/ext/boost/type_traits/is_convertible.hpp +1 -1
- data/ext/boost/type_traits/is_function.hpp +3 -0
- data/ext/boost/type_traits/is_lvalue_reference.hpp +118 -0
- data/ext/boost/type_traits/is_reference.hpp +8 -81
- data/ext/boost/type_traits/is_rvalue_reference.hpp +29 -0
- data/ext/boost/type_traits/is_same.hpp +2 -2
- data/ext/boost/type_traits/is_volatile.hpp +26 -7
- data/ext/boost/type_traits/remove_const.hpp +12 -0
- data/ext/boost/type_traits/remove_cv.hpp +23 -1
- data/ext/boost/type_traits/remove_reference.hpp +21 -1
- data/ext/boost/type_traits/type_with_alignment.hpp +10 -10
- data/ext/boost/units/detail/utility.hpp +104 -0
- data/ext/boost/utility/compare_pointees.hpp +1 -1
- data/ext/common/AgentsStarter.hpp +151 -161
- data/ext/common/ApplicationPool/Pool.h +16 -4
- data/ext/common/Constants.h +1 -1
- data/ext/common/EventedClient.h +130 -26
- data/ext/common/Exceptions.h +15 -2
- data/ext/common/FileDescriptor.h +76 -12
- data/ext/common/IniFile.h +488 -0
- data/ext/common/LoggingAgent/LoggingServer.h +2 -2
- data/ext/common/LoggingAgent/RemoteSender.h +15 -6
- data/ext/common/MessageChannel.h +17 -101
- data/ext/common/PoolOptions.h +1 -0
- data/ext/common/ResourceLocator.h +78 -28
- data/ext/common/SafeLibev.h +149 -0
- data/ext/common/ServerInstanceDir.h +11 -7
- data/ext/common/Session.h +1 -1
- data/ext/common/SpawnManager.h +14 -14
- data/ext/common/StaticString.h +75 -0
- data/ext/common/Utils.cpp +304 -12
- data/ext/common/Utils.h +17 -0
- data/ext/common/Utils/BufferedIO.h +196 -0
- data/ext/common/Utils/IOUtils.cpp +159 -0
- data/ext/common/Utils/IOUtils.h +118 -1
- data/ext/common/Utils/ProcessMetricsCollector.h +184 -56
- data/ext/common/Utils/StrIntUtils.cpp +45 -11
- data/ext/common/Utils/StrIntUtils.h +8 -5
- data/ext/common/Utils/Timer.h +22 -0
- data/ext/common/Utils/utf8.h +35 -0
- data/ext/common/Utils/utf8/checked.h +324 -0
- data/ext/common/Utils/utf8/core.h +359 -0
- data/ext/common/Utils/utf8/unchecked.h +229 -0
- data/ext/common/Watchdog.cpp +52 -85
- data/ext/libev/config.h +122 -0
- data/ext/nginx/Configuration.c +7 -1
- data/ext/nginx/HelperAgent.cpp +16 -18
- data/ext/nginx/config +6 -4
- data/ext/oxt/system_calls.cpp +10 -0
- data/ext/oxt/system_calls.hpp +2 -0
- data/lib/phusion_passenger.rb +6 -11
- data/lib/phusion_passenger/dependencies.rb +2 -0
- data/lib/phusion_passenger/packaging.rb +5 -5
- data/lib/phusion_passenger/platform_info.rb +88 -0
- data/lib/phusion_passenger/platform_info/binary_compatibility.rb +3 -17
- data/lib/phusion_passenger/platform_info/compiler.rb +14 -32
- data/lib/phusion_passenger/platform_info/curl.rb +6 -1
- data/lib/phusion_passenger/platform_info/operating_system.rb +107 -0
- data/lib/phusion_passenger/public_api.rb +2 -2
- data/lib/phusion_passenger/rails3_extensions/init.rb +5 -2
- data/lib/phusion_passenger/standalone/command.rb +6 -2
- data/lib/phusion_passenger/standalone/package_runtime_command.rb +2 -2
- data/lib/phusion_passenger/standalone/runtime_installer.rb +17 -5
- data/lib/phusion_passenger/standalone/start_command.rb +12 -12
- data/lib/phusion_passenger/standalone/stop_command.rb +3 -3
- data/lib/phusion_passenger/standalone/utils.rb +6 -2
- data/lib/phusion_passenger/templates/standalone/config.erb +37 -5
- data/lib/phusion_passenger/utils.rb +4 -7
- data/resources/mime.types +73 -0
- data/{misc → resources}/union_station_gateway.crt +0 -0
- data/test/cxx/BufferedIOTest.cpp +364 -0
- data/test/cxx/EventedClientTest.cpp +150 -13
- data/test/cxx/IOUtilsTest.cpp +399 -1
- data/test/cxx/MessageChannelTest.cpp +5 -120
- data/test/cxx/ProcessMetricsCollectorTest.cpp +121 -0
- data/test/cxx/StaticStringTest.cpp +134 -0
- data/test/cxx/UtilsTest.cpp +16 -46
- data/test/stub/rails_apps/2.3/mycook/public/dispatch.cgi +2 -2
- data/test/stub/rails_apps/2.3/mycook/public/dispatch.fcgi +1 -1
- data/test/stub/rails_apps/2.3/mycook/public/dispatch.rb +1 -1
- data/test/stub/rails_apps/3.0/empty/Gemfile.lock +73 -0
- data/test/support/allocate_memory.c +14 -0
- data/test/support/test_helper.rb +3 -0
- metadata +57 -174
- data/bin/passenger-stress-test +0 -345
- data/debian/postinst +0 -24
- data/doc/rdoc/classes/ConditionVariable.html +0 -215
- data/doc/rdoc/classes/Exception.html +0 -120
- data/doc/rdoc/classes/GC.html +0 -113
- data/doc/rdoc/classes/IO.html +0 -221
- data/doc/rdoc/classes/PhusionPassenger.html +0 -397
- data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +0 -180
- data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +0 -647
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +0 -654
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/InvalidPassword.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html +0 -97
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html +0 -96
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html +0 -97
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html +0 -96
- data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +0 -619
- data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +0 -142
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats.html +0 -368
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats/Process.html +0 -231
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance.html +0 -588
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/CorruptedDirectoryError.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/GenerationsAbsentError.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Group.html +0 -147
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Process.html +0 -279
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/RoleDeniedError.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/StaleDirectoryError.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Stats.html +0 -123
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/UnsupportedGenerationStructureVersionError.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger.html +0 -341
- data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/Log.html +0 -294
- data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/SharedData.html +0 -199
- data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +0 -155
- data/doc/rdoc/classes/PhusionPassenger/AppProcess.html +0 -367
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails.html +0 -95
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner.html +0 -351
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner/Error.html +0 -98
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/CGIFixed.html +0 -200
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner.html +0 -410
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner/Error.html +0 -98
- data/doc/rdoc/classes/PhusionPassenger/ClassicRails/RequestHandler.html +0 -156
- data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions.html +0 -115
- data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions/AnalyticsLogging.html +0 -202
- data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +0 -172
- data/doc/rdoc/classes/PhusionPassenger/DebugLogging.html +0 -273
- data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +0 -145
- data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +0 -162
- data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +0 -141
- data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +0 -673
- data/doc/rdoc/classes/PhusionPassenger/MessageChannel/InvalidHashError.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/MessageClient.html +0 -415
- data/doc/rdoc/classes/PhusionPassenger/NativeSupportLoader.html +0 -134
- data/doc/rdoc/classes/PhusionPassenger/Packaging.html +0 -129
- data/doc/rdoc/classes/PhusionPassenger/PlatformInfo.html +0 -1809
- data/doc/rdoc/classes/PhusionPassenger/Plugin.html +0 -237
- data/doc/rdoc/classes/PhusionPassenger/Rack.html +0 -91
- data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +0 -312
- data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner/Error.html +0 -98
- data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +0 -218
- data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions.html +0 -114
- data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging.html +0 -256
- data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ACExtension.html +0 -139
- data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ASBenchmarkableExtension.html +0 -118
- data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ExceptionLogger.html +0 -135
- data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +0 -378
- data/doc/rdoc/classes/PhusionPassenger/Standalone.html +0 -111
- data/doc/rdoc/classes/PhusionPassenger/Standalone/AppFinder.html +0 -252
- data/doc/rdoc/classes/PhusionPassenger/Standalone/Command.html +0 -161
- data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile.html +0 -368
- data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile/DisallowedContextError.html +0 -132
- data/doc/rdoc/classes/PhusionPassenger/Standalone/HelpCommand.html +0 -151
- data/doc/rdoc/classes/PhusionPassenger/Standalone/Main.html +0 -189
- data/doc/rdoc/classes/PhusionPassenger/Standalone/PackageRuntimeCommand.html +0 -177
- data/doc/rdoc/classes/PhusionPassenger/Standalone/RuntimeInstaller.html +0 -341
- data/doc/rdoc/classes/PhusionPassenger/Standalone/StartCommand.html +0 -203
- data/doc/rdoc/classes/PhusionPassenger/Standalone/StatusCommand.html +0 -156
- data/doc/rdoc/classes/PhusionPassenger/Standalone/StopCommand.html +0 -168
- data/doc/rdoc/classes/PhusionPassenger/Standalone/Utils.html +0 -86
- data/doc/rdoc/classes/PhusionPassenger/Standalone/VersionCommand.html +0 -135
- data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +0 -125
- data/doc/rdoc/classes/PhusionPassenger/Utils.html +0 -1550
- data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher.html +0 -204
- data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/DirInfo.html +0 -171
- data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/FileInfo.html +0 -140
- data/doc/rdoc/classes/PhusionPassenger/Utils/HostsFileParser.html +0 -260
- data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +0 -169
- data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput.html +0 -265
- data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput/Tempfile.html +0 -120
- data/doc/rdoc/classes/PhusionPassenger/Utils/UnseekableSocket.html +0 -561
- data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +0 -140
- data/doc/rdoc/classes/PhusionPassenger/WSGI.html +0 -89
- data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +0 -182
- data/doc/rdoc/classes/Process.html +0 -115
- data/doc/rdoc/classes/Signal.html +0 -139
- data/doc/rdoc/created.rid +0 -1
- data/doc/rdoc/files/DEVELOPERS_TXT.html +0 -276
- data/doc/rdoc/files/README.html +0 -157
- data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +0 -130
- data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +0 -135
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +0 -128
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools/memory_stats_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools/server_instance_rb.html +0 -132
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/analytics_logger_rb.html +0 -129
- data/doc/rdoc/files/lib/phusion_passenger/app_process_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/classic_rails/application_spawner_rb.html +0 -141
- data/doc/rdoc/files/lib/phusion_passenger/classic_rails/cgi_fixed_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/classic_rails/framework_spawner_rb.html +0 -146
- data/doc/rdoc/files/lib/phusion_passenger/classic_rails/request_handler_rb.html +0 -125
- data/doc/rdoc/files/lib/phusion_passenger/classic_rails_extensions/init_rb.html +0 -132
- data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/debug_logging_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +0 -147
- data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +0 -120
- data/doc/rdoc/files/lib/phusion_passenger/message_client_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/native_support_rb.html +0 -132
- data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/apache_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/binary_compatibility_rb.html +0 -129
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/compiler_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/curl_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/documentation_tools_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/linux_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/operating_system_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/ruby_rb.html +0 -128
- data/doc/rdoc/files/lib/phusion_passenger/platform_info/zlib_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/plugin_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/public_api_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +0 -137
- data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +0 -125
- data/doc/rdoc/files/lib/phusion_passenger/rails3_extensions/init_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +0 -160
- data/doc/rdoc/files/lib/phusion_passenger/standalone/app_finder_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/standalone/command_rb.html +0 -135
- data/doc/rdoc/files/lib/phusion_passenger/standalone/config_file_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/standalone/help_command_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/standalone/main_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/standalone/package_runtime_command_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/standalone/runtime_installer_rb.html +0 -133
- data/doc/rdoc/files/lib/phusion_passenger/standalone/start_command_rb.html +0 -136
- data/doc/rdoc/files/lib/phusion_passenger/standalone/status_command_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/standalone/stop_command_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/standalone/utils_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/standalone/version_command_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/utils/file_system_watcher_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/utils/hosts_file_parser_rb.html +0 -120
- data/doc/rdoc/files/lib/phusion_passenger/utils/rewindable_input_rb.html +0 -100
- data/doc/rdoc/files/lib/phusion_passenger/utils/tmpdir_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/utils/unseekable_socket_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +0 -179
- data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +0 -132
- data/doc/rdoc/fr_class_index.html +0 -138
- data/doc/rdoc/fr_file_index.html +0 -108
- data/doc/rdoc/fr_method_index.html +0 -430
- data/doc/rdoc/index.html +0 -26
- data/doc/rdoc/rdoc-style.css +0 -187
- data/ext/apache2/LICENSE-CNRI.TXT +0 -79
- data/ext/common/Utils/BlockingScalar.h +0 -50
- data/ext/common/Utils/FileHandleGuard.h +0 -81
data/ext/boost/thread/tss.hpp
CHANGED
@@ -36,17 +36,13 @@
|
|
36
36
|
#if !defined( BOOST_EXCEPTION_DISABLE )
|
37
37
|
# include <boost/exception/exception.hpp>
|
38
38
|
# include <boost/current_function.hpp>
|
39
|
-
# define BOOST_THROW_EXCEPTION(x) ::boost::
|
40
|
-
::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\
|
41
|
-
::boost::throw_file(__FILE__) <<\
|
42
|
-
::boost::throw_line(__LINE__))
|
39
|
+
# define BOOST_THROW_EXCEPTION(x) ::boost::exception_detail::throw_exception_(x,BOOST_CURRENT_FUNCTION,__FILE__,__LINE__)
|
43
40
|
#else
|
44
41
|
# define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x)
|
45
42
|
#endif
|
46
43
|
|
47
44
|
namespace boost
|
48
45
|
{
|
49
|
-
|
50
46
|
#ifdef BOOST_NO_EXCEPTIONS
|
51
47
|
|
52
48
|
void throw_exception( std::exception const & e ); // user defined
|
@@ -70,6 +66,26 @@ template<class E> BOOST_ATTRIBUTE_NORETURN inline void throw_exception( E const
|
|
70
66
|
|
71
67
|
#endif
|
72
68
|
|
69
|
+
#if !defined( BOOST_EXCEPTION_DISABLE )
|
70
|
+
namespace
|
71
|
+
exception_detail
|
72
|
+
{
|
73
|
+
template <class E>
|
74
|
+
BOOST_ATTRIBUTE_NORETURN
|
75
|
+
void
|
76
|
+
throw_exception_( E const & x, char const * current_function, char const * file, int line )
|
77
|
+
{
|
78
|
+
boost::throw_exception(
|
79
|
+
set_info(
|
80
|
+
set_info(
|
81
|
+
set_info(
|
82
|
+
enable_error_info(x),
|
83
|
+
throw_function(current_function)),
|
84
|
+
throw_file(file)),
|
85
|
+
throw_line(line)));
|
86
|
+
}
|
87
|
+
}
|
88
|
+
#endif
|
73
89
|
} // namespace boost
|
74
90
|
|
75
91
|
#endif // #ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED
|
@@ -40,6 +40,9 @@
|
|
40
40
|
#include <boost/assert.hpp>
|
41
41
|
#include <boost/detail/workaround.hpp>
|
42
42
|
#include <boost/mpl/if.hpp>
|
43
|
+
#if !defined(BOOST_NO_CWCTYPE)
|
44
|
+
#include <cwctype>
|
45
|
+
#endif
|
43
46
|
|
44
47
|
//
|
45
48
|
// the following must not be macros if we are to prefix them
|
@@ -48,9 +51,15 @@
|
|
48
51
|
#ifdef ispunct
|
49
52
|
# undef ispunct
|
50
53
|
#endif
|
54
|
+
#ifdef iswpunct
|
55
|
+
# undef iswpunct
|
56
|
+
#endif
|
51
57
|
#ifdef isspace
|
52
58
|
# undef isspace
|
53
59
|
#endif
|
60
|
+
#ifdef iswspace
|
61
|
+
# undef iswspace
|
62
|
+
#endif
|
54
63
|
//
|
55
64
|
// fix namespace problems:
|
56
65
|
//
|
@@ -58,11 +67,14 @@
|
|
58
67
|
namespace std{
|
59
68
|
using ::ispunct;
|
60
69
|
using ::isspace;
|
70
|
+
#if !defined(BOOST_NO_CWCTYPE)
|
71
|
+
using ::iswpunct;
|
72
|
+
using ::iswspace;
|
73
|
+
#endif
|
61
74
|
}
|
62
75
|
#endif
|
63
76
|
|
64
77
|
namespace boost{
|
65
|
-
|
66
78
|
//===========================================================================
|
67
79
|
// The escaped_list_separator class. Which is a model of TokenizerFunction
|
68
80
|
// An escaped list is a super-set of what is commonly known as a comma
|
@@ -76,17 +88,12 @@ namespace boost{
|
|
76
88
|
struct escaped_list_error : public std::runtime_error{
|
77
89
|
escaped_list_error(const std::string& what_arg):std::runtime_error(what_arg) { }
|
78
90
|
};
|
79
|
-
|
91
|
+
|
80
92
|
|
81
93
|
// The out of the box GCC 2.95 on cygwin does not have a char_traits class.
|
82
94
|
// MSVC does not like the following typename
|
83
|
-
|
84
|
-
|
85
|
-
class Traits = typename std::basic_string<Char>::traits_type >
|
86
|
-
#else
|
87
|
-
template <class Char,
|
88
|
-
class Traits = std::basic_string<Char>::traits_type >
|
89
|
-
#endif
|
95
|
+
template <class Char,
|
96
|
+
class Traits = BOOST_DEDUCED_TYPENAME std::basic_string<Char>::traits_type >
|
90
97
|
class escaped_list_separator {
|
91
98
|
|
92
99
|
private:
|
@@ -100,7 +107,7 @@ namespace boost{
|
|
100
107
|
};
|
101
108
|
string_type escape_;
|
102
109
|
string_type c_;
|
103
|
-
string_type quote_;
|
110
|
+
string_type quote_;
|
104
111
|
bool last_;
|
105
112
|
|
106
113
|
bool is_escape(Char e) {
|
@@ -140,21 +147,21 @@ namespace boost{
|
|
140
147
|
}
|
141
148
|
|
142
149
|
public:
|
143
|
-
|
150
|
+
|
144
151
|
explicit escaped_list_separator(Char e = '\\',
|
145
152
|
Char c = ',',Char q = '\"')
|
146
153
|
: escape_(1,e), c_(1,c), quote_(1,q), last_(false) { }
|
147
|
-
|
154
|
+
|
148
155
|
escaped_list_separator(string_type e, string_type c, string_type q)
|
149
156
|
: escape_(e), c_(c), quote_(q), last_(false) { }
|
150
|
-
|
157
|
+
|
151
158
|
void reset() {last_=false;}
|
152
159
|
|
153
160
|
template <typename InputIterator, typename Token>
|
154
161
|
bool operator()(InputIterator& next,InputIterator end,Token& tok) {
|
155
162
|
bool bInQuote = false;
|
156
163
|
tok = Token();
|
157
|
-
|
164
|
+
|
158
165
|
if (next == end) {
|
159
166
|
if (last_) {
|
160
167
|
last_ = false;
|
@@ -193,8 +200,44 @@ namespace boost{
|
|
193
200
|
//===========================================================================
|
194
201
|
// The classes here are used by offset_separator and char_separator to implement
|
195
202
|
// faster assigning of tokens using assign instead of +=
|
196
|
-
|
203
|
+
|
197
204
|
namespace tokenizer_detail {
|
205
|
+
//===========================================================================
|
206
|
+
// Tokenizer was broken for wide character separators, at least on Windows, since
|
207
|
+
// CRT functions isspace etc only expect values in [0, 0xFF]. Debug build asserts
|
208
|
+
// if higher values are passed in. The traits extension class should take care of this.
|
209
|
+
// Assuming that the conditional will always get optimized out in the function
|
210
|
+
// implementations, argument types are not a problem since both forms of character classifiers
|
211
|
+
// expect an int.
|
212
|
+
// In case there is no cwctype header, we implement the checks manually.
|
213
|
+
// We make use of the fact that the tested categories should fit in ASCII.
|
214
|
+
template<typename traits>
|
215
|
+
struct traits_extension : public traits {
|
216
|
+
typedef typename traits::char_type char_type;
|
217
|
+
static bool isspace(char_type c)
|
218
|
+
{
|
219
|
+
#if !defined(BOOST_NO_CWCTYPE)
|
220
|
+
if (sizeof(char_type) == 1)
|
221
|
+
return std::isspace(c) != 0;
|
222
|
+
else
|
223
|
+
return std::iswspace(c) != 0;
|
224
|
+
#else
|
225
|
+
return static_cast< unsigned >(c) <= 255 && std::isspace(c) != 0;
|
226
|
+
#endif
|
227
|
+
}
|
228
|
+
|
229
|
+
static bool ispunct(char_type c)
|
230
|
+
{
|
231
|
+
#if !defined(BOOST_NO_CWCTYPE)
|
232
|
+
if (sizeof(char_type) == 1)
|
233
|
+
return std::ispunct(c) != 0;
|
234
|
+
else
|
235
|
+
return std::iswpunct(c) != 0;
|
236
|
+
#else
|
237
|
+
return static_cast< unsigned >(c) <= 255 && std::ispunct(c) != 0;
|
238
|
+
#endif
|
239
|
+
}
|
240
|
+
};
|
198
241
|
|
199
242
|
// The assign_or_plus_equal struct contains functions that implement
|
200
243
|
// assign, +=, and clearing based on the iterator type. The
|
@@ -229,26 +272,20 @@ namespace boost{
|
|
229
272
|
|
230
273
|
}
|
231
274
|
|
232
|
-
template<class Token, class Value>
|
233
|
-
static void plus_equal(Token &, const Value &) {
|
234
|
-
|
235
|
-
}
|
275
|
+
template<class Token, class Value>
|
276
|
+
static void plus_equal(Token &, const Value &) { }
|
236
277
|
|
237
278
|
// If we are doing an assign, there is no need for the
|
238
|
-
// the clear.
|
279
|
+
// the clear.
|
239
280
|
//
|
240
281
|
template<class Token>
|
241
|
-
static void clear(Token &) {
|
242
|
-
|
243
|
-
}
|
282
|
+
static void clear(Token &) { }
|
244
283
|
};
|
245
284
|
|
246
285
|
template <>
|
247
286
|
struct assign_or_plus_equal<std::input_iterator_tag> {
|
248
287
|
template<class Iterator, class Token>
|
249
|
-
static void assign(Iterator b, Iterator e, Token &t) {
|
250
|
-
|
251
|
-
}
|
288
|
+
static void assign(Iterator b, Iterator e, Token &t) { }
|
252
289
|
template<class Token, class Value>
|
253
290
|
static void plus_equal(Token &t, const Value &v) {
|
254
291
|
t += v;
|
@@ -284,10 +321,10 @@ namespace boost{
|
|
284
321
|
typedef typename cat::type iterator_category;
|
285
322
|
};
|
286
323
|
|
287
|
-
|
288
|
-
}
|
289
324
|
|
290
|
-
|
325
|
+
} // namespace tokenizer_detail
|
326
|
+
|
327
|
+
|
291
328
|
//===========================================================================
|
292
329
|
// The offset_separator class, which is a model of TokenizerFunction.
|
293
330
|
// Offset breaks a string into tokens based on a range of offsets
|
@@ -299,7 +336,7 @@ namespace boost{
|
|
299
336
|
unsigned int current_offset_;
|
300
337
|
bool wrap_offsets_;
|
301
338
|
bool return_partial_last_;
|
302
|
-
|
339
|
+
|
303
340
|
public:
|
304
341
|
template <typename Iter>
|
305
342
|
offset_separator(Iter begin, Iter end, bool wrap_offsets = true,
|
@@ -307,7 +344,7 @@ namespace boost{
|
|
307
344
|
: offsets_(begin,end), current_offset_(0),
|
308
345
|
wrap_offsets_(wrap_offsets),
|
309
346
|
return_partial_last_(return_partial_last) { }
|
310
|
-
|
347
|
+
|
311
348
|
offset_separator()
|
312
349
|
: offsets_(1,1), current_offset_(),
|
313
350
|
wrap_offsets_(true), return_partial_last_(true) { }
|
@@ -320,18 +357,16 @@ namespace boost{
|
|
320
357
|
bool operator()(InputIterator& next, InputIterator end, Token& tok)
|
321
358
|
{
|
322
359
|
typedef tokenizer_detail::assign_or_plus_equal<
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
InputIterator>::iterator_category> assigner;
|
328
|
-
|
360
|
+
BOOST_DEDUCED_TYPENAME tokenizer_detail::get_iterator_category<
|
361
|
+
InputIterator
|
362
|
+
>::iterator_category
|
363
|
+
> assigner;
|
329
364
|
|
330
365
|
BOOST_ASSERT(!offsets_.empty());
|
331
|
-
|
366
|
+
|
332
367
|
assigner::clear(tok);
|
333
368
|
InputIterator start(next);
|
334
|
-
|
369
|
+
|
335
370
|
if (next == end)
|
336
371
|
return false;
|
337
372
|
|
@@ -342,7 +377,7 @@ namespace boost{
|
|
342
377
|
else
|
343
378
|
return false;
|
344
379
|
}
|
345
|
-
|
380
|
+
|
346
381
|
int c = offsets_[current_offset_];
|
347
382
|
int i = 0;
|
348
383
|
for (; i < c; ++i) {
|
@@ -350,11 +385,11 @@ namespace boost{
|
|
350
385
|
assigner::plus_equal(tok,*next++);
|
351
386
|
}
|
352
387
|
assigner::assign(start,next,tok);
|
353
|
-
|
388
|
+
|
354
389
|
if (!return_partial_last_)
|
355
390
|
if (i < (c-1) )
|
356
391
|
return false;
|
357
|
-
|
392
|
+
|
358
393
|
++current_offset_;
|
359
394
|
return true;
|
360
395
|
}
|
@@ -378,15 +413,11 @@ namespace boost{
|
|
378
413
|
enum empty_token_policy { drop_empty_tokens, keep_empty_tokens };
|
379
414
|
|
380
415
|
// The out of the box GCC 2.95 on cygwin does not have a char_traits class.
|
381
|
-
|
382
|
-
|
383
|
-
typename Traits = typename std::basic_string<Char>::traits_type >
|
384
|
-
#else
|
385
|
-
template <typename Char,
|
386
|
-
typename Traits = std::basic_string<Char>::traits_type >
|
387
|
-
#endif
|
416
|
+
template <typename Char,
|
417
|
+
typename Tr = BOOST_DEDUCED_TYPENAME std::basic_string<Char>::traits_type >
|
388
418
|
class char_separator
|
389
419
|
{
|
420
|
+
typedef tokenizer_detail::traits_extension<Tr> Traits;
|
390
421
|
typedef std::basic_string<Char,Traits> string_type;
|
391
422
|
public:
|
392
423
|
explicit
|
@@ -407,8 +438,8 @@ namespace boost{
|
|
407
438
|
// use ispunct() for kept delimiters and isspace for dropped.
|
408
439
|
explicit
|
409
440
|
char_separator()
|
410
|
-
: m_use_ispunct(true),
|
411
|
-
m_use_isspace(true),
|
441
|
+
: m_use_ispunct(true),
|
442
|
+
m_use_isspace(true),
|
412
443
|
m_empty_tokens(drop_empty_tokens) { }
|
413
444
|
|
414
445
|
void reset() { }
|
@@ -417,11 +448,10 @@ namespace boost{
|
|
417
448
|
bool operator()(InputIterator& next, InputIterator end, Token& tok)
|
418
449
|
{
|
419
450
|
typedef tokenizer_detail::assign_or_plus_equal<
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
InputIterator>::iterator_category> assigner;
|
451
|
+
BOOST_DEDUCED_TYPENAME tokenizer_detail::get_iterator_category<
|
452
|
+
InputIterator
|
453
|
+
>::iterator_category
|
454
|
+
> assigner;
|
425
455
|
|
426
456
|
assigner::clear(tok);
|
427
457
|
|
@@ -429,7 +459,7 @@ namespace boost{
|
|
429
459
|
if (m_empty_tokens == drop_empty_tokens)
|
430
460
|
for (; next != end && is_dropped(*next); ++next)
|
431
461
|
{ }
|
432
|
-
|
462
|
+
|
433
463
|
InputIterator start(next);
|
434
464
|
|
435
465
|
if (m_empty_tokens == drop_empty_tokens) {
|
@@ -446,13 +476,13 @@ namespace boost{
|
|
446
476
|
// append all the non delim characters
|
447
477
|
for (; next != end && !is_dropped(*next) && !is_kept(*next); ++next)
|
448
478
|
assigner::plus_equal(tok,*next);
|
449
|
-
}
|
479
|
+
}
|
450
480
|
else { // m_empty_tokens == keep_empty_tokens
|
451
|
-
|
481
|
+
|
452
482
|
// Handle empty token at the end
|
453
483
|
if (next == end)
|
454
484
|
{
|
455
|
-
if (m_output_done == false)
|
485
|
+
if (m_output_done == false)
|
456
486
|
{
|
457
487
|
m_output_done = true;
|
458
488
|
assigner::assign(start,next,tok);
|
@@ -461,7 +491,7 @@ namespace boost{
|
|
461
491
|
else
|
462
492
|
return false;
|
463
493
|
}
|
464
|
-
|
494
|
+
|
465
495
|
if (is_kept(*next)) {
|
466
496
|
if (m_output_done == false)
|
467
497
|
m_output_done = true;
|
@@ -493,13 +523,13 @@ namespace boost{
|
|
493
523
|
bool m_use_isspace;
|
494
524
|
empty_token_policy m_empty_tokens;
|
495
525
|
bool m_output_done;
|
496
|
-
|
526
|
+
|
497
527
|
bool is_kept(Char E) const
|
498
|
-
{
|
528
|
+
{
|
499
529
|
if (m_kept_delims.length())
|
500
530
|
return m_kept_delims.find(E) != string_type::npos;
|
501
531
|
else if (m_use_ispunct) {
|
502
|
-
return
|
532
|
+
return Traits::ispunct(E) != 0;
|
503
533
|
} else
|
504
534
|
return false;
|
505
535
|
}
|
@@ -508,7 +538,7 @@ namespace boost{
|
|
508
538
|
if (m_dropped_delims.length())
|
509
539
|
return m_dropped_delims.find(E) != string_type::npos;
|
510
540
|
else if (m_use_isspace) {
|
511
|
-
return
|
541
|
+
return Traits::isspace(E) != 0;
|
512
542
|
} else
|
513
543
|
return false;
|
514
544
|
}
|
@@ -525,31 +555,27 @@ namespace boost{
|
|
525
555
|
// cannot be returned as tokens. These are often whitespace
|
526
556
|
|
527
557
|
// The out of the box GCC 2.95 on cygwin does not have a char_traits class.
|
528
|
-
|
529
|
-
|
530
|
-
class Traits = typename std::basic_string<Char>::traits_type >
|
531
|
-
#else
|
532
|
-
template <class Char,
|
533
|
-
class Traits = std::basic_string<Char>::traits_type >
|
534
|
-
#endif
|
558
|
+
template <class Char,
|
559
|
+
class Tr = BOOST_DEDUCED_TYPENAME std::basic_string<Char>::traits_type >
|
535
560
|
class char_delimiters_separator {
|
536
|
-
private:
|
561
|
+
private:
|
537
562
|
|
563
|
+
typedef tokenizer_detail::traits_extension<Tr> Traits;
|
538
564
|
typedef std::basic_string<Char,Traits> string_type;
|
539
565
|
string_type returnable_;
|
540
566
|
string_type nonreturnable_;
|
541
567
|
bool return_delims_;
|
542
568
|
bool no_ispunct_;
|
543
569
|
bool no_isspace_;
|
544
|
-
|
570
|
+
|
545
571
|
bool is_ret(Char E)const
|
546
|
-
{
|
572
|
+
{
|
547
573
|
if (returnable_.length())
|
548
574
|
return returnable_.find(E) != string_type::npos;
|
549
575
|
else{
|
550
576
|
if (no_ispunct_) {return false;}
|
551
577
|
else{
|
552
|
-
int r =
|
578
|
+
int r = Traits::ispunct(E);
|
553
579
|
return r != 0;
|
554
580
|
}
|
555
581
|
}
|
@@ -561,12 +587,12 @@ namespace boost{
|
|
561
587
|
else{
|
562
588
|
if (no_isspace_) {return false;}
|
563
589
|
else{
|
564
|
-
int r =
|
590
|
+
int r = Traits::isspace(E);
|
565
591
|
return r != 0;
|
566
592
|
}
|
567
593
|
}
|
568
594
|
}
|
569
|
-
|
595
|
+
|
570
596
|
public:
|
571
597
|
explicit char_delimiters_separator(bool return_delims = false,
|
572
598
|
const Char* returnable = 0,
|
@@ -575,7 +601,7 @@ namespace boost{
|
|
575
601
|
nonreturnable_(nonreturnable ? nonreturnable:string_type().c_str()),
|
576
602
|
return_delims_(return_delims), no_ispunct_(returnable!=0),
|
577
603
|
no_isspace_(nonreturnable!=0) { }
|
578
|
-
|
604
|
+
|
579
605
|
void reset() { }
|
580
606
|
|
581
607
|
public:
|
@@ -583,16 +609,16 @@ namespace boost{
|
|
583
609
|
template <typename InputIterator, typename Token>
|
584
610
|
bool operator()(InputIterator& next, InputIterator end,Token& tok) {
|
585
611
|
tok = Token();
|
586
|
-
|
612
|
+
|
587
613
|
// skip past all nonreturnable delims
|
588
614
|
// skip past the returnable only if we are not returning delims
|
589
615
|
for (;next!=end && ( is_nonret(*next) || (is_ret(*next)
|
590
616
|
&& !return_delims_ ) );++next) { }
|
591
|
-
|
617
|
+
|
592
618
|
if (next == end) {
|
593
619
|
return false;
|
594
620
|
}
|
595
|
-
|
621
|
+
|
596
622
|
// if we are to return delims and we are one a returnable one
|
597
623
|
// move past it and stop
|
598
624
|
if (is_ret(*next) && return_delims_) {
|
@@ -603,8 +629,8 @@ namespace boost{
|
|
603
629
|
// append all the non delim characters
|
604
630
|
for (;next!=end && !is_nonret(*next) && !is_ret(*next);++next)
|
605
631
|
tok+=*next;
|
606
|
-
|
607
|
-
|
632
|
+
|
633
|
+
|
608
634
|
return true;
|
609
635
|
}
|
610
636
|
};
|
@@ -612,10 +638,4 @@ namespace boost{
|
|
612
638
|
|
613
639
|
} //namespace boost
|
614
640
|
|
615
|
-
|
616
|
-
#endif
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
641
|
+
#endif
|