File tree 3 files changed +31
-1
lines changed
3 files changed +31
-1
lines changed Original file line number Diff line number Diff line change @@ -24,7 +24,11 @@ void java_class_loader_limitt::setup_class_load_limit(
24
24
// '@' signals file reading with list of class files to load
25
25
use_regex_match = java_cp_include_files[0 ] != ' @' ;
26
26
if (use_regex_match)
27
+ {
27
28
regex_matcher=std::regex (java_cp_include_files);
29
+ debug () << " Limit loading to classes matching '" << java_cp_include_files
30
+ << " '" << eom;
31
+ }
28
32
else
29
33
{
30
34
assert (java_cp_include_files.length ()>1 );
@@ -54,7 +58,10 @@ bool java_class_loader_limitt::load_class_file(const std::string &file_name)
54
58
if (use_regex_match)
55
59
{
56
60
std::smatch string_matches;
57
- return std::regex_match (file_name, string_matches, regex_matcher);
61
+ if (std::regex_match (file_name, string_matches, regex_matcher))
62
+ return true ;
63
+ debug () << file_name + " discarded since not matching loader regexp" << eom;
64
+ return false ;
58
65
}
59
66
else
60
67
// load .class file only if it is in the match set
Original file line number Diff line number Diff line change @@ -148,3 +148,24 @@ std::string escape(const std::string &s)
148
148
149
149
return result;
150
150
}
151
+
152
+ // / Replace all occurrences of a string inside a string
153
+ // / \param [out] str: string to search
154
+ // / \param from: string to replace
155
+ // / \param to: string to replace with
156
+ // / Copyright notice:
157
+ // / Attributed to Gauthier Boaglio
158
+ // / Source: https://stackoverflow.com/a/24315631/7501486
159
+ // / Used under MIT license
160
+ void replace_all (
161
+ std::string &str,
162
+ const std::string &from,
163
+ const std::string &to)
164
+ {
165
+ size_t start_pos = 0 ;
166
+ while ((start_pos = str.find (from, start_pos)) != std::string::npos)
167
+ {
168
+ str.replace (start_pos, from.length (), to);
169
+ start_pos += to.length ();
170
+ }
171
+ }
Original file line number Diff line number Diff line change @@ -67,4 +67,6 @@ Stream &join_strings(
67
67
// / programming language.
68
68
std::string escape (const std::string &);
69
69
70
+ void replace_all (std::string &, const std::string &, const std::string &);
71
+
70
72
#endif
You can’t perform that action at this time.
0 commit comments