CompareW

Programming Far Manager plugins

CompareW

Плагин может экспортировать функцию CompareW, чтобы перекрыть используемый по умолчанию алгоритм сортировки файлов.
intptr_t WINAPI CompareW(
  const struct CompareInfo *Info
);

Параметры

Info
Указатель на структуру CompareInfo - информация, переданная Far Manager'ом плагину, для сортировки элементов.
В начале функции проверьте, что поле CompareInfo.StructSize >= sizeof(CompareInfo).

Возвращаемое значение

Эта функция возвращает одно из следующих значений:
  • -1 если CompareInfo.Item1 < CompareInfo.Item2
  •  0 если CompareInfo.Item1 == CompareInfo.Item2
  •  1 если CompareInfo.Item1 > CompareInfo.Item2
  • -2 если используется внутренняя функция Compare для данного метода сортировки.

Замечания

Для сортировки элементов Far Manager использует стандартную RTL-функцию qsort, которая реализует нестабильную сортировку. Иными словами, если элементы массива равны с точки зрения функции сравнения, на панели они будут отображаться в произвольном порядке, меняющемся при каждом перечитывании панели.

Пример

Пример из плагина "ProcList".
intptr_t WINAPI CompareW(const struct CompareInfo *Info)
{
  return ((Plist *)Info->hPanel)->Compare(Info->Item1, Info->Item2, Info->Mode);
}
Смотрите также: