utf8: NO_ICONV: silence uninitialized variable warning

The last argument of reencode_string_len() is an 'int *' which is assigned the length of the converted string. When NO_ICONV is defined, however, reencode_string_len() is stubbed out by the macro: #define reencode_string_len(a,b,c,d,e) NULL which never assigns a value to the final argument. When called like this: int n; char *s = reencode_string_len(..., &n); if (s) do_something(s, n); some compilers complain that 'n' is used uninitialized within the conditional. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Eric Sunshine committed Jun 5, 2015 at 02:42 UTC e654eb29ab9da97f6acabc261f88aa1f41f78a8f
1 file changed +3 -1
utf8.h
+3 -1
@@ -28,7 +28,9 @@ char *reencode_string_len(const char *in, int insz,
28 const char *in_encoding,
29 int *outsz);
30 #else
31 -#define reencode_string_len(a,b,c,d,e) NULL
31 +static inline char *reencode_string_len(const char *a, int b,
32 + const char *c, const char *d, int *e)
33 +{ if (e) *e = 0; return NULL; }
34 #endif
35
36 static inline char *reencode_string(const char *in,