Aapo Rantalainen points out that comparing 'char c' against zero gives
rise to gcc's "comparison is always false" warning, which escalates to
an error under -Werror.
This is one of those situations where the warning is doing more harm
than good, but here's a rephrasing which casts to unsigned so that
both negative numbers and positive out-of-range ones can be caught by
the same comparison.
c = 10 + (c - 'A');
else
return "Bad character in grid description";
- if (c < 0 || c >= params->colours)
+ if ((unsigned)c >= params->colours)
return "Colour out of range in grid description";
}
if (*desc != ',')