#endif
#if !defined (HAVE_REWIND) || \
- !defined (HAVE_GETDELIM) || \
- defined (__APPLE__)
+ !defined (HAVE_GETDELIM)
# include <stdio.h> /* FILE */
#endif
-#if !defined (HAVE_STRLCPY) || \
+#if !defined (HAVE_POSIX_MEMALIGN) || \
+ !defined (HAVE_STRLCPY) || \
!defined (HAVE_STRNDUP) || \
!defined (HAVE_STRNLEN)
# include <stddef.h> /* size_t */
# include <stdarg.h> /* va_list */
#endif
-#if !defined (HAVE_GETDELIM) || defined (__APPLE__) || \
+#if !defined (HAVE_GETDELIM) || \
!defined (HAVE_GETPID) || \
!defined (HAVE_SWAB)
# include <sys/types.h> /* ssize_t, pid_t */
#endif
#ifdef __cplusplus
+# define VLC_NOTHROW throw ()
extern "C" {
+#else
+# define VLC_NOTHROW
#endif
/* stdio.h */
int putchar_unlocked (int);
#endif
-/* we always need our implementation on Darwin, since native support for getline
- * was added lately to Darwin 11 (OS X Lion) only.
- * However, we want binaries created on this OS to be executable on previous
- * releases. */
-#if !defined HAVE_GETDELIM
+#ifndef HAVE_GETDELIM
ssize_t getdelim (char **, size_t *, int, FILE *);
ssize_t getline (char **, size_t *, FILE *);
#endif
char *strdup (const char *);
#endif
-#ifndef HAVE_STRNCASECMP
-int strncasecmp (const char *, const char *, size_t);
+#ifndef HAVE_STRVERSCMP
+int strverscmp (const char *, const char *);
#endif
#ifndef HAVE_STRNLEN
/* unistd.h */
#ifndef HAVE_GETPID
-pid_t getpid (void);
+pid_t getpid (void) VLC_NOTHROW;
#endif
#ifndef HAVE_FSYNC
int unsetenv (const char *);
#endif
+#ifndef HAVE_POSIX_MEMALIGN
+int posix_memalign (void **, size_t, size_t);
+#endif
+
/* locale.h */
#ifndef HAVE_USELOCALE
+#define LC_ALL_MASK 0
#define LC_NUMERIC_MASK 0
#define LC_MESSAGES_MASK 0
+#define LC_GLOBAL_LOCALE ((locale_t)(uintptr_t)1)
typedef void *locale_t;
static inline locale_t uselocale(locale_t loc)
{
}
#endif
+#if !defined (HAVE_STATIC_ASSERT)
+# define _Static_assert(x, s) ((void) sizeof (struct { unsigned:-!(x); }))
+# define static_assert _Static_assert
+#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)))
#define N_(str) gettext_noop (str)
#define gettext_noop(str) (str)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#ifndef HAVE_SWAB
void swab (const void *, void *, ssize_t);
#endif
long nrand48 (unsigned short subi[3]);
#endif
-#ifdef __ANDROID__
-# undef __linux__
-# ifndef __cplusplus
-# define __cplusplus 0
-# endif
-# include <pthread.h>
-# if __cplusplus == 0
-# undef __cplusplus
-# endif
-char *tempnam(const char *, const char *);
-#endif // ANDROID
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
#ifdef __OS2__
# undef HAVE_FORK /* Implementation of fork() is imperfect on OS/2 */
+
+struct addrinfo
+{
+ int ai_flags;
+ int ai_family;
+ int ai_socktype;
+ int ai_protocol;
+ size_t ai_addrlen;
+ struct sockaddr *ai_addr;
+ char *ai_canonname;
+ struct addrinfo *ai_next;
+};
+#endif
+
+/* math.h */
+
+#ifndef HAVE_NANF
+#define nanf(tagp) NAN
+#endif
+
+#ifdef _WIN32
+FILE *vlc_win32_tmpfile(void);
#endif
#endif /* !LIBVLC_FIXUPS_H */