X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Ftext%2Fstrings.c;h=602f8d53d686541c4793831e202324d14c079115;hb=2a625dda910374d20d2e751cdbd63bbfa1a20878;hp=4b8d7925e5915ce8f17d0da4debbb265322466a7;hpb=7e4d50ac4297d445b46075b0dd87d11a951d5a3e;p=vlc diff --git a/src/text/strings.c b/src/text/strings.c index 4b8d7925e5..602f8d53d6 100644 --- a/src/text/strings.c +++ b/src/text/strings.c @@ -109,7 +109,6 @@ char *decode_URI( char *psz ) } } *out = '\0'; - EnsureUTF8( psz ); return psz; } @@ -962,10 +961,12 @@ char *str_format( vlc_object_t *p_this, const char *psz_src ) /** * Remove forbidden characters from filenames (including slashes) */ -char* filename_sanitize( const char *str_origin ) +void filename_sanitize( char *str ) { - char *str = strdup( str_origin ); +#if defined( WIN32 ) char *str_base = str; +#endif + if( *str == '.' && (str[1] == '\0' || (str[1] == '.' && str[2] == '\0' ) ) ) { while( *str ) @@ -973,7 +974,7 @@ char* filename_sanitize( const char *str_origin ) *str = '_'; str++; } - return str_base; + return; } #if defined( WIN32 ) @@ -1014,8 +1015,6 @@ char* filename_sanitize( const char *str_origin ) *str-- = '_'; } #endif - - return str_base; } /** @@ -1181,18 +1180,20 @@ char *make_path (const char *url) if (schemelen == 4 && !strncasecmp (url, "file", 4)) { #if (DIR_SEP_CHAR != '/') - for (char *p = strchr (path, '/'); p; p = strchr (p, '/')) - *p == DIR_SEP_CHAR; + for (char *p = strchr (path, '/'); p; p = strchr (p + 1, '/')) + *p = DIR_SEP_CHAR; #endif + /* Leading slash => local path */ if (*path == DIR_SEP_CHAR) +#ifndef WIN32 return path; +#else + return memmove (path, path + 1, strlen (path + 1) + 1); +#endif /* Local path disguised as a remote one (MacOS X) */ if (!strncasecmp (path, "localhost"DIR_SEP, 10)) - { - memmove (path, path + 9, strlen (path + 9) + 1); - return path; - } + return memmove (path, path + 9, strlen (path + 9) + 1); #ifdef WIN32 if (*path && asprintf (&ret, "\\\\%s", path) == -1) @@ -1218,7 +1219,7 @@ char *make_path (const char *url) ret = strdup ("/dev/stdout"); break; case 2: - ret = strdup ("/dev/strerr"); + ret = strdup ("/dev/stderr"); break; default: if (asprintf (&ret, "/dev/fd/%d", fd) == -1)