Repeating the argument "Apparently no existing implementation follows the present spec here" does not make it anymore true. Regina only tested a few implementations (namely 4, 3 of them coming from the same source base).
In Gnumeric the following function is used to read the value for draw:angle:
static char const *
oo_parse_angle (GsfXMLIn *xin, xmlChar const *str,
char const *name, int *angle)
{
double num;
char *end = NULL;
g_return_val_if_fail (str != NULL, NULL);
num = go_strtod (CXML2C (str), &end);
if (CXML2C (str) != end) {
if (*end != '\0') {
if (0 == strncmp (end, "deg", 3))
{
end += 3;
}
else if (0 == strncmp (end, "grad", 4))
{
num = num / 9. * 10.;
end += 4;
}
else if (0 == strncmp (end, "rad", 2))
{
num = num * 180. / M_PIgnum;
end += 3;
}
else
{
oo_warning (xin, _("Invalid attribute '%s', unknown unit '%s'"),
name, str);
return NULL;
}
}
} else
{
oo_warning (xin, _("Invalid attribute '%s', expected angle, received '%s'"),
name, str);
return NULL;
}
*angle = ((int) num) % 360;
return end;
}
I believe this is what the spec currently specifies. So at least one implementation follows the current spec.
Andreas J. Guelzow suggests that changing the specification to fit mis-implementations of the standard will break existing implementations.
Should we close this issue with a request to implementations that don't follow ODF 1.2?