X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_fixups.h;h=46da6ae1267cc3a2b73a2b6fbdc75612c4d7e849;hb=12ade3e3bc975d5426ba4af155b7372c31093b31;hp=0a01ceec0d7e8969f82d4d82efa55a0532e368c3;hpb=a0967d76bff8166c070cbad3547b98086778d15a;p=vlc diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h index 0a01ceec0d..46da6ae126 100644 --- a/include/vlc_fixups.h +++ b/include/vlc_fixups.h @@ -26,17 +26,47 @@ #ifndef LIBVLC_FIXUPS_H # define LIBVLC_FIXUPS_H 1 -#ifdef __MINGW32_VERSION -# if __MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION < 14 -# error This mingw-runtime is too old, it has a broken vsnprintf -# endif -/* mingw-runtime provides the whole printf family in a c99 compliant way. */ -/* the way to enable this is to define __USE_MINGW_ANSI_STDIO, or something - * such as _ISOC99_SOURCE; the former is done by configure.ac */ -/* This isn't done here, since some modules don't include config.h and - * therefore this as the first include file */ -#elif defined UNDER_CE -# error Window CE support for *printf needs fixing. +#if !defined (HAVE_GMTIME_R) || !defined (HAVE_LOCALTIME_R) +# include /* time_t */ +#endif + +#ifndef HAVE_LLDIV +typedef struct +{ + long long quot; /* Quotient. */ + long long rem; /* Remainder. */ +} lldiv_t; +#endif + +#if !defined(HAVE_GETENV) || \ + !defined(HAVE_USELOCALE) +# include /* NULL */ +#endif + +#if !defined (HAVE_REWIND) || \ + !defined (HAVE_GETDELIM) +# include /* FILE */ +#endif + +#if !defined (HAVE_STRLCPY) || \ + !defined (HAVE_STRNDUP) || \ + !defined (HAVE_STRNLEN) || \ + !defined (HAVE_GETCWD) +# include /* size_t */ +#endif + +#ifndef HAVE_VASPRINTF +# include /* va_list */ +#endif + +#if !defined (HAVE_GETDELIM) || \ + !defined (HAVE_GETPID) || \ + !defined (HAVE_SWAB) +# include /* ssize_t, pid_t */ +#endif + +#ifdef __cplusplus +extern "C" { #endif #ifndef HAVE_STRDUP @@ -44,7 +74,6 @@ char *strdup (const char *); #endif #ifndef HAVE_VASPRINTF -# include int vasprintf (char **, const char *, va_list); #endif @@ -53,17 +82,14 @@ int asprintf (char **, const char *, ...); #endif #ifndef HAVE_STRNLEN -# include size_t strnlen (const char *, size_t); #endif #ifndef HAVE_STRNDUP -# include char *strndup (const char *, size_t); #endif #ifndef HAVE_STRLCPY -# include size_t strlcpy (char *, const char *, size_t); #endif @@ -88,22 +114,9 @@ long long atoll (const char *); #endif #ifndef HAVE_LLDIV -typedef struct { - long long quot; /* Quotient. */ - long long rem; /* Remainder. */ -} lldiv_t; - lldiv_t lldiv (long long, long long); #endif -#ifndef HAVE_GETENV -static inline char *getenv (const char *name) -{ - (void)name; - return NULL; -} -#endif - #ifndef HAVE_STRCASECMP int strcasecmp (const char *, const char *); #endif @@ -117,20 +130,46 @@ char *strcasestr (const char *, const char *); #endif #ifndef HAVE_GMTIME_R -# include struct tm *gmtime_r (const time_t *, struct tm *); #endif #ifndef HAVE_LOCALTIME_R -# include struct tm *localtime_r (const time_t *, struct tm *); #endif #ifndef HAVE_REWIND -# include void rewind (FILE *); #endif +#ifndef HAVE_GETCWD +char *getcwd (char *buf, size_t size); +#endif + +#ifndef HAVE_GETDELIM +ssize_t getdelim (char **, size_t *, int, FILE *); +ssize_t getline (char **, size_t *, FILE *); +#endif + +#ifndef HAVE_GETPID +pid_t getpid (void); +#endif + +#ifndef HAVE_STRTOK_R +char *strtok_r(char *, const char *, char **); +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#ifndef HAVE_GETENV +static inline char *getenv (const char *name) +{ + (void)name; + return NULL; +} +#endif + /* Alignment of critical static data structures */ #ifdef ATTRIBUTE_ALIGNED_MAX # define ATTR_ALIGN(align) __attribute__ ((__aligned__ ((ATTRIBUTE_ALIGNED_MAX < align) ? ATTRIBUTE_ALIGNED_MAX : align))) @@ -139,27 +178,77 @@ void rewind (FILE *); #endif #ifndef HAVE_USELOCALE +#define LC_NUMERIC_MASK 0 +#define LC_MESSAGES_MASK 0 typedef void *locale_t; -# define newlocale( a, b, c ) ((locale_t)0) -# define uselocale( a ) ((locale_t)0) -# define freelocale( a ) (void)0 +static inline locale_t uselocale(locale_t loc) +{ + (void)loc; + return NULL; +} +static inline void freelocale(locale_t loc) +{ + (void)loc; +} +static inline locale_t newlocale(int mask, const char * locale, locale_t base) +{ + (void)mask; (void)locale; (void)base; + return NULL; +} #endif -#ifdef WIN32 -# include -# define opendir Use_utf8_opendir_or_vlc_wopendir_instead! -# define readdir Use_utf8_readdir_or_vlc_wreaddir_instead! -# define closedir vlc_wclosedir +/* libintl support */ +#define _(str) vlc_gettext (str) +#define N_(str) gettext_noop (str) +#define gettext_noop(str) (str) + +#ifndef HAVE_SWAB +void swab (const void *, void *, ssize_t); #endif -/* libintl support */ -#define _(str) vlc_gettext (str) +/* Socket stuff */ +#ifndef HAVE_INET_PTON +# define inet_pton vlc_inet_pton +#endif -#if defined (ENABLE_NLS) -# include +#ifndef HAVE_INET_NTOP +# define inet_ntop vlc_inet_ntop #endif -#define N_(str) gettext_noop (str) -#define gettext_noop(str) (str) +#ifndef HAVE_POLL +enum +{ + POLLIN=1, + POLLOUT=2, + POLLPRI=4, + POLLERR=8, // unsupported stub + POLLHUP=16, // unsupported stub + POLLNVAL=32 // unsupported stub +}; + +struct pollfd +{ + int fd; + unsigned events; + unsigned revents; +}; + +# define poll(a, b, c) vlc_poll(a, b, c) +#elif defined (HAVE_MAEMO) +# include +# define poll(a, b, c) vlc_poll(a, b, c) +int vlc_poll (struct pollfd *, unsigned, int); +#endif + +#ifndef HAVE_TDESTROY +# define tdestroy vlc_tdestroy +#endif + +/* Random numbers */ +#ifndef HAVE_NRAND48 +double erand48 (unsigned short subi[3]); +long jrand48 (unsigned short subi[3]); +long nrand48 (unsigned short subi[3]); +#endif #endif /* !LIBVLC_FIXUPS_H */