$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r67272 - in sandbox/configurator: boost/configurator boost/configurator/detail libs/configurator/doc
From: for.dshevchenko_at_[hidden]
Date: 2010-12-16 03:00:34
Author: dshevchenko
Date: 2010-12-16 03:00:28 EST (Thu, 16 Dec 2010)
New Revision: 67272
URL: http://svn.boost.org/trac/boost/changeset/67272
Log:
Edging
Text files modified: 
   sandbox/configurator/boost/configurator/configurator.hpp                 |     6 +++++-                                  
   sandbox/configurator/boost/configurator/configurator_settings.hpp        |    30 ++++++++++++++++++++++++++----          
   sandbox/configurator/boost/configurator/detail/pure_options_obtainer.hpp |    23 ++++++++++++++---------                 
   sandbox/configurator/libs/configurator/doc/config_file_customizing.html  |     9 +--------                               
   4 files changed, 46 insertions(+), 22 deletions(-)
Modified: sandbox/configurator/boost/configurator/configurator.hpp
==============================================================================
--- sandbox/configurator/boost/configurator/configurator.hpp	(original)
+++ sandbox/configurator/boost/configurator/configurator.hpp	2010-12-16 03:00:28 EST (Thu, 16 Dec 2010)
@@ -51,7 +51,11 @@
             , options_obtainer( settings_of_configurator.option_name_value_separator
                                 , sections_separator
                                 , registered_options
-                                , settings_of_configurator.case_sensitivity )
+                                , settings_of_configurator.case_sensitivity
+                                , settings_of_configurator.open_section_edging_begin
+                                , settings_of_configurator.open_section_edging_end
+                                , settings_of_configurator.close_section_edging_begin
+                                , settings_of_configurator.close_section_edging_end )
             , check_incorrect_options( registered_options, sections_separator )
             , check_necessary_options( registered_options, sections_separator )
             , check_options_values_semantics( registered_options, sections_separator )
Modified: sandbox/configurator/boost/configurator/configurator_settings.hpp
==============================================================================
--- sandbox/configurator/boost/configurator/configurator_settings.hpp	(original)
+++ sandbox/configurator/boost/configurator/configurator_settings.hpp	2010-12-16 03:00:28 EST (Thu, 16 Dec 2010)
@@ -28,13 +28,21 @@
             , one_line_comment_sign( "//" )
             , multi_line_comment_begin_sign( "/*" )
             , multi_line_comment_end_sign( "*/" )
-            , case_sensitivity( false ) {}
+            , case_sensitivity( false )
+            , open_section_edging_begin( "<" )
+            , open_section_edging_end( ">" )
+            , close_section_edging_begin( "</" ) 
+            , close_section_edging_end( ">" ) {}
 public:
     char        option_name_value_separator;
     std::string one_line_comment_sign;
     std::string multi_line_comment_begin_sign;
     std::string multi_line_comment_end_sign;
     bool        case_sensitivity;
+    std::string open_section_edging_begin;
+    std::string open_section_edging_end;
+    std::string close_section_edging_begin;
+    std::string close_section_edging_end;
 public:
     configurator_settings& set_one_line_comment_sign( const std::string& sign ) {
         one_line_comment_sign = sign;
@@ -48,19 +56,19 @@
         multi_line_comment_end_sign   = end;
         return *this;
     }
-
+private:
     void check_multi_line_comment_signs_validity( const std::string& begin
                                                   , const std::string& end ) const {
         if ( begin == end ) {
             detail::notify( "Incorrect multi-line comments signs, it cannot be equal!" );
         } else {}
     }
-
+public:
     configurator_settings& set_case_sensitivity_for_names() {
         case_sensitivity = true;
         return *this;
     }
-
+public:
     configurator_settings& set_name_value_separator( char separator ) {
         option_name_value_separator = separator;
         check_separator_validity();
@@ -82,6 +90,20 @@
         //
         return *this;
     }
+public:
+    configurator_settings& set_open_section_edging( const std::string& begin
+                                                    , const std::string& end ) {
+        open_section_edging_begin = begin;
+        open_section_edging_end   = end;
+        return *this;
+    }
+
+    configurator_settings& set_close_section_edging( const std::string& begin
+                                                     , const std::string& end ) {
+        close_section_edging_begin = begin;
+        close_section_edging_end   = end;
+        return *this;
+    }
 };
 
 } // namespace cf
Modified: sandbox/configurator/boost/configurator/detail/pure_options_obtainer.hpp
==============================================================================
--- sandbox/configurator/boost/configurator/detail/pure_options_obtainer.hpp	(original)
+++ sandbox/configurator/boost/configurator/detail/pure_options_obtainer.hpp	2010-12-16 03:00:28 EST (Thu, 16 Dec 2010)
@@ -49,15 +49,19 @@
     pure_options_obtainer( const char&          _option_name_value_separator
                            , const std::string& _sections_separator
                            , const options&     _registered_options
-                           , const bool&        _case_sensitivity_for_names ) :
+                           , const bool&        _case_sensitivity_for_names
+                           , const std::string& _open_section_tag_begin_sign
+                           , const std::string& _open_section_tag_end_sign
+                           , const std::string& _close_section_tag_begin_sign
+                           , const std::string& _close_section_tag_end_sign) :
             option_name_value_separator( _option_name_value_separator )
             , sections_separator( _sections_separator )
             , registered_options( _registered_options )
             , case_sensitivity_for_names( _case_sensitivity_for_names ) 
-            , open_section_tag_begin_sign( "<" )
-            , open_section_tag_end_sign( ">" )
-            , close_section_tag_begin_sign( "</" )
-            , close_section_tag_end_sign( ">" ) {
+            , open_section_tag_begin_sign( _open_section_tag_begin_sign )
+            , open_section_tag_end_sign( _open_section_tag_end_sign )
+            , close_section_tag_begin_sign( _close_section_tag_begin_sign )
+            , close_section_tag_end_sign( _close_section_tag_end_sign ) {
         using namespace boost::assign;
         handlers +=   boost::bind( &pure_options_obtainer::handle_section_opening, this, ::_1, ::_2 )
                     , boost::bind( &pure_options_obtainer::handle_section_closing, this, ::_1, ::_2 )
@@ -71,10 +75,11 @@
     const options&      registered_options;
     const bool&         case_sensitivity_for_names;
 private:
-    std::string open_section_tag_begin_sign;
-    std::string open_section_tag_end_sign;
-    std::string close_section_tag_begin_sign;
-    std::string close_section_tag_end_sign;
+    const std::string&  open_section_tag_begin_sign;
+    const std::string&  open_section_tag_end_sign;
+    const std::string&  close_section_tag_begin_sign;
+    const std::string&  close_section_tag_end_sign;
+private:
     std::string current_section_path;
 private:
     string_handlers handlers;
Modified: sandbox/configurator/libs/configurator/doc/config_file_customizing.html
==============================================================================
--- sandbox/configurator/libs/configurator/doc/config_file_customizing.html	(original)
+++ sandbox/configurator/libs/configurator/doc/config_file_customizing.html	2010-12-16 03:00:28 EST (Thu, 16 Dec 2010)
@@ -169,18 +169,11 @@
 </pre>
 Changes may be more significant:
 <pre class="cpp">
-int main( int argc, char* argv[] ) {	
-    try {
+        // ...
         boost::cf::configurator conf;
         conf.settings().set_open_section_edging( "", "{" );
         conf.settings().set_close_section_edging( "}", "" );
         // ...
-    } catch ( const std::exception& exc ) {
-        std::cerr << exc.what() << std::endl;
-    } 
-
-    return 0;
-}
 </pre>
 In this case we can write:
 <pre class="config">