]> git.sesse.net Git - vlc/blobdiff - src/extras/libc.c
Fix compilation warning on Win CE.
[vlc] / src / extras / libc.c
index f58f05fe77899f3a59d67608bdb0a739a575fd55..eca162a722bd3973cf4ca8426c1b0703815ee953 100644 (file)
@@ -208,11 +208,33 @@ extern size_t vlc_strlcpy (char *tgt, const char *src, size_t bufsize)
 #endif
 }
 
+/**
+ * Extract a token from string.
+ * It is a replacement for strsep if not present.
+ */
+char *vlc_strsep( char **ppsz_string, const char *psz_delimiters )
+{
+    char *psz_string = *ppsz_string;
+    if( !psz_string )
+        return NULL;
+
+    char *p = strpbrk( psz_string, psz_delimiters );
+    if( !p )
+    {
+        *ppsz_string = NULL;
+        return psz_string;
+    }
+    *p++ = '\0';
+
+    *ppsz_string = p;
+    return psz_string;
+}
+
 /*****************************************************************************
  * vlc_*dir_wrapper: wrapper under Windows to return the list of drive letters
  * when called with an empty argument or just '\'
  *****************************************************************************/
-#if defined(WIN32) && !defined(UNDER_CE)
+#if defined(WIN32)
 #   include <assert.h>
 
 typedef struct vlc_DIR
@@ -236,7 +258,11 @@ void *vlc_wopendir( const wchar_t *wpath )
         if( !p_dir )
             return NULL;
         p_dir->p_real_dir = NULL;
+#if defined(UNDER_CE)
+        p_dir->i_drives = NULL;
+#else
         p_dir->i_drives = GetLogicalDrives();
+#endif
         return (void *)p_dir;
     }
 
@@ -260,7 +286,6 @@ void *vlc_wopendir( const wchar_t *wpath )
 struct _wdirent *vlc_wreaddir( void *_p_dir )
 {
     vlc_DIR *p_dir = (vlc_DIR *)_p_dir;
-    unsigned int i;
     DWORD i_drives;
 
     if ( p_dir->p_real_dir != NULL )
@@ -281,6 +306,11 @@ struct _wdirent *vlc_wreaddir( void *_p_dir )
 
     /* Drive letters mode */
     i_drives = p_dir->i_drives;
+#ifdef UNDER_CE
+    swprintf( p_dir->dd_dir.d_name, L"\\");
+    p_dir->dd_dir.d_namlen = wcslen(p_dir->dd_dir.d_name);
+#else
+    unsigned int i;
     if ( !i_drives )
         return NULL; /* end */
 
@@ -293,6 +323,7 @@ struct _wdirent *vlc_wreaddir( void *_p_dir )
     swprintf( p_dir->dd_dir.d_name, L"%c:\\", 'A' + i );
     p_dir->dd_dir.d_namlen = wcslen(p_dir->dd_dir.d_name);
     p_dir->i_drives &= ~(1UL << i);
+#endif
     return &p_dir->dd_dir;
 }
 
@@ -308,7 +339,7 @@ void vlc_rewinddir( void *_p_dir )
 /* This one is in the libvlccore exported symbol list */
 int vlc_wclosedir( void *_p_dir )
 {
-#if defined(WIN32) && !defined(UNDER_CE)
+#if defined(WIN32)
     vlc_DIR *p_dir = (vlc_DIR *)_p_dir;
     int i_ret = 0;