• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*=============================================================================
2     Copyright (c) 2013 Daniel James
3 
4     Use, modification and distribution is subject to the Boost Software
5     License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
6     http://www.boost.org/LICENSE_1_0.txt)
7 =============================================================================*/
8 
9 #if !defined(BOOST_QUICKBOOK_GLOB_HPP)
10 #define BOOST_QUICKBOOK_GLOB_HPP
11 
12 #include <stdexcept>
13 #include "string_view.hpp"
14 
15 namespace quickbook
16 {
17     struct glob_error : std::runtime_error
18     {
glob_errorquickbook::glob_error19         explicit glob_error(char const* error) : std::runtime_error(error) {}
20     };
21 
22     // Is this path a glob? Throws glob_error if glob is invalid.
23     bool check_glob(quickbook::string_view);
24 
25     // pre: glob is valid (call check_glob first on user data).
26     bool glob(
27         quickbook::string_view const& pattern,
28         quickbook::string_view const& filename);
29 
30     std::size_t find_glob_char(quickbook::string_view, std::size_t start = 0);
31     std::string glob_unescape(quickbook::string_view);
32 }
33 
34 #endif
35