+#ifndef HAVE_STRCASECMP
+# ifdef HAVE_STRICMP
+# define strcasecmp stricmp
+# if !defined(__PLUGIN__)
+# define vlc_strcasecmp NULL
+# endif
+# elif !defined(__PLUGIN__)
+# define strcasecmp vlc_strcasecmp
+ VLC_EXPORT( int, vlc_strcasecmp, ( const char *s1, const char *s2 ) );
+# endif
+#elif !defined(__PLUGIN__)
+# define vlc_strcasecmp NULL
+#endif
+
+#ifndef HAVE_STRNCASECMP
+# ifdef HAVE_STRNICMP
+# define strncasecmp strnicmp
+# if !defined(__PLUGIN__)
+# define vlc_strncasecmp NULL
+# endif
+# elif !defined(__PLUGIN__)
+# define strncasecmp vlc_strncasecmp
+ VLC_EXPORT( int, vlc_strncasecmp, ( const char *s1, const char *s2, size_t n ) );
+# endif
+#elif !defined(__PLUGIN__)
+# define vlc_strncasecmp NULL
+#endif
+
+/* Format type specifiers for 64 bits numbers */
+#if !defined(WIN32) && !defined(UNDER_CE)
+# define I64Fd "%lld"
+# define I64Fi "%lli"
+# define I64Fo "%llo"
+# define I64Fu "%llu"
+# define I64Fx "%llx"
+# define I64FX "%llX"
+#else
+# define I64Fd "%I64d"
+# define I64Fi "%I64i"
+# define I64Fo "%I64o"
+# define I64Fu "%I64u"
+# define I64Fx "%I64x"
+# define I64FX "%I64X"
+#endif /* defined(WIN32)||defined(UNDER_CE) */
+
+/* 64 bits integer constant suffix */
+#if defined( __MINGW32__ ) || (!defined(WIN32) && !defined(UNDER_CE))
+# define I64C(x) x##LL
+#else
+# define I64C(x) x##i64
+#endif /* defined(WIN32)||defined(UNDER_CE) */
+
+#if defined(WIN32) || defined(UNDER_CE)