Subject: Re: bug#74971: [PATCH] Fix format specifier warnings in nsterm.m

From: Eli Zaretskii <[email-masked]>
Date: Thu, 26 Dec 2024 09:54:31 +0200

> Cc: Charalampos Mitrodimas <[email-masked]>
> From: Charalampos Mitrodimas <[email-masked]>
> Date: Thu, 19 Dec 2024 13:28:05 +0000
> 
> Resolve warnings caused by mismatched format specifiers in `NSLog` and
> `fprintf` calls.
> 
> This was observed when compiled with Clang version
> 19.1.6 (arm64-apple-darwin).
> 
> * src/nsterm.m: Cast `IOReturn` (aka `int`) to `unsigned int` for `%x`
>   format specifiers in `NSLog`.
> 
> Warnings fixed:
> - "format specifies type 'unsigned int' but the argument has type
>   'IOReturn' (aka 'int')"
> ---
>  src/nsterm.m | 17 +++++++++++------
>  1 file changed, 11 insertions(+), 6 deletions(-)
> 
> diff --git a/src/nsterm.m b/src/nsterm.m
> index c705a3c78f4..5793bb961e8 100644
> --- a/src/nsterm.m
> +++ b/src/nsterm.m
> @@ -6955,8 +6955,12 @@ In that case we use UCKeyTranslate (ns_get_shifted_character)
>  
>  #ifndef NS_IMPL_GNUSTEP
>        if (NS_KEYLOG)
> -        fprintf (stderr, "keyDown: code =%x\tfnKey =%x\tflags = %x\tmods = %x\n",
> -                 code, fnKeysym, flags, emacs_event->modifiers);
> +	fprintf (stderr,
> +		 "keyDown: code = %x\tfnKey = %x\tflags = %x\tmods = "
> +		 "%x\n",
> +		 (unsigned int) code, (unsigned int) fnKeysym,
> +		 (unsigned int) flags,
> +		 (unsigned int) emacs_event->modifiers);
>  #endif
>  
>        /* If it was a function key or had control-like modifiers, pass
> @@ -10761,7 +10765,7 @@ - (CGContextRef) getContext
>  
>        IOReturn lockStatus = IOSurfaceLock (surface, 0, nil);
>        if (lockStatus != kIOReturnSuccess)
> -        NSLog (@"Failed to lock surface: %x", lockStatus);
> +        NSLog (@"Failed to lock surface: %x", (unsigned int)lockStatus);
>  
>        [self copyContentsTo:surface];
>  
> @@ -10808,7 +10812,7 @@ - (void) releaseContext
>  
>    IOReturn lockStatus = IOSurfaceUnlock (currentSurface, 0, nil);
>    if (lockStatus != kIOReturnSuccess)
> -    NSLog (@"Failed to unlock surface: %x", lockStatus);
> +    NSLog (@"Failed to unlock surface: %x", (unsigned int)lockStatus);
>  }
>  
>  
> @@ -10849,7 +10853,8 @@ - (void) copyContentsTo: (IOSurfaceRef) destination
>  
>    lockStatus = IOSurfaceLock (source, kIOSurfaceLockReadOnly, nil);
>    if (lockStatus != kIOReturnSuccess)
> -    NSLog (@"Failed to lock source surface: %x", lockStatus);
> +    NSLog (@"Failed to lock source surface: %x",
> +	   (unsigned int) lockStatus);
>  
>    sourceData = IOSurfaceGetBaseAddress (source);
>    destinationData = IOSurfaceGetBaseAddress (destination);
> @@ -10861,7 +10866,7 @@ - (void) copyContentsTo: (IOSurfaceRef) destination
>  
>    lockStatus = IOSurfaceUnlock (source, kIOSurfaceLockReadOnly, nil);
>    if (lockStatus != kIOReturnSuccess)
> -    NSLog (@"Failed to unlock source surface: %x", lockStatus);
> +    NSLog (@"Failed to unlock source surface: %x", (unsigned int)lockStatus);
>  }
>  
>  #undef CACHE_MAX_SIZE
> -- 
> 2.47.1

Thanks.

Stefan and Gerd, would you please review this and advise or install?