scope, scopeDesc, pattern, caseSensitive, type | context);
ArrayList<Position> results = new ArrayList<Position>();
if (query != null){
query.run(new NullProgressMonitor());
CSearchResult result = (CSearchResult)query.getSearchResult();
for (Object e : result.getElements()){
Method method = CSearchElement.class.getDeclaredMethod("getLocation");
method.setAccessible(true);
IIndexFileLocation location = (IIndexFileLocation)method.invoke(e);
String filename = location.getURI().getPath();
if (Os.isFamily("windows") && filename.startsWith("/")){
filename = filename.substring(1);
}
for (Match m : result.getMatches(e)){
CSearchMatch match = (CSearchMatch)m;
results.add(
Position.fromOffset(filename, null, match.getOffset(), 0));
}
}