passenger 4.0.27 → 4.0.28
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- data.tar.gz.asc +7 -7
- data/.gitignore +1 -0
- data/NEWS +22 -0
- data/build/preprocessor.rb +10 -0
- data/build/rpm.rb +74 -65
- data/debian.template/rules.template +8 -0
- data/dev/copy_boost_headers.rb +11 -2
- data/doc/Users guide Apache.idmap.txt +161 -145
- data/doc/Users guide Apache.txt +12 -1
- data/doc/Users guide Nginx.idmap.txt +142 -126
- data/doc/Users guide Nginx.txt +14 -1
- data/doc/Users guide Standalone.txt +1 -0
- data/doc/users_guide_snippets/environment_variables.txt +1 -1
- data/doc/users_guide_snippets/installation.txt +2 -0
- data/doc/users_guide_snippets/tips.txt +118 -0
- data/ext/apache2/Configuration.cpp +0 -6
- data/ext/apache2/Configuration.hpp +0 -5
- data/ext/apache2/ConfigurationCommands.cpp +7 -0
- data/ext/apache2/ConfigurationFields.hpp +2 -0
- data/ext/apache2/ConfigurationSetters.cpp +24 -0
- data/ext/apache2/CreateDirConfig.cpp +1 -0
- data/ext/apache2/Hooks.cpp +0 -1
- data/ext/apache2/MergeDirConfig.cpp +7 -0
- data/ext/apache2/SetHeaders.cpp +5 -1
- data/ext/boost/cregex.hpp +39 -0
- data/ext/boost/libs/regex/src/c_regex_traits.cpp +193 -0
- data/ext/boost/libs/regex/src/cpp_regex_traits.cpp +117 -0
- data/ext/boost/libs/regex/src/cregex.cpp +660 -0
- data/ext/boost/libs/regex/src/instances.cpp +32 -0
- data/ext/boost/libs/regex/src/internals.hpp +35 -0
- data/ext/boost/libs/regex/src/posix_api.cpp +296 -0
- data/ext/boost/libs/regex/src/regex.cpp +227 -0
- data/ext/boost/libs/regex/src/regex_debug.cpp +59 -0
- data/ext/boost/libs/regex/src/regex_raw_buffer.cpp +72 -0
- data/ext/boost/libs/regex/src/regex_traits_defaults.cpp +692 -0
- data/ext/boost/libs/regex/src/static_mutex.cpp +179 -0
- data/ext/boost/libs/regex/src/wc_regex_traits.cpp +301 -0
- data/ext/boost/libs/regex/src/wide_posix_api.cpp +315 -0
- data/ext/boost/libs/regex/src/winstances.cpp +35 -0
- data/ext/boost/regex.h +100 -0
- data/ext/boost/regex.hpp +37 -0
- data/ext/boost/regex/concepts.hpp +1128 -0
- data/ext/boost/regex/config.hpp +435 -0
- data/ext/boost/regex/config/borland.hpp +72 -0
- data/ext/boost/regex/config/cwchar.hpp +207 -0
- data/ext/boost/regex/mfc.hpp +190 -0
- data/ext/boost/regex/pattern_except.hpp +100 -0
- data/ext/boost/regex/pending/object_cache.hpp +165 -0
- data/ext/boost/regex/pending/static_mutex.hpp +179 -0
- data/ext/boost/regex/pending/unicode_iterator.hpp +776 -0
- data/ext/boost/regex/regex_traits.hpp +35 -0
- data/ext/boost/regex/user.hpp +93 -0
- data/ext/boost/regex/v4/basic_regex.hpp +782 -0
- data/ext/boost/regex/v4/basic_regex_creator.hpp +1571 -0
- data/ext/boost/regex/v4/basic_regex_parser.hpp +2874 -0
- data/ext/boost/regex/v4/c_regex_traits.hpp +211 -0
- data/ext/boost/regex/v4/char_regex_traits.hpp +81 -0
- data/ext/boost/regex/v4/cpp_regex_traits.hpp +1099 -0
- data/ext/boost/regex/v4/cregex.hpp +330 -0
- data/ext/boost/regex/v4/error_type.hpp +59 -0
- data/ext/boost/regex/v4/fileiter.hpp +455 -0
- data/ext/boost/regex/v4/instances.hpp +222 -0
- data/ext/boost/regex/v4/iterator_category.hpp +91 -0
- data/ext/boost/regex/v4/iterator_traits.hpp +135 -0
- data/ext/boost/regex/v4/match_flags.hpp +138 -0
- data/ext/boost/regex/v4/match_results.hpp +702 -0
- data/ext/boost/regex/v4/mem_block_cache.hpp +99 -0
- data/ext/boost/regex/v4/perl_matcher.hpp +587 -0
- data/ext/boost/regex/v4/perl_matcher_common.hpp +996 -0
- data/ext/boost/regex/v4/perl_matcher_non_recursive.hpp +1642 -0
- data/ext/boost/regex/v4/perl_matcher_recursive.hpp +991 -0
- data/ext/boost/regex/v4/primary_transform.hpp +146 -0
- data/ext/boost/regex/v4/protected_call.hpp +81 -0
- data/ext/boost/regex/v4/regbase.hpp +180 -0
- data/ext/boost/regex/v4/regex.hpp +202 -0
- data/ext/boost/regex/v4/regex_format.hpp +1156 -0
- data/ext/boost/regex/v4/regex_fwd.hpp +73 -0
- data/ext/boost/regex/v4/regex_grep.hpp +155 -0
- data/ext/boost/regex/v4/regex_iterator.hpp +201 -0
- data/ext/boost/regex/v4/regex_match.hpp +382 -0
- data/ext/boost/regex/v4/regex_merge.hpp +93 -0
- data/ext/boost/regex/v4/regex_raw_buffer.hpp +210 -0
- data/ext/boost/regex/v4/regex_replace.hpp +99 -0
- data/ext/boost/regex/v4/regex_search.hpp +217 -0
- data/ext/boost/regex/v4/regex_split.hpp +172 -0
- data/ext/boost/regex/v4/regex_token_iterator.hpp +342 -0
- data/ext/boost/regex/v4/regex_traits.hpp +189 -0
- data/ext/boost/regex/v4/regex_traits_defaults.hpp +371 -0
- data/ext/boost/regex/v4/regex_workaround.hpp +232 -0
- data/ext/boost/regex/v4/states.hpp +301 -0
- data/ext/boost/regex/v4/sub_match.hpp +512 -0
- data/ext/boost/regex/v4/syntax_type.hpp +105 -0
- data/ext/boost/regex/v4/u32regex_iterator.hpp +193 -0
- data/ext/boost/regex/v4/u32regex_token_iterator.hpp +377 -0
- data/ext/boost/regex/v4/w32_regex_traits.hpp +741 -0
- data/ext/boost/regex_fwd.hpp +33 -0
- data/ext/common/AgentsStarter.h +0 -11
- data/ext/common/ApplicationPool2/Common.h +1 -7
- data/ext/common/ApplicationPool2/DirectSpawner.h +3 -3
- data/ext/common/ApplicationPool2/Group.h +166 -69
- data/ext/common/ApplicationPool2/Implementation.cpp +55 -10
- data/ext/common/ApplicationPool2/Options.h +45 -10
- data/ext/common/ApplicationPool2/PipeWatcher.h +1 -2
- data/ext/common/ApplicationPool2/Pool.h +29 -7
- data/ext/common/ApplicationPool2/Process.h +22 -3
- data/ext/common/ApplicationPool2/Session.h +1 -0
- data/ext/common/ApplicationPool2/SmartSpawner.h +5 -10
- data/ext/common/ApplicationPool2/Spawner.h +10 -15
- data/ext/common/ApplicationPool2/SuperGroup.h +10 -9
- data/ext/common/Constants.h +1 -3
- data/ext/common/Hooks.h +193 -0
- data/ext/common/Logging.cpp +67 -2
- data/ext/common/Logging.h +23 -1
- data/ext/common/Utils.cpp +0 -21
- data/ext/common/Utils.h +0 -42
- data/ext/common/Utils/CachedFileStat.hpp +1 -1
- data/ext/common/Utils/StrIntUtils.h +61 -14
- data/ext/common/Utils/StringMap.h +4 -0
- data/ext/common/agents/HelperAgent/AgentOptions.h +4 -4
- data/ext/common/agents/HelperAgent/Main.cpp +2 -3
- data/ext/common/agents/HelperAgent/RequestHandler.h +65 -2
- data/ext/common/agents/LoggingAgent/FilterSupport.h +3 -1
- data/ext/common/agents/Watchdog/Main.cpp +8 -72
- data/ext/nginx/CacheLocationConfig.c +29 -1
- data/ext/nginx/Configuration.c +0 -12
- data/ext/nginx/Configuration.h +0 -1
- data/ext/nginx/ConfigurationCommands.c +10 -0
- data/ext/nginx/ConfigurationFields.h +2 -0
- data/ext/nginx/CreateLocationConfig.c +4 -0
- data/ext/nginx/MergeLocationConfig.c +6 -0
- data/ext/oxt/system_calls.cpp +7 -1
- data/ext/oxt/system_calls.hpp +7 -7
- data/helper-scripts/node-loader.js +6 -2
- data/helper-scripts/rack-loader.rb +5 -2
- data/helper-scripts/rack-preloader.rb +5 -2
- data/lib/phusion_passenger.rb +1 -1
- data/lib/phusion_passenger/apache2/config_options.rb +8 -0
- data/lib/phusion_passenger/constants.rb +0 -1
- data/lib/phusion_passenger/nginx/config_options.rb +9 -2
- data/lib/phusion_passenger/platform_info/apache.rb +2 -1
- data/lib/phusion_passenger/platform_info/compiler.rb +15 -1
- data/lib/phusion_passenger/platform_info/cxx_portability.rb +2 -0
- data/node_lib/phusion_passenger/httplib_emulation.js +85 -17
- data/node_lib/phusion_passenger/request_handler.js +10 -2
- data/rpm/Vagrantfile +32 -0
- data/rpm/get_distro_id.py +4 -0
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +2 -2
- data/test/cxx/ApplicationPool2/PoolTest.cpp +60 -9
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +2 -6
- data/test/cxx/CachedFileStatTest.cpp +5 -5
- data/test/cxx/RequestHandlerTest.cpp +3 -6
- data/test/cxx/UtilsTest.cpp +30 -0
- data/test/node/httplib_emulation_spec.js +491 -0
- data/test/node/spec_helper.js +25 -0
- metadata +78 -2
- metadata.gz.asc +7 -7
@@ -0,0 +1,146 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright (c) 1998-2002
|
4
|
+
* John Maddock
|
5
|
+
*
|
6
|
+
* Use, modification and distribution are subject to the
|
7
|
+
* Boost Software License, Version 1.0. (See accompanying file
|
8
|
+
* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
*
|
10
|
+
*/
|
11
|
+
|
12
|
+
/*
|
13
|
+
* LOCATION: see http://www.boost.org for most recent version.
|
14
|
+
* FILE: primary_transform.hpp
|
15
|
+
* VERSION: see <boost/version.hpp>
|
16
|
+
* DESCRIPTION: Heuristically determines the sort string format in use
|
17
|
+
* by the current locale.
|
18
|
+
*/
|
19
|
+
|
20
|
+
#ifndef BOOST_REGEX_PRIMARY_TRANSFORM
|
21
|
+
#define BOOST_REGEX_PRIMARY_TRANSFORM
|
22
|
+
|
23
|
+
#ifdef BOOST_MSVC
|
24
|
+
#pragma warning(push)
|
25
|
+
#pragma warning(disable: 4103)
|
26
|
+
#endif
|
27
|
+
#ifdef BOOST_HAS_ABI_HEADERS
|
28
|
+
# include BOOST_ABI_PREFIX
|
29
|
+
#endif
|
30
|
+
#ifdef BOOST_MSVC
|
31
|
+
#pragma warning(pop)
|
32
|
+
#endif
|
33
|
+
|
34
|
+
namespace boost{
|
35
|
+
namespace re_detail{
|
36
|
+
|
37
|
+
|
38
|
+
enum{
|
39
|
+
sort_C,
|
40
|
+
sort_fixed,
|
41
|
+
sort_delim,
|
42
|
+
sort_unknown
|
43
|
+
};
|
44
|
+
|
45
|
+
template <class S, class charT>
|
46
|
+
unsigned count_chars(const S& s, charT c)
|
47
|
+
{
|
48
|
+
//
|
49
|
+
// Count how many occurances of character c occur
|
50
|
+
// in string s: if c is a delimeter between collation
|
51
|
+
// fields, then this should be the same value for all
|
52
|
+
// sort keys:
|
53
|
+
//
|
54
|
+
unsigned int count = 0;
|
55
|
+
for(unsigned pos = 0; pos < s.size(); ++pos)
|
56
|
+
{
|
57
|
+
if(s[pos] == c) ++count;
|
58
|
+
}
|
59
|
+
return count;
|
60
|
+
}
|
61
|
+
|
62
|
+
|
63
|
+
template <class traits, class charT>
|
64
|
+
unsigned find_sort_syntax(const traits* pt, charT* delim)
|
65
|
+
{
|
66
|
+
//
|
67
|
+
// compare 'a' with 'A' to see how similar they are,
|
68
|
+
// should really use a-accute but we can't portably do that,
|
69
|
+
//
|
70
|
+
typedef typename traits::string_type string_type;
|
71
|
+
typedef typename traits::char_type char_type;
|
72
|
+
|
73
|
+
// Suppress incorrect warning for MSVC
|
74
|
+
(void)pt;
|
75
|
+
|
76
|
+
char_type a[2] = {'a', '\0', };
|
77
|
+
string_type sa(pt->transform(a, a+1));
|
78
|
+
if(sa == a)
|
79
|
+
{
|
80
|
+
*delim = 0;
|
81
|
+
return sort_C;
|
82
|
+
}
|
83
|
+
char_type A[2] = { 'A', '\0', };
|
84
|
+
string_type sA(pt->transform(A, A+1));
|
85
|
+
char_type c[2] = { ';', '\0', };
|
86
|
+
string_type sc(pt->transform(c, c+1));
|
87
|
+
|
88
|
+
int pos = 0;
|
89
|
+
while((pos <= static_cast<int>(sa.size())) && (pos <= static_cast<int>(sA.size())) && (sa[pos] == sA[pos])) ++pos;
|
90
|
+
--pos;
|
91
|
+
if(pos < 0)
|
92
|
+
{
|
93
|
+
*delim = 0;
|
94
|
+
return sort_unknown;
|
95
|
+
}
|
96
|
+
//
|
97
|
+
// at this point sa[pos] is either the end of a fixed width field
|
98
|
+
// or the character that acts as a delimiter:
|
99
|
+
//
|
100
|
+
charT maybe_delim = sa[pos];
|
101
|
+
if((pos != 0) && (count_chars(sa, maybe_delim) == count_chars(sA, maybe_delim)) && (count_chars(sa, maybe_delim) == count_chars(sc, maybe_delim)))
|
102
|
+
{
|
103
|
+
*delim = maybe_delim;
|
104
|
+
return sort_delim;
|
105
|
+
}
|
106
|
+
//
|
107
|
+
// OK doen't look like a delimiter, try for fixed width field:
|
108
|
+
//
|
109
|
+
if((sa.size() == sA.size()) && (sa.size() == sc.size()))
|
110
|
+
{
|
111
|
+
// note assumes that the fixed width field is less than
|
112
|
+
// (numeric_limits<charT>::max)(), should be true for all types
|
113
|
+
// I can't imagine 127 character fields...
|
114
|
+
*delim = static_cast<charT>(++pos);
|
115
|
+
return sort_fixed;
|
116
|
+
}
|
117
|
+
//
|
118
|
+
// don't know what it is:
|
119
|
+
//
|
120
|
+
*delim = 0;
|
121
|
+
return sort_unknown;
|
122
|
+
}
|
123
|
+
|
124
|
+
|
125
|
+
} // namespace re_detail
|
126
|
+
} // namespace boost
|
127
|
+
|
128
|
+
#ifdef BOOST_MSVC
|
129
|
+
#pragma warning(push)
|
130
|
+
#pragma warning(disable: 4103)
|
131
|
+
#endif
|
132
|
+
#ifdef BOOST_HAS_ABI_HEADERS
|
133
|
+
# include BOOST_ABI_SUFFIX
|
134
|
+
#endif
|
135
|
+
#ifdef BOOST_MSVC
|
136
|
+
#pragma warning(pop)
|
137
|
+
#endif
|
138
|
+
|
139
|
+
#endif
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
|
146
|
+
|
@@ -0,0 +1,81 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright (c) 2004
|
4
|
+
* John Maddock
|
5
|
+
*
|
6
|
+
* Use, modification and distribution are subject to the
|
7
|
+
* Boost Software License, Version 1.0. (See accompanying file
|
8
|
+
* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
*
|
10
|
+
*/
|
11
|
+
|
12
|
+
/*
|
13
|
+
* LOCATION: see http://www.boost.org for most recent version.
|
14
|
+
* FILE basic_regex_creator.cpp
|
15
|
+
* VERSION see <boost/version.hpp>
|
16
|
+
* DESCRIPTION: Declares template class basic_regex_creator which fills in
|
17
|
+
* the data members of a regex_data object.
|
18
|
+
*/
|
19
|
+
|
20
|
+
#ifndef BOOST_REGEX_V4_PROTECTED_CALL_HPP
|
21
|
+
#define BOOST_REGEX_V4_PROTECTED_CALL_HPP
|
22
|
+
|
23
|
+
#ifdef BOOST_MSVC
|
24
|
+
#pragma warning(push)
|
25
|
+
#pragma warning(disable: 4103)
|
26
|
+
#endif
|
27
|
+
#ifdef BOOST_HAS_ABI_HEADERS
|
28
|
+
# include BOOST_ABI_PREFIX
|
29
|
+
#endif
|
30
|
+
#ifdef BOOST_MSVC
|
31
|
+
#pragma warning(pop)
|
32
|
+
#endif
|
33
|
+
|
34
|
+
namespace boost{
|
35
|
+
namespace re_detail{
|
36
|
+
|
37
|
+
class BOOST_REGEX_DECL abstract_protected_call
|
38
|
+
{
|
39
|
+
public:
|
40
|
+
bool BOOST_REGEX_CALL execute()const;
|
41
|
+
// this stops gcc-4 from complaining:
|
42
|
+
virtual ~abstract_protected_call(){}
|
43
|
+
private:
|
44
|
+
virtual bool call()const = 0;
|
45
|
+
};
|
46
|
+
|
47
|
+
template <class T>
|
48
|
+
class concrete_protected_call
|
49
|
+
: public abstract_protected_call
|
50
|
+
{
|
51
|
+
public:
|
52
|
+
typedef bool (T::*proc_type)();
|
53
|
+
concrete_protected_call(T* o, proc_type p)
|
54
|
+
: obj(o), proc(p) {}
|
55
|
+
private:
|
56
|
+
virtual bool call()const;
|
57
|
+
T* obj;
|
58
|
+
proc_type proc;
|
59
|
+
};
|
60
|
+
|
61
|
+
template <class T>
|
62
|
+
bool concrete_protected_call<T>::call()const
|
63
|
+
{
|
64
|
+
return (obj->*proc)();
|
65
|
+
}
|
66
|
+
|
67
|
+
}
|
68
|
+
} // namespace boost
|
69
|
+
|
70
|
+
#ifdef BOOST_MSVC
|
71
|
+
#pragma warning(push)
|
72
|
+
#pragma warning(disable: 4103)
|
73
|
+
#endif
|
74
|
+
#ifdef BOOST_HAS_ABI_HEADERS
|
75
|
+
# include BOOST_ABI_SUFFIX
|
76
|
+
#endif
|
77
|
+
#ifdef BOOST_MSVC
|
78
|
+
#pragma warning(pop)
|
79
|
+
#endif
|
80
|
+
|
81
|
+
#endif
|
@@ -0,0 +1,180 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright (c) 1998-2002
|
4
|
+
* John Maddock
|
5
|
+
*
|
6
|
+
* Use, modification and distribution are subject to the
|
7
|
+
* Boost Software License, Version 1.0. (See accompanying file
|
8
|
+
* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
*
|
10
|
+
*/
|
11
|
+
|
12
|
+
/*
|
13
|
+
* LOCATION: see http://www.boost.org for most recent version.
|
14
|
+
* FILE regbase.cpp
|
15
|
+
* VERSION see <boost/version.hpp>
|
16
|
+
* DESCRIPTION: Declares class regbase.
|
17
|
+
*/
|
18
|
+
|
19
|
+
#ifndef BOOST_REGEX_V4_REGBASE_HPP
|
20
|
+
#define BOOST_REGEX_V4_REGBASE_HPP
|
21
|
+
|
22
|
+
#ifdef BOOST_MSVC
|
23
|
+
#pragma warning(push)
|
24
|
+
#pragma warning(disable: 4103)
|
25
|
+
#endif
|
26
|
+
#ifdef BOOST_HAS_ABI_HEADERS
|
27
|
+
# include BOOST_ABI_PREFIX
|
28
|
+
#endif
|
29
|
+
#ifdef BOOST_MSVC
|
30
|
+
#pragma warning(pop)
|
31
|
+
#endif
|
32
|
+
|
33
|
+
namespace boost{
|
34
|
+
//
|
35
|
+
// class regbase
|
36
|
+
// handles error codes and flags
|
37
|
+
//
|
38
|
+
class BOOST_REGEX_DECL regbase
|
39
|
+
{
|
40
|
+
public:
|
41
|
+
enum flag_type_
|
42
|
+
{
|
43
|
+
//
|
44
|
+
// Divide the flags up into logical groups:
|
45
|
+
// bits 0-7 indicate main synatx type.
|
46
|
+
// bits 8-15 indicate syntax subtype.
|
47
|
+
// bits 16-31 indicate options that are common to all
|
48
|
+
// regex syntaxes.
|
49
|
+
// In all cases the default is 0.
|
50
|
+
//
|
51
|
+
// Main synatx group:
|
52
|
+
//
|
53
|
+
perl_syntax_group = 0, // default
|
54
|
+
basic_syntax_group = 1, // POSIX basic
|
55
|
+
literal = 2, // all characters are literals
|
56
|
+
main_option_type = literal | basic_syntax_group | perl_syntax_group, // everything!
|
57
|
+
//
|
58
|
+
// options specific to perl group:
|
59
|
+
//
|
60
|
+
no_bk_refs = 1 << 8, // \d not allowed
|
61
|
+
no_perl_ex = 1 << 9, // disable perl extensions
|
62
|
+
no_mod_m = 1 << 10, // disable Perl m modifier
|
63
|
+
mod_x = 1 << 11, // Perl x modifier
|
64
|
+
mod_s = 1 << 12, // force s modifier on (overrides match_not_dot_newline)
|
65
|
+
no_mod_s = 1 << 13, // force s modifier off (overrides match_not_dot_newline)
|
66
|
+
|
67
|
+
//
|
68
|
+
// options specific to basic group:
|
69
|
+
//
|
70
|
+
no_char_classes = 1 << 8, // [[:CLASS:]] not allowed
|
71
|
+
no_intervals = 1 << 9, // {x,y} not allowed
|
72
|
+
bk_plus_qm = 1 << 10, // uses \+ and \?
|
73
|
+
bk_vbar = 1 << 11, // use \| for alternatives
|
74
|
+
emacs_ex = 1 << 12, // enables emacs extensions
|
75
|
+
|
76
|
+
//
|
77
|
+
// options common to all groups:
|
78
|
+
//
|
79
|
+
no_escape_in_lists = 1 << 16, // '\' not special inside [...]
|
80
|
+
newline_alt = 1 << 17, // \n is the same as |
|
81
|
+
no_except = 1 << 18, // no exception on error
|
82
|
+
failbit = 1 << 19, // error flag
|
83
|
+
icase = 1 << 20, // characters are matched regardless of case
|
84
|
+
nocollate = 0, // don't use locale specific collation (deprecated)
|
85
|
+
collate = 1 << 21, // use locale specific collation
|
86
|
+
nosubs = 1 << 22, // don't mark sub-expressions
|
87
|
+
save_subexpression_location = 1 << 23, // save subexpression locations
|
88
|
+
no_empty_expressions = 1 << 24, // no empty expressions allowed
|
89
|
+
optimize = 0, // not really supported
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
basic = basic_syntax_group | collate | no_escape_in_lists,
|
94
|
+
extended = no_bk_refs | collate | no_perl_ex | no_escape_in_lists,
|
95
|
+
normal = 0,
|
96
|
+
emacs = basic_syntax_group | collate | emacs_ex | bk_vbar,
|
97
|
+
awk = no_bk_refs | collate | no_perl_ex,
|
98
|
+
grep = basic | newline_alt,
|
99
|
+
egrep = extended | newline_alt,
|
100
|
+
sed = basic,
|
101
|
+
perl = normal,
|
102
|
+
ECMAScript = normal,
|
103
|
+
JavaScript = normal,
|
104
|
+
JScript = normal
|
105
|
+
};
|
106
|
+
typedef unsigned int flag_type;
|
107
|
+
|
108
|
+
enum restart_info
|
109
|
+
{
|
110
|
+
restart_any = 0,
|
111
|
+
restart_word = 1,
|
112
|
+
restart_line = 2,
|
113
|
+
restart_buf = 3,
|
114
|
+
restart_continue = 4,
|
115
|
+
restart_lit = 5,
|
116
|
+
restart_fixed_lit = 6,
|
117
|
+
restart_count = 7
|
118
|
+
};
|
119
|
+
};
|
120
|
+
|
121
|
+
//
|
122
|
+
// provide std lib proposal compatible constants:
|
123
|
+
//
|
124
|
+
namespace regex_constants{
|
125
|
+
|
126
|
+
enum flag_type_
|
127
|
+
{
|
128
|
+
|
129
|
+
no_except = ::boost::regbase::no_except,
|
130
|
+
failbit = ::boost::regbase::failbit,
|
131
|
+
literal = ::boost::regbase::literal,
|
132
|
+
icase = ::boost::regbase::icase,
|
133
|
+
nocollate = ::boost::regbase::nocollate,
|
134
|
+
collate = ::boost::regbase::collate,
|
135
|
+
nosubs = ::boost::regbase::nosubs,
|
136
|
+
optimize = ::boost::regbase::optimize,
|
137
|
+
bk_plus_qm = ::boost::regbase::bk_plus_qm,
|
138
|
+
bk_vbar = ::boost::regbase::bk_vbar,
|
139
|
+
no_intervals = ::boost::regbase::no_intervals,
|
140
|
+
no_char_classes = ::boost::regbase::no_char_classes,
|
141
|
+
no_escape_in_lists = ::boost::regbase::no_escape_in_lists,
|
142
|
+
no_mod_m = ::boost::regbase::no_mod_m,
|
143
|
+
mod_x = ::boost::regbase::mod_x,
|
144
|
+
mod_s = ::boost::regbase::mod_s,
|
145
|
+
no_mod_s = ::boost::regbase::no_mod_s,
|
146
|
+
save_subexpression_location = ::boost::regbase::save_subexpression_location,
|
147
|
+
no_empty_expressions = ::boost::regbase::no_empty_expressions,
|
148
|
+
|
149
|
+
basic = ::boost::regbase::basic,
|
150
|
+
extended = ::boost::regbase::extended,
|
151
|
+
normal = ::boost::regbase::normal,
|
152
|
+
emacs = ::boost::regbase::emacs,
|
153
|
+
awk = ::boost::regbase::awk,
|
154
|
+
grep = ::boost::regbase::grep,
|
155
|
+
egrep = ::boost::regbase::egrep,
|
156
|
+
sed = basic,
|
157
|
+
perl = normal,
|
158
|
+
ECMAScript = normal,
|
159
|
+
JavaScript = normal,
|
160
|
+
JScript = normal
|
161
|
+
};
|
162
|
+
typedef ::boost::regbase::flag_type syntax_option_type;
|
163
|
+
|
164
|
+
} // namespace regex_constants
|
165
|
+
|
166
|
+
} // namespace boost
|
167
|
+
|
168
|
+
#ifdef BOOST_MSVC
|
169
|
+
#pragma warning(push)
|
170
|
+
#pragma warning(disable: 4103)
|
171
|
+
#endif
|
172
|
+
#ifdef BOOST_HAS_ABI_HEADERS
|
173
|
+
# include BOOST_ABI_SUFFIX
|
174
|
+
#endif
|
175
|
+
#ifdef BOOST_MSVC
|
176
|
+
#pragma warning(pop)
|
177
|
+
#endif
|
178
|
+
|
179
|
+
#endif
|
180
|
+
|
@@ -0,0 +1,202 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright (c) 1998-2002
|
4
|
+
* John Maddock
|
5
|
+
*
|
6
|
+
* Use, modification and distribution are subject to the
|
7
|
+
* Boost Software License, Version 1.0. (See accompanying file
|
8
|
+
* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
*
|
10
|
+
*/
|
11
|
+
|
12
|
+
/*
|
13
|
+
* LOCATION: see http://www.boost.org for most recent version.
|
14
|
+
* FILE regex.cpp
|
15
|
+
* VERSION see <boost/version.hpp>
|
16
|
+
* DESCRIPTION: Declares boost::basic_regex<> and associated
|
17
|
+
* functions and classes. This header is the main
|
18
|
+
* entry point for the template regex code.
|
19
|
+
*/
|
20
|
+
|
21
|
+
#ifndef BOOST_RE_REGEX_HPP_INCLUDED
|
22
|
+
#define BOOST_RE_REGEX_HPP_INCLUDED
|
23
|
+
|
24
|
+
#ifdef __cplusplus
|
25
|
+
|
26
|
+
// what follows is all C++ don't include in C builds!!
|
27
|
+
|
28
|
+
#ifndef BOOST_REGEX_CONFIG_HPP
|
29
|
+
#include <boost/regex/config.hpp>
|
30
|
+
#endif
|
31
|
+
#ifndef BOOST_REGEX_WORKAROUND_HPP
|
32
|
+
#include <boost/regex/v4/regex_workaround.hpp>
|
33
|
+
#endif
|
34
|
+
|
35
|
+
#ifndef BOOST_REGEX_FWD_HPP
|
36
|
+
#include <boost/regex_fwd.hpp>
|
37
|
+
#endif
|
38
|
+
#ifndef BOOST_REGEX_TRAITS_HPP
|
39
|
+
#include <boost/regex/regex_traits.hpp>
|
40
|
+
#endif
|
41
|
+
#ifndef BOOST_REGEX_RAW_BUFFER_HPP
|
42
|
+
#include <boost/regex/v4/error_type.hpp>
|
43
|
+
#endif
|
44
|
+
#ifndef BOOST_REGEX_V4_MATCH_FLAGS
|
45
|
+
#include <boost/regex/v4/match_flags.hpp>
|
46
|
+
#endif
|
47
|
+
#ifndef BOOST_REGEX_RAW_BUFFER_HPP
|
48
|
+
#include <boost/regex/v4/regex_raw_buffer.hpp>
|
49
|
+
#endif
|
50
|
+
#ifndef BOOST_RE_PAT_EXCEPT_HPP
|
51
|
+
#include <boost/regex/pattern_except.hpp>
|
52
|
+
#endif
|
53
|
+
|
54
|
+
#ifndef BOOST_REGEX_V4_CHAR_REGEX_TRAITS_HPP
|
55
|
+
#include <boost/regex/v4/char_regex_traits.hpp>
|
56
|
+
#endif
|
57
|
+
#ifndef BOOST_REGEX_V4_STATES_HPP
|
58
|
+
#include <boost/regex/v4/states.hpp>
|
59
|
+
#endif
|
60
|
+
#ifndef BOOST_REGEX_V4_REGBASE_HPP
|
61
|
+
#include <boost/regex/v4/regbase.hpp>
|
62
|
+
#endif
|
63
|
+
#ifndef BOOST_REGEX_V4_ITERATOR_TRAITS_HPP
|
64
|
+
#include <boost/regex/v4/iterator_traits.hpp>
|
65
|
+
#endif
|
66
|
+
#ifndef BOOST_REGEX_V4_BASIC_REGEX_HPP
|
67
|
+
#include <boost/regex/v4/basic_regex.hpp>
|
68
|
+
#endif
|
69
|
+
#ifndef BOOST_REGEX_V4_BASIC_REGEX_CREATOR_HPP
|
70
|
+
#include <boost/regex/v4/basic_regex_creator.hpp>
|
71
|
+
#endif
|
72
|
+
#ifndef BOOST_REGEX_V4_BASIC_REGEX_PARSER_HPP
|
73
|
+
#include <boost/regex/v4/basic_regex_parser.hpp>
|
74
|
+
#endif
|
75
|
+
#ifndef BOOST_REGEX_V4_SUB_MATCH_HPP
|
76
|
+
#include <boost/regex/v4/sub_match.hpp>
|
77
|
+
#endif
|
78
|
+
#ifndef BOOST_REGEX_FORMAT_HPP
|
79
|
+
#include <boost/regex/v4/regex_format.hpp>
|
80
|
+
#endif
|
81
|
+
#ifndef BOOST_REGEX_V4_MATCH_RESULTS_HPP
|
82
|
+
#include <boost/regex/v4/match_results.hpp>
|
83
|
+
#endif
|
84
|
+
#ifndef BOOST_REGEX_V4_PROTECTED_CALL_HPP
|
85
|
+
#include <boost/regex/v4/protected_call.hpp>
|
86
|
+
#endif
|
87
|
+
#ifndef BOOST_REGEX_MATCHER_HPP
|
88
|
+
#include <boost/regex/v4/perl_matcher.hpp>
|
89
|
+
#endif
|
90
|
+
//
|
91
|
+
// template instances:
|
92
|
+
//
|
93
|
+
#define BOOST_REGEX_CHAR_T char
|
94
|
+
#ifdef BOOST_REGEX_NARROW_INSTANTIATE
|
95
|
+
# define BOOST_REGEX_INSTANTIATE
|
96
|
+
#endif
|
97
|
+
#include <boost/regex/v4/instances.hpp>
|
98
|
+
#undef BOOST_REGEX_CHAR_T
|
99
|
+
#ifdef BOOST_REGEX_INSTANTIATE
|
100
|
+
# undef BOOST_REGEX_INSTANTIATE
|
101
|
+
#endif
|
102
|
+
|
103
|
+
#ifndef BOOST_NO_WREGEX
|
104
|
+
#define BOOST_REGEX_CHAR_T wchar_t
|
105
|
+
#ifdef BOOST_REGEX_WIDE_INSTANTIATE
|
106
|
+
# define BOOST_REGEX_INSTANTIATE
|
107
|
+
#endif
|
108
|
+
#include <boost/regex/v4/instances.hpp>
|
109
|
+
#undef BOOST_REGEX_CHAR_T
|
110
|
+
#ifdef BOOST_REGEX_INSTANTIATE
|
111
|
+
# undef BOOST_REGEX_INSTANTIATE
|
112
|
+
#endif
|
113
|
+
#endif
|
114
|
+
|
115
|
+
#if !defined(BOOST_NO_WREGEX) && defined(BOOST_REGEX_HAS_OTHER_WCHAR_T)
|
116
|
+
#define BOOST_REGEX_CHAR_T unsigned short
|
117
|
+
#ifdef BOOST_REGEX_US_INSTANTIATE
|
118
|
+
# define BOOST_REGEX_INSTANTIATE
|
119
|
+
#endif
|
120
|
+
#include <boost/regex/v4/instances.hpp>
|
121
|
+
#undef BOOST_REGEX_CHAR_T
|
122
|
+
#ifdef BOOST_REGEX_INSTANTIATE
|
123
|
+
# undef BOOST_REGEX_INSTANTIATE
|
124
|
+
#endif
|
125
|
+
#endif
|
126
|
+
|
127
|
+
|
128
|
+
namespace boost{
|
129
|
+
#ifdef BOOST_REGEX_NO_FWD
|
130
|
+
typedef basic_regex<char, regex_traits<char> > regex;
|
131
|
+
#ifndef BOOST_NO_WREGEX
|
132
|
+
typedef basic_regex<wchar_t, regex_traits<wchar_t> > wregex;
|
133
|
+
#endif
|
134
|
+
#endif
|
135
|
+
|
136
|
+
typedef match_results<const char*> cmatch;
|
137
|
+
typedef match_results<std::string::const_iterator> smatch;
|
138
|
+
#ifndef BOOST_NO_WREGEX
|
139
|
+
typedef match_results<const wchar_t*> wcmatch;
|
140
|
+
typedef match_results<std::wstring::const_iterator> wsmatch;
|
141
|
+
#endif
|
142
|
+
|
143
|
+
} // namespace boost
|
144
|
+
#ifndef BOOST_REGEX_MATCH_HPP
|
145
|
+
#include <boost/regex/v4/regex_match.hpp>
|
146
|
+
#endif
|
147
|
+
#ifndef BOOST_REGEX_V4_REGEX_SEARCH_HPP
|
148
|
+
#include <boost/regex/v4/regex_search.hpp>
|
149
|
+
#endif
|
150
|
+
#ifndef BOOST_REGEX_ITERATOR_HPP
|
151
|
+
#include <boost/regex/v4/regex_iterator.hpp>
|
152
|
+
#endif
|
153
|
+
#ifndef BOOST_REGEX_TOKEN_ITERATOR_HPP
|
154
|
+
#include <boost/regex/v4/regex_token_iterator.hpp>
|
155
|
+
#endif
|
156
|
+
#ifndef BOOST_REGEX_V4_REGEX_GREP_HPP
|
157
|
+
#include <boost/regex/v4/regex_grep.hpp>
|
158
|
+
#endif
|
159
|
+
#ifndef BOOST_REGEX_V4_REGEX_REPLACE_HPP
|
160
|
+
#include <boost/regex/v4/regex_replace.hpp>
|
161
|
+
#endif
|
162
|
+
#ifndef BOOST_REGEX_V4_REGEX_MERGE_HPP
|
163
|
+
#include <boost/regex/v4/regex_merge.hpp>
|
164
|
+
#endif
|
165
|
+
#ifndef BOOST_REGEX_SPLIT_HPP
|
166
|
+
#include <boost/regex/v4/regex_split.hpp>
|
167
|
+
#endif
|
168
|
+
|
169
|
+
#endif // __cplusplus
|
170
|
+
|
171
|
+
#endif // include
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
|
202
|
+
|