Subject: Re: [PATCH 2/4] date.c: Fix type missmatch warings from msvc

From: Junio C Hamano <[email-masked]>
Date: Thu, 26 Dec 2024 13:34:17 -0800

Sören Krecker <[email-masked]> writes:

> Fix compiler warings from msvc in date.c for value truncation from 64
> bit to 32 bit integers.
>
> Also switch from int to size_t for all variables with result of strlen()
> which cannot become negative.
>
> Signed-off-by: Sören Krecker <[email-masked]>
> ---
>  date.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/date.c b/date.c
> index bee9fe8f10..8ae19f9ecc 100644
> --- a/date.c
> +++ b/date.c
> @@ -1242,7 +1242,7 @@ static const char *approxidate_alpha(const char *date, struct tm *tm, struct tm
>  	}
>  
>  	for (s = special; s->name; s++) {
> -		int len = strlen(s->name);
> +		size_t len = strlen(s->name);
>  		if (match_string(date, s->name) == len) {
>  			s->fn(tm, now, num);
>  			*touched = 1;
> @@ -1252,7 +1252,7 @@ static const char *approxidate_alpha(const char *date, struct tm *tm, struct tm
>  
>  	if (!*num) {
>  		for (i = 1; i < 11; i++) {
> -			int len = strlen(number_name[i]);
> +			size_t len = strlen(number_name[i]);
>  			if (match_string(date, number_name[i]) == len) {
>  				*num = i;
>  				*touched = 1;
> @@ -1268,7 +1268,7 @@ static const char *approxidate_alpha(const char *date, struct tm *tm, struct tm
>  
>  	tl = typelen;
>  	while (tl->type) {
> -		int len = strlen(tl->type);
> +		size_t len = strlen(tl->type);
>  		if (match_string(date, tl->type) >= len-1) {
>  			update_tm(tm, now, tl->length * *num);
>  			*num = 0;

These are all good changes, unquestionably.  strlen() counts in
bytes and returns size_t; we should recieve the returned value in a
variable of type size_t.

Will queue.  Thanks.