+ xbt_dynar_free(&list);
+ return trace;
+}
+
+tmgr_trace_t tmgr_trace_new(const char *filename)
+{
+ FILE *f = NULL;
+ tmgr_trace_t trace = NULL;
+
+ if ((!filename) || (strcmp(filename, "") == 0))
+ return NULL;
+
+ if (trace_list) {
+ trace = xbt_dict_get_or_null(trace_list, filename);
+ if (trace) {
+ WARN1("Ignoring redefinition of trace %s", filename);
+ return trace;
+ }
+ }
+
+ f = surf_fopen(filename, "r");
+ xbt_assert2(f!=NULL, "Cannot open file '%s' (path=%s)", filename,
+ xbt_str_join(surf_path,":"));
+
+ char *tstr = xbt_str_from_file(f);