It seems like it might better to just replace all the calllers of
_mesa_*printf with util_*printf.

On 09/06/2018 07:43 AM, asimiklit.w...@gmail.com wrote:
> From: Andrii Simiklit <andrii.simik...@globallogic.com>
> 
> The win '_vsnprintf' function incompatibility with C99 vsnprintf.
> At least for case when the input buffer size less than the required size:
> '_vsnprintf' returns -1 for this case.
> 'vsnprintf' returns the required size.
> 
> So use cross platform implementation 'util_vsnprintf'.
> 
> Fixes: 2353e96c320d "Coerce vsnprintf to _vsnprintf for windows"
> Signed-off-by: Andrii Simiklit <andrii.simik...@globallogic.com>
> ---
>  src/mesa/main/imports.c | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/src/mesa/main/imports.c b/src/mesa/main/imports.c
> index b4685b6..d42825e 100644
> --- a/src/mesa/main/imports.c
> +++ b/src/mesa/main/imports.c
> @@ -46,6 +46,7 @@
>  #include <stdarg.h>
>  #include "c99_math.h"
>  #include "util/rounding.h" /* for _mesa_roundeven */
> +#include "util/u_string.h"
>  #include "imports.h"
>  #include "context.h"
>  #include "version.h"
> @@ -58,9 +59,7 @@
>  #endif
>  
>  
> -#ifdef _WIN32
> -#define vsnprintf _vsnprintf
> -#elif defined(__IBMC__) || defined(__IBMCPP__)
> +#if defined(__IBMC__) || defined(__IBMCPP__)
>  extern int vsnprintf(char *str, size_t count, const char *fmt, va_list arg);
>  #endif
>  
> @@ -255,7 +254,7 @@ _mesa_bitcount_64(uint64_t n)
>  int
>  _mesa_vsnprintf(char *str, size_t size, const char *fmt, va_list args)
>  {
> -   return vsnprintf( str, size, fmt, args);
> +   return util_vsnprintf( str, size, fmt, args);
>  }
>  
>  /** Wrapper around vsnprintf() */
> @@ -264,8 +263,8 @@ _mesa_snprintf( char *str, size_t size, const char *fmt, 
> ... )
>  {
>     int r;
>     va_list args;
> -   va_start( args, fmt );  
> -   r = vsnprintf( str, size, fmt, args );
> +   va_start( args, fmt );
> +   r = util_vsnprintf( str, size, fmt, args );
>     va_end( args );
>     return r;
>  }
> 

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to