]> git.sesse.net Git - vlc/blobdiff - include/vlc_fixups.h
Win32: always use mingw's snprintf
[vlc] / include / vlc_fixups.h
index 19c1b88072b4a6dfa3e0fe9460788938abcf8af2..595cee24b93250d6373e4d77b1614d81505f23ad 100644 (file)
@@ -50,8 +50,7 @@ typedef struct
 
 #if !defined (HAVE_STRLCPY) || \
     !defined (HAVE_STRNDUP) || \
-    !defined (HAVE_STRNLEN) || \
-    !defined (HAVE_GETCWD)
+    !defined (HAVE_STRNLEN)
 # include <stddef.h> /* size_t */
 #endif
 
@@ -65,20 +64,58 @@ typedef struct
 # include <sys/types.h> /* ssize_t, pid_t */
 #endif
 
+#if !defined (HAVE_DIRFD) || \
+    !defined (HAVE_FDOPENDIR)
+# include <dirent.h>
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#ifndef HAVE_STRDUP
-char *strdup (const char *);
+/* stdio.h */
+#ifndef HAVE_ASPRINTF
+int asprintf (char **, const char *, ...);
+#endif
+
+#ifndef HAVE_FLOCKFILE
+void flockfile (FILE *);
+int ftrylockfile (FILE *);
+void funlockfile (FILE *);
+int getc_unlocked (FILE *);
+int getchar_unlocked (void);
+int putc_unlocked (int, FILE *);
+int putchar_unlocked (int);
+#endif
+
+#ifndef HAVE_GETDELIM
+ssize_t getdelim (char **, size_t *, int, FILE *);
+ssize_t getline (char **, size_t *, FILE *);
+#endif
+
+#ifndef HAVE_REWIND
+void rewind (FILE *);
 #endif
 
 #ifndef HAVE_VASPRINTF
 int vasprintf (char **, const char *, va_list);
 #endif
 
-#ifndef HAVE_ASPRINTF
-int asprintf (char **, const char *, ...);
+/* string.h */
+#ifndef HAVE_STRCASECMP
+int strcasecmp (const char *, const char *);
+#endif
+
+#ifndef HAVE_STRCASESTR
+char *strcasestr (const char *, const char *);
+#endif
+
+#ifndef HAVE_STRDUP
+char *strdup (const char *);
+#endif
+
+#ifndef HAVE_STRNCASECMP
+int strncasecmp (const char *, const char *, size_t);
 #endif
 
 #ifndef HAVE_STRNLEN
@@ -93,26 +130,21 @@ char *strndup (const char *, size_t);
 size_t strlcpy (char *, const char *, size_t);
 #endif
 
-#ifndef HAVE_STRTOF
-#ifndef HAVE_ANDROID
-float strtof (const char *, char **);
+#ifndef HAVE_STRSEP
+char *strsep (char **, const char *);
 #endif
+
+#ifndef HAVE_STRTOK_R
+char *strtok_r(char *, const char *, char **);
 #endif
 
+/* stdlib.h */
 #ifndef HAVE_ATOF
-#ifndef HAVE_ANDROID
+#ifndef __ANDROID__
 double atof (const char *);
 #endif
 #endif
 
-#ifndef HAVE_STRTOLL
-long long int strtoll (const char *, char **, int);
-#endif
-
-#ifndef HAVE_STRSEP
-char *strsep (char **, const char *);
-#endif
-
 #ifndef HAVE_ATOLL
 long long atoll (const char *);
 #endif
@@ -121,18 +153,17 @@ long long atoll (const char *);
 lldiv_t lldiv (long long, long long);
 #endif
 
-#ifndef HAVE_STRCASECMP
-int strcasecmp (const char *, const char *);
+#ifndef HAVE_STRTOF
+#ifndef __ANDROID__
+float strtof (const char *, char **);
 #endif
-
-#ifndef HAVE_STRNCASECMP
-int strncasecmp (const char *, const char *, size_t);
 #endif
 
-#ifndef HAVE_STRCASESTR
-char *strcasestr (const char *, const char *);
+#ifndef HAVE_STRTOLL
+long long int strtoll (const char *, char **, int);
 #endif
 
+/* time.h */
 #ifndef HAVE_GMTIME_R
 struct tm *gmtime_r (const time_t *, struct tm *);
 #endif
@@ -141,31 +172,32 @@ struct tm *gmtime_r (const time_t *, struct tm *);
 struct tm *localtime_r (const time_t *, struct tm *);
 #endif
 
-#ifndef HAVE_REWIND
-void rewind (FILE *);
+/* unistd.h */
+#ifndef HAVE_GETPID
+pid_t getpid (void);
 #endif
 
-#ifndef HAVE_GETCWD
-char *getcwd (char *buf, size_t size);
+#ifndef HAVE_FSYNC
+int fsync (int fd);
 #endif
 
-#ifndef HAVE_GETDELIM
-ssize_t getdelim (char **, size_t *, int, FILE *);
-ssize_t getline (char **, size_t *, FILE *);
+/* dirent.h */
+#ifndef HAVE_DIRFD
+#if defined(__APPLE__) || defined(__OS2__)
+#undef dirfd
 #endif
-
-#ifndef HAVE_GETPID
-pid_t getpid (void);
+int dirfd (DIR *);
 #endif
 
-#ifndef HAVE_STRTOK_R
-char *strtok_r(char *, const char *, char **);
+#ifndef HAVE_FDOPENDIR
+DIR *fdopendir (int);
 #endif
 
 #ifdef __cplusplus
 } /* extern "C" */
 #endif
 
+/* stdlib.h */
 #ifndef HAVE_GETENV
 static inline char *getenv (const char *name)
 {
@@ -179,13 +211,7 @@ int setenv (const char *, const char *, int);
 int unsetenv (const char *);
 #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)))
-#else
-#   define ATTR_ALIGN(align)
-#endif
-
+/* locale.h */
 #ifndef HAVE_USELOCALE
 #define LC_NUMERIC_MASK  0
 #define LC_MESSAGES_MASK 0
@@ -206,6 +232,13 @@ static inline locale_t newlocale(int mask, const char * locale, locale_t base)
 }
 #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)))
+#else
+#   define ATTR_ALIGN(align)
+#endif
+
 /* libintl support */
 #define _(str)            vlc_gettext (str)
 #define N_(str)           gettext_noop (str)
@@ -224,7 +257,7 @@ void swab (const void *, void *, ssize_t);
 # define inet_ntop vlc_inet_ntop
 #endif
 
-#ifndef HAVE_POLL
+#ifndef HAVE_STRUCT_POLLFD
 enum
 {
     POLLIN=1,
@@ -241,7 +274,8 @@ struct pollfd
     unsigned events;
     unsigned revents;
 };
-
+#endif
+#ifndef HAVE_POLL
 # define poll(a, b, c) vlc_poll(a, b, c)
 #elif defined (HAVE_MAEMO)
 # include <poll.h>
@@ -249,6 +283,21 @@ struct pollfd
 int vlc_poll (struct pollfd *, unsigned, int);
 #endif
 
+#ifndef HAVE_IF_NAMEINDEX
+#include <errno.h>
+struct if_nameindex
+{
+    unsigned if_index;
+    char    *if_name;
+};
+# ifndef HAVE_IF_NAMETOINDEX
+#  define if_nametoindex(name)   atoi(name)
+# endif
+# define if_nameindex()         (errno = ENOBUFS, NULL)
+# define if_freenameindex(list) (void)0
+#endif
+
+/* search.h */
 #ifndef HAVE_SEARCH_H
 typedef struct entry {
     char *key;
@@ -284,4 +333,20 @@ long jrand48 (unsigned short subi[3]);
 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 __OS2__
+# undef HAVE_FORK   /* Implementation of fork() is imperfect on OS/2 */
+#endif
+
 #endif /* !LIBVLC_FIXUPS_H */