git-commit-vandalism/compat
Brandon Casey a81892dd8c compat/snprintf.c: handle snprintf's that always return the # chars transmitted
Some platforms provide a horribly broken snprintf. More broken than the
platforms that return -1 when there is too little space in the target buffer
for the formatted string. Some platforms provide an snprintf which _always_
returns the number of characters transmitted to the buffer, regardless of
whether there was enough space or not.

IRIX 6.5 is such a platform. IRIX does have a working snprintf(), but it
is only provided when _NO_XOPEN5 evaluates to zero, and this only happens
if _XOPEN_SOURCE is defined, but definition of _XOPEN_SOURCE prevents
inclusion of many other common functions and defines. So it must be avoided.

Work around these horribly broken snprintf implementations by detecting an
snprintf call which results in the number of transmitted characters exactly
equal to the length of our buffer and retrying with a larger buffer just to
be safe.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Acked-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-21 01:53:44 -07:00
..
fnmatch.c Add compat/regex.[ch] and compat/fnmatch.[ch]. 2008-06-22 11:32:33 +02:00
fnmatch.h Add compat/regex.[ch] and compat/fnmatch.[ch]. 2008-06-22 11:32:33 +02:00
fopen.c compat/fopen.c: avoid clobbering the system defined fopen macro 2008-05-08 17:43:01 -07:00
hstrerror.c Add a local implementation of hstrerror for the system which do not have it 2007-06-15 22:48:34 -07:00
inet_ntop.c Remove a couple of duplicated include 2007-11-05 20:50:38 -08:00
inet_pton.c Remove a couple of duplicated include 2007-11-05 20:50:38 -08:00
memmem.c add memmem() 2007-09-06 22:46:00 -07:00
mingw.c Teach lookup_prog not to select directories 2008-07-19 11:17:43 -07:00
mingw.h Modify mingw_main() workaround to avoid link errors 2008-08-03 14:18:23 -07:00
mkdtemp.c Define compat version of mkdtemp for systems lacking it 2007-10-20 22:52:21 -04:00
mmap.c War on whitespace 2007-06-07 00:04:01 -07:00
pread.c Replacing the system call pread() with lseek()/xread()/lseek() sequence. 2007-01-09 16:40:40 -08:00
qsort.c compat: Add simplified merge sort implementation from glibc 2008-02-06 22:35:28 -08:00
regex.c Add compat/regex.[ch] and compat/fnmatch.[ch]. 2008-06-22 11:32:33 +02:00
regex.h Add compat/regex.[ch] and compat/fnmatch.[ch]. 2008-06-22 11:32:33 +02:00
setenv.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
snprintf.c compat/snprintf.c: handle snprintf's that always return the # chars transmitted 2008-08-21 01:53:44 -07:00
strcasestr.c Clean up compatibility definitions. 2005-12-05 15:50:29 -08:00
strlcpy.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
strtoumax.c Add a compat/strtoumax.c for Solaris 8. 2007-02-19 18:20:30 -08:00
unsetenv.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
winansi.c Add ANSI control code emulation for the Windows console 2008-07-19 11:17:43 -07:00