Disk: only detect folders that specified by --disk-folders

Can be used to improve performance by ignoring network disks
This commit is contained in:
李通洲
2024-04-30 15:12:49 +08:00
committed by Carter Li
parent 36a0c273f9
commit 367264e549
6 changed files with 62 additions and 65 deletions
+25 -2
View File
@@ -1,6 +1,29 @@
#include "disk.h"
const char* ffDetectDisksImpl(FFlist* disks);
bool ffDiskMatchMountpoint(FFDiskOptions* options, const char* mountpoint)
{
#ifdef _WIN32
const char separator = ';';
#else
const char separator = ':';
#endif
uint32_t mountpointLength = (uint32_t) strlen(mountpoint);
uint32_t startIndex = 0;
while(startIndex < options->folders.length)
{
uint32_t colonIndex = ffStrbufNextIndexC(&options->folders, startIndex, separator);
uint32_t folderLength = colonIndex - startIndex;
if (folderLength == mountpointLength && memcmp(options->folders.chars + startIndex, mountpoint, mountpointLength) == 0)
return true;
startIndex = colonIndex + 1;
}
return false;
}
static int compareDisks(const FFDisk* disk1, const FFDisk* disk2)
{
@@ -9,7 +32,7 @@ static int compareDisks(const FFDisk* disk1, const FFDisk* disk2)
const char* ffDetectDisks(FFDiskOptions* options, FFlist* disks)
{
const char* error = ffDetectDisksImpl(disks);
const char* error = ffDetectDisksImpl(options, disks);
if (error) return error;
if (disks->length == 0) return "No disks found";