# [PATCH] Cleanly redefine (v)snprintf when needed.

3 messages from 2014-01-31 to 2014-01-31. Participants: Benoit Sigoure, Junio C Hamano.
Thread: https://gitlist.dev/t/35770

## Benoit Sigoure, 2014-01-31 06:25

Subject: [PATCH] Cleanly redefine (v)snprintf when needed.
Message-ID: <1391149512-8705-1-git-send-email-tsunanet@gmail.com>
URL: https://gitlist.dev/e/1391149512-8705-1-git-send-email-tsunanet%40gmail.com

```
When we detect that vsnprintf / snprintf are broken, we #define them to
an alternative implementation.  On OS X, stdio.h already #define's them,
which causes a warning to be issued at the point we re-define them in
`git-compat-util.h'.
---
 git-compat-util.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/git-compat-util.h b/git-compat-util.h
index cbd86c3..614a5e9 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -480,9 +480,15 @@ extern FILE *git_fopen(const char*, const char*);
 #endif
 
 #ifdef SNPRINTF_RETURNS_BOGUS
+#ifdef snprintf
+#undef snprintf
+#endif
 #define snprintf git_snprintf
 extern int git_snprintf(char *str, size_t maxsize,
 			const char *format, ...);
+#ifdef vsnprintf
+#undef vsnprintf
+#endif
 #define vsnprintf git_vsnprintf
 extern int git_vsnprintf(char *str, size_t maxsize,
 			 const char *format, va_list ap);
-- 
1.9.rc1.1.g186f0be.dirty

```

## Junio C Hamano, 2014-01-31 17:28

Subject: Re: [PATCH] Cleanly redefine (v)snprintf when needed.
Message-ID: <xmqqy51wgiwd.fsf@gitster.dls.corp.google.com>
URL: https://gitlist.dev/e/xmqqy51wgiwd.fsf%40gitster.dls.corp.google.com
In-Reply-To: <1391149512-8705-1-git-send-email-tsunanet@gmail.com>

```
Benoit Sigoure <tsunanet@gmail.com> writes:

> When we detect that vsnprintf / snprintf are broken, we #define them to
> an alternative implementation.  On OS X, stdio.h already #define's them,
> which causes a warning to be issued at the point we re-define them in
> `git-compat-util.h'.
> ---

Makes perfect sense.  Please sign-off your patch (see
Documentation/SubmittingPatches).

Thanks.

>  git-compat-util.h | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/git-compat-util.h b/git-compat-util.h
> index cbd86c3..614a5e9 100644
> --- a/git-compat-util.h
> +++ b/git-compat-util.h
> @@ -480,9 +480,15 @@ extern FILE *git_fopen(const char*, const char*);
>  #endif
>  
>  #ifdef SNPRINTF_RETURNS_BOGUS
> +#ifdef snprintf
> +#undef snprintf
> +#endif
>  #define snprintf git_snprintf
>  extern int git_snprintf(char *str, size_t maxsize,
>  			const char *format, ...);
> +#ifdef vsnprintf
> +#undef vsnprintf
> +#endif
>  #define vsnprintf git_vsnprintf
>  extern int git_vsnprintf(char *str, size_t maxsize,
>  			 const char *format, va_list ap);

```

## Benoit Sigoure, 2014-01-31 17:36

Subject: [PATCH] Cleanly redefine (v)snprintf when needed.
Message-ID: <1391189788-15130-1-git-send-email-tsunanet@gmail.com>
URL: https://gitlist.dev/e/1391189788-15130-1-git-send-email-tsunanet%40gmail.com
In-Reply-To: <xmqqy51wgiwd.fsf@gitster.dls.corp.google.com>

```
When we detect that vsnprintf / snprintf are broken, we #define them to
an alternative implementation.  On OS X, stdio.h already #define's them,
which causes a warning to be issued at the point we re-define them in
`git-compat-util.h'.

Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
---
 git-compat-util.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/git-compat-util.h b/git-compat-util.h
index cbd86c3..614a5e9 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -480,9 +480,15 @@ extern FILE *git_fopen(const char*, const char*);
 #endif
 
 #ifdef SNPRINTF_RETURNS_BOGUS
+#ifdef snprintf
+#undef snprintf
+#endif
 #define snprintf git_snprintf
 extern int git_snprintf(char *str, size_t maxsize,
 			const char *format, ...);
+#ifdef vsnprintf
+#undef vsnprintf
+#endif
 #define vsnprintf git_vsnprintf
 extern int git_vsnprintf(char *str, size_t maxsize,
 			 const char *format, va_list ap);
-- 
1.9.rc1.1.g186f0be.dirty

```
