X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=mozilla%2Fvlcplugin.cpp;h=4af2bffb528744efb85c4dcdf6a1568a8db88cf9;hb=6ee1e193fd896ab9a4729fde14f009d9ce629815;hp=a9e1781d2ddb928c12036ed85605133ca4559058;hpb=1d8b6ccb091e26a741df730f8d709bf4929d1ace;p=vlc diff --git a/mozilla/vlcplugin.cpp b/mozilla/vlcplugin.cpp index a9e1781d2d..4af2bffb52 100644 --- a/mozilla/vlcplugin.cpp +++ b/mozilla/vlcplugin.cpp @@ -62,7 +62,7 @@ VlcPlugin::VlcPlugin( NPP instance, uint16 mode ) : } static bool boolValue(const char *value) { - return ( !strcmp(value, "1") || + return ( !strcmp(value, "1") || !strcasecmp(value, "true") || !strcasecmp(value, "yes") ); } @@ -90,7 +90,7 @@ NPError VlcPlugin::init(int argc, char* const argn[], char* const argv[]) { if( i_type == REG_SZ ) { - strcat( p_data, "\\plugins" ); + strcat( p_data, "\\plugins000" ); ppsz_argv[ppsz_argc++] = "--plugin-path"; ppsz_argv[ppsz_argc++] = p_data; } @@ -98,22 +98,8 @@ NPError VlcPlugin::init(int argc, char* const argn[], char* const argv[]) RegCloseKey( h_key ); } ppsz_argv[ppsz_argc++] = "--no-one-instance"; - if( IsDebuggerPresent() ) - { - /* - ** VLC default threading mechanism is designed to be as compatible - ** with POSIX as possible. However when debugged on win32, threads - ** lose signals and eventually VLC get stuck during initialization. - ** threading support can be configured to be more debugging friendly - ** but it will be less compatible with POSIX. - ** This is done by initializing with the following options: - */ - ppsz_argv[ppsz_argc++] = "--fast-mutex"; - ppsz_argv[ppsz_argc++] = "--win9x-cv-method=1"; - } - -#if 0 +#if 1 ppsz_argv[0] = "C:\\Cygwin\\home\\damienf\\vlc-trunk\\vlc"; #endif @@ -304,15 +290,26 @@ char *VlcPlugin::getAbsoluteURL(const char *url) { // validate protocol header const char *start = url; - while( start != end ) { - char c = tolower(*start); - if( (c < 'a') || (c > 'z') ) - // not valid protocol header, assume relative URL - goto relativeurl; + char c = *start; + if( isalpha(c) ) + { ++start; + while( start != end ) + { + c = *start; + if( ! (isalnum(c) + || ('-' == c) + || ('+' == c) + || ('.' == c) + || ('/' == c)) ) /* VLC uses / to allow user to specify a demuxer */ + // not valid protocol header, assume relative URL + goto relativeurl; + ++start; + } + /* we have a protocol header, therefore URL is absolute */ + return strdup(url); } - /* we have a protocol header, therefore URL is absolute */ - return strdup(url); + // not a valid protocol header, assume relative URL } relativeurl: @@ -379,7 +376,7 @@ relativeurl: return href; } - /* find last path component and replace it */ + /* find last path component and replace it */ while( '/' != *pathend) --pathend; @@ -406,7 +403,7 @@ relativeurl: url = ++p; continue; } - if( '.' != *p ) + if( '.' != *p ) break; ++p; if( '\0' == *p ) @@ -415,7 +412,7 @@ relativeurl: } else { - if( '/' != *p ) + if( '/' != *p ) break; /* relative url starts with '../' */ ++p;