@@ -192,17 +192,18 @@ void AutoFunc::TriggerEvent(const char* eventname,
192
192
if (s_dicEventCmd.find (eventname) != s_dicEventCmd.end ()) {
193
193
std::string ssbuf = s_dicEventCmd[eventname];
194
194
if (ssbuf.size () > 0 ) {
195
- static auto replace = [&ssbuf ](const char * key, const char * value) {
195
+ static auto replace = [](const char * key, const char * value, std::string& ss ) {
196
196
if (value) {
197
+ std::string temp1 = ss;
197
198
std::regex pattern (key);
198
- std::string temp = std::regex_replace (ssbuf , pattern, value);
199
- ssbuf = temp;
199
+ std::string temp = std::regex_replace (temp1 , pattern, value);
200
+ ss = temp;
200
201
}
201
202
};
202
- replace (" \\ {param1\\ }" , param1);
203
- replace (" \\ {param2\\ }" , param2);
204
- replace (" \\ {param3\\ }" , param3);
205
- replace (" \\ {param4\\ }" , param4);
203
+ replace (" \\ {param1\\ }" , param1, ssbuf );
204
+ replace (" \\ {param2\\ }" , param2, ssbuf );
205
+ replace (" \\ {param3\\ }" , param3, ssbuf );
206
+ replace (" \\ {param4\\ }" , param4, ssbuf );
206
207
EngineClientCmd (ssbuf.c_str ());
207
208
}
208
209
}
0 commit comments