/*****************************************************************************
- * fixups.h: portability fixups included from config.h
+ * vlc_fixups.h: portability fixups included from config.h
*****************************************************************************
* Copyright © 1998-2008 the VideoLAN project
*
# 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 */
#endif
#ifdef __cplusplus
+# define VLC_NOTHROW throw ()
extern "C" {
+#else
+# define VLC_NOTHROW
#endif
/* stdio.h */
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
/* dirent.h */
#ifndef HAVE_DIRFD
-#if defined(__APPLE__) || defined(__OS2__)
-#undef dirfd
-#endif
-int dirfd (DIR *);
+int (dirfd) (DIR *);
#endif
#ifndef HAVE_FDOPENDIR
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
};
#endif
#ifndef HAVE_POLL
-# define poll(a, b, c) vlc_poll(a, b, c)
-#elif defined (HAVE_MAEMO)
-# include <poll.h>
-# define poll(a, b, c) vlc_poll(a, b, c)
+struct pollfd;
+int poll (struct pollfd *, unsigned, int);
#endif
#ifndef HAVE_IF_NAMEINDEX
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 */