diff options
author | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2006-07-16 14:24:21 +0000 |
---|---|---|
committer | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2006-07-16 14:24:21 +0000 |
commit | 0f277f3552cbf130d12b431f09b1d8a3975b5baf (patch) | |
tree | 601f70da9ae3a26cfa7987237acb98165c38a538 /lib/os_internal.h | |
parent | c1854d914970fafd4baf7d8c9e6a9d27d68f7f0e (diff) | |
download | xine-lib-0f277f3552cbf130d12b431f09b1d8a3975b5baf.tar.gz xine-lib-0f277f3552cbf130d12b431f09b1d8a3975b5baf.tar.bz2 |
Add asprintf & vasprintf implementations for systems which don't have them.
CVS patchset: 8128
CVS date: 2006/07/16 14:24:21
Diffstat (limited to 'lib/os_internal.h')
-rw-r--r-- | lib/os_internal.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/os_internal.h b/lib/os_internal.h index 24ec8fe73..9f6d2610a 100644 --- a/lib/os_internal.h +++ b/lib/os_internal.h @@ -2,6 +2,7 @@ #define _XINE_OS_INTERNAL_H #include <stddef.h> +#include <stdarg.h> #ifdef HOST_OS_DARWIN /* Darwin (Mac OS X) needs __STDC_LIBRARY_SUPPORTED__ for SCNx64 and @@ -98,6 +99,26 @@ time_t _xine_private_timegm(struct tm *tm); void _xine_private_unsetenv(const char *name); #endif +/* replacement of asprintf & vasprintf */ +#ifndef HAVE_ASPRINTF +#ifdef __GNUC__ + #define asprintf(STRINGPP, FORMAT, ARGS...) _xine_private_asprintf((STRINGPP), FORMAT, ##ARGS) +#elif defined (_MSC_VER) + #define asprintf(STRINGPP, FORMATARGS) _xine_private_asprintf((STRINGPP), FORMATARGS) +#else + #define asprintf(STRINGPP, FORMAT, ...) _xine_private_asprintf((STRINGPP), FORMAT, __VA_ARGS__) +#endif +#define vasprintf(STRINGPP, FORMAT, VA_ARG) _xine_private_vasprintf((STRINGPP), (FORMAT), (VA_ARG)) +int _xine_private_asprintf(char **string, const char *format, ...) __attribute__ ((format (printf, 2, 3))); +int _xine_private_vasprintf(char **string, const char *format, va_list ap) __attribute__ ((format (printf, 2, 0))); +#endif + +/* replacement of strndup */ +#ifndef HAVE_STRNDUP +#define strndup(S, N) _xine_private_strndup((S), (N)) +char *_xine_private_strndup(const char *s, size_t n); +#endif + /* handle non-standard function names */ #if !defined(HAVE_SNPRINTF) && defined(HAVE__SNPRINTF) # define snprintf _snprintf |