result = EARFileSystem::Open(archiveName, archiveFile, mode);
}
#if !defined(ECERE_VANILLA) && !defined(ECERE_NONET)
- else if(strstr(fileName, "http://") == fileName)
+ else if(strstr(fileName, "http://") == fileName || strstr(fileName, "https://"))
{
result = FileOpenURL(fileName);
}
#endif
if(strstr(fileName, "File://") == fileName)
{
- result = (File)strtoul(fileName+7, null, 16);
+ result = (File)(uintptr)strtoull(fileName+7, null, 16);
if(result)
{
if(result._class && eClass_IsDerived(result._class, class(File)))
if(!strcmp(path, "/"))
{
int c;
- d.fHandle = (void *)0xFFFFFFFF; //GetLogicalDrives();
+ uint drives = 0xFFFFFFFF;
+ d.fHandle = (HANDLE)drives; //GetLogicalDrives();
for(c = 0; c<26; c++)
if(((uint)d.fHandle) & (1<<c))
{
case DRIVE_REMOTE: file.stats.attribs.isRemote = true; break;
case DRIVE_CDROM: file.stats.attribs.isCDROM = true; break;
}
- *((uint *)&d.fHandle) ^= (1<<c);
+ drives ^= (1<<c);
if(driveType == DRIVE_NO_ROOT_DIR) continue;
if(driveType != DRIVE_REMOVABLE && driveType != DRIVE_REMOTE &&
result = file;
break;
}
+ d.fHandle = (HANDLE) drives;
d.resource = 0;
}
else if(path[0] != '\\' || path[1] != '\\' || strstr(path+2, "\\"))
if(!strcmp(d.name, "/"))
{
int c;
+ uint drives = (uint)d.fHandle;
for(c = 0; c<26; c++)
{
- if(((uint)d.fHandle) & (1<<c))
+ if(drives & (1<<c))
{
char volume[MAX_FILENAME] = "";
int driveType;
_wpath[2] = path[2] = '\\';
_wpath[3] = path[3] = 0;
driveType = GetDriveType(_wpath);
- *((uint *)&d.fHandle) ^= (1<<c);
+ drives ^= (1<<c);
switch(driveType)
{
break;
}
}
+ d.fHandle = (HANDLE) drives;
break;
}
else if(d.name[0] != '\\' || d.name[1] != '\\' || strstr(d.name+2, "\\"))