X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_url.h;h=c996f3fcc3915ea92860727270599066dfa2216e;hb=de587c237065de4696d9d035d0504cdf34990d87;hp=971cf34aad48f986bd46b37e58f1f6e4db6d1584;hpb=5f018616efa69287d92c9452132c3f5aeb699e6f;p=vlc diff --git a/include/vlc_url.h b/include/vlc_url.h index 971cf34aad..c996f3fcc3 100644 --- a/include/vlc_url.h +++ b/include/vlc_url.h @@ -22,14 +22,10 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ -#if !defined( __LIBVLC__ ) - #error You are not libvlc or one of its plugins. You cannot include this file -#endif - #ifndef __VLC_URL_H # define __VLC_URL_H -typedef struct +struct vlc_url_t { char *psz_protocol; char *psz_username; @@ -42,7 +38,7 @@ typedef struct char *psz_option; char *psz_buffer; /* to be freed */ -} vlc_url_t; +}; VLC_EXPORT( char *, unescape_URI_duplicate, ( const char *psz ) ); VLC_EXPORT( void, unescape_URI, ( char *psz ) ); @@ -63,6 +59,7 @@ static inline void vlc_UrlParse( vlc_url_t *url, const char *psz_url, char *psz_dup; char *psz_parse; char *p; + char *p2; url->psz_protocol = NULL; url->psz_username = NULL; @@ -108,7 +105,8 @@ static inline void vlc_UrlParse( vlc_url_t *url, const char *psz_url, psz_parse = p; } p = strchr( psz_parse, '@' ); - if( p != NULL ) + p2 = strchr( psz_parse, '/' ); + if( p != NULL && ( p2 != NULL ? p < p2 : 1 ) ) { /* We have a login */ url->psz_username = psz_parse; @@ -180,8 +178,8 @@ static inline void vlc_UrlParse( vlc_url_t *url, const char *psz_url, *****************************************************************************/ static inline void vlc_UrlClean( vlc_url_t *url ) { - if( url->psz_buffer ) free( url->psz_buffer ); - if( url->psz_host ) free( url->psz_host ); + free( url->psz_buffer ); + free( url->psz_host ); url->psz_protocol = NULL; url->psz_username = NULL;