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