| /* |
| * |
| * Copyright (c) 2003 Dr John Maddock |
| * Use, modification and distribution is subject to 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) |
| * |
| * This file implements the following: |
| * void bcp_implementation::is_source_file(const fs::path& p) |
| * void bcp_implementation::is_html_file(const fs::path& p) |
| * void bcp_implementation::is_binary_file(const fs::path& p) |
| */ |
| |
| #include "bcp_imp.hpp" |
| #include <boost/regex.hpp> |
| |
| bool bcp_implementation::is_source_file(const fs::path& p) |
| { |
| static const boost::regex e( |
| ".*\\." |
| "(?:" |
| "c|cxx|h|hxx|inc|inl|.?pp|yy?" |
| ")", |
| boost::regex::perl | boost::regex::icase |
| ); |
| return boost::regex_match(p.filename(), e); |
| } |
| |
| bool bcp_implementation::is_html_file(const fs::path& p) |
| { |
| static const boost::regex e( |
| ".*\\." |
| "(?:" |
| "html?|css" |
| ")" |
| ); |
| return boost::regex_match(p.filename(), e); |
| } |
| |
| bool bcp_implementation::is_binary_file(const fs::path& p) |
| { |
| if(m_cvs_mode || m_svn_mode) |
| { |
| std::map<fs::path, bool, path_less>::iterator pos = m_cvs_paths.find(p); |
| if(pos != m_cvs_paths.end()) return pos->second; |
| } |
| static const boost::regex e( |
| ".*\\." |
| "(?:" |
| "c|cxx|cpp|h|hxx|hpp|inc|html?|css|mak|in" |
| ")" |
| "|" |
| "(Jamfile|makefile|configure)", |
| boost::regex::perl | boost::regex::icase); |
| return !boost::regex_match(p.leaf(), e); |
| |
| } |
| |
| bool bcp_implementation::is_jam_file(const fs::path& p) |
| { |
| static const boost::regex e( |
| ".*\\." |
| "(?:" |
| "jam|v2" |
| ")" |
| "|" |
| "(Jamfile|Jamroot)\\.?", |
| boost::regex::perl | boost::regex::icase |
| ); |
| return boost::regex_match(p.filename(), e); |
| } |
| |