utf8_open: make third parameter optional
authorRémi Denis-Courmont <remi@remlab.net>
Sat, 15 Aug 2009 18:21:44 +0000 (21:21 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Sat, 15 Aug 2009 18:21:44 +0000 (21:21 +0300)
include/vlc_charset.h
src/text/filesystem.c

index b8a9d4e..ab6d529 100644 (file)
@@ -41,7 +41,7 @@ VLC_EXPORT( char *, ToLocale, ( const char * ) LIBVLC_USED );
 VLC_EXPORT( char *, ToLocaleDup, ( const char * ) LIBVLC_USED );
 
 /* TODO: move all of this to "vlc_fs.h" or something like that */
-VLC_EXPORT( int, utf8_open, ( const char *filename, int flags, mode_t mode ) LIBVLC_USED );
+VLC_EXPORT( int, utf8_open, ( const char *filename, int flags, ... ) LIBVLC_USED );
 VLC_EXPORT( FILE *, utf8_fopen, ( const char *filename, const char *mode ) LIBVLC_USED );
 VLC_EXPORT( DIR *, utf8_opendir, ( const char *dirname ) LIBVLC_USED );
 VLC_EXPORT( char *, utf8_readdir, ( DIR *dir ) LIBVLC_USED );
index cb3dc3d..6bec646 100644 (file)
@@ -85,11 +85,20 @@ static int convert_path (const char *restrict path, wchar_t *restrict wpath)
  *
  * @param filename file path to open (with UTF-8 encoding)
  * @param flags open() flags, see the C library open() documentation
- * @param mode file permissions if creating a new file
  * @return a file handle on success, -1 on error (see errno).
+ * @note Contrary to standard open(), this function returns file handles
+ * with the close-on-exec flag enabled.
  */
-int utf8_open (const char *filename, int flags, mode_t mode)
+int utf8_open (const char *filename, int flags, ...)
 {
+    mode_t mode = 0;
+    va_list ap;
+
+    va_start (ap, flags);
+    if (flags & O_CREAT)
+        mode = va_arg (ap, mode_t);
+    va_end (ap);
+
 #ifdef UNDER_CE
     /*_open translates to wchar internally on WinCE*/
     return _open (filename, flags, mode);