X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_fixups.h;h=a02eeceb974186caf7261f71076dd1c732fd53ff;hb=8d54feef1dcd93821c93c31031619ade8134dfac;hp=790dc36c612e9135c21fef8ebf4ac9ab30682ce3;hpb=021d3cb9e8d258d255bef48a4e629a4633593222;p=vlc diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h index 790dc36c61..a02eeceb97 100644 --- a/include/vlc_fixups.h +++ b/include/vlc_fixups.h @@ -26,184 +26,132 @@ #ifndef LIBVLC_FIXUPS_H # define LIBVLC_FIXUPS_H 1 -#ifndef HAVE_STRDUP -# include -# include -static inline char *strdup (const char *str) +#if !defined (HAVE_GMTIME_R) || !defined (HAVE_LOCALTIME_R) +# include /* time_t */ +#endif + +#ifndef HAVE_LLDIV +typedef struct { - size_t len = strlen (str) + 1; - char *res = (char *)malloc (len); - if (res) memcpy (res, str, len); - return res; -} + long long quot; /* Quotient. */ + long long rem; /* Remainder. */ +} lldiv_t; +#endif + +#ifndef HAVE_REWIND +# include /* FILE */ +#endif + +#if !defined (HAVE_STRLCPY) || \ + !defined (HAVE_STRNDUP) || \ + !defined (HAVE_STRNLEN) || \ + !defined (HAVE_GETCWD) +# include /* size_t */ #endif #ifndef HAVE_VASPRINTF -# include -# include -# include -static inline int vasprintf (char **strp, const char *fmt, va_list ap) -{ - int len = vsnprintf (NULL, 0, fmt, ap) + 1; - char *res = (char *)malloc (len); - if (res == NULL) - return -1; - *strp = res; - return vsprintf (res, fmt, ap); -} +# include /* va_list */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef HAVE_STRDUP +char *strdup (const char *); +#endif + +#ifndef HAVE_VASPRINTF +int vasprintf (char **, const char *, va_list); #endif #ifndef HAVE_ASPRINTF -# include -# include -static inline int asprintf (char **strp, const char *fmt, ...) -{ - va_list ap; - int ret; - va_start (ap, fmt); - ret = vasprintf (strp, fmt, ap); - va_end (ap); - return ret; -} +int asprintf (char **, const char *, ...); #endif #ifndef HAVE_STRNLEN -# include -static inline size_t strnlen (const char *str, size_t max) -{ - const char *end = (const char *) memchr (str, 0, max); - return end ? (size_t)(end - str) : max; -} +size_t strnlen (const char *, size_t); #endif #ifndef HAVE_STRNDUP -# include -# include -static inline char *strndup (const char *str, size_t max) -{ - size_t len = strnlen (str, max); - char *res = (char *) malloc (len + 1); - if (res) - { - memcpy (res, str, len); - res[len] = '\0'; - } - return res; -} +char *strndup (const char *, size_t); #endif #ifndef HAVE_STRLCPY -# define strlcpy vlc_strlcpy +size_t strlcpy (char *, const char *, size_t); #endif #ifndef HAVE_STRTOF -# define strtof( a, b ) ((float)strtod (a, b)) +float strtof (const char *, char **); #endif #ifndef HAVE_ATOF -# define atof( str ) (strtod ((str), (char **)NULL, 10)) +double atof (const char *); #endif #ifndef HAVE_STRTOLL -# define strtoll vlc_strtoll +long long int strtoll (const char *, char **, int); +#endif + +#ifndef HAVE_STRSEP +char *strsep (char **, const char *); #endif #ifndef HAVE_ATOLL -# define atoll( str ) (strtoll ((str), (char **)NULL, 10)) +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 -static inline lldiv_t lldiv (long long numer, long long denom) -{ - lldiv_t d = { .quot = numer / denom, .rem = numer % denom }; - return d; -} +#ifndef HAVE_STRCASECMP +int strcasecmp (const char *, const char *); #endif -#ifndef HAVE_SCANDIR -# define scandir vlc_scandir -# define alphasort vlc_alphasort +#ifndef HAVE_STRNCASECMP +int strncasecmp (const char *, const char *, size_t); #endif -#ifndef HAVE_GETENV -static inline getenv (const char *name) -{ - (void)name; - return NULL; -} +#ifndef HAVE_STRCASESTR +char *strcasestr (const char *, const char *); #endif -#ifndef HAVE_STRCASECMP -# ifndef HAVE_STRICMP -# include -static inline int strcasecmp (const char *s1, const char *s2) -{ - for (size_t i = 0;; i++) - { - int d = tolower (s1[i]) - tolower (s2[i]); - if (d) return d; - } - return 0; -} -# else -# define strcasecmp stricmp -# endif +#ifndef HAVE_GMTIME_R +struct tm *gmtime_r (const time_t *, struct tm *); #endif -#ifndef HAVE_STRNCASECMP -# ifndef HAVE_STRNICMP -# include -static inline int strncasecmp (const char *s1, const char *s2, size_t n) -{ - for (size_t i = 0; i < n; i++) - { - int d = tolower (s1[i]) - tolower (s2[i]); - if (d) return d; - } - return 0; -} -# else -# define strncasecmp strnicmp -# endif +#ifndef HAVE_LOCALTIME_R +struct tm *localtime_r (const time_t *, struct tm *); #endif -#ifndef HAVE_STRCASESTR -# ifndef HAVE_STRISTR -# define strcasestr vlc_strcasestr -# else -# define strcasestr stristr -# endif +#ifndef HAVE_REWIND +void rewind (FILE *); #endif -#ifndef HAVE_LOCALTIME_R -/* If localtime_r() is not provided, we assume localtime() uses - * thread-specific storage. */ -# include -static inline struct tm *localtime_r (const time_t *timep, struct tm *result) -{ - struct tm *s = localtime (timep); - if (s == NULL) - return NULL; +#ifndef HAVE_GETCWD +char *getcwd (char *buf, size_t size); +#endif - *result = *s; - return result; -} -static inline struct tm *gmtime_r (const time_t *timep, struct tm *result) -{ - struct tm *s = gmtime (timep); - if (s == NULL) - return NULL; +#ifdef __cplusplus +} /* extern "C" */ +#endif - *result = *s; - return result; +#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))) +#else +# define ATTR_ALIGN(align) +#endif + #ifndef HAVE_USELOCALE typedef void *locale_t; # define newlocale( a, b, c ) ((locale_t)0) @@ -219,15 +167,12 @@ typedef void *locale_t; #endif /* libintl support */ -#define _(str) vlc_gettext (str) +#define _(str) vlc_gettext (str) +#define N_(str) gettext_noop (str) +#define gettext_noop(str) (str) -#if defined (ENABLE_NLS) -# include -#else -# define dgettext(dom, str) ((char *)(str)) +#ifndef HAVE_SWAB +void swab (const void *, void *, ssize_t); #endif -#define N_(str) gettext_noop (str) -#define gettext_noop(str) (str) - #endif /* !LIBVLC_FIXUPS_H */