Commit 49c53195 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

file access: Remove expand path, spare one dummy duplication

parent 540c7613
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
#if defined( WIN32 ) && !defined( UNDER_CE ) #if defined( WIN32 ) && !defined( UNDER_CE )
# include <io.h> # include <io.h>
# include <ctype.h>
#else #else
# include <unistd.h> # include <unistd.h>
# include <poll.h> # include <poll.h>
...@@ -377,36 +378,27 @@ static int Control( access_t *p_access, int i_query, va_list args ) ...@@ -377,36 +378,27 @@ static int Control( access_t *p_access, int i_query, va_list args )
return VLC_SUCCESS; return VLC_SUCCESS;
} }
static char *expand_path (const access_t *p_access, const char *path)
{
#if defined(WIN32)
if (!strcasecmp (p_access->psz_access, "file")
&& ('/' == path[0]) && path[1] && (':' == path[2]) && ('/' == path[3]))
// Explorer can open path such as file:/C:/ or file:///C:/
// hence remove leading / if found
return strdup (path + 1);
#endif
return strdup (path);
}
/***************************************************************************** /*****************************************************************************
* open_file: Opens a specific file * open_file: Opens a specific file
*****************************************************************************/ *****************************************************************************/
static int open_file (access_t *p_access, const char *psz_name) static int open_file (access_t *p_access, const char *path)
{ {
char *path = expand_path (p_access, psz_name); #if defined(WIN32)
if (!strcasecmp (p_access->psz_access, "file")
&& ('/' == path[0]) && isalpha (path[1])
&& (':' == path[2]) && ('/' == path[3]))
/* Explorer can open path such as file:/C:/ or file:///C:/
* hence remove leading / if found */
path++;
#endif
#ifdef UNDER_CE #ifdef UNDER_CE
p_sys->fd = utf8_fopen( path, "rb" ); p_sys->fd = utf8_fopen( path, "rb" );
if ( !p_sys->fd ) if ( !p_sys->fd )
{ {
msg_Err( p_access, "cannot open file %s", psz_name ); msg_Err( p_access, "cannot open file %s", path );
intf_UserFatal( p_access, VLC_FALSE, _("File reading failed"), intf_UserFatal( p_access, VLC_FALSE, _("File reading failed"),
_("VLC could not open the file \"%s\"."), psz_name ); _("VLC could not open the file \"%s\"."), path );
free (path);
return VLC_EGENERIC; return VLC_EGENERIC;
} }
...@@ -416,12 +408,11 @@ static int open_file (access_t *p_access, const char *psz_name) ...@@ -416,12 +408,11 @@ static int open_file (access_t *p_access, const char *psz_name)
fseek( p_sys->fd, 0, SEEK_SET ); fseek( p_sys->fd, 0, SEEK_SET );
#else #else
int fd = utf8_open (path, O_RDONLY | O_NONBLOCK /* O_LARGEFILE*/, 0666); int fd = utf8_open (path, O_RDONLY | O_NONBLOCK /* O_LARGEFILE*/, 0666);
free (path);
if (fd == -1) if (fd == -1)
{ {
msg_Err (p_access, "cannot open file %s (%m)", psz_name); msg_Err (p_access, "cannot open file %s (%m)", path);
intf_UserFatal (p_access, VLC_FALSE, _("File reading failed"), intf_UserFatal (p_access, VLC_FALSE, _("File reading failed"),
_("VLC could not open the file \"%s\"."), psz_name); _("VLC could not open the file \"%s\"."), path);
return -1; return -1;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment