X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/68c4f3d5e544c5fe8e2a67a5607d7a268a0e59a1..e4e4b7da7f6a6d04b659f0aa9c1de8733939096f:/src/xbt/xbt_log_appender_file.cpp diff --git a/src/xbt/xbt_log_appender_file.cpp b/src/xbt/xbt_log_appender_file.cpp index 8247d29ee4..657a1ca3ef 100644 --- a/src/xbt/xbt_log_appender_file.cpp +++ b/src/xbt/xbt_log_appender_file.cpp @@ -1,6 +1,6 @@ /* file_appender - a dumb log appender which simply prints to a file */ -/* Copyright (c) 2007-2021. The SimGrid Team. +/* Copyright (c) 2007-2023. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -70,17 +70,12 @@ static void open_append2_file(xbt_log_append2_file_t data){ //Split if(data->file) fclose(data->file); - 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)); data->count++; data->file = fopen(newname.c_str(), "w"); xbt_assert(data->file != nullptr, "Cannot open file: %s: %s", newname.c_str(), strerror(errno)); - xbt_free(pre); } }