improve error detection and messages
This commit is contained in:
@ -3397,18 +3397,18 @@ tagint Variable::int_between_brackets(char *&ptr, int varallow)
|
|||||||
char *id = start+2;
|
char *id = start+2;
|
||||||
int ivar = find(id);
|
int ivar = find(id);
|
||||||
if (ivar < 0)
|
if (ivar < 0)
|
||||||
error->all(FLERR,"Invalid variable name in variable formula");
|
error->all(FLERR,"Invalid variable name {} in variable formula", id);
|
||||||
|
|
||||||
char *var = retrieve(id);
|
char *var = retrieve(id);
|
||||||
if (var == nullptr)
|
if (var == nullptr)
|
||||||
error->all(FLERR,"Invalid variable evaluation in variable formula");
|
error->all(FLERR,"Invalid variable evaluation for variable {} in variable formula", id);
|
||||||
index = static_cast<tagint> (atof(var));
|
index = static_cast<tagint> (atof(var));
|
||||||
|
|
||||||
} else index = ATOTAGINT(start);
|
} else index = ATOTAGINT(start);
|
||||||
|
|
||||||
*ptr = ']';
|
*ptr = ']';
|
||||||
|
|
||||||
if (index == 0)
|
if (index <= 0)
|
||||||
error->all(FLERR,"Index between variable brackets must be positive");
|
error->all(FLERR,"Index between variable brackets must be positive");
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user