X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ea74f5d95928a521a588737e81f1de94eef25d19..3f4f5e63dadc0023c0a02a08af8e9e9801b38e8e:/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 82df026715..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-2022. 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); } }