Fix a -Wsign-compare warning

../time.c:5247:50: warning: operand of ‘?:’ changes signedness from ‘int’ to ‘long unsigned int’ due to unsignedness of other operand [-Wsign-compare]
 5247 |         int w = (year >= -9999 && year <= 9999 ? year_width : (int)(year < 0) + DECIMAL_SIZE_OF(year));
      |                                                  ^~~~~~~~~~
This commit is contained in:
Takashi Kokubun 2024-09-23 16:39:24 -07:00
parent fc043a2e61
commit 798a115a15

2
time.c
View File

@ -5244,7 +5244,7 @@ time_xmlschema(int argc, VALUE *argv, VALUE time)
if (FIXNUM_P(tobj->vtm.year)) {
long year = FIX2LONG(tobj->vtm.year);
int year_width = (year < 0) + rb_strlen_lit("YYYY");
int w = (year >= -9999 && year <= 9999 ? year_width : (year < 0) + DECIMAL_SIZE_OF(year));
int w = (year >= -9999 && year <= 9999 ? year_width : (year < 0) + (int)DECIMAL_SIZE_OF(year));
str = rb_usascii_str_new(0, w + size_after_year);
ptr = RSTRING_PTR(str);
fill_digits_long(w + 1, year_width, year) {