Boost logo

Boost-Commit :

From: bdawes_at_[hidden]
Date: 2008-07-08 10:29:04


Author: bemandawes
Date: 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
New Revision: 47222
URL: http://svn.boost.org/trac/boost/changeset/47222

Log:
Merge accumulated changes from trunk
Added:
   branches/release/tools/inspect/ascii_check.cpp
      - copied unchanged from r47221, /trunk/tools/inspect/ascii_check.cpp
   branches/release/tools/inspect/ascii_check.hpp
      - copied unchanged from r47221, /trunk/tools/inspect/ascii_check.hpp
   branches/release/tools/inspect/build/msvc/
      - copied from r47221, /trunk/tools/inspect/build/msvc/
   branches/release/tools/inspect/build/msvc/boost_inspect.sln
      - copied unchanged from r47221, /trunk/tools/inspect/build/msvc/boost_inspect.sln
   branches/release/tools/inspect/build/msvc/boost_inspect.vcproj
      - copied unchanged from r47221, /trunk/tools/inspect/build/msvc/boost_inspect.vcproj
   branches/release/tools/inspect/build/msvc/readme.txt
      - copied unchanged from r47221, /trunk/tools/inspect/build/msvc/readme.txt
   branches/release/tools/inspect/path_name_check.cpp
      - copied unchanged from r47221, /trunk/tools/inspect/path_name_check.cpp
   branches/release/tools/inspect/path_name_check.hpp
      - copied unchanged from r47221, /trunk/tools/inspect/path_name_check.hpp
Removed:
   branches/release/tools/inspect/long_name_check.cpp
   branches/release/tools/inspect/long_name_check.hpp
Text files modified:
   branches/release/tools/inspect/build/Jamfile.v2 | 2
   branches/release/tools/inspect/copyright_check.hpp | 2
   branches/release/tools/inspect/crlf_check.hpp | 4
   branches/release/tools/inspect/index.html | 11 +
   branches/release/tools/inspect/inspect.cpp | 173 +++++++++++++++++++++++++++++++--------
   branches/release/tools/inspect/inspector.hpp | 2
   branches/release/tools/inspect/license_check.hpp | 4
   branches/release/tools/inspect/link_check.cpp | 5
   branches/release/tools/inspect/link_check.hpp | 10 +-
   branches/release/tools/inspect/minmax_check.hpp | 2
   branches/release/tools/inspect/tab_check.hpp | 4
   branches/release/tools/inspect/time_string.hpp | 2
   branches/release/tools/inspect/unnamed_namespace_check.hpp | 2
   13 files changed, 166 insertions(+), 57 deletions(-)

Modified: branches/release/tools/inspect/build/Jamfile.v2
==============================================================================
--- branches/release/tools/inspect/build/Jamfile.v2 (original)
+++ branches/release/tools/inspect/build/Jamfile.v2 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
@@ -14,7 +14,7 @@
 
 exe inspect
     :
- inspect.cpp license_check.cpp link_check.cpp long_name_check.cpp tab_check.cpp crlf_check.cpp unnamed_namespace_check.cpp ascii_check.cpp
+ inspect.cpp license_check.cpp link_check.cpp path_name_check.cpp tab_check.cpp crlf_check.cpp unnamed_namespace_check.cpp ascii_check.cpp
     copyright_check.cpp minmax_check.cpp
     /boost//filesystem/<link>static
     /boost//regex/<link>static

Modified: branches/release/tools/inspect/copyright_check.hpp
==============================================================================
--- branches/release/tools/inspect/copyright_check.hpp (original)
+++ branches/release/tools/inspect/copyright_check.hpp 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
@@ -31,7 +31,7 @@
         const std::string & contents );
 
       virtual ~copyright_check()
- { std::cout << " " << m_files_with_errors << " files " << desc() << '\n'; }
+ { std::cout << " " << m_files_with_errors << " files " << desc() << line_break(); }
     };
   }
 }

Modified: branches/release/tools/inspect/crlf_check.hpp
==============================================================================
--- branches/release/tools/inspect/crlf_check.hpp (original)
+++ branches/release/tools/inspect/crlf_check.hpp 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
@@ -23,7 +23,7 @@
     public:
 
       crlf_check();
- virtual const char * name() const { return "*R*"; }
+ virtual const char * name() const { return "*EOL*"; }
       virtual const char * desc() const { return "invalid (cr only) line-ending"; }
 
       virtual void inspect(
@@ -32,7 +32,7 @@
         const std::string & contents );
 
       virtual ~crlf_check()
- { std::cout << " " << m_files_with_errors << " files with invalid line endings\n"; }
+ { std::cout << " " << m_files_with_errors << " files with invalid line endings" << line_break(); }
     };
   }
 }

Modified: branches/release/tools/inspect/index.html
==============================================================================
--- branches/release/tools/inspect/index.html (original)
+++ branches/release/tools/inspect/index.html 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
@@ -38,10 +38,15 @@
   <li>tab_check.hpp and <a href="tab_check.cpp">
   tab_check.cpp</a></li>
 </ul>
-<p>A Jamfile is provided to build the program.</p>
+<p>A Jamfile is provided to build the program
+using Boost.Build.</p>
+<p>A Microsoft Visual Studio <a href="build/msvc/boost_inspect.suo">solution
+file</a> is provided to aid maintenance. See
+readme.txt
+before using it.</p>
 <hr>
 <p>Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->29 December, 2003<!--webbot bot="Timestamp" endspan i-checksum="38523" --></p>
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->29 June, 2008<!--webbot bot="Timestamp" endspan i-checksum="19976" --></p>
 
 <p>© Copyright Beman Dawes, 2003</p>
 <p> Distributed under the Boost Software
@@ -51,4 +56,4 @@
 
 </body>
 
-</html>
+</html>
\ No newline at end of file

Modified: branches/release/tools/inspect/inspect.cpp
==============================================================================
--- branches/release/tools/inspect/inspect.cpp (original)
+++ branches/release/tools/inspect/inspect.cpp 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
@@ -34,7 +34,7 @@
 #include "crlf_check.hpp"
 #include "license_check.hpp"
 #include "link_check.hpp"
-#include "long_name_check.hpp"
+#include "path_name_check.hpp"
 #include "tab_check.hpp"
 #include "ascii_check.hpp"
 #include "minmax_check.hpp"
@@ -46,6 +46,8 @@
 
 namespace fs = boost::filesystem;
 
+using namespace boost::inspect;
+
 namespace
 {
   class inspector_element
@@ -63,6 +65,7 @@
   long file_count = 0;
   long directory_count = 0;
   long error_count = 0;
+ const int max_offenders = 5; // maximum "worst offenders" to display
 
   boost::inspect::string_set content_signatures;
 
@@ -85,6 +88,20 @@
   typedef std::vector< error_msg > error_msg_vector;
   error_msg_vector msgs;
 
+ struct lib_error_count
+ {
+ int error_count;
+ string library;
+
+ bool operator<( const lib_error_count & rhs ) const
+ {
+ return error_count > rhs.error_count;
+ }
+ };
+
+ typedef std::vector< lib_error_count > lib_error_count_vector;
+ lib_error_count_vector libs;
+
 // get info (as a string) if inspect_root is svn working copy --------------//
 
   string info( const fs::path & inspect_root )
@@ -263,11 +280,11 @@
     else
     {
       std::cout
- << " <tr><td><a href=\"#"
+ << " <a href=\"#"
         << current_library // what about malformed for URI refs? [gps]
         << "\">" << current_library
- << "</a></td><td align=\"center\">"
- << err_count << "</td></tr>\n";
+ << "</a> ("
+ << err_count << ")<br>\n";
     }
   }
 
@@ -281,14 +298,9 @@
     }
     else
     {
- std::cout
- << "</pre>\n"
+ std::cout <<
         "<h2>Summary</h2>\n"
- "<table border=\"1\" cellpadding=\"5\" cellspacing=\"0\">\n"
- " <tr>\n"
- " <td><b>Library</b></td>\n"
- " <td><b>Problems</b></td>\n"
- " </tr>\n"
+ "<blockquote>\n"
         ;
     }
 
@@ -308,13 +320,9 @@
     display_summary_helper( current_library, err_count );
 
     if (display_text == display_format)
- {
       std::cout << "\n";
- }
     else
- {
- std::cout << "</table>\n";
- }
+ std::cout << "</blockquote>\n";
   }
 
 
@@ -413,6 +421,83 @@
     }
   }
 
+
+// worst_offenders_count_helper --------------------------------------------------//
+
+ void worst_offenders_count_helper( const string & current_library, int err_count )
+ {
+ lib_error_count lec;
+ lec.library = current_library;
+ lec.error_count = err_count;
+ libs.push_back( lec );
+ }
+// worst_offenders_count -----------------------------------------------------//
+
+ void worst_offenders_count()
+ {
+ string current_library( msgs.begin()->library );
+ int err_count = 0;
+ for ( error_msg_vector::iterator itr ( msgs.begin() );
+ itr != msgs.end(); ++itr )
+ {
+ if ( current_library != itr->library )
+ {
+ worst_offenders_count_helper( current_library, err_count );
+ current_library = itr->library;
+ err_count = 0;
+ }
+ ++err_count;
+ }
+ worst_offenders_count_helper( current_library, err_count );
+ }
+
+// display_worst_offenders -------------------------------------------------//
+
+ void display_worst_offenders()
+ {
+ if (display_text == display_format)
+ {
+ std::cout << "Worst Offenders:\n";
+ }
+ else
+ {
+ std::cout <<
+ "<h2>Worst Offenders</h2>\n"
+ "<blockquote>\n"
+ ;
+ }
+
+ int display_count = 0;
+ int last_error_count = 0;
+ for ( lib_error_count_vector::iterator itr ( libs.begin() );
+ itr != libs.end()
+ && (display_count < max_offenders
+ || itr->error_count == last_error_count);
+ ++itr, ++display_count )
+ {
+ if (display_text == display_format)
+ {
+ std::cout << itr->library << " " << itr->error_count << "\n";
+ }
+ else
+ {
+ std::cout
+ << " <a href=\"#"
+ << itr->library
+ << "\">" << itr->library
+ << "</a> ("
+ << itr->error_count << ")<br>\n";
+ }
+ last_error_count = itr->error_count;
+ }
+
+ if (display_text == display_format)
+ std::cout << "\n";
+ else
+ std::cout << "</blockquote>\n";
+ }
+
+
   const char * options()
   {
     return
@@ -420,7 +505,7 @@
          " -copyright\n"
          " -crlf\n"
          " -link\n"
- " -long_name\n"
+ " -path_name\n"
          " -tab\n"
          " -ascii\n"
          " -minmax\n"
@@ -454,6 +539,14 @@
   namespace inspect
   {
 
+// line_break --------------------------------------------------------------//
+
+ const char * line_break()
+ {
+ return display_format ? "\n" : "<br>\n";
+ }
+
+
 // register_signature ------------------------------------------------------//
 
     void inspector::register_signature( const string & signature )
@@ -581,7 +674,7 @@
   bool copyright_ck = true;
   bool crlf_ck = true;
   bool link_ck = true;
- bool long_name_ck = true;
+ bool path_name_ck = true;
   bool tab_ck = true;
   bool ascii_ck = true;
   bool minmax_ck = true;
@@ -612,7 +705,7 @@
     copyright_ck = false;
     crlf_ck = false;
     link_ck = false;
- long_name_ck = false;
+ path_name_ck = false;
     tab_ck = false;
     ascii_ck = false;
     minmax_ck = false;
@@ -630,10 +723,8 @@
         crlf_ck = true;
     else if ( std::strcmp( argv[1], "-link" ) == 0 )
       link_ck = true;
- else if ( std::strcmp( argv[1], "-long_name" ) == 0 )
- long_name_ck = true;
- else if ( std::strcmp( argv[1], "-long-name" ) == 0 )
- long_name_ck = true;
+ else if ( std::strcmp( argv[1], "-path_name" ) == 0 )
+ path_name_ck = true;
     else if ( std::strcmp( argv[1], "-tab" ) == 0 )
       tab_ck = true;
     else if ( std::strcmp( argv[1], "-ascii" ) == 0 )
@@ -658,9 +749,9 @@
   fs::initial_path();
   
 
- {
+ { // begin reporting block
 
- // note how this is in its own block; reporting will happen
+ // since this is in its own block; reporting will happen
   // automatically, from each registered inspector, when
   // leaving, due to destruction of the inspector_list object
   inspector_list inspectors;
@@ -673,7 +764,7 @@
     inspectors.push_back( inspector_element( new boost::inspect::crlf_check ) );
   if ( link_ck )
     inspectors.push_back( inspector_element( new boost::inspect::link_check ) );
- if ( long_name_ck )
+ if ( path_name_ck )
     inspectors.push_back( inspector_element( new boost::inspect::file_name_check ) );
   if ( tab_ck )
       inspectors.push_back( inspector_element( new boost::inspect::tab_check ) );
@@ -731,6 +822,7 @@
     std::cout
       << "<html>\n"
       "<head>\n"
+ "<style> body { font-family: sans-serif; } </style>\n"
       "<title>Boost Inspection Report</title>\n"
       "</head>\n"
 
@@ -758,38 +850,43 @@
 
 
     std::cout
- << "<h2>Totals</h2>\n<pre>"
- << file_count << " files scanned\n"
- << directory_count << " directories scanned (including root)\n"
- << error_count << " problems reported\n";
+ << "<h2>Totals</h2>\n"
+ << file_count << " files scanned<br>\n"
+ << directory_count << " directories scanned (including root)<br>\n"
+ << error_count << " problems reported\n<p>";
   }
 
   for ( inspector_list::iterator itr = inspectors.begin();
         itr != inspectors.end(); ++itr )
   {
- const string line_break (
- display_text == display_format? "\n" : "<br>\n"); // gps
 
     inspector_keys += static_cast<string>(" ")
         + itr->inspector->name()
         + ' ' + itr->inspector->desc()
- + line_break
+ + line_break()
         ;
   }
 
-
- std::cout
- << "\nProblem counts:\n";
+ if (display_text == display_format)
+ std::cout << "\nProblem counts:\n";
+ else
+ std::cout << "\n<h2>Problem counts</h2>\n<blockquote><p>\n" ;
 
   } // end of block: starts reporting
 
   if (display_text == display_format)
- {
     std::cout << "\n" ;
- }
+ else
+ std::cout << "</blockquote>\n";
 
   std::sort( msgs.begin(), msgs.end() );
 
+ worst_offenders_count();
+ std::stable_sort( libs.begin(), libs.end() );
+
+ if ( !libs.empty() )
+ display_worst_offenders();
+
   if ( !msgs.empty() )
   {
     display_summary();

Modified: branches/release/tools/inspect/inspector.hpp
==============================================================================
--- branches/release/tools/inspect/inspector.hpp (original)
+++ branches/release/tools/inspect/inspector.hpp 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
@@ -26,6 +26,8 @@
   {
     typedef std::set< string > string_set;
 
+ const char * line_break();
+
     class inspector
     {
     protected:

Modified: branches/release/tools/inspect/license_check.hpp
==============================================================================
--- branches/release/tools/inspect/license_check.hpp (original)
+++ branches/release/tools/inspect/license_check.hpp 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
@@ -22,7 +22,7 @@
     public:
 
       license_check();
- virtual const char * name() const { return "*L*"; }
+ virtual const char * name() const { return "*Lic*"; }
       virtual const char * desc() const { return "missing Boost license info, or wrong reference text"; }
 
       virtual void inspect(
@@ -32,7 +32,7 @@
 
       virtual ~license_check()
         { std::cout << " "
- << m_files_with_errors << " files missing Boost license info or having wrong reference text\n"; }
+ << m_files_with_errors << " files missing Boost license info or having wrong reference text" << line_break(); }
     };
   }
 }

Modified: branches/release/tools/inspect/link_check.cpp
==============================================================================
--- branches/release/tools/inspect/link_check.cpp (original)
+++ branches/release/tools/inspect/link_check.cpp 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
@@ -150,10 +150,13 @@
       // Protocol checks
       if(scheme_matched) {
         if(scheme == "http" || scheme == "https") {
+ // All http links should have a hostname. Generally if they don't
+ // it's by mistake. If they shouldn't, then a protocol isn't
+ // required.
           if(!authority_matched) {
             if(!no_link_errors) {
               ++m_invalid_errors;
- error( library_name, source_path, string(name()) + " http protocol without hostname: " + url );
+ error( library_name, source_path, string(name()) + " no hostname: " + url );
             }
           }
 

Modified: branches/release/tools/inspect/link_check.hpp
==============================================================================
--- branches/release/tools/inspect/link_check.hpp (original)
+++ branches/release/tools/inspect/link_check.hpp 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
@@ -36,7 +36,7 @@
     public:
 
       link_check();
- virtual const char * name() const { return "*A*"; }
+ virtual const char * name() const { return "*HTML*"; }
       virtual const char * desc() const { return "invalid bookmarks, invalid urls, broken links, unlinked files"; }
 
       virtual void inspect(
@@ -52,10 +52,10 @@
 
       virtual ~link_check()
         {
- std::cout << " " << m_bookmark_errors << " bookmarks with invalid characters\n";
- std::cout << " " << m_invalid_errors << " invalid urls\n";
- std::cout << " " << m_broken_errors << " broken links\n";
- std::cout << " " << m_unlinked_errors << " unlinked files\n";
+ std::cout << " " << m_bookmark_errors << " bookmarks with invalid characters" << line_break();
+ std::cout << " " << m_invalid_errors << " invalid urls" << line_break();
+ std::cout << " " << m_broken_errors << " broken links" << line_break();
+ std::cout << " " << m_unlinked_errors << " unlinked files" << line_break();
         }
     };
   }

Deleted: branches/release/tools/inspect/long_name_check.cpp
==============================================================================
--- branches/release/tools/inspect/long_name_check.cpp 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
+++ (empty file)
@@ -1,110 +0,0 @@
-// long_name_check implementation ------------------------------------------//
-
-// Copyright Beman Dawes 2002.
-// Copyright Gennaro Prota 2006.
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#include "long_name_check.hpp"
-
-#include "boost/filesystem/operations.hpp"
-#include "boost/lexical_cast.hpp"
-
-#include <locale>
-#include <algorithm>
-
-namespace { namespace aux {
-
-bool starts_with_nonalnum( path const & p )
-{
- const string & x = p.string();
- assert(!x.empty());
-
- const string::value_type first = x[0];
-
- return !std::isalnum( first, std::locale::classic() )
- && first != '_'
- && x != ".cvsignore"
- && x != ".svn"
- ;
-}
-
-}}
-
-
-namespace boost
-{
- namespace inspect
- {
- const char file_name_check::limits::name[] = "ISO 9660:1999 Level 3";
-
- file_name_check::file_name_check() : m_name_errors(0) {}
-
- void file_name_check::inspect(
- const string & library_name,
- const path & full_path )
- {
- std::string const leaf( full_path.leaf() );
-
- if ( *leaf.rbegin() == '.' )
- {
- ++m_name_errors;
- error( library_name, full_path, string(name())
- + " filename ends with the dot character ('.')" );
- }
-
- path const relative_path(
- relative_to( full_path, filesystem::initial_path() )
- , &filesystem::no_check );
-
-
- // checks on the directory name --------------------------- //
-
- if( aux::starts_with_nonalnum( path(leaf)) )
- {
- ++m_name_errors;
- error( library_name, full_path, string(name())
- + " leading character of \""
- + leaf + "\""
- + " is not alphanumeric" );
- }
-
- const unsigned max_relative_path = 207; // ISO 9660:1999 sets this limit
- const string generic_root( "boost_X_XX_X/" );
- if ( relative_path.string().size() >
- ( max_relative_path - generic_root.size() ) )
- {
- ++m_name_errors;
- error( library_name, full_path,
- string(name())
- + " file path will exceed "
- + boost::lexical_cast<string>(max_relative_path)
- + " characters in a directory tree with a root of the form "
- + generic_root + ", and this exceeds ISO 9660:1999 limit of 207" )
- ;
- }
-
- if (relative_path.leaf() != ".cvsignore" && relative_path.leaf() != ".svn")
- {
- try
- {
- path const check_portability( relative_path.string(), &filesystem::portable_name );
- }
- catch ( filesystem::filesystem_error const& )
- {
- ++m_name_errors;
- error( library_name, full_path, string(name()) + " nonportable path" );
- }
- }
- }
-
- file_name_check::~file_name_check()
- {
- std::cout << " " << m_name_errors << " " << desc() << '\n';
- }
-
-
- } // namespace inspect
-} // namespace boost

Deleted: branches/release/tools/inspect/long_name_check.hpp
==============================================================================
--- branches/release/tools/inspect/long_name_check.hpp 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
+++ (empty file)
@@ -1,57 +0,0 @@
-// long_name_check header --------------------------------------------------//
-// (main class renamed to: file_name_check) - gps
-
-// Copyright Beman Dawes 2002.
-// Copyright Gennaro Prota 2006.
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_FILE_NAME_CHECK_HPP
-#define BOOST_FILE_NAME_CHECK_HPP
-
-#include "inspector.hpp"
-
-namespace boost
-{
- namespace inspect
- {
- class file_name_check : public inspector
- {
- long m_name_errors;
-
- // ISO 9660 Level 3
- //
- struct iso_9660_limits
- {
- static const char name[];
- };
-
- public:
-
- typedef iso_9660_limits limits;
-
- file_name_check();
- virtual ~file_name_check();
-
- virtual const char * name() const { return "*N*"; }
- virtual const char * desc() const { return "file/directory names issues"; }
-
- virtual void inspect(
- const string & library_name,
- const path & full_path );
-
- virtual void inspect(
- const string &, // "filesystem"
- const path &, // "c:/foo/boost/filesystem/path.hpp"
- const string &)
- { /* empty */ }
-
-
-
- };
- }
-}
-
-#endif // BOOST_FILE_NAME_CHECK_HPP

Modified: branches/release/tools/inspect/minmax_check.hpp
==============================================================================
--- branches/release/tools/inspect/minmax_check.hpp (original)
+++ branches/release/tools/inspect/minmax_check.hpp 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
@@ -36,7 +36,7 @@
 
       virtual ~minmax_check()
       {
- std::cout << " " << m_errors << " violations of the Boost min/max guidelines\n";
+ std::cout << " " << m_errors << " violations of the Boost min/max guidelines" << line_break();
       }
     };
   }

Modified: branches/release/tools/inspect/tab_check.hpp
==============================================================================
--- branches/release/tools/inspect/tab_check.hpp (original)
+++ branches/release/tools/inspect/tab_check.hpp 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
@@ -20,7 +20,7 @@
     public:
 
       tab_check();
- virtual const char * name() const { return "*T*"; }
+ virtual const char * name() const { return "*Tab*"; }
       virtual const char * desc() const { return "tabs in file"; }
 
       virtual void inspect(
@@ -29,7 +29,7 @@
         const std::string & contents );
 
       virtual ~tab_check()
- { std::cout << " " << m_files_with_errors << " files with tabs\n"; }
+ { std::cout << " " << m_files_with_errors << " files with tabs" << line_break(); }
     };
   }
 }

Modified: branches/release/tools/inspect/time_string.hpp
==============================================================================
--- branches/release/tools/inspect/time_string.hpp (original)
+++ branches/release/tools/inspect/time_string.hpp 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
@@ -16,6 +16,8 @@
 #include <string>
 #include <ctime>
 
+#include <boost/config/warning_disable.hpp>
+
 namespace boost {
 
 // Many of the boost tools just need a quick way to obtain

Modified: branches/release/tools/inspect/unnamed_namespace_check.hpp
==============================================================================
--- branches/release/tools/inspect/unnamed_namespace_check.hpp (original)
+++ branches/release/tools/inspect/unnamed_namespace_check.hpp 2008-07-08 10:29:03 EDT (Tue, 08 Jul 2008)
@@ -30,7 +30,7 @@
         const std::string & contents );
 
       virtual ~unnamed_namespace_check()
- { std::cout << " " << m_errors << " usages of unnamed namespaces in headers (including .ipp files)\n"; }
+ { std::cout << " " << m_errors << " usages of unnamed namespaces in headers (including .ipp files)" << line_break(); }
     };
   }
 }


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