Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of framagit.org:Adrien.Gougeon/simgrid
[simgrid.git] / src / xbt / xbt_log_appender_file.cpp
index 344dab7e27749764c855d724a526365efc150e34..577e934c80925b7347a3c04c4ca1176eef15fa95 100644 (file)
@@ -71,25 +71,24 @@ static void open_append2_file(xbt_log_append2_file_t data){
     //Split
     if(data->file)
       fclose(data->file);
-    char newname[512];
     char* pre=xbt_strdup(data->filename);
     char* sep=strchr(pre,'%');
     if(!sep)
       sep=pre+strlen(pre);
-    char* post=sep+1;
-    *sep='\0';
-    snprintf(newname,511,"%s%i%s",pre,data->count,post);
+    const char* post    = sep + 1;
+    *sep                = '\0';
+    std::string newname = pre + std::to_string(data->count) + post;
     data->count++;
-    data->file= fopen(newname, "w");
+    data->file = fopen(newname.c_str(), "w");
     if (data->file == nullptr)
-      xbt_die("Cannot open file: %s: %s", newname, strerror(errno));
+      xbt_die("Cannot open file: %s: %s", newname.c_str(), strerror(errno));
     xbt_free(pre);
   }
 }
 
 static void append2_file(const s_xbt_log_appender_t* this_, const char* str)
 {
-  xbt_log_append2_file_t d = (xbt_log_append2_file_t)this_->data;
+  auto* d = static_cast<xbt_log_append2_file_t>(this_->data);
   xbt_assert(d->file);
   if (ftell(d->file) >= d->limit) {
     open_append2_file(d);
@@ -103,7 +102,7 @@ static void append2_file(const s_xbt_log_appender_t* this_, const char* str)
 
 static void free_append2_(const s_xbt_log_appender_t* this_)
 {
-  xbt_log_append2_file_t data = static_cast<xbt_log_append2_file_t>(this_->data);
+  auto* data = static_cast<xbt_log_append2_file_t>(this_->data);
   if (data->file)
     fclose(data->file);
   xbt_free(data->filename);