vlc_fixups.h
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:4k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * fixups.h: portability fixups included from config.h
  3.  *****************************************************************************
  4.  * Copyright © 1998-2008 the VideoLAN project
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License as published by
  8.  * the Free Software Foundation; either version 2 of the License, or
  9.  * (at your option) any later version.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program; if not, write to the Free Software
  18.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  19.  *****************************************************************************/
  20. /**
  21.  * file
  22.  * This file is a collection of portability fixes
  23.  */
  24. #ifndef LIBVLC_FIXUPS_H
  25. # define LIBVLC_FIXUPS_H 1
  26. #if !defined (HAVE_GMTIME_R) || !defined (HAVE_LOCALTIME_R)
  27. # include <time.h> /* time_t */
  28. #endif
  29. #ifndef HAVE_LLDIV
  30. typedef struct
  31. {
  32.     long long quot; /* Quotient. */
  33.     long long rem;  /* Remainder. */
  34. } lldiv_t;
  35. #endif
  36. #ifndef HAVE_REWIND
  37. # include <stdio.h> /* FILE */
  38. #endif
  39. #if !defined (HAVE_STRLCPY) || 
  40.     !defined (HAVE_STRNDUP) || 
  41.     !defined (HAVE_STRNLEN) || 
  42.     !defined (HAVE_GETCWD)
  43. # include <stddef.h> /* size_t */
  44. #endif
  45. #ifndef HAVE_VASPRINTF
  46. # include <stdarg.h> /* va_list */
  47. #endif
  48. #ifdef __cplusplus
  49. extern "C" {
  50. #endif
  51. #ifndef HAVE_STRDUP
  52. char *strdup (const char *);
  53. #endif
  54. #ifndef HAVE_VASPRINTF
  55. int vasprintf (char **, const char *, va_list);
  56. #endif
  57. #ifndef HAVE_ASPRINTF
  58. int asprintf (char **, const char *, ...);
  59. #endif
  60. #ifndef HAVE_STRNLEN
  61. size_t strnlen (const char *, size_t);
  62. #endif
  63. #ifndef HAVE_STRNDUP
  64. char *strndup (const char *, size_t);
  65. #endif
  66. #ifndef HAVE_STRLCPY
  67. size_t strlcpy (char *, const char *, size_t);
  68. #endif
  69. #ifndef HAVE_STRTOF
  70. float strtof (const char *, char **);
  71. #endif
  72. #ifndef HAVE_ATOF
  73. double atof (const char *);
  74. #endif
  75. #ifndef HAVE_STRTOLL
  76. long long int strtoll (const char *, char **, int);
  77. #endif
  78. #ifndef HAVE_STRSEP
  79. char *strsep (char **, const char *);
  80. #endif
  81. #ifndef HAVE_ATOLL
  82. long long atoll (const char *);
  83. #endif
  84. #ifndef HAVE_LLDIV
  85. lldiv_t lldiv (long long, long long);
  86. #endif
  87. #ifndef HAVE_STRCASECMP
  88. int strcasecmp (const char *, const char *);
  89. #endif
  90. #ifndef HAVE_STRNCASECMP
  91. int strncasecmp (const char *, const char *, size_t);
  92. #endif
  93. #ifndef HAVE_STRCASESTR
  94. char *strcasestr (const char *, const char *);
  95. #endif
  96. #ifndef HAVE_GMTIME_R
  97. struct tm *gmtime_r (const time_t *, struct tm *);
  98. #endif
  99. #ifndef HAVE_LOCALTIME_R
  100. struct tm *localtime_r (const time_t *, struct tm *);
  101. #endif
  102. #ifndef HAVE_REWIND
  103. void rewind (FILE *);
  104. #endif
  105. #ifndef HAVE_GETCWD
  106. char *getcwd (char *buf, size_t size);
  107. #endif
  108. #ifdef __cplusplus
  109. } /* extern "C" */
  110. #endif
  111. #ifndef HAVE_GETENV
  112. static inline char *getenv (const char *name)
  113. {
  114.     (void)name;
  115.     return NULL;
  116. }
  117. #endif
  118. /* Alignment of critical static data structures */
  119. #ifdef ATTRIBUTE_ALIGNED_MAX
  120. #   define ATTR_ALIGN(align) __attribute__ ((__aligned__ ((ATTRIBUTE_ALIGNED_MAX < align) ? ATTRIBUTE_ALIGNED_MAX : align)))
  121. #else
  122. #   define ATTR_ALIGN(align)
  123. #endif
  124. #ifndef HAVE_USELOCALE
  125. typedef void *locale_t;
  126. # define newlocale( a, b, c ) ((locale_t)0)
  127. # define uselocale( a ) ((locale_t)0)
  128. # define freelocale( a ) (void)0
  129. #endif
  130. #ifdef WIN32
  131. # include <dirent.h>
  132. # define opendir Use_utf8_opendir_or_vlc_wopendir_instead!
  133. # define readdir Use_utf8_readdir_or_vlc_wreaddir_instead!
  134. # define closedir vlc_wclosedir
  135. #endif
  136. /* libintl support */
  137. #define _(str)            vlc_gettext (str)
  138. #define N_(str)           gettext_noop (str)
  139. #define gettext_noop(str) (str)
  140. #ifndef HAVE_SWAB
  141. void swab (const void *, void *, ssize_t);
  142. #endif
  143. #endif /* !LIBVLC_FIXUPS_H */