summaryrefslogtreecommitdiff
path: root/lib/os_internal.h
diff options
context:
space:
mode:
authorFrantišek Dvořák <valtri@users.sourceforge.net>2004-09-20 19:30:02 +0000
committerFrantišek Dvořák <valtri@users.sourceforge.net>2004-09-20 19:30:02 +0000
commit7204b84beb0f5cfb166e8d56402371d05bece83b (patch)
tree16b76662489bd637b04e06e5ee6ca1ea98186dec /lib/os_internal.h
parent747ab57ec201661d72adfdf0ce538d728c0013c5 (diff)
downloadxine-lib-7204b84beb0f5cfb166e8d56402371d05bece83b.tar.gz
xine-lib-7204b84beb0f5cfb166e8d56402371d05bece83b.tar.bz2
Build system improvements:
- use replacement functions (macro AC_REPLACE_FUNCS and variable LTLIBOBJS), each function is in a file placed into lib/ directory, it was not necessary, but it looks nice, IMHO - headers cleanups (this was needed): - prototypes of replacement funtions and macros are placed into separate os_internal.h (and included by config.h) - drop include inttypes.h from public xine.h, replaced by custom os_type.h, idea origins from Ogg/Vorbis public headers - disable generating inttypes.h: generated replacement isn't enough for xine-lib but nobody complained (and for M$VC we have special version) - better including headers for win32, let dvdnav use its mutex wrapper - updated M$VC port Result: - xine is compiled nicely by MinGW, CygWin and paritaly M$VC - frontends in M$VC port don't require additional helping headers - moved some platform specific things from xine-utils and win32/contrib to lib/ Finally I can start with real coding. :-) CVS patchset: 6982 CVS date: 2004/09/20 19:30:02
Diffstat (limited to 'lib/os_internal.h')
-rw-r--r--lib/os_internal.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/lib/os_internal.h b/lib/os_internal.h
new file mode 100644
index 000000000..77aa7b4d0
--- /dev/null
+++ b/lib/os_internal.h
@@ -0,0 +1,68 @@
+#include <stddef.h>
+#include "os_types.h"
+
+/* replacement of strndup */
+#ifndef HAVE_STRNDUP
+#define strndup(S, N) _xine_private_strndup((S), (N))
+char *_xine_private_strndup(const char *s, size_t n);
+#endif
+
+/* replacement of basename */
+#ifndef HAVE_BASENAME
+#define basename(PATH) _xine_private_basename((PATH))
+char *_xine_private_basename(char *path);
+#endif
+
+/* replacement of hstrerror */
+#ifndef HAVE_HSTRERROR
+#define hstrerror(ERR) _xine_private_hstrerror((ERR))
+const char *_xine_private_hstrerror(int err);
+#endif
+
+/* replacement of setenv */
+#ifndef HAVE_SETENV
+#define setenv(NAME, VALUE, OVERWRITE) _xine_private_setenv((NAME), (VALUE))
+int _xine_private_setenv(const char *name, const char *value);
+#endif
+
+/* replacement of strtok_r */
+#ifndef HAVE_STRTOK_R
+#define strtok_r(S, DELIM, PTRPTR) _xine_private_strtok_r((S), (DELIM), (PTRPTR))
+char *_xine_private_strtok_r(char *s, const char *delim, char **ptrptr);
+#endif
+
+/* replacement of gettimeofday */
+#ifndef HAVE_GETTIMEOFDAY
+# ifdef WIN32
+# include <winsock.h>
+# else
+# include <sys/time.h>
+# endif
+# define gettimeofday(TV, TZ) _xine_private_gettimeofday((TV))
+int _xine_private_gettimeofday(struct timeval *tv);
+#endif
+
+/* replacement of strpbrk */
+#ifndef HAVE_STRPBRK
+#define strpbrk(S, ACCEPT) _xine_private_strpbrk((S), (ACCEPT))
+char *_xine_private_strpbrk(const char *s, const char *accept);
+#endif
+
+/* replacement of strsep */
+#ifndef HAVE_STRSEP
+#define strsep(STRINGP, DELIM) _xine_private_strsep((STRINGP), (DELIM))
+char *_xine_private_strsep(char **stringp, const char *delim);
+#endif
+
+/* replacing lstat by stat */
+#ifndef HAVE_LSTAT
+# define lstat(FILENAME, BUF) stat((FILENAME), (BUF))
+#endif
+
+/* macross needed for MSVC */
+#ifdef _MSC_VER
+# define snprintf _snprintf
+# define vsnprintf _vsnprintf
+# define strcasecmp _stricmp
+# define strncasecmp _strnicmp
+#endif