double surf_parse_get_value_with_unit(const char* string, const unit_scale& units, const char* entity_kind,
const std::string& name, const char* error_msg, const char* default_unit)
{
- char* ptr;
+ char* endptr;
errno = 0;
- double res = strtod(string, &ptr);
+ double res = strtod(string, &endptr);
+ const char* ptr = endptr; // for const-correctness
if (errno == ERANGE)
surf_parse_error(std::string("value out of range: ") + string);
if (ptr == string)
// Ok, 0 can be unit-less
if (res != 0 && not name.empty())
XBT_WARN("Deprecated unit-less value '%s' for %s %s. %s", string, entity_kind, name.c_str(), error_msg);
- ptr = (char*)default_unit;
+ ptr = default_unit;
}
auto u = units.find(ptr);
if (u == units.end())
xbt_log_layout_t res = xbt_new0(s_xbt_log_layout_t, 1);
res->do_layout = &xbt_log_layout_format_doit;
res->free_ = &xbt_log_layout_format_free;
- res->data = xbt_strdup((char *) arg);
+ res->data = xbt_strdup(arg);
return res;
}