{
// validate protocol header
const wchar_t *start = url;
- while( start != end ) {
- wchar_t c = towlower(*start);
- if( (c < L'a') || (c > L'z') )
- // not a valid protocol header, assume relative URL
- goto relativeurl;
- ++start;
- }
- /* we have a protocol header, therefore URL is absolute */
- UINT len = wcslen(url);
- wchar_t *href = (LPWSTR)CoTaskMemAlloc((len+1)*sizeof(wchar_t));
- if( href )
+ wchar_t c = *start;
+ if( iswalpha(c) )
{
- memcpy(href, url, len*sizeof(wchar_t));
- href[len] = L'\0';
+ ++start;
+ while( start != end )
+ {
+ c = *start;
+ if( ! (iswalnum(c)
+ || (L'-' == c)
+ || (L'+' == c)
+ || (L'.' == c)
+ || (L'/' == 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 */
+ UINT len = wcslen(url);
+ wchar_t *href = (LPWSTR)CoTaskMemAlloc((len+1)*sizeof(wchar_t));
+ if( href )
+ {
+ memcpy(href, url, len*sizeof(wchar_t));
+ href[len] = L'\0';
+ }
+ return href;
}
- return href;
}
relativeurl:
{
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;
}
}
ppsz_argv[ppsz_argc++] = "--no-one-instance";
-#if 0
+#if 1
ppsz_argv[0] = "C:\\Cygwin\\home\\damienf\\vlc-trunk\\vlc";
#endif
{
// 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: