INNER CODE UNIT · C++
D
ixray-team/ixray-1.6-stcop · src/xrCore/ELocatorAPI.cpp:215
file_list_cb_data* D = (file_list_cb_data*)data;
LPCSTR end_symbol = entry.name+xr_strlen(entry.name)-1;
if ((*end_symbol)!='\\'){
// file
if ((D->flags&FS_ListFiles) == 0) return;
LPCSTR entry_begin = entry.name+D->base_len;
if ((D->flags&FS_RootOnly)&&strstr(entry_begin,"\\")) return; // folder in folder
// check extension
if (D->masks){
bool bOK = false;
for (SStringVecIt it=D->masks->begin(); it!=D->masks->end(); it++)
if (PatternMatch(entry_begin,it->c_str())){bOK=true; break;}
if (!bOK) return;
}
xr_string fn = entry_begin;
// insert file entry
if (D->flags&FS_ClampExt) fn=EFS.ChangeFileExt(fn,"");