Advanced compare plugin v57
Far Manager version
3.0.6402.4055
OS version
10.0.19045.4170
Other software
No response
Steps to reproduce
сравнение директории на локальном диске с сетевым ресурсом или сравнение двух сетевых ресурсов
D:\folder1 и \\server\share\folder1 или \\server\share\folder1 и \\server\share\folder2
для сетевого пути больше чем MAX_PATH, FindFirstFile возвращает ошибку 3
очевидно что использование UNC формата для сетевого пути, решает проблему, но это не удобно да и не всем очевидно
\\?\UNC\server\share\folder1
Expected behavior
No response
Actual behavior
Compare.cpp/class FileName/BuildName
https://github.com/FarGroup/FarManager/blob/e5c8e536ecdc616a284eb21d1b928b6e15702d94/plugins/compare/Compare.cpp#L566-L582
код обрабатывает только вариант только для локальных путей
https://github.com/FarGroup/FarManager/blob/e5c8e536ecdc616a284eb21d1b928b6e15702d94/plugins/compare/Compare.cpp#L575-L579
предлагается изменить код плагина
https://github.com/FarGroup/FarManager/blob/e5c8e536ecdc616a284eb21d1b928b6e15702d94/plugins/compare/Compare.cpp#L568
int mlen = lstrlen(dir) + lstrlen(file) + 6 + 2;
https://github.com/FarGroup/FarManager/blob/e5c8e536ecdc616a284eb21d1b928b6e15702d94/plugins/compare/Compare.cpp#L575-L578
*pBuff = L'\0';
if (mlen >= MAX_PATH)
{
if (dir[0] != L'\\')
{
lstrcpy(pBuff, L"\\\\?\\");
}
else if (dir[1] == L'\\' && dir[2] != L'?' && dir[2] != L'.')
{
lstrcpy(pBuff, L"\\\\?\\UNC");
dir++; // cut first slash
}
}