X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_fixups.h;h=02f0dfa50298b4f81f06fda8c8a75d4a263780c7;hb=1a1bba5a3da60b1433509f54375f0c12db22b3c1;hp=a02eeceb974186caf7261f71076dd1c732fd53ff;hpb=51bbf793131496c6f31f70953ff434f17be80d63;p=vlc diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h index a02eeceb97..02f0dfa502 100644 --- a/include/vlc_fixups.h +++ b/include/vlc_fixups.h @@ -38,7 +38,13 @@ typedef struct } lldiv_t; #endif -#ifndef HAVE_REWIND +#if !defined(HAVE_GETENV) || \ + !defined(HAVE_USELOCALE) +# include /* NULL */ +#endif + +#if !defined (HAVE_REWIND) || \ + !defined (HAVE_GETDELIM) # include /* FILE */ #endif @@ -53,6 +59,12 @@ typedef struct # 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 @@ -82,12 +94,16 @@ size_t strlcpy (char *, const char *, size_t); #endif #ifndef HAVE_STRTOF +#ifndef __ANDROID__ float strtof (const char *, char **); #endif +#endif #ifndef HAVE_ATOF +#ifndef __ANDROID__ double atof (const char *); #endif +#endif #ifndef HAVE_STRTOLL long long int strtoll (const char *, char **, int); @@ -133,6 +149,19 @@ void rewind (FILE *); 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 @@ -145,6 +174,11 @@ static inline char *getenv (const char *name) } #endif +#ifndef HAVE_SETENV +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))) @@ -153,17 +187,23 @@ static inline char *getenv (const char *name) #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 -#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 +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 /* libintl support */ @@ -175,4 +215,85 @@ typedef void *locale_t; void swab (const void *, void *, ssize_t); #endif +/* Socket stuff */ +#ifndef HAVE_INET_PTON +# define inet_pton vlc_inet_pton +#endif + +#ifndef HAVE_INET_NTOP +# define inet_ntop vlc_inet_ntop +#endif + +#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_SEARCH_H +typedef struct entry { + char *key; + void *data; +} ENTRY; + +typedef enum { + FIND, ENTER +} ACTION; + +typedef enum { + preorder, + postorder, + endorder, + leaf +} VISIT; + +void *tsearch( const void *key, void **rootp, int(*cmp)(const void *, const void *) ); +void *tfind( const void *key, const void **rootp, int(*cmp)(const void *, const void *) ); +void *tdelete( const void *key, void **rootp, int(*cmp)(const void *, const void *) ); +void twalk( const void *root, void(*action)(const void *nodep, VISIT which, int depth) ); +void tdestroy( void *root, void (*free_node)(void *nodep) ); +#else // HAVE_SEARCH_H +# ifndef HAVE_TDESTROY +# define tdestroy vlc_tdestroy +# endif +#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 + +#ifdef __ANDROID__ +# undef __linux__ +# ifndef __cplusplus +# define __cplusplus 0 +# endif +# include +# if __cplusplus == 0 +# undef __cplusplus +# endif +char *tempnam(const char *, const char *); +#endif // ANDROID + #endif /* !LIBVLC_FIXUPS_H */