static double dot_parse_double(const char *string)
{
- if (string == NULL)
- return -1;
- int ret = 0;
- double value = -1;
-
- ret = sscanf(string, "%lg", &value);
- if (ret != 1)
- XBT_WARN("%s is not a double", string);
- return value;
+ if (string == NULL)
+ return -1;
+ double value = -1;
+ char *err;
+
+ //ret = sscanf(string, "%lg", &value);
+ errno = 0;
+ value = strtod(string,&err);
+ if(errno)
+ {
+ XBT_WARN("Failed to convert string to double: %s\n",strerror(errno));
+ return -1;
+ }
+ return value;
}
+
static int dot_parse_int(const char *string)
{
if (string == NULL)
void dot_add_input_dependencies(SD_task_t current_job, Agedge_t * edge)
{
SD_task_t file;
-
- char name[80];
- sprintf(name, "%s->%s", agnameof(agtail(edge)), agnameof(aghead(edge)));
+ char *name_tail=agnameof(agtail(edge));
+ char *name_head=agnameof(aghead(edge));
+ char *name = malloc((strlen(name_head)+strlen(name_tail)+3)*sizeof(char));
+ sprintf(name, "%s->%s", name_tail, name_head);
double size = dot_parse_double(agget(edge, (char *) "size"));
XBT_DEBUG("size : %e, get size : %s", size, agget(edge, (char *) "size"));
SD_task_dependency_add(NULL, NULL, file, current_job);
}
}
+ free(name);
}
/* dot_add_output_dependencies create the dependencies between a
void dot_add_output_dependencies(SD_task_t current_job, Agedge_t * edge)
{
SD_task_t file;
- char name[80];
- sprintf(name, "%s->%s", agnameof(agtail(edge)), agnameof(aghead(edge)));
+ char *name_tail=agnameof(agtail(edge));
+ char *name_head=agnameof(aghead(edge));
+ char *name = malloc((strlen(name_head)+strlen(name_tail)+3)*sizeof(char));
+ sprintf(name, "%s->%s", name_tail, name_head);
double size = dot_parse_double(agget(edge, (char *) "size"));
XBT_DEBUG("size : %e, get size : %s", size, agget(edge, (char *) "size"));
SD_task_dependency_add(NULL, NULL, current_job, file);
}
}
+ free(name);
}