- char* pre=xbt_strdup(data->filename);
- char* sep=strchr(pre,'%');
- if (not sep)
- sep=pre+strlen(pre);
- const char* post = sep + 1;
- *sep = '\0';
- std::string newname = pre + std::to_string(data->count) + post;
+ std::string newname = data->filename;
+ size_t sep = std::min(newname.find_first_of('%'), newname.size());
+ newname.replace(sep, 1, std::to_string(data->count));