Commit 3346aadc authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Win32: hack^Wfix opening UNC paths (fixes #3459)

(cherry picked from commit e763137961d9b1096ba3121508b4526f32017a0f)
parent 27e53316
...@@ -2331,12 +2331,8 @@ static int InputSourceInit( input_thread_t *p_input, ...@@ -2331,12 +2331,8 @@ static int InputSourceInit( input_thread_t *p_input,
* for non-standard VLC-specific schemes. */ * for non-standard VLC-specific schemes. */
if( !strcmp( psz_access, "file" ) ) if( !strcmp( psz_access, "file" ) )
{ {
if( psz_path[0] != '/' if( psz_path[0] != '/' )
#if (DIR_SEP_CHAR != '/') #ifndef WIN32
/* We accept invalid URIs too. */
&& psz_path[0] != DIR_SEP_CHAR
#endif
)
{ /* host specified -> only localhost is supported */ { /* host specified -> only localhost is supported */
static const size_t i_localhost = sizeof("localhost")-1; static const size_t i_localhost = sizeof("localhost")-1;
if( strncmp( psz_path, "localhost/", i_localhost + 1) != 0 ) if( strncmp( psz_path, "localhost/", i_localhost + 1) != 0 )
...@@ -2349,12 +2345,22 @@ static int InputSourceInit( input_thread_t *p_input, ...@@ -2349,12 +2345,22 @@ static int InputSourceInit( input_thread_t *p_input,
} }
psz_path += i_localhost; psz_path += i_localhost;
} }
/* Then URI-decode the path. */ #else
decode_URI( psz_path ); {
#if defined( WIN32 ) && !defined( UNDER_CE ) /* XXX: very very ugly. Always true for valid URIs though. */
if( (psz_path - psz_dup) >= 2 && psz_path[-2] && psz_path[-1] )
{
*(--psz_path) = '\\';
*(--psz_path) = '\\';
}
msg_Err( p_input, "REMOTE: %s", psz_path );
}
else
/* Strip leading slash in front of the drive letter */ /* Strip leading slash in front of the drive letter */
psz_path++; psz_path++;
#endif #endif
/* Then URI-decode the path. */
decode_URI( psz_path );
#if (DIR_SEP_CHAR != '/') #if (DIR_SEP_CHAR != '/')
/* Turn slashes into anti-slashes */ /* Turn slashes into anti-slashes */
for( char *s = strchr( psz_path, '/' ); s; s = strchr( s + 1, '/' ) ) for( char *s = strchr( psz_path, '/' ); s; s = strchr( s + 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