#1518: Parameter parser and CCTK_ParameterSet interpret leading zeros in numbers differently --------------------+------------------------------------------------------- Reporter: rhaas | Owner: Type: defect | Status: new Priority: minor | Milestone: Component: Cactus | Version: development version Keywords: | --------------------+------------------------------------------------------- the parameter parser allows things like: {{{ thorn::param1 = 011 thorn::param2 = 012.34 }}} in parameter files. For floating point values this is a bit unexpected but otherwise mostly harmless. For integers the situation is a bit more complex since in C a leading zero is used to indicate a octal number. And (worse) while the parameter file parser converts the string "011" to the number 11 the Cactus call CCTK_ParameterSet will convert it to 9. The difference is ultimately the difference between calling atof (Parser) and strtol (CCTK_ParameterSet).
To avoid confusion it would likely be good to change CCTK_ParameterSet to behave the way the Parameter parser does. This is a change in behaviour compared to the pre-Piraha parser, however I suspect the number of users that actually used octal (or hexedecimal) notation in their parameter files is small.
The change is to change {{{inval = strtol (value, &endptr, 0);}}} to {{{inval = strtol (value, &endptr, 10);}}} in line 2209 of src/main/Parameters.c and similar in line 2270.