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.

Files changed (156) hide show
  1. data.tar.gz.asc +7 -7
  2. data/.gitignore +1 -0
  3. data/NEWS +22 -0
  4. data/build/preprocessor.rb +10 -0
  5. data/build/rpm.rb +74 -65
  6. data/debian.template/rules.template +8 -0
  7. data/dev/copy_boost_headers.rb +11 -2
  8. data/doc/Users guide Apache.idmap.txt +161 -145
  9. data/doc/Users guide Apache.txt +12 -1
  10. data/doc/Users guide Nginx.idmap.txt +142 -126
  11. data/doc/Users guide Nginx.txt +14 -1
  12. data/doc/Users guide Standalone.txt +1 -0
  13. data/doc/users_guide_snippets/environment_variables.txt +1 -1
  14. data/doc/users_guide_snippets/installation.txt +2 -0
  15. data/doc/users_guide_snippets/tips.txt +118 -0
  16. data/ext/apache2/Configuration.cpp +0 -6
  17. data/ext/apache2/Configuration.hpp +0 -5
  18. data/ext/apache2/ConfigurationCommands.cpp +7 -0
  19. data/ext/apache2/ConfigurationFields.hpp +2 -0
  20. data/ext/apache2/ConfigurationSetters.cpp +24 -0
  21. data/ext/apache2/CreateDirConfig.cpp +1 -0
  22. data/ext/apache2/Hooks.cpp +0 -1
  23. data/ext/apache2/MergeDirConfig.cpp +7 -0
  24. data/ext/apache2/SetHeaders.cpp +5 -1
  25. data/ext/boost/cregex.hpp +39 -0
  26. data/ext/boost/libs/regex/src/c_regex_traits.cpp +193 -0
  27. data/ext/boost/libs/regex/src/cpp_regex_traits.cpp +117 -0
  28. data/ext/boost/libs/regex/src/cregex.cpp +660 -0
  29. data/ext/boost/libs/regex/src/instances.cpp +32 -0
  30. data/ext/boost/libs/regex/src/internals.hpp +35 -0
  31. data/ext/boost/libs/regex/src/posix_api.cpp +296 -0
  32. data/ext/boost/libs/regex/src/regex.cpp +227 -0
  33. data/ext/boost/libs/regex/src/regex_debug.cpp +59 -0
  34. data/ext/boost/libs/regex/src/regex_raw_buffer.cpp +72 -0
  35. data/ext/boost/libs/regex/src/regex_traits_defaults.cpp +692 -0
  36. data/ext/boost/libs/regex/src/static_mutex.cpp +179 -0
  37. data/ext/boost/libs/regex/src/wc_regex_traits.cpp +301 -0
  38. data/ext/boost/libs/regex/src/wide_posix_api.cpp +315 -0
  39. data/ext/boost/libs/regex/src/winstances.cpp +35 -0
  40. data/ext/boost/regex.h +100 -0
  41. data/ext/boost/regex.hpp +37 -0
  42. data/ext/boost/regex/concepts.hpp +1128 -0
  43. data/ext/boost/regex/config.hpp +435 -0
  44. data/ext/boost/regex/config/borland.hpp +72 -0
  45. data/ext/boost/regex/config/cwchar.hpp +207 -0
  46. data/ext/boost/regex/mfc.hpp +190 -0
  47. data/ext/boost/regex/pattern_except.hpp +100 -0
  48. data/ext/boost/regex/pending/object_cache.hpp +165 -0
  49. data/ext/boost/regex/pending/static_mutex.hpp +179 -0
  50. data/ext/boost/regex/pending/unicode_iterator.hpp +776 -0
  51. data/ext/boost/regex/regex_traits.hpp +35 -0
  52. data/ext/boost/regex/user.hpp +93 -0
  53. data/ext/boost/regex/v4/basic_regex.hpp +782 -0
  54. data/ext/boost/regex/v4/basic_regex_creator.hpp +1571 -0
  55. data/ext/boost/regex/v4/basic_regex_parser.hpp +2874 -0
  56. data/ext/boost/regex/v4/c_regex_traits.hpp +211 -0
  57. data/ext/boost/regex/v4/char_regex_traits.hpp +81 -0
  58. data/ext/boost/regex/v4/cpp_regex_traits.hpp +1099 -0
  59. data/ext/boost/regex/v4/cregex.hpp +330 -0
  60. data/ext/boost/regex/v4/error_type.hpp +59 -0
  61. data/ext/boost/regex/v4/fileiter.hpp +455 -0
  62. data/ext/boost/regex/v4/instances.hpp +222 -0
  63. data/ext/boost/regex/v4/iterator_category.hpp +91 -0
  64. data/ext/boost/regex/v4/iterator_traits.hpp +135 -0
  65. data/ext/boost/regex/v4/match_flags.hpp +138 -0
  66. data/ext/boost/regex/v4/match_results.hpp +702 -0
  67. data/ext/boost/regex/v4/mem_block_cache.hpp +99 -0
  68. data/ext/boost/regex/v4/perl_matcher.hpp +587 -0
  69. data/ext/boost/regex/v4/perl_matcher_common.hpp +996 -0
  70. data/ext/boost/regex/v4/perl_matcher_non_recursive.hpp +1642 -0
  71. data/ext/boost/regex/v4/perl_matcher_recursive.hpp +991 -0
  72. data/ext/boost/regex/v4/primary_transform.hpp +146 -0
  73. data/ext/boost/regex/v4/protected_call.hpp +81 -0
  74. data/ext/boost/regex/v4/regbase.hpp +180 -0
  75. data/ext/boost/regex/v4/regex.hpp +202 -0
  76. data/ext/boost/regex/v4/regex_format.hpp +1156 -0
  77. data/ext/boost/regex/v4/regex_fwd.hpp +73 -0
  78. data/ext/boost/regex/v4/regex_grep.hpp +155 -0
  79. data/ext/boost/regex/v4/regex_iterator.hpp +201 -0
  80. data/ext/boost/regex/v4/regex_match.hpp +382 -0
  81. data/ext/boost/regex/v4/regex_merge.hpp +93 -0
  82. data/ext/boost/regex/v4/regex_raw_buffer.hpp +210 -0
  83. data/ext/boost/regex/v4/regex_replace.hpp +99 -0
  84. data/ext/boost/regex/v4/regex_search.hpp +217 -0
  85. data/ext/boost/regex/v4/regex_split.hpp +172 -0
  86. data/ext/boost/regex/v4/regex_token_iterator.hpp +342 -0
  87. data/ext/boost/regex/v4/regex_traits.hpp +189 -0
  88. data/ext/boost/regex/v4/regex_traits_defaults.hpp +371 -0
  89. data/ext/boost/regex/v4/regex_workaround.hpp +232 -0
  90. data/ext/boost/regex/v4/states.hpp +301 -0
  91. data/ext/boost/regex/v4/sub_match.hpp +512 -0
  92. data/ext/boost/regex/v4/syntax_type.hpp +105 -0
  93. data/ext/boost/regex/v4/u32regex_iterator.hpp +193 -0
  94. data/ext/boost/regex/v4/u32regex_token_iterator.hpp +377 -0
  95. data/ext/boost/regex/v4/w32_regex_traits.hpp +741 -0
  96. data/ext/boost/regex_fwd.hpp +33 -0
  97. data/ext/common/AgentsStarter.h +0 -11
  98. data/ext/common/ApplicationPool2/Common.h +1 -7
  99. data/ext/common/ApplicationPool2/DirectSpawner.h +3 -3
  100. data/ext/common/ApplicationPool2/Group.h +166 -69
  101. data/ext/common/ApplicationPool2/Implementation.cpp +55 -10
  102. data/ext/common/ApplicationPool2/Options.h +45 -10
  103. data/ext/common/ApplicationPool2/PipeWatcher.h +1 -2
  104. data/ext/common/ApplicationPool2/Pool.h +29 -7
  105. data/ext/common/ApplicationPool2/Process.h +22 -3
  106. data/ext/common/ApplicationPool2/Session.h +1 -0
  107. data/ext/common/ApplicationPool2/SmartSpawner.h +5 -10
  108. data/ext/common/ApplicationPool2/Spawner.h +10 -15
  109. data/ext/common/ApplicationPool2/SuperGroup.h +10 -9
  110. data/ext/common/Constants.h +1 -3
  111. data/ext/common/Hooks.h +193 -0
  112. data/ext/common/Logging.cpp +67 -2
  113. data/ext/common/Logging.h +23 -1
  114. data/ext/common/Utils.cpp +0 -21
  115. data/ext/common/Utils.h +0 -42
  116. data/ext/common/Utils/CachedFileStat.hpp +1 -1
  117. data/ext/common/Utils/StrIntUtils.h +61 -14
  118. data/ext/common/Utils/StringMap.h +4 -0
  119. data/ext/common/agents/HelperAgent/AgentOptions.h +4 -4
  120. data/ext/common/agents/HelperAgent/Main.cpp +2 -3
  121. data/ext/common/agents/HelperAgent/RequestHandler.h +65 -2
  122. data/ext/common/agents/LoggingAgent/FilterSupport.h +3 -1
  123. data/ext/common/agents/Watchdog/Main.cpp +8 -72
  124. data/ext/nginx/CacheLocationConfig.c +29 -1
  125. data/ext/nginx/Configuration.c +0 -12
  126. data/ext/nginx/Configuration.h +0 -1
  127. data/ext/nginx/ConfigurationCommands.c +10 -0
  128. data/ext/nginx/ConfigurationFields.h +2 -0
  129. data/ext/nginx/CreateLocationConfig.c +4 -0
  130. data/ext/nginx/MergeLocationConfig.c +6 -0
  131. data/ext/oxt/system_calls.cpp +7 -1
  132. data/ext/oxt/system_calls.hpp +7 -7
  133. data/helper-scripts/node-loader.js +6 -2
  134. data/helper-scripts/rack-loader.rb +5 -2
  135. data/helper-scripts/rack-preloader.rb +5 -2
  136. data/lib/phusion_passenger.rb +1 -1
  137. data/lib/phusion_passenger/apache2/config_options.rb +8 -0
  138. data/lib/phusion_passenger/constants.rb +0 -1
  139. data/lib/phusion_passenger/nginx/config_options.rb +9 -2
  140. data/lib/phusion_passenger/platform_info/apache.rb +2 -1
  141. data/lib/phusion_passenger/platform_info/compiler.rb +15 -1
  142. data/lib/phusion_passenger/platform_info/cxx_portability.rb +2 -0
  143. data/node_lib/phusion_passenger/httplib_emulation.js +85 -17
  144. data/node_lib/phusion_passenger/request_handler.js +10 -2
  145. data/rpm/Vagrantfile +32 -0
  146. data/rpm/get_distro_id.py +4 -0
  147. data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +2 -2
  148. data/test/cxx/ApplicationPool2/PoolTest.cpp +60 -9
  149. data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +2 -6
  150. data/test/cxx/CachedFileStatTest.cpp +5 -5
  151. data/test/cxx/RequestHandlerTest.cpp +3 -6
  152. data/test/cxx/UtilsTest.cpp +30 -0
  153. data/test/node/httplib_emulation_spec.js +491 -0
  154. data/test/node/spec_helper.js +25 -0
  155. metadata +78 -2
  156. 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
+