|
@@ -1465,6 +1465,28 @@ bool CWsWorkunitsEx::onWUQueryDetails(IEspContext &context, IEspWUQueryDetailsRe
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+int StringArrayCompareFunc(const char **s1, const char **s2)
|
|
|
+{
|
|
|
+ if (!s1 || !*s1 || !s2 || !*s2)
|
|
|
+ return 0;
|
|
|
+ return strcmp(*s1, *s2);
|
|
|
+}
|
|
|
+
|
|
|
+int EspQuerySuperFileCompareFunc(IInterface **i1, IInterface **i2)
|
|
|
+{
|
|
|
+ if (!i1 || !*i1 || !i2 || !*i2)
|
|
|
+ return 0;
|
|
|
+ IEspQuerySuperFile *sf1 = QUERYINTERFACE(*i1, IEspQuerySuperFile);
|
|
|
+ IEspQuerySuperFile *sf2 = QUERYINTERFACE(*i2, IEspQuerySuperFile);
|
|
|
+ if (!sf1 || !sf2)
|
|
|
+ return 0;
|
|
|
+ const char *name1 = sf1->getName();
|
|
|
+ const char *name2 = sf2->getName();
|
|
|
+ if (!name1 || !name2)
|
|
|
+ return 0;
|
|
|
+ return strcmp(name1, name2);
|
|
|
+}
|
|
|
+
|
|
|
bool CWsWorkunitsEx::getQueryFiles(const char* query, const char* target, StringArray& logicalFiles, IArrayOf<IEspQuerySuperFile> *respSuperFiles)
|
|
|
{
|
|
|
try
|
|
@@ -1496,6 +1518,7 @@ bool CWsWorkunitsEx::getQueryFiles(const char* query, const char* target, String
|
|
|
if (fileName && *fileName)
|
|
|
logicalFiles.append(fileName);
|
|
|
}
|
|
|
+ logicalFiles.sort(StringArrayCompareFunc);
|
|
|
|
|
|
if (respSuperFiles)
|
|
|
{
|
|
@@ -1514,9 +1537,12 @@ bool CWsWorkunitsEx::getQueryFiles(const char* query, const char* target, String
|
|
|
if (fileName && *fileName)
|
|
|
respSubFiles.append(fileName);
|
|
|
}
|
|
|
+ respSubFiles.sort(StringArrayCompareFunc);
|
|
|
+
|
|
|
respSuperFile->setSubFiles(respSubFiles);
|
|
|
respSuperFiles->append(*respSuperFile.getClear());
|
|
|
}
|
|
|
+ respSuperFiles->sort(EspQuerySuperFileCompareFunc);
|
|
|
}
|
|
|
return true;
|
|
|
}
|