1 //  license_check implementation  --------------------------------------------//
2 
3 //  Copyright Beman Dawes 2002-2003.
4 //  Distributed under the Boost Software License, Version 1.0.
5 //  (See accompanying file LICENSE_1_0.txt or copy at
6 //  http://www.boost.org/LICENSE_1_0.txt)
7 
8 #include "boost/regex.hpp"
9 #include "license_check.hpp"
10 
11 namespace
12 {
13   boost::regex license_regex(
14     //~ The next two lines change the regex so that it detects when the license
15     //~ doesn't follow the prefered statement. Disabled because it currently
16     //~ generates a large number of issues.
17     //~ "Distributed[\\s\\W]+"
18     //~ "under[\\s\\W]+the[\\s\\W]+"
19     "boost[\\s\\W]+software[\\s\\W]+license",
20     boost::regbase::normal | boost::regbase::icase);
21 
22 } // unnamed namespace
23 
24 namespace boost
25 {
26   namespace inspect
27   {
license_check()28    license_check::license_check() : m_files_with_errors(0)
29    {
30    }
31 
inspect(const string & library_name,const path & full_path,const string & contents)32    void license_check::inspect(
33       const string & library_name,
34       const path & full_path,   // example: c:/foo/boost/filesystem/path.hpp
35       const string & contents )     // contents of file to be inspected
36     {
37       if (contents.find( "boostinspect:" "nolicense" ) != string::npos) return;
38 
39       if ( !boost::regex_search( contents, license_regex ) )
40       {
41         ++m_files_with_errors;
42         error( library_name, full_path, name() );
43       }
44     }
45   } // namespace inspect
46 } // namespace boost
47 
48 
49