summaryrefslogtreecommitdiffstats
path: root/CPP/7zip/UI/Common/SortUtils.cpp
blob: 039adfa93101c7709ba2dd06437c8380aa45b05c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// SortUtils.cpp

#include "StdAfx.h"

#include "SortUtils.h"
#include "Common/Wildcard.h"

static int CompareStrings(const int *p1, const int *p2, void *param)
{
  const UStringVector &strings = *(const UStringVector *)param;
  return CompareFileNames(strings[*p1], strings[*p2]);
}

void SortFileNames(const UStringVector &strings, CIntVector &indices)
{
  indices.Clear();
  int numItems = strings.Size();
  indices.Reserve(numItems);
  for(int i = 0; i < numItems; i++)
    indices.Add(i);
  indices.Sort(CompareStrings, (void *)&strings);
}