Boost logo

Boost-Commit :

From: daniel_james_at_[hidden]
Date: 2007-12-08 06:05:03


Author: danieljames
Date: 2007-12-08 06:05:02 EST (Sat, 08 Dec 2007)
New Revision: 41865
URL: http://svn.boost.org/trac/boost/changeset/41865

Log:
Merge from trunk.
Properties modified:
   branches/fix-links/ (props changed)
Text files modified:
   branches/fix-links/boost/asio/ssl/detail/openssl_operation.hpp | 38 +++++-
   branches/fix-links/libs/asio/doc/reference.qbk | 241 +++++++++++++++++++++++++--------------
   branches/fix-links/libs/asio/doc/reference.xsl | 22 +++
   branches/fix-links/libs/thread/test/test_mutex.cpp | 2
   branches/fix-links/status/explicit-failures-markup.xml | 27 ++-
   branches/fix-links/tools/build/v2/tools/msvc.jam | 3
   6 files changed, 225 insertions(+), 108 deletions(-)

Modified: branches/fix-links/boost/asio/ssl/detail/openssl_operation.hpp
==============================================================================
--- branches/fix-links/boost/asio/ssl/detail/openssl_operation.hpp (original)
+++ branches/fix-links/boost/asio/ssl/detail/openssl_operation.hpp 2007-12-08 06:05:02 EST (Sat, 08 Dec 2007)
@@ -101,6 +101,10 @@
       &openssl_operation::do_async_write,
       this, boost::arg<1>(), boost::arg<2>()
     );
+ read_ = boost::bind(
+ &openssl_operation::do_async_read,
+ this
+ );
     handler_= boost::bind(
       &openssl_operation::async_user_handler,
       this, boost::arg<1>(), boost::arg<2>()
@@ -123,6 +127,10 @@
       &openssl_operation::do_sync_write,
       this, boost::arg<1>(), boost::arg<2>()
     );
+ read_ = boost::bind(
+ &openssl_operation::do_sync_read,
+ this
+ );
     handler_ = boost::bind(
       &openssl_operation::sync_user_handler,
       this, boost::arg<1>(), boost::arg<2>()
@@ -135,7 +143,7 @@
   int start()
   {
     int rc = primitive_( session_ );
- int sys_error_code = ERR_get_error();
+
     bool is_operation_done = (rc > 0);
                 // For connect/accept/shutdown, the operation
                 // is done, when return code is 1
@@ -145,6 +153,8 @@
     int error_code = !is_operation_done ?
           ::SSL_get_error( session_, rc ) :
           0;
+ int sys_error_code = ERR_get_error();
+
     bool is_read_needed = (error_code == SSL_ERROR_WANT_READ);
     bool is_write_needed = (error_code == SSL_ERROR_WANT_WRITE ||
                               ::BIO_ctrl_pending( ssl_bio_ ));
@@ -212,6 +222,10 @@
 
         return start();
       }
+ else if (is_read_needed)
+ {
+ return read_();
+ }
     }
 
     // Continue with operation, flush any SSL data out to network...
@@ -223,10 +237,12 @@
   typedef boost::function<int (const boost::system::error_code&, int)>
     int_handler_func;
   typedef boost::function<int (bool, int)> write_func;
+ typedef boost::function<int ()> read_func;
 
   ssl_primitive_func primitive_;
   user_handler_func user_handler_;
   write_func write_;
+ read_func read_;
   int_handler_func handler_;
     
   net_buffer send_buf_; // buffers for network IO
@@ -250,8 +266,15 @@
     throw boost::system::system_error(error);
   }
     
- int async_user_handler(const boost::system::error_code& error, int rc)
+ int async_user_handler(boost::system::error_code error, int rc)
   {
+ if (rc < 0)
+ {
+ if (!error)
+ error = boost::asio::error::no_recovery;
+ rc = 0;
+ }
+
     user_handler_(error, rc);
     return 0;
   }
@@ -316,8 +339,8 @@
     }
     
     // OPeration is not done and writing to net has been made...
- // start reading...
- do_async_read();
+ // start operation again
+ start();
           
     return 0;
   }
@@ -340,7 +363,7 @@
       handler_(error, rc);
   }
 
- void do_async_read()
+ int do_async_read()
   {
     // Wait for new data
     socket_.async_read_some
@@ -355,6 +378,7 @@
         boost::asio::placeholders::bytes_transferred
       )
     );
+ return 0;
   }
 
   void async_read_handler(const boost::system::error_code& error,
@@ -433,8 +457,8 @@
       // Finish the operation, with success
       return rc;
                 
- // Operation is not finished, read data from net...
- return do_sync_read();
+ // Operation is not finished, start again.
+ return start();
   }
 
   int do_sync_read()

Modified: branches/fix-links/libs/asio/doc/reference.qbk
==============================================================================
--- branches/fix-links/libs/asio/doc/reference.qbk (original)
+++ branches/fix-links/libs/asio/doc/reference.qbk 2007-12-08 06:05:02 EST (Sat, 08 Dec 2007)
@@ -3879,7 +3879,7 @@
 
 The maximum length of the queue of pending incoming connections.
 
- static const int max_connections;
+ static const int max_connections = implementation_defined;
 
 
 
@@ -3894,7 +3894,7 @@
 
 Specify that the data should not be subject to routing.
 
- static const int message_do_not_route;
+ static const int message_do_not_route = implementation_defined;
 
 
 
@@ -3925,7 +3925,7 @@
 
 Process out-of-band data.
 
- static const int message_out_of_band;
+ static const int message_out_of_band = implementation_defined;
 
 
 
@@ -3940,7 +3940,7 @@
 
 Peek at incoming data without removing it from the input queue.
 
- static const int message_peek;
+ static const int message_peek = implementation_defined;
 
 
 
@@ -8445,7 +8445,7 @@
 
 The maximum length of the queue of pending incoming connections.
 
- static const int max_connections;
+ static const int max_connections = implementation_defined;
 
 
 
@@ -8460,7 +8460,7 @@
 
 Specify that the data should not be subject to routing.
 
- static const int message_do_not_route;
+ static const int message_do_not_route = implementation_defined;
 
 
 
@@ -8491,7 +8491,7 @@
 
 Process out-of-band data.
 
- static const int message_out_of_band;
+ static const int message_out_of_band = implementation_defined;
 
 
 
@@ -8506,7 +8506,7 @@
 
 Peek at incoming data without removing it from the input queue.
 
- static const int message_peek;
+ static const int message_peek = implementation_defined;
 
 
 
@@ -11089,7 +11089,7 @@
 
 The maximum length of the queue of pending incoming connections.
 
- static const int max_connections;
+ static const int max_connections = implementation_defined;
 
 
 
@@ -11104,7 +11104,7 @@
 
 Specify that the data should not be subject to routing.
 
- static const int message_do_not_route;
+ static const int message_do_not_route = implementation_defined;
 
 
 
@@ -11135,7 +11135,7 @@
 
 Process out-of-band data.
 
- static const int message_out_of_band;
+ static const int message_out_of_band = implementation_defined;
 
 
 
@@ -11150,7 +11150,7 @@
 
 Peek at incoming data without removing it from the input queue.
 
- static const int message_peek;
+ static const int message_peek = implementation_defined;
 
 
 
@@ -13870,7 +13870,7 @@
 
 The maximum length of the queue of pending incoming connections.
 
- static const int max_connections;
+ static const int max_connections = implementation_defined;
 
 
 
@@ -13885,7 +13885,7 @@
 
 Specify that the data should not be subject to routing.
 
- static const int message_do_not_route;
+ static const int message_do_not_route = implementation_defined;
 
 
 
@@ -13916,7 +13916,7 @@
 
 Process out-of-band data.
 
- static const int message_out_of_band;
+ static const int message_out_of_band = implementation_defined;
 
 
 
@@ -13931,7 +13931,7 @@
 
 Peek at incoming data without removing it from the input queue.
 
- static const int message_peek;
+ static const int message_peek = implementation_defined;
 
 
 
@@ -17346,7 +17346,7 @@
 
 The maximum length of the queue of pending incoming connections.
 
- static const int max_connections;
+ static const int max_connections = implementation_defined;
 
 
 
@@ -17361,7 +17361,7 @@
 
 Specify that the data should not be subject to routing.
 
- static const int message_do_not_route;
+ static const int message_do_not_route = implementation_defined;
 
 
 
@@ -17392,7 +17392,7 @@
 
 Process out-of-band data.
 
- static const int message_out_of_band;
+ static const int message_out_of_band = implementation_defined;
 
 
 
@@ -17407,7 +17407,7 @@
 
 Peek at incoming data without removing it from the input queue.
 
- static const int message_peek;
+ static const int message_peek = implementation_defined;
 
 
 
@@ -19793,7 +19793,7 @@
 
 The default buffer size.
 
- static const std::size_t default_buffer_size;
+ static const std::size_t default_buffer_size = implementation_defined;
 
 
 
@@ -20963,7 +20963,7 @@
 
 The default buffer size.
 
- static const std::size_t default_buffer_size;
+ static const std::size_t default_buffer_size = implementation_defined;
 
 
 
@@ -22881,7 +22881,7 @@
 
 
 
- static const boost::system::error_category & addrinfo_category;
+ static const boost::system::error_category & addrinfo_category = boost::asio::error::get_addrinfo_category();
 
 
 
@@ -23087,6 +23087,66 @@
 [endsect]
 
 
+
+[section:error__get_addrinfo_category error::get_addrinfo_category]
+
+
+
+ const boost::system::error_category & get_addrinfo_category();
+
+
+
+[endsect]
+
+
+
+[section:error__get_misc_category error::get_misc_category]
+
+
+
+ const boost::system::error_category & get_misc_category();
+
+
+
+[endsect]
+
+
+
+[section:error__get_netdb_category error::get_netdb_category]
+
+
+
+ const boost::system::error_category & get_netdb_category();
+
+
+
+[endsect]
+
+
+
+[section:error__get_ssl_category error::get_ssl_category]
+
+
+
+ const boost::system::error_category & get_ssl_category();
+
+
+
+[endsect]
+
+
+
+[section:error__get_system_category error::get_system_category]
+
+
+
+ const boost::system::error_category & get_system_category();
+
+
+
+[endsect]
+
+
 [section:error__make_error_code error::make_error_code]
 
 
@@ -23178,7 +23238,7 @@
 
 
 
- static const boost::system::error_category & misc_category;
+ static const boost::system::error_category & misc_category = boost::asio::error::get_misc_category();
 
 
 
@@ -23210,6 +23270,11 @@
     [Element not found. ]
   ]
 
+ [
+ [fd_set_failure]
+ [The descriptor cannot fit into the select system call's fd_set. ]
+ ]
+
 ]
 
 
@@ -23222,7 +23287,7 @@
 
 
 
- static const boost::system::error_category & netdb_category;
+ static const boost::system::error_category & netdb_category = boost::asio::error::get_netdb_category();
 
 
 
@@ -23271,7 +23336,7 @@
 
 
 
- static const boost::system::error_category & ssl_category;
+ static const boost::system::error_category & ssl_category = boost::asio::error::get_ssl_category();
 
 
 
@@ -23300,7 +23365,7 @@
 
 
 
- static const boost::system::error_category & system_category;
+ static const boost::system::error_category & system_category = boost::asio::error::get_system_category();
 
 
 
@@ -27770,7 +27835,7 @@
 
 Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system.
 
- static const int address_configured;
+ static const int address_configured = implementation_defined;
 
 
 
@@ -27785,7 +27850,7 @@
 
 If used with v4_mapped, return all matching IPv6 and IPv4 addresses.
 
- static const int all_matching;
+ static const int all_matching = implementation_defined;
 
 
 
@@ -27886,7 +27951,7 @@
 
 Determine the canonical name of the host specified in the query.
 
- static const int canonical_name;
+ static const int canonical_name = implementation_defined;
 
 
 
@@ -27925,7 +27990,7 @@
 
 Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted.
 
- static const int numeric_host;
+ static const int numeric_host = implementation_defined;
 
 
 
@@ -27940,7 +28005,7 @@
 
 Service name should be treated as a numeric string defining a port number and no name resolution should be attempted.
 
- static const int numeric_service;
+ static const int numeric_service = implementation_defined;
 
 
 
@@ -27955,7 +28020,7 @@
 
 Indicate that returned endpoint is intended for use as a locally bound socket endpoint.
 
- static const int passive;
+ static const int passive = implementation_defined;
 
 
 
@@ -27995,7 +28060,7 @@
 
 If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses.
 
- static const int v4_mapped;
+ static const int v4_mapped = implementation_defined;
 
 
 
@@ -28267,7 +28332,7 @@
 
 Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system.
 
- static const int address_configured;
+ static const int address_configured = implementation_defined;
 
 
 
@@ -28279,7 +28344,7 @@
 
 If used with v4_mapped, return all matching IPv6 and IPv4 addresses.
 
- static const int all_matching;
+ static const int all_matching = implementation_defined;
 
 
 
@@ -28291,7 +28356,7 @@
 
 Determine the canonical name of the host specified in the query.
 
- static const int canonical_name;
+ static const int canonical_name = implementation_defined;
 
 
 
@@ -28303,7 +28368,7 @@
 
 Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted.
 
- static const int numeric_host;
+ static const int numeric_host = implementation_defined;
 
 
 
@@ -28315,7 +28380,7 @@
 
 Service name should be treated as a numeric string defining a port number and no name resolution should be attempted.
 
- static const int numeric_service;
+ static const int numeric_service = implementation_defined;
 
 
 
@@ -28327,7 +28392,7 @@
 
 Indicate that returned endpoint is intended for use as a locally bound socket endpoint.
 
- static const int passive;
+ static const int passive = implementation_defined;
 
 
 
@@ -28339,7 +28404,7 @@
 
 If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses.
 
- static const int v4_mapped;
+ static const int v4_mapped = implementation_defined;
 
 
 
@@ -33256,7 +33321,7 @@
 
 The maximum length of the queue of pending incoming connections.
 
- static const int max_connections;
+ static const int max_connections = implementation_defined;
 
 
 
@@ -33268,7 +33333,7 @@
 
 Specify that the data should not be subject to routing.
 
- static const int message_do_not_route;
+ static const int message_do_not_route = implementation_defined;
 
 
 
@@ -33293,7 +33358,7 @@
 
 Process out-of-band data.
 
- static const int message_out_of_band;
+ static const int message_out_of_band = implementation_defined;
 
 
 
@@ -33305,7 +33370,7 @@
 
 Peek at incoming data without removing it from the input queue.
 
- static const int message_peek;
+ static const int message_peek = implementation_defined;
 
 
 
@@ -33862,7 +33927,7 @@
 
 Implement various bug workarounds.
 
- static const int default_workarounds;
+ static const int default_workarounds = implementation_defined;
 
 
 
@@ -34091,7 +34156,7 @@
 
 Disable SSL v2.
 
- static const int no_sslv2;
+ static const int no_sslv2 = implementation_defined;
 
 
 
@@ -34106,7 +34171,7 @@
 
 Disable SSL v3.
 
- static const int no_sslv3;
+ static const int no_sslv3 = implementation_defined;
 
 
 
@@ -34121,7 +34186,7 @@
 
 Disable TLS v1.
 
- static const int no_tlsv1;
+ static const int no_tlsv1 = implementation_defined;
 
 
 
@@ -34450,7 +34515,7 @@
 
 Always create a new key when using tmp_dh parameters.
 
- static const int single_dh_use;
+ static const int single_dh_use = implementation_defined;
 
 
 
@@ -34874,7 +34939,7 @@
 
 Do not request client certificate on renegotiation. Ignored unless verify_peer is set.
 
- static const int verify_client_once;
+ static const int verify_client_once = implementation_defined;
 
 
 
@@ -34889,7 +34954,7 @@
 
 Fail verification if the peer has no certificate. Ignored unless verify_peer is set.
 
- static const int verify_fail_if_no_peer_cert;
+ static const int verify_fail_if_no_peer_cert = implementation_defined;
 
 
 
@@ -34920,7 +34985,7 @@
 
 No verification.
 
- static const int verify_none;
+ static const int verify_none = implementation_defined;
 
 
 
@@ -34935,7 +35000,7 @@
 
 Verify the peer.
 
- static const int verify_peer;
+ static const int verify_peer = implementation_defined;
 
 
 
@@ -35251,7 +35316,7 @@
 
 Implement various bug workarounds.
 
- static const int default_workarounds;
+ static const int default_workarounds = implementation_defined;
 
 
 
@@ -35367,7 +35432,7 @@
 
 Disable SSL v2.
 
- static const int no_sslv2;
+ static const int no_sslv2 = implementation_defined;
 
 
 
@@ -35379,7 +35444,7 @@
 
 Disable SSL v3.
 
- static const int no_sslv3;
+ static const int no_sslv3 = implementation_defined;
 
 
 
@@ -35391,7 +35456,7 @@
 
 Disable TLS v1.
 
- static const int no_tlsv1;
+ static const int no_tlsv1 = implementation_defined;
 
 
 
@@ -35443,7 +35508,7 @@
 
 Always create a new key when using tmp_dh parameters.
 
- static const int single_dh_use;
+ static const int single_dh_use = implementation_defined;
 
 
 
@@ -35455,7 +35520,7 @@
 
 Do not request client certificate on renegotiation. Ignored unless verify_peer is set.
 
- static const int verify_client_once;
+ static const int verify_client_once = implementation_defined;
 
 
 
@@ -35467,7 +35532,7 @@
 
 Fail verification if the peer has no certificate. Ignored unless verify_peer is set.
 
- static const int verify_fail_if_no_peer_cert;
+ static const int verify_fail_if_no_peer_cert = implementation_defined;
 
 
 
@@ -35492,7 +35557,7 @@
 
 No verification.
 
- static const int verify_none;
+ static const int verify_none = implementation_defined;
 
 
 
@@ -35504,7 +35569,7 @@
 
 Verify the peer.
 
- static const int verify_peer;
+ static const int verify_peer = implementation_defined;
 
 
 
@@ -38992,12 +39057,12 @@
 
 [endsect]
 
-[section:error__addrinfo_errors__gt_ error::addrinfo_errors >]
+[section:is_error_code_enum_lt__addrinfo_errors__gt_ boost::system::is_error_code_enum< boost::asio::error::addrinfo_errors >]
 
 
 
   template<>
- struct is_error_code_enum< boost::asio::error::addrinfo_errors >
+ struct boost::system::is_error_code_enum< boost::asio::error::addrinfo_errors >
 
 
 [heading Data Members]
@@ -39005,18 +39070,18 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.error__addrinfo_errors__gt_.value [*value]]]
+ [[link boost_asio.reference.is_error_code_enum_lt__addrinfo_errors__gt_.value [*value]]]
     []
   ]
 
 ]
 
 
-[section:value error::addrinfo_errors >::value]
+[section:value boost::system::is_error_code_enum< boost::asio::error::addrinfo_errors >::value]
 
 
 
- static const bool value;
+ static const bool value = true;
 
 
 
@@ -39026,12 +39091,12 @@
 
 [endsect]
 
-[section:error__basic_errors__gt_ error::basic_errors >]
+[section:is_error_code_enum_lt__basic_errors__gt_ boost::system::is_error_code_enum< boost::asio::error::basic_errors >]
 
 
 
   template<>
- struct is_error_code_enum< boost::asio::error::basic_errors >
+ struct boost::system::is_error_code_enum< boost::asio::error::basic_errors >
 
 
 [heading Data Members]
@@ -39039,18 +39104,18 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.error__basic_errors__gt_.value [*value]]]
+ [[link boost_asio.reference.is_error_code_enum_lt__basic_errors__gt_.value [*value]]]
     []
   ]
 
 ]
 
 
-[section:value error::basic_errors >::value]
+[section:value boost::system::is_error_code_enum< boost::asio::error::basic_errors >::value]
 
 
 
- static const bool value;
+ static const bool value = true;
 
 
 
@@ -39060,12 +39125,12 @@
 
 [endsect]
 
-[section:error__misc_errors__gt_ error::misc_errors >]
+[section:is_error_code_enum_lt__misc_errors__gt_ boost::system::is_error_code_enum< boost::asio::error::misc_errors >]
 
 
 
   template<>
- struct is_error_code_enum< boost::asio::error::misc_errors >
+ struct boost::system::is_error_code_enum< boost::asio::error::misc_errors >
 
 
 [heading Data Members]
@@ -39073,18 +39138,18 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.error__misc_errors__gt_.value [*value]]]
+ [[link boost_asio.reference.is_error_code_enum_lt__misc_errors__gt_.value [*value]]]
     []
   ]
 
 ]
 
 
-[section:value error::misc_errors >::value]
+[section:value boost::system::is_error_code_enum< boost::asio::error::misc_errors >::value]
 
 
 
- static const bool value;
+ static const bool value = true;
 
 
 
@@ -39094,12 +39159,12 @@
 
 [endsect]
 
-[section:error__netdb_errors__gt_ error::netdb_errors >]
+[section:is_error_code_enum_lt__netdb_errors__gt_ boost::system::is_error_code_enum< boost::asio::error::netdb_errors >]
 
 
 
   template<>
- struct is_error_code_enum< boost::asio::error::netdb_errors >
+ struct boost::system::is_error_code_enum< boost::asio::error::netdb_errors >
 
 
 [heading Data Members]
@@ -39107,18 +39172,18 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.error__netdb_errors__gt_.value [*value]]]
+ [[link boost_asio.reference.is_error_code_enum_lt__netdb_errors__gt_.value [*value]]]
     []
   ]
 
 ]
 
 
-[section:value error::netdb_errors >::value]
+[section:value boost::system::is_error_code_enum< boost::asio::error::netdb_errors >::value]
 
 
 
- static const bool value;
+ static const bool value = true;
 
 
 
@@ -39128,12 +39193,12 @@
 
 [endsect]
 
-[section:error__ssl_errors__gt_ error::ssl_errors >]
+[section:is_error_code_enum_lt__ssl_errors__gt_ boost::system::is_error_code_enum< boost::asio::error::ssl_errors >]
 
 
 
   template<>
- struct is_error_code_enum< boost::asio::error::ssl_errors >
+ struct boost::system::is_error_code_enum< boost::asio::error::ssl_errors >
 
 
 [heading Data Members]
@@ -39141,18 +39206,18 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.error__ssl_errors__gt_.value [*value]]]
+ [[link boost_asio.reference.is_error_code_enum_lt__ssl_errors__gt_.value [*value]]]
     []
   ]
 
 ]
 
 
-[section:value error::ssl_errors >::value]
+[section:value boost::system::is_error_code_enum< boost::asio::error::ssl_errors >::value]
 
 
 
- static const bool value;
+ static const bool value = true;
 
 
 

Modified: branches/fix-links/libs/asio/doc/reference.xsl
==============================================================================
--- branches/fix-links/libs/asio/doc/reference.xsl (original)
+++ branches/fix-links/libs/asio/doc/reference.xsl 2007-12-08 06:05:02 EST (Sat, 08 Dec 2007)
@@ -103,6 +103,9 @@
 <xsl:template name="strip-asio-ns">
   <xsl:param name="name"/>
   <xsl:choose>
+ <xsl:when test="contains($name, 'boost::system::is_error_code_enum')">
+ <xsl:value-of select="$name"/>
+ </xsl:when>
     <xsl:when test="contains($name, 'asio::')">
       <xsl:value-of select="substring-after($name, 'asio::')"/>
     </xsl:when>
@@ -116,6 +119,9 @@
 <xsl:template name="strip-ns">
   <xsl:param name="name"/>
   <xsl:choose>
+ <xsl:when test="contains($name, 'boost::system::is_error_code_enum')">
+ <xsl:value-of select="$name"/>
+ </xsl:when>
     <xsl:when test="contains($name, '::') and contains($name, '&lt;')">
       <xsl:choose>
         <xsl:when test="string-length(substring-before($name, '::')) &lt; string-length(substring-before($name, '&lt;'))">
@@ -143,6 +149,18 @@
 <xsl:template name="make-id">
   <xsl:param name="name"/>
   <xsl:choose>
+ <xsl:when test="contains($name, 'boost::system::')">
+ <xsl:call-template name="make-id">
+ <xsl:with-param name="name"
+ select="substring-after($name, 'boost::system::')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains($name, 'boost::asio::error::')">
+ <xsl:call-template name="make-id">
+ <xsl:with-param name="name"
+ select="concat(substring-before($name, 'boost::asio::error::'), substring-after($name, 'boost::asio::error::'))"/>
+ </xsl:call-template>
+ </xsl:when>
     <xsl:when test="contains($name, '::')">
       <xsl:call-template name="make-id">
         <xsl:with-param name="name"
@@ -793,7 +811,9 @@
 <xsl:template name="variable">
 <xsl:text>
   </xsl:text><xsl:if test="@static='yes'">static </xsl:if><xsl:value-of
- select="type"/><xsl:text> </xsl:text><xsl:value-of select="name"/>;
+ select="type"/><xsl:text> </xsl:text><xsl:value-of select="name"/>
+ <xsl:if test="count(initializer) = 1"><xsl:text> =</xsl:text>
+ <xsl:value-of select="initializer"/></xsl:if>;
 </xsl:template>
 
 

Modified: branches/fix-links/libs/thread/test/test_mutex.cpp
==============================================================================
--- branches/fix-links/libs/thread/test/test_mutex.cpp (original)
+++ branches/fix-links/libs/thread/test/test_mutex.cpp 2007-12-08 06:05:02 EST (Sat, 08 Dec 2007)
@@ -138,7 +138,7 @@
 
         boost::system_time now=boost::get_system_time();
         boost::posix_time::milliseconds const timeout_resolution(20);
- BOOST_CHECK((now-timeout_resolution)<timeout);
+ BOOST_CHECK((timeout-timeout_resolution)<now);
 
         // Test the lock, unlock and timedlock methods.
         lock.unlock();

Modified: branches/fix-links/status/explicit-failures-markup.xml
==============================================================================
--- branches/fix-links/status/explicit-failures-markup.xml (original)
+++ branches/fix-links/status/explicit-failures-markup.xml 2007-12-08 06:05:02 EST (Sat, 08 Dec 2007)
@@ -4396,15 +4396,27 @@
             <note author="Andreas Huber" refid="29"/>
         </mark-expected-failures>
         <mark-expected-failures reason="?">
+ <test name="TransitionTest*"/>
+ <toolset name="intel-linux*"/>
+ <toolset name="pathscale*"/>
+ <note author="Andreas Huber" refid="29"/>
+ </mark-expected-failures>
+ <mark-expected-failures reason="?">
+ <test name="TransitionTest*"/>
+ <test name="InvalidTransitionTest1Relaxed"/>
+ <test name="StopWatchExample"/>
+ <toolset name="vacpp-8.0"/>
+ <note author="Andreas Huber" refid="29"/>
+ </mark-expected-failures>
+ <mark-expected-failures reason="?">
             <test name="CustomReactionTest*"/>
             <toolset name="acc*"/>
             <note author="Andreas Huber" refid="29"/>
         </mark-expected-failures>
         <mark-expected-failures reason="?">
- <test name="TransitionTest*"/>
- <test name="PerformanceExample"/>
- <toolset name="vacpp"/>
- <note author="Andreas Huber" refid="29"/>
+ <test name="HistoryTestRelaxed"/>
+ <toolset name="intel-linux-9.1"/>
+ <note author="Andreas Huber" refid="29"/>
         </mark-expected-failures>
         <mark-expected-failures>
             <test name="StopWatch*"/>
@@ -4415,13 +4427,10 @@
                 ignored.
             </note>
         </mark-expected-failures>
- <mark-expected-failures>
+ <mark-expected-failures reason="?">
             <test name="DllTest*"/>
             <toolset name="msvc-8.0~wm5~stlport5.1"/>
- <note author="Andreas Huber">
- This test fails due to unresolved externals that are
- not library-related.
- </note>
+ <note author="Andreas Huber" refid="29"/>
         </mark-expected-failures>
     </library>
 

Modified: branches/fix-links/tools/build/v2/tools/msvc.jam
==============================================================================
--- branches/fix-links/tools/build/v2/tools/msvc.jam (original)
+++ branches/fix-links/tools/build/v2/tools/msvc.jam 2007-12-08 06:05:02 EST (Sat, 08 Dec 2007)
@@ -996,11 +996,10 @@
             for local x in "" "Wow6432Node\\"
             {
                 vc-path += [ W32_GETREG
- "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\"$(x)$(.version-$(i)-reg)
+ "HKEY_LOCAL_MACHINE\\SOFTWARE\\"$(x)"\\Microsoft\\"$(.version-$(i)-reg)
                 : "ProductDir" ] ;
             }
             
-
             if $(vc-path)
             {
                 vc-path = [ path.native [ path.join [ path.make-NT $(vc-path[1]) ] "bin" ] ] ;


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk